[dpdk-dev] [PATCH v2 1/4] mk: Add 'make doc-pdf' target to convert guide docs to pdf
John McNamara
john.mcnamara at intel.com
Fri Jan 30 19:13:25 CET 2015
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 | 33 ++++++++++++++++++++++++++++++++-
mk/rte.sdkroot.mk | 3 ++-
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/mk/rte.sdkdoc.mk b/mk/rte.sdkdoc.mk
index dabc0d6..fb90d41 100644
--- a/mk/rte.sdkdoc.mk
+++ b/mk/rte.sdkdoc.mk
@@ -39,11 +39,15 @@ endif
RTE_SPHINX_BUILD = sphinx-build
ifndef V
RTE_SPHINX_VERBOSE := -q
+RTE_PDFLATEX_VERBOSE := > /dev/null 2>&1
endif
ifeq '$V' '0'
RTE_SPHINX_VERBOSE := -q
+RTE_PDFLATEX_VERBOSE := > /dev/null 2>&1
endif
+DEFAULT_DPI ?= 300
+
.PHONY: help
help:
@cat $(RTE_SDK)/doc/build-sdk-quick.txt
@@ -53,7 +57,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 +87,30 @@ 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: pdf-rel_notes pdf-linux_gsg pdf-freebsd_gsg pdf-prog_guide \
+ pdf-sample_app_ug pdf-testpmd_app_ug
+
+pdf-%:
+ @echo 'creating' $* 'pdf ...'
+ # 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/$*
+
+ # Convert the svg files to png.
+ $(eval svg_files=$(notdir $(wildcard $(RTE_SDK)/doc/guides/$*/img/*.svg)))
+ $(eval svg_files=$(patsubst %.svg, %, $(svg_files)))
+ @for svg in $(svg_files); do \
+ inkscape -d $(DEFAULT_DPI) -D -b ffffff \
+ -f $(RTE_SDK)/doc/guides/$*/img/$$svg.svg \
+ -e $(RTE_OUTPUT)/doc/latex/guides/$*/$$svg.png \
+ $(RTE_PDFLATEX_VERBOSE); \
+ done
+
+ # Change the svg image includes to png in the latex docs.
+ $(Q)sed -i 's/\.svg/.png/g' $(RTE_OUTPUT)/doc/latex/guides/$*/*.tex
+
+ # Convert the latex to pdf.
+ $(Q)$(MAKE) -C $(RTE_OUTPUT)/doc/latex/guides/$* \
+ all-pdf $(RTE_PDFLATEX_VERBOSE)
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
index e8423b0..68931bb 100644
--- a/mk/rte.sdkroot.mk
+++ b/mk/rte.sdkroot.mk
@@ -101,9 +101,10 @@ testall:
install uninstall:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
-.PHONY: doc help
+.PHONY: doc help pdf
doc: doc-all
help: doc-help
+pdf: doc-pdf
doc-%:
$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkdoc.mk $*
--
1.7.4.1
More information about the dev
mailing list