> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of John McNamara > Sent: Tuesday, February 3, 2015 2:11 PM > To: dev at dpdk.org > Subject: [dpdk-dev] [PATCH v4 1/5] mk: Add 'make doc-pdf' target to convert > guide docs to pdf > > 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
Hi John, Would it be clearer to have a guides-pdf-clean target instead of guides-latex-clean given that there is a doc-pdf target? Regards, Bernard. > > .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