From: Ben Kaduk Date: Wed, 17 Oct 2012 00:11:14 +0000 (-0400) Subject: Make glue for building PDFs X-Git-Tag: krb5-1.12-alpha1~485 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f06725b7a98c16630f80d8cc1dd6386a7d21a058;p=thirdparty%2Fkrb5.git Make glue for building PDFs sphinx-build's latex output engine creates a subdirectory with various latex files, and a Makefile. The generated Makefile assumes gmake, which we do not. The logic needed in this makefile is rather simple, so we just include it in src/doc/Makefile.in, even if we do need a rather complicated shell expression to work in the subdirectory. ticket: 7433 tags: pullup --- diff --git a/.gitignore b/.gitignore index 36c4f1af9f..8ec785de24 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ testlog /doc/version.py /doc/html/ +/doc/pdf/ /src/config.log /src/config.status diff --git a/src/doc/Makefile.in b/src/doc/Makefile.in index 913a50a934..3c5d3f3b51 100644 --- a/src/doc/Makefile.in +++ b/src/doc/Makefile.in @@ -28,6 +28,10 @@ RST_SOURCES= _static \ relay \ resources.rst +PDFDIR=$(docsrc)/pdf +PDFDOCS= admin appdev basic build plugindev user +LATEXOPTS= + # Create HTML documentation in $(docsrc)/html suitable for a # release tarball or the web site (that is, without substitutions for # configured paths). This can be done in an unconfigured source tree @@ -53,6 +57,28 @@ notice.txt: $(docsrc)/conf.py $(docsrc)/notice.rst NOTICE: notice.txt cp notice.txt $(top_srcdir)/../NOTICE +$(PDFDIR): composite + $(SPHINX_BUILD) -b latex -q rst_composite $(PDFDIR) + # sphinx-build generates a gmake-specific Makefile that we don't use + mv $(PDFDIR)/Makefile $(PDFDIR)/GMakefile + +# Not pretty. Can't use a suffix rule .tex.pdf without a Makefile in +# $(PDFDIR) because pdflatex looks for include files in the current +# working directory. The sphinx-build Makefile is quite conservative +# and runs pdflatex five times; we can be slightly less conservative. +pdf: $(PDFDIR) + (cd $(PDFDIR) && \ + for i in $(PDFDOCS); do \ + texfile=`echo $${i}.tex` && \ + idxfile=`echo $${i}.idx` && \ + pdflatex $(LATEXOPTS) $$texfile && \ + pdflatex $(LATEXOPTS) $$texfile && \ + makeindex -s python.ist $$idxfile || true; \ + pdflatex $(LATEXOPTS) $$texfile && \ + pdflatex $(LATEXOPTS) $$texfile; done && \ + rm -f *.dvi *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla \ + ) + # Use doxygen to generate API documentation, translate it into RST # format, and then create a composite of $(docsrc)'s RST and the # generated files in rst_composite. Used by the html and substhtml targets.