736 lines · 23.4 KB · Makefile
RawDownload
# Makefile for Python documentation# ---------------------------------## See also the README file.## This is a bit of a mess.  The documents are identified by short names:#   api -- Python/C API Reference Manual#   doc -- Documenting Python#   ext -- Extending and Embedding the Python Interpreter#   lib -- Library Reference Manual#   mac -- Macintosh Library Modules#   ref -- Python Reference Manual#   tut -- Python Tutorial#   inst -- Installing Python Modules#   dist -- Distributing Python Modules## The LaTeX sources for each of these documents are in subdirectories# with the three-letter designations above as the directory names.## The main target creates HTML for each of the documents.  You can# also do "make lib" (etc.) to create the HTML versions of individual# documents.## The document classes and styles are in the texinputs/ directory.# These define a number of macros that are similar in name and intent# as macros in Texinfo (e.g. \code{...} and \emph{...}), as well as a# number of environments for formatting function and data definitions.# Documentation for the macros is included in "Documenting Python"; see# http://www.python.org/doc/current/doc/doc.html, or the sources for# this document in the doc/ directory.## Everything is processed by LaTeX.  See the file `README' for more# information on the tools needed for processing.## There's a problem with generating the index which has been solved by# a sed command applied to the index file.  The shell script fix_hack# does this (the Makefile takes care of calling it).## Additional targets attempt to convert selected LaTeX sources to# various other formats.  These are generally site specific because# the tools used are all but universal.  These targets are:##   ps  -- convert all documents from LaTeX to PostScript#   pdf -- convert all documents from LaTeX to the#		Portable Document Format## See the README file for more information on these targets.## The formatted output is located in subdirectories.  For PDF and# PostScript, look in the paper-$(PAPER)/ directory.  For HTML, look in# the html/ directory.  If you want to fix the GNU info process, look# in the info/ directory; please send patches to docs@python.org. # This Makefile only includes information on how to perform builds; for# dependency information, see Makefile.deps. # Customization -- you *may* have to edit this # You could set this to a4:PAPER=letter # Ideally, you shouldn't need to edit beyond this point INFODIR=	infoTOOLSDIR=	tools # This is the *documentation* release, and is used to construct the# file names of the downloadable tarballs.  It is initialized by the# getversioninfo script to ensure that the right version number is# used; the script will also write commontex/patchlevel.tex if that# doesn't exist or needs to be changed.  Documents which depend on the# version number should use \input{patchlevel} and include# commontex/patchlevel.tex in their dependencies.RELEASE=$(shell $(PYTHON) tools/getversioninfo) PYTHON=	   pythonDVIPS=	   dvips -N0 -t $(PAPER) # This is ugly!  The issue here is that there are two different levels# in the directory tree at which we execute mkhowto, so we can't# define it just once using a relative path (at least not with the# current implementation and Makefile structure).  We use the GNUish# $(shell) function here to work around that restriction by# identifying mkhowto and the commontex/ directory using absolute paths.## If your doc build fails immediately, you may need to switch to GNU make.# (e.g. OpenBSD needs package gmake installed; use gmake instead of make)PWD=$(shell pwd) # (The trailing colon in the value is needed; TeX places its default# set of paths at the location of the empty string in the path list.)TEXINPUTS=$(PWD)/commontex: # The mkhowto script can be run from the checkout using the first# version of this variable definition, or from a preferred version# using the second version.  The standard documentation is typically# built using the second flavor, where the preferred version is from# the Python CVS trunk.MKHOWTO=   TEXINPUTS=$(TEXINPUTS) $(PYTHON) $(PWD)/tools/mkhowto MKDVI=	   $(MKHOWTO) --paper=$(PAPER) --dviMKHTML=	   $(MKHOWTO) --html --about html/stdabout.dat \		--iconserver ../icons --favicon ../icons/pyfav.png \		--address $(PYTHONDOCS) --up-link ../index.html \		--up-title "Python Documentation Index" \		--global-module-index "../modindex.html" --dvips-safeMKISILOHTML=$(MKHOWTO) --html --about html/stdabout.dat \		--iconserver ../icons \		--l2h-init perl/isilo.perl --numeric --split 1 \		--dvips-safeMKISILO=   iSilo386 -U -y -rCR -d0MKPDF=	   $(MKHOWTO) --paper=$(PAPER) --pdfMKPS=	   $(MKHOWTO) --paper=$(PAPER) --ps BUILDINDEX=$(TOOLSDIR)/buildindex.py PYTHONDOCS="See <i><a href=\"about.html\">About this document...</a></i> for information on suggesting changes."HTMLBASE=  file:`pwd` # The emacs binary used to build the info docs. GNU Emacs 21 is required.EMACS=     emacs # The end of this should reflect the major/minor version numbers of# the release:WHATSNEW=whatsnew25 # what's whatMANDVIFILES=	paper-$(PAPER)/api.dvi paper-$(PAPER)/ext.dvi \		paper-$(PAPER)/lib.dvi paper-$(PAPER)/mac.dvi \		paper-$(PAPER)/ref.dvi paper-$(PAPER)/tut.dviHOWTODVIFILES=	paper-$(PAPER)/doc.dvi paper-$(PAPER)/inst.dvi \		paper-$(PAPER)/dist.dvi paper-$(PAPER)/$(WHATSNEW).dvi MANPDFFILES=	paper-$(PAPER)/api.pdf paper-$(PAPER)/ext.pdf \		paper-$(PAPER)/lib.pdf paper-$(PAPER)/mac.pdf \		paper-$(PAPER)/ref.pdf paper-$(PAPER)/tut.pdfHOWTOPDFFILES=	paper-$(PAPER)/doc.pdf paper-$(PAPER)/inst.pdf \		paper-$(PAPER)/dist.pdf paper-$(PAPER)/$(WHATSNEW).pdf MANPSFILES=	paper-$(PAPER)/api.ps paper-$(PAPER)/ext.ps \		paper-$(PAPER)/lib.ps paper-$(PAPER)/mac.ps \		paper-$(PAPER)/ref.ps paper-$(PAPER)/tut.psHOWTOPSFILES=	paper-$(PAPER)/doc.ps paper-$(PAPER)/inst.ps \		paper-$(PAPER)/dist.ps paper-$(PAPER)/$(WHATSNEW).ps DVIFILES=	$(MANDVIFILES) $(HOWTODVIFILES)PDFFILES=	$(MANPDFFILES) $(HOWTOPDFFILES)PSFILES=	$(MANPSFILES) $(HOWTOPSFILES) HTMLCSSFILES=html/api/api.css \	html/doc/doc.css \	html/ext/ext.css \	html/lib/lib.css \	html/mac/mac.css \	html/ref/ref.css \	html/tut/tut.css \	html/inst/inst.css \	html/dist/dist.css ISILOCSSFILES=isilo/api/api.css \	isilo/doc/doc.css \	isilo/ext/ext.css \	isilo/lib/lib.css \	isilo/mac/mac.css \	isilo/ref/ref.css \	isilo/tut/tut.css \	isilo/inst/inst.css \	isilo/dist/dist.css ALLCSSFILES=$(HTMLCSSFILES) $(ISILOCSSFILES) INDEXFILES=html/api/api.html \	html/doc/doc.html \	html/ext/ext.html \	html/lib/lib.html \	html/mac/mac.html \	html/ref/ref.html \	html/tut/tut.html \	html/inst/inst.html \	html/dist/dist.html \	html/whatsnew/$(WHATSNEW).html ALLHTMLFILES=$(INDEXFILES) html/index.html html/modindex.html html/acks.html COMMONPERL= perl/manual.perl perl/python.perl perl/l2hinit.perl ANNOAPI=api/refcounts.dat tools/anno-api.py include Makefile.deps # These must be declared phony since there# are directories with matching names:.PHONY: api doc ext lib mac ref tut inst dist.PHONY: html info isilo  # Main targetdefault:	htmlall:		html dvi ps pdf isilo dvi:	$(DVIFILES)pdf:	$(PDFFILES)ps:	$(PSFILES) world:	ps pdf html distfiles  # Rules to build PostScript and PDF formats.SUFFIXES: .dvi .ps .dvi.ps:	$(DVIPS) -o $@ $<  # Targets for each document:# Python/C API Reference Manualpaper-$(PAPER)/api.dvi: $(ANNOAPIFILES)	cd paper-$(PAPER) && $(MKDVI) api.tex paper-$(PAPER)/api.pdf: $(ANNOAPIFILES)	cd paper-$(PAPER) && $(MKPDF) api.tex paper-$(PAPER)/api.tex: api/api.tex	cp api/api.tex $@ paper-$(PAPER)/abstract.tex: api/abstract.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/abstract.tex paper-$(PAPER)/concrete.tex: api/concrete.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/concrete.tex paper-$(PAPER)/exceptions.tex: api/exceptions.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/exceptions.tex paper-$(PAPER)/init.tex: api/init.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/init.tex paper-$(PAPER)/intro.tex: api/intro.tex	cp api/intro.tex $@ paper-$(PAPER)/memory.tex: api/memory.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/memory.tex paper-$(PAPER)/newtypes.tex: api/newtypes.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/newtypes.tex paper-$(PAPER)/refcounting.tex: api/refcounting.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/refcounting.tex paper-$(PAPER)/utilities.tex: api/utilities.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/utilities.tex paper-$(PAPER)/veryhigh.tex: api/veryhigh.tex $(ANNOAPI)	$(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/veryhigh.tex # Distributing Python Modulespaper-$(PAPER)/dist.dvi: $(DISTFILES)	cd paper-$(PAPER) && $(MKDVI) ../dist/dist.tex paper-$(PAPER)/dist.pdf: $(DISTFILES)	cd paper-$(PAPER) && $(MKPDF) ../dist/dist.tex # Documenting Pythonpaper-$(PAPER)/doc.dvi: $(DOCFILES)	cd paper-$(PAPER) && $(MKDVI) ../doc/doc.tex paper-$(PAPER)/doc.pdf: $(DOCFILES)	cd paper-$(PAPER) && $(MKPDF) ../doc/doc.tex # Extending and Embedding the Python Interpreterpaper-$(PAPER)/ext.dvi: $(EXTFILES)	cd paper-$(PAPER) && $(MKDVI) ../ext/ext.tex paper-$(PAPER)/ext.pdf: $(EXTFILES)	cd paper-$(PAPER) && $(MKPDF) ../ext/ext.tex # Installing Python Modulespaper-$(PAPER)/inst.dvi: $(INSTFILES)	cd paper-$(PAPER) && $(MKDVI) ../inst/inst.tex paper-$(PAPER)/inst.pdf: $(INSTFILES)	cd paper-$(PAPER) && $(MKPDF) ../inst/inst.tex # Python Library Referencepaper-$(PAPER)/lib.dvi: $(LIBFILES)	cd paper-$(PAPER) && $(MKDVI) ../lib/lib.tex paper-$(PAPER)/lib.pdf: $(LIBFILES)	cd paper-$(PAPER) && $(MKPDF) ../lib/lib.tex # Macintosh Library Modulespaper-$(PAPER)/mac.dvi: $(MACFILES)	cd paper-$(PAPER) && $(MKDVI) ../mac/mac.tex paper-$(PAPER)/mac.pdf: $(MACFILES)	cd paper-$(PAPER) && $(MKPDF) ../mac/mac.tex # Python Reference Manualpaper-$(PAPER)/ref.dvi: $(REFFILES)	cd paper-$(PAPER) && $(MKDVI) ../ref/ref.tex paper-$(PAPER)/ref.pdf: $(REFFILES)	cd paper-$(PAPER) && $(MKPDF) ../ref/ref.tex # Python Tutorialpaper-$(PAPER)/tut.dvi: $(TUTFILES)	cd paper-$(PAPER) && $(MKDVI) ../tut/tut.tex paper-$(PAPER)/tut.pdf: $(TUTFILES)	cd paper-$(PAPER) && $(MKPDF) ../tut/tut.tex # What's New in Python X.Ypaper-$(PAPER)/$(WHATSNEW).dvi: whatsnew/$(WHATSNEW).tex	cd paper-$(PAPER) && $(MKDVI) ../whatsnew/$(WHATSNEW).tex paper-$(PAPER)/$(WHATSNEW).pdf: whatsnew/$(WHATSNEW).tex	cd paper-$(PAPER) && $(MKPDF) ../whatsnew/$(WHATSNEW).tex # The remaining part of the Makefile is concerned with various# conversions, as described above.  See also the README file. info:	cd $(INFODIR) && $(MAKE) EMACS=$(EMACS) WHATSNEW=$(WHATSNEW) # Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to# HTML converter.  For more info on this program, see# <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>. # Note that LaTeX2HTML inserts references to an icons directory in# each page that it generates.  I have placed a copy of this directory# in the distribution to simplify the process of creating a# self-contained HTML distribution; for this purpose I have also added# a (trivial) index.html.  Change the definition of $ICONSERVER in# perl/l2hinit.perl to use a different location for the icons directory. # If you have the standard LaTeX2HTML icons installed, the versions shipped# with this documentation should be stored in a separate directory and used# instead.  The standard set does *not* include all the icons used in the# Python documentation. $(ALLCSSFILES): html/style.css	cp $< $@ $(INDEXFILES): $(COMMONPERL) html/stdabout.dat tools/node2label.pl html/acks.html: ACKS $(TOOLSDIR)/support.py $(TOOLSDIR)/mkackshtml	$(PYTHON) $(TOOLSDIR)/mkackshtml --address $(PYTHONDOCS) \		--favicon icons/pyfav.png \		--output html/acks.html <ACKS  # html/index.html is dependent on $(INDEXFILES) since we want the date# on the front index to be updated whenever any of the child documents# are updated and boilerplate.tex uses \today as the date.  The index# files are not used to actually generate content. BOILERPLATE=commontex/boilerplate.texhtml/index.html: $(INDEXFILES)html/index.html: html/index.html.in $(BOILERPLATE) tools/rewrite.py	$(PYTHON) tools/rewrite.py $(BOILERPLATE) \		RELEASE=$(RELEASE) WHATSNEW=$(WHATSNEW) \		<$< >$@ html/modindex.html: $(TOOLSDIR)/support.py $(TOOLSDIR)/mkmodindexhtml/modindex.html: html/dist/dist.htmlhtml/modindex.html: html/lib/lib.html html/mac/mac.html	cd html && \	 $(PYTHON) ../$(TOOLSDIR)/mkmodindex --columns 3 \		--output modindex.html --address $(PYTHONDOCS) \		--favicon icons/pyfav.png \		dist/modindex.html \		lib/modindex.html mac/modindex.html html:	$(ALLHTMLFILES) $(HTMLCSSFILES) api: html/api/api.html html/api/api.csshtml/api/api.html: $(APIFILES) api/refcounts.dat	$(MKHTML) --dir html/api api/api.tex doc: html/doc/doc.html html/doc/doc.csshtml/doc/doc.html: $(DOCFILES)	$(MKHTML) --dir html/doc doc/doc.tex ext: html/ext/ext.html html/ext/ext.csshtml/ext/ext.html: $(EXTFILES)	$(MKHTML) --dir html/ext ext/ext.tex lib: html/lib/lib.html html/lib/lib.csshtml/lib/lib.html: $(LIBFILES)	$(MKHTML) --dir html/lib lib/lib.tex mac: html/mac/mac.html html/mac/mac.csshtml/mac/mac.html: $(MACFILES)	$(MKHTML) --dir html/mac mac/mac.tex ref: html/ref/ref.html html/ref/ref.csshtml/ref/ref.html: $(REFFILES)	$(MKHTML) --dir html/ref ref/ref.tex tut: html/tut/tut.html html/tut/tut.csshtml/tut/tut.html: $(TUTFILES)	$(MKHTML) --dir html/tut --numeric --split 3 tut/tut.tex inst: html/inst/inst.html html/inst/inst.csshtml/inst/inst.html: $(INSTFILES) perl/distutils.perl	$(MKHTML) --dir html/inst --split 4 inst/inst.tex dist: html/dist/dist.html html/dist/dist.csshtml/dist/dist.html: $(DISTFILES) perl/distutils.perl	$(MKHTML) --dir html/dist --split 4 dist/dist.tex whatsnew: html/whatsnew/$(WHATSNEW).htmlhtml/whatsnew/$(WHATSNEW).html: whatsnew/$(WHATSNEW).tex	$(MKHTML) --dir html/whatsnew --split 4 whatsnew/$(WHATSNEW).tex  # The iSilo format is used by the iSilo document reader for PalmOS devices. ISILOINDEXFILES=isilo/api/api.html \	isilo/doc/doc.html \	isilo/ext/ext.html \	isilo/lib/lib.html \	isilo/mac/mac.html \	isilo/ref/ref.html \	isilo/tut/tut.html \	isilo/inst/inst.html \	isilo/dist/dist.html \	isilo/whatsnew/$(WHATSNEW).html $(ISILOINDEXFILES): $(COMMONPERL) html/stdabout.dat perl/isilo.perl isilo:	isilo/python-api.pdb \	isilo/python-doc.pdb \	isilo/python-ext.pdb \	isilo/python-lib.pdb \	isilo/python-mac.pdb \	isilo/python-ref.pdb \	isilo/python-tut.pdb \	isilo/python-dist.pdb \	isilo/python-inst.pdb \	isilo/python-whatsnew.pdb isilo/python-api.pdb: isilo/api/api.html isilo/api/api.css	$(MKISILO) "-iPython/C API Reference Manual" \		isilo/api/api.html $@ isilo/python-doc.pdb: isilo/doc/doc.html isilo/doc/doc.css	$(MKISILO) "-iDocumenting Python" \		isilo/doc/doc.html $@ isilo/python-ext.pdb: isilo/ext/ext.html isilo/ext/ext.css	$(MKISILO) "-iExtending & Embedding Python" \		isilo/ext/ext.html $@ isilo/python-lib.pdb: isilo/lib/lib.html isilo/lib/lib.css	$(MKISILO) "-iPython Library Reference" \		isilo/lib/lib.html $@ isilo/python-mac.pdb: isilo/mac/mac.html isilo/mac/mac.css	$(MKISILO) "-iPython/C API Reference Manual" \		isilo/mac/mac.html $@ isilo/python-ref.pdb: isilo/ref/ref.html isilo/ref/ref.css	$(MKISILO) "-iPython Reference Manual" \		isilo/ref/ref.html $@ isilo/python-tut.pdb: isilo/tut/tut.html isilo/tut/tut.css	$(MKISILO) "-iPython Tutorial" \		isilo/tut/tut.html $@ isilo/python-dist.pdb: isilo/dist/dist.html isilo/dist/dist.css	$(MKISILO) "-iDistributing Python Modules" \		isilo/dist/dist.html $@ isilo/python-inst.pdb: isilo/inst/inst.html isilo/inst/inst.css	$(MKISILO) "-iInstalling Python Modules" \		isilo/inst/inst.html $@ isilo/python-whatsnew.pdb: isilo/whatsnew/$(WHATSNEW).html isilo/whatsnew/$(WHATSNEW).css	$(MKISILO) "-iWhat's New in Python X.Y" \		isilo/whatsnew/$(WHATSNEW).html $@ isilo/api/api.html: $(APIFILES) api/refcounts.dat	$(MKISILOHTML) --dir isilo/api api/api.tex isilo/doc/doc.html: $(DOCFILES)	$(MKISILOHTML) --dir isilo/doc doc/doc.tex isilo/ext/ext.html: $(EXTFILES)	$(MKISILOHTML) --dir isilo/ext ext/ext.tex isilo/lib/lib.html: $(LIBFILES)	$(MKISILOHTML) --dir isilo/lib lib/lib.tex isilo/mac/mac.html: $(MACFILES)	$(MKISILOHTML) --dir isilo/mac mac/mac.tex isilo/ref/ref.html: $(REFFILES)	$(MKISILOHTML) --dir isilo/ref ref/ref.tex 

Lines 1–500 of 736.