[dpdk-dev] [PATCH v4 1/5] mk: Add 'make doc-pdf' target to convert guide docs to pdf
Iremonger, Bernard
bernard.iremonger at intel.com
Mon Feb 16 13:19:46 CET 2015
> -----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
More information about the dev
mailing list