Skip to content

Commit

Permalink
Make glue for building PDFs
Browse files Browse the repository at this point in the history
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.

(cherry picked from commit f06725b)

ticket: 7433
  • Loading branch information
kaduk authored and tlyu committed Nov 16, 2012
1 parent af0521a commit 12e7827
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ testlog
/doc/version.py

/doc/html/
/doc/pdf/

/src/config.log
/src/config.status
Expand Down
26 changes: 26 additions & 0 deletions src/doc/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
Expand Down

0 comments on commit 12e7827

Please sign in to comment.