Added make system support for building PDF versions of
the guides. Requires Python Sphinx and TexLive Full.

Signed-off-by: John McNamara <john.mcnamara at intel.com>
---
 mk/rte.sdkdoc.mk |   43 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 42 insertions(+), 1 deletions(-)

diff --git a/mk/rte.sdkdoc.mk b/mk/rte.sdkdoc.mk
index dabc0d6..e09628f 100644
--- a/mk/rte.sdkdoc.mk
+++ b/mk/rte.sdkdoc.mk
@@ -37,13 +37,24 @@ endif
 endif

 RTE_SPHINX_BUILD = sphinx-build
+RTE_PDFLATEX_VERBOSE := --interaction=nonstopmode
+
 ifndef V
 RTE_SPHINX_VERBOSE := -q
+RTE_PDFLATEX_VERBOSE := --interaction=batchmode
+RTE_INKSCAPE_VERBOSE := > /dev/null 2>&1
 endif
 ifeq '$V' '0'
 RTE_SPHINX_VERBOSE := -q
+RTE_PDFLATEX_VERBOSE := --interaction=batchmode
+RTE_INKSCAPE_VERBOSE := > /dev/null 2>&1
 endif

+RTE_GUIDE_PDFS := $(filter %/, $(wildcard $(RTE_SDK)/doc/guides/*/))
+RTE_GUIDE_PDFS := 
$(RTE_GUIDE_PDFS:$(RTE_SDK)/doc/guides%=$(RTE_OUTPUT)/doc/latex/guides%)
+RTE_GUIDE_PDFS := $(RTE_GUIDE_PDFS:%/=%.pdf)
+RTE_DEFAULT_DPI ?= 300
+
 .PHONY: help
 help:
        @cat $(RTE_SDK)/doc/build-sdk-quick.txt
@@ -53,7 +64,7 @@ help:
 all: api-html guides-html

 .PHONY: clean
-clean: api-html-clean guides-html-clean
+clean: api-html-clean guides-html-clean guides-latex-clean

 .PHONY: api-html
 api-html: api-html-clean
@@ -83,3 +94,33 @@ guides-%:
        @echo 'sphinx for guides...'
        $(Q)$(RTE_SPHINX_BUILD) -b $* $(RTE_SPHINX_VERBOSE) \
                -c $(RTE_SDK)/doc/guides $(RTE_SDK)/doc/guides 
$(RTE_OUTPUT)/doc/$*/guides
+
+
+pdf: $(RTE_GUIDE_PDFS)
+
+.SECONDEXPANSION:
+# Use wildcard expansion to avoid * expansion issue with make 3.82.
+$(RTE_OUTPUT)/doc/latex/guides/%.pdf: $$(wildcard 
$(RTE_SDK)/doc/guides/%/*.rst)
+       @echo 'creating' $* 'pdf ...'
+
+       @# Convert the svg files to png for pdflatex.
+       $(eval tmp_images = $(wildcard $(RTE_SDK)/doc/guides/$*/img/*.svg))
+       $(Q)for image in $(tmp_images:.svg=); do \
+               inkscape -d $(RTE_DEFAULT_DPI) -D -b ffffff \
+                       -f $$image.svg -e $$image.png $(RTE_INKSCAPE_VERBOSE); \
+       done
+
+       @# Generate the latex files.
+       $(Q)$(RTE_SPHINX_BUILD) -b latex $(RTE_SPHINX_VERBOSE) \
+               -c $(RTE_SDK)/doc/guides  $(RTE_SDK)/doc/guides/$* \
+               $(RTE_OUTPUT)/doc/latex/guides/$*
+
+       @# Remove the generated png files.
+       $(Q)rm -f $(tmp_images:.svg=.png)
+
+       @# Generate the pdf files.
+       $(Q)sed -i 's/LATEXOPTS =/LATEXOPTS = $(RTE_PDFLATEX_VERBOSE)/' \
+               $(RTE_OUTPUT)/doc/latex/guides/$*/Makefile
+       $(Q)make all-pdf -s -C $(RTE_OUTPUT)/doc/latex/guides/$*
+
+       $(Q)mv $(RTE_OUTPUT)/doc/latex/guides/$*/dpdk_doc.pdf $@
-- 
1.7.4.1

Reply via email to