Minor fix for currentframe (SF #1652788).
[python.git] / Doc / Makefile
blobbda244a93974e3bc30fb9a2b934ba3cb20167c86
1 # Makefile for Python documentation
2 # ---------------------------------
4 # See also the README file.
6 # This is a bit of a mess. The documents are identified by short names:
7 # api -- Python/C API Reference Manual
8 # doc -- Documenting Python
9 # ext -- Extending and Embedding the Python Interpreter
10 # lib -- Library Reference Manual
11 # mac -- Macintosh Library Modules
12 # ref -- Python Reference Manual
13 # tut -- Python Tutorial
14 # inst -- Installing Python Modules
15 # dist -- Distributing Python Modules
17 # The LaTeX sources for each of these documents are in subdirectories
18 # with the three-letter designations above as the directory names.
20 # The main target creates HTML for each of the documents. You can
21 # also do "make lib" (etc.) to create the HTML versions of individual
22 # documents.
24 # The document classes and styles are in the texinputs/ directory.
25 # These define a number of macros that are similar in name and intent
26 # as macros in Texinfo (e.g. \code{...} and \emph{...}), as well as a
27 # number of environments for formatting function and data definitions.
28 # Documentation for the macros is included in "Documenting Python"; see
29 # http://www.python.org/doc/current/doc/doc.html, or the sources for
30 # this document in the doc/ directory.
32 # Everything is processed by LaTeX. See the file `README' for more
33 # information on the tools needed for processing.
35 # There's a problem with generating the index which has been solved by
36 # a sed command applied to the index file. The shell script fix_hack
37 # does this (the Makefile takes care of calling it).
39 # Additional targets attempt to convert selected LaTeX sources to
40 # various other formats. These are generally site specific because
41 # the tools used are all but universal. These targets are:
43 # ps -- convert all documents from LaTeX to PostScript
44 # pdf -- convert all documents from LaTeX to the
45 # Portable Document Format
47 # See the README file for more information on these targets.
49 # The formatted output is located in subdirectories. For PDF and
50 # PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in
51 # the html/ directory. If you want to fix the GNU info process, look
52 # in the info/ directory; please send patches to docs@python.org.
54 # This Makefile only includes information on how to perform builds; for
55 # dependency information, see Makefile.deps.
57 # Customization -- you *may* have to edit this
59 # You could set this to a4:
60 PAPER=letter
62 # Ideally, you shouldn't need to edit beyond this point
64 INFODIR= info
65 TOOLSDIR= tools
67 # This is the *documentation* release, and is used to construct the
68 # file names of the downloadable tarballs. It is initialized by the
69 # getversioninfo script to ensure that the right version number is
70 # used; the script will also write commontex/patchlevel.tex if that
71 # doesn't exist or needs to be changed. Documents which depend on the
72 # version number should use \input{patchlevel} and include
73 # commontex/patchlevel.tex in their dependencies.
74 RELEASE=$(shell $(PYTHON) tools/getversioninfo)
76 PYTHON= python
77 DVIPS= dvips -N0 -t $(PAPER)
79 # This is ugly! The issue here is that there are two different levels
80 # in the directory tree at which we execute mkhowto, so we can't
81 # define it just once using a relative path (at least not with the
82 # current implementation and Makefile structure). We use the GNUish
83 # $(shell) function here to work around that restriction by
84 # identifying mkhowto and the commontex/ directory using absolute paths.
86 # If your doc build fails immediately, you may need to switch to GNU make.
87 # (e.g. OpenBSD needs package gmake installed; use gmake instead of make)
88 PWD=$(shell pwd)
90 # (The trailing colon in the value is needed; TeX places its default
91 # set of paths at the location of the empty string in the path list.)
92 TEXINPUTS=$(PWD)/commontex:
94 # The mkhowto script can be run from the checkout using the first
95 # version of this variable definition, or from a preferred version
96 # using the second version. The standard documentation is typically
97 # built using the second flavor, where the preferred version is from
98 # the Python CVS trunk.
99 MKHOWTO= TEXINPUTS=$(TEXINPUTS) $(PYTHON) $(PWD)/tools/mkhowto
101 MKDVI= $(MKHOWTO) --paper=$(PAPER) --dvi
102 MKHTML= $(MKHOWTO) --html --about html/stdabout.dat \
103 --iconserver ../icons --favicon ../icons/pyfav.png \
104 --address $(PYTHONDOCS) --up-link ../index.html \
105 --up-title "Python Documentation Index" \
106 --global-module-index "../modindex.html" --dvips-safe
107 MKISILOHTML=$(MKHOWTO) --html --about html/stdabout.dat \
108 --iconserver ../icons \
109 --l2h-init perl/isilo.perl --numeric --split 1 \
110 --dvips-safe
111 MKISILO= iSilo386 -U -y -rCR -d0
112 MKPDF= $(MKHOWTO) --paper=$(PAPER) --pdf
113 MKPS= $(MKHOWTO) --paper=$(PAPER) --ps
115 BUILDINDEX=$(TOOLSDIR)/buildindex.py
117 PYTHONDOCS="See <i><a href=\"about.html\">About this document...</a></i> for information on suggesting changes."
118 HTMLBASE= file:`pwd`
120 # The emacs binary used to build the info docs. GNU Emacs 21 is required.
121 EMACS= emacs
123 # The end of this should reflect the major/minor version numbers of
124 # the release:
125 WHATSNEW=whatsnew26
127 # what's what
128 MANDVIFILES= paper-$(PAPER)/api.dvi paper-$(PAPER)/ext.dvi \
129 paper-$(PAPER)/lib.dvi paper-$(PAPER)/mac.dvi \
130 paper-$(PAPER)/ref.dvi paper-$(PAPER)/tut.dvi
131 HOWTODVIFILES= paper-$(PAPER)/doc.dvi paper-$(PAPER)/inst.dvi \
132 paper-$(PAPER)/dist.dvi paper-$(PAPER)/$(WHATSNEW).dvi
134 MANPDFFILES= paper-$(PAPER)/api.pdf paper-$(PAPER)/ext.pdf \
135 paper-$(PAPER)/lib.pdf paper-$(PAPER)/mac.pdf \
136 paper-$(PAPER)/ref.pdf paper-$(PAPER)/tut.pdf
137 HOWTOPDFFILES= paper-$(PAPER)/doc.pdf paper-$(PAPER)/inst.pdf \
138 paper-$(PAPER)/dist.pdf paper-$(PAPER)/$(WHATSNEW).pdf
140 MANPSFILES= paper-$(PAPER)/api.ps paper-$(PAPER)/ext.ps \
141 paper-$(PAPER)/lib.ps paper-$(PAPER)/mac.ps \
142 paper-$(PAPER)/ref.ps paper-$(PAPER)/tut.ps
143 HOWTOPSFILES= paper-$(PAPER)/doc.ps paper-$(PAPER)/inst.ps \
144 paper-$(PAPER)/dist.ps paper-$(PAPER)/$(WHATSNEW).ps
146 DVIFILES= $(MANDVIFILES) $(HOWTODVIFILES)
147 PDFFILES= $(MANPDFFILES) $(HOWTOPDFFILES)
148 PSFILES= $(MANPSFILES) $(HOWTOPSFILES)
150 HTMLCSSFILES=html/api/api.css \
151 html/doc/doc.css \
152 html/ext/ext.css \
153 html/lib/lib.css \
154 html/mac/mac.css \
155 html/ref/ref.css \
156 html/tut/tut.css \
157 html/inst/inst.css \
158 html/dist/dist.css
160 ISILOCSSFILES=isilo/api/api.css \
161 isilo/doc/doc.css \
162 isilo/ext/ext.css \
163 isilo/lib/lib.css \
164 isilo/mac/mac.css \
165 isilo/ref/ref.css \
166 isilo/tut/tut.css \
167 isilo/inst/inst.css \
168 isilo/dist/dist.css
170 ALLCSSFILES=$(HTMLCSSFILES) $(ISILOCSSFILES)
172 INDEXFILES=html/api/api.html \
173 html/doc/doc.html \
174 html/ext/ext.html \
175 html/lib/lib.html \
176 html/mac/mac.html \
177 html/ref/ref.html \
178 html/tut/tut.html \
179 html/inst/inst.html \
180 html/dist/dist.html \
181 html/whatsnew/$(WHATSNEW).html
183 ALLHTMLFILES=$(INDEXFILES) html/index.html html/modindex.html html/acks.html
185 COMMONPERL= perl/manual.perl perl/python.perl perl/l2hinit.perl
187 ANNOAPI=api/refcounts.dat tools/anno-api.py
189 include Makefile.deps
191 # These must be declared phony since there
192 # are directories with matching names:
193 .PHONY: api doc ext lib mac ref tut inst dist
194 .PHONY: html info isilo
197 # Main target
198 default: html
199 all: html dvi ps pdf isilo
201 dvi: $(DVIFILES)
202 pdf: $(PDFFILES)
203 ps: $(PSFILES)
205 world: ps pdf html distfiles
208 # Rules to build PostScript and PDF formats
209 .SUFFIXES: .dvi .ps
211 .dvi.ps:
212 $(DVIPS) -o $@ $<
215 # Targets for each document:
216 # Python/C API Reference Manual
217 paper-$(PAPER)/api.dvi: $(ANNOAPIFILES)
218 cd paper-$(PAPER) && $(MKDVI) api.tex
220 paper-$(PAPER)/api.pdf: $(ANNOAPIFILES)
221 cd paper-$(PAPER) && $(MKPDF) api.tex
223 paper-$(PAPER)/api.tex: api/api.tex
224 cp api/api.tex $@
226 paper-$(PAPER)/abstract.tex: api/abstract.tex $(ANNOAPI)
227 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/abstract.tex
229 paper-$(PAPER)/concrete.tex: api/concrete.tex $(ANNOAPI)
230 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/concrete.tex
232 paper-$(PAPER)/exceptions.tex: api/exceptions.tex $(ANNOAPI)
233 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/exceptions.tex
235 paper-$(PAPER)/init.tex: api/init.tex $(ANNOAPI)
236 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/init.tex
238 paper-$(PAPER)/intro.tex: api/intro.tex
239 cp api/intro.tex $@
241 paper-$(PAPER)/memory.tex: api/memory.tex $(ANNOAPI)
242 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/memory.tex
244 paper-$(PAPER)/newtypes.tex: api/newtypes.tex $(ANNOAPI)
245 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/newtypes.tex
247 paper-$(PAPER)/refcounting.tex: api/refcounting.tex $(ANNOAPI)
248 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/refcounting.tex
250 paper-$(PAPER)/utilities.tex: api/utilities.tex $(ANNOAPI)
251 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/utilities.tex
253 paper-$(PAPER)/veryhigh.tex: api/veryhigh.tex $(ANNOAPI)
254 $(PYTHON) $(TOOLSDIR)/anno-api.py -o $@ api/veryhigh.tex
256 # Distributing Python Modules
257 paper-$(PAPER)/dist.dvi: $(DISTFILES)
258 cd paper-$(PAPER) && $(MKDVI) ../dist/dist.tex
260 paper-$(PAPER)/dist.pdf: $(DISTFILES)
261 cd paper-$(PAPER) && $(MKPDF) ../dist/dist.tex
263 # Documenting Python
264 paper-$(PAPER)/doc.dvi: $(DOCFILES)
265 cd paper-$(PAPER) && $(MKDVI) ../doc/doc.tex
267 paper-$(PAPER)/doc.pdf: $(DOCFILES)
268 cd paper-$(PAPER) && $(MKPDF) ../doc/doc.tex
270 # Extending and Embedding the Python Interpreter
271 paper-$(PAPER)/ext.dvi: $(EXTFILES)
272 cd paper-$(PAPER) && $(MKDVI) ../ext/ext.tex
274 paper-$(PAPER)/ext.pdf: $(EXTFILES)
275 cd paper-$(PAPER) && $(MKPDF) ../ext/ext.tex
277 # Installing Python Modules
278 paper-$(PAPER)/inst.dvi: $(INSTFILES)
279 cd paper-$(PAPER) && $(MKDVI) ../inst/inst.tex
281 paper-$(PAPER)/inst.pdf: $(INSTFILES)
282 cd paper-$(PAPER) && $(MKPDF) ../inst/inst.tex
284 # Python Library Reference
285 paper-$(PAPER)/lib.dvi: $(LIBFILES)
286 cd paper-$(PAPER) && $(MKDVI) ../lib/lib.tex
288 paper-$(PAPER)/lib.pdf: $(LIBFILES)
289 cd paper-$(PAPER) && $(MKPDF) ../lib/lib.tex
291 # Macintosh Library Modules
292 paper-$(PAPER)/mac.dvi: $(MACFILES)
293 cd paper-$(PAPER) && $(MKDVI) ../mac/mac.tex
295 paper-$(PAPER)/mac.pdf: $(MACFILES)
296 cd paper-$(PAPER) && $(MKPDF) ../mac/mac.tex
298 # Python Reference Manual
299 paper-$(PAPER)/ref.dvi: $(REFFILES)
300 cd paper-$(PAPER) && $(MKDVI) ../ref/ref.tex
302 paper-$(PAPER)/ref.pdf: $(REFFILES)
303 cd paper-$(PAPER) && $(MKPDF) ../ref/ref.tex
305 # Python Tutorial
306 paper-$(PAPER)/tut.dvi: $(TUTFILES)
307 cd paper-$(PAPER) && $(MKDVI) ../tut/tut.tex
309 paper-$(PAPER)/tut.pdf: $(TUTFILES)
310 cd paper-$(PAPER) && $(MKPDF) ../tut/tut.tex
312 # What's New in Python X.Y
313 paper-$(PAPER)/$(WHATSNEW).dvi: whatsnew/$(WHATSNEW).tex
314 cd paper-$(PAPER) && $(MKDVI) ../whatsnew/$(WHATSNEW).tex
316 paper-$(PAPER)/$(WHATSNEW).pdf: whatsnew/$(WHATSNEW).tex
317 cd paper-$(PAPER) && $(MKPDF) ../whatsnew/$(WHATSNEW).tex
319 # The remaining part of the Makefile is concerned with various
320 # conversions, as described above. See also the README file.
322 info:
323 cd $(INFODIR) && $(MAKE) EMACS=$(EMACS) WHATSNEW=$(WHATSNEW)
325 # Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to
326 # HTML converter. For more info on this program, see
327 # <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
329 # Note that LaTeX2HTML inserts references to an icons directory in
330 # each page that it generates. I have placed a copy of this directory
331 # in the distribution to simplify the process of creating a
332 # self-contained HTML distribution; for this purpose I have also added
333 # a (trivial) index.html. Change the definition of $ICONSERVER in
334 # perl/l2hinit.perl to use a different location for the icons directory.
336 # If you have the standard LaTeX2HTML icons installed, the versions shipped
337 # with this documentation should be stored in a separate directory and used
338 # instead. The standard set does *not* include all the icons used in the
339 # Python documentation.
341 $(ALLCSSFILES): html/style.css
342 cp $< $@
344 $(INDEXFILES): $(COMMONPERL) html/stdabout.dat tools/node2label.pl
346 html/acks.html: ACKS $(TOOLSDIR)/support.py $(TOOLSDIR)/mkackshtml
347 $(PYTHON) $(TOOLSDIR)/mkackshtml --address $(PYTHONDOCS) \
348 --favicon icons/pyfav.png \
349 --output html/acks.html <ACKS
352 # html/index.html is dependent on $(INDEXFILES) since we want the date
353 # on the front index to be updated whenever any of the child documents
354 # are updated and boilerplate.tex uses \today as the date. The index
355 # files are not used to actually generate content.
357 BOILERPLATE=commontex/boilerplate.tex
358 html/index.html: $(INDEXFILES)
359 html/index.html: html/index.html.in $(BOILERPLATE) tools/rewrite.py
360 $(PYTHON) tools/rewrite.py $(BOILERPLATE) \
361 RELEASE=$(RELEASE) WHATSNEW=$(WHATSNEW) \
362 <$< >$@
364 html/modindex.html: $(TOOLSDIR)/support.py $(TOOLSDIR)/mkmodindex
365 html/modindex.html: html/dist/dist.html
366 html/modindex.html: html/lib/lib.html html/mac/mac.html
367 cd html && \
368 $(PYTHON) ../$(TOOLSDIR)/mkmodindex --columns 3 \
369 --output modindex.html --address $(PYTHONDOCS) \
370 --favicon icons/pyfav.png \
371 dist/modindex.html \
372 lib/modindex.html mac/modindex.html
374 html: $(ALLHTMLFILES) $(HTMLCSSFILES)
376 api: html/api/api.html html/api/api.css
377 html/api/api.html: $(APIFILES) api/refcounts.dat
378 $(MKHTML) --dir html/api api/api.tex
380 doc: html/doc/doc.html html/doc/doc.css
381 html/doc/doc.html: $(DOCFILES)
382 $(MKHTML) --dir html/doc doc/doc.tex
384 ext: html/ext/ext.html html/ext/ext.css
385 html/ext/ext.html: $(EXTFILES)
386 $(MKHTML) --dir html/ext ext/ext.tex
388 lib: html/lib/lib.html html/lib/lib.css
389 html/lib/lib.html: $(LIBFILES)
390 $(MKHTML) --dir html/lib lib/lib.tex
392 mac: html/mac/mac.html html/mac/mac.css
393 html/mac/mac.html: $(MACFILES)
394 $(MKHTML) --dir html/mac mac/mac.tex
396 ref: html/ref/ref.html html/ref/ref.css
397 html/ref/ref.html: $(REFFILES)
398 $(MKHTML) --dir html/ref ref/ref.tex
400 tut: html/tut/tut.html html/tut/tut.css
401 html/tut/tut.html: $(TUTFILES)
402 $(MKHTML) --dir html/tut --numeric --split 3 tut/tut.tex
404 inst: html/inst/inst.html html/inst/inst.css
405 html/inst/inst.html: $(INSTFILES) perl/distutils.perl
406 $(MKHTML) --dir html/inst --split 4 inst/inst.tex
408 dist: html/dist/dist.html html/dist/dist.css
409 html/dist/dist.html: $(DISTFILES) perl/distutils.perl
410 $(MKHTML) --dir html/dist --split 4 dist/dist.tex
412 whatsnew: html/whatsnew/$(WHATSNEW).html
413 html/whatsnew/$(WHATSNEW).html: whatsnew/$(WHATSNEW).tex
414 $(MKHTML) --dir html/whatsnew --split 4 whatsnew/$(WHATSNEW).tex
417 # The iSilo format is used by the iSilo document reader for PalmOS devices.
419 ISILOINDEXFILES=isilo/api/api.html \
420 isilo/doc/doc.html \
421 isilo/ext/ext.html \
422 isilo/lib/lib.html \
423 isilo/mac/mac.html \
424 isilo/ref/ref.html \
425 isilo/tut/tut.html \
426 isilo/inst/inst.html \
427 isilo/dist/dist.html \
428 isilo/whatsnew/$(WHATSNEW).html
430 $(ISILOINDEXFILES): $(COMMONPERL) html/stdabout.dat perl/isilo.perl
432 isilo: isilo/python-api.pdb \
433 isilo/python-doc.pdb \
434 isilo/python-ext.pdb \
435 isilo/python-lib.pdb \
436 isilo/python-mac.pdb \
437 isilo/python-ref.pdb \
438 isilo/python-tut.pdb \
439 isilo/python-dist.pdb \
440 isilo/python-inst.pdb \
441 isilo/python-whatsnew.pdb
443 isilo/python-api.pdb: isilo/api/api.html isilo/api/api.css
444 $(MKISILO) "-iPython/C API Reference Manual" \
445 isilo/api/api.html $@
447 isilo/python-doc.pdb: isilo/doc/doc.html isilo/doc/doc.css
448 $(MKISILO) "-iDocumenting Python" \
449 isilo/doc/doc.html $@
451 isilo/python-ext.pdb: isilo/ext/ext.html isilo/ext/ext.css
452 $(MKISILO) "-iExtending & Embedding Python" \
453 isilo/ext/ext.html $@
455 isilo/python-lib.pdb: isilo/lib/lib.html isilo/lib/lib.css
456 $(MKISILO) "-iPython Library Reference" \
457 isilo/lib/lib.html $@
459 isilo/python-mac.pdb: isilo/mac/mac.html isilo/mac/mac.css
460 $(MKISILO) "-iPython/C API Reference Manual" \
461 isilo/mac/mac.html $@
463 isilo/python-ref.pdb: isilo/ref/ref.html isilo/ref/ref.css
464 $(MKISILO) "-iPython Reference Manual" \
465 isilo/ref/ref.html $@
467 isilo/python-tut.pdb: isilo/tut/tut.html isilo/tut/tut.css
468 $(MKISILO) "-iPython Tutorial" \
469 isilo/tut/tut.html $@
471 isilo/python-dist.pdb: isilo/dist/dist.html isilo/dist/dist.css
472 $(MKISILO) "-iDistributing Python Modules" \
473 isilo/dist/dist.html $@
475 isilo/python-inst.pdb: isilo/inst/inst.html isilo/inst/inst.css
476 $(MKISILO) "-iInstalling Python Modules" \
477 isilo/inst/inst.html $@
479 isilo/python-whatsnew.pdb: isilo/whatsnew/$(WHATSNEW).html isilo/whatsnew/$(WHATSNEW).css
480 $(MKISILO) "-iWhat's New in Python X.Y" \
481 isilo/whatsnew/$(WHATSNEW).html $@
483 isilo/api/api.html: $(APIFILES) api/refcounts.dat
484 $(MKISILOHTML) --dir isilo/api api/api.tex
486 isilo/doc/doc.html: $(DOCFILES)
487 $(MKISILOHTML) --dir isilo/doc doc/doc.tex
489 isilo/ext/ext.html: $(EXTFILES)
490 $(MKISILOHTML) --dir isilo/ext ext/ext.tex
492 isilo/lib/lib.html: $(LIBFILES)
493 $(MKISILOHTML) --dir isilo/lib lib/lib.tex
495 isilo/mac/mac.html: $(MACFILES)
496 $(MKISILOHTML) --dir isilo/mac mac/mac.tex
498 isilo/ref/ref.html: $(REFFILES)
499 $(MKISILOHTML) --dir isilo/ref ref/ref.tex
501 isilo/tut/tut.html: $(TUTFILES)
502 $(MKISILOHTML) --dir isilo/tut tut/tut.tex
504 isilo/inst/inst.html: $(INSTFILES) perl/distutils.perl
505 $(MKISILOHTML) --dir isilo/inst inst/inst.tex
507 isilo/dist/dist.html: $(DISTFILES) perl/distutils.perl
508 $(MKISILOHTML) --dir isilo/dist dist/dist.tex
510 isilo/whatsnew/$(WHATSNEW).html: whatsnew/$(WHATSNEW).tex
511 $(MKISILOHTML) --dir isilo/whatsnew whatsnew/$(WHATSNEW).tex
513 # These are useful if you need to transport the iSilo-ready HTML to
514 # another machine to perform the conversion:
516 isilozip: isilo-html-$(RELEASE).zip
518 isilo-html-$(RELEASE).zip: $(ISILOINDEXFILES)
519 rm -f $@
520 cd isilo && \
521 zip -q -9 ../$@ */*.css */*.html */*.txt
524 # webchecker needs an extra flag to process the huge index from the libref
525 WEBCHECKER=$(PYTHON) ../Tools/webchecker/webchecker.py
526 HTMLBASE= file:`pwd`/html
528 webcheck: $(ALLHTMLFILES)
529 $(WEBCHECKER) $(HTMLBASE)/api/
530 $(WEBCHECKER) $(HTMLBASE)/doc/
531 $(WEBCHECKER) $(HTMLBASE)/ext/
532 $(WEBCHECKER) -m290000 $(HTMLBASE)/lib/
533 $(WEBCHECKER) $(HTMLBASE)/mac/
534 $(WEBCHECKER) $(HTMLBASE)/ref/
535 $(WEBCHECKER) $(HTMLBASE)/tut/
536 $(WEBCHECKER) $(HTMLBASE)/dist/
537 $(WEBCHECKER) $(HTMLBASE)/inst/
538 $(WEBCHECKER) $(HTMLBASE)/whatsnew/
540 fastwebcheck: $(ALLHTMLFILES)
541 $(WEBCHECKER) -x $(HTMLBASE)/api/
542 $(WEBCHECKER) -x $(HTMLBASE)/doc/
543 $(WEBCHECKER) -x $(HTMLBASE)/ext/
544 $(WEBCHECKER) -x -m290000 $(HTMLBASE)/lib/
545 $(WEBCHECKER) -x $(HTMLBASE)/mac/
546 $(WEBCHECKER) -x $(HTMLBASE)/ref/
547 $(WEBCHECKER) -x $(HTMLBASE)/tut/
548 $(WEBCHECKER) -x $(HTMLBASE)/dist/
549 $(WEBCHECKER) -x $(HTMLBASE)/inst/
550 $(WEBCHECKER) -x $(HTMLBASE)/whatsnew/
553 # Release packaging targets:
555 paper-$(PAPER)/README: $(PSFILES) $(TOOLSDIR)/getpagecounts
556 cd paper-$(PAPER) && ../$(TOOLSDIR)/getpagecounts -r $(RELEASE) >../$@
558 info-$(RELEASE).tgz: info
559 cd $(INFODIR) && tar cf - README python.dir python-*.info* \
560 | gzip -9 >../$@
562 info-$(RELEASE).tar.bz2: info
563 cd $(INFODIR) && tar cf - README python.dir python-*.info* \
564 | bzip2 -9 >../$@
566 latex-$(RELEASE).tgz:
567 $(PYTHON) $(TOOLSDIR)/mksourcepkg --gzip $(RELEASE)
569 latex-$(RELEASE).tar.bz2:
570 $(PYTHON) $(TOOLSDIR)/mksourcepkg --bzip2 $(RELEASE)
572 latex-$(RELEASE).zip:
573 rm -f $@
574 $(PYTHON) $(TOOLSDIR)/mksourcepkg --zip $(RELEASE)
576 pdf-$(PAPER)-$(RELEASE).tar: $(PDFFILES)
577 rm -f $@
578 mkdir Python-Docs-$(RELEASE)
579 cp paper-$(PAPER)/*.pdf Python-Docs-$(RELEASE)
580 tar cf $@ Python-Docs-$(RELEASE)
581 rm -r Python-Docs-$(RELEASE)
583 pdf-$(PAPER)-$(RELEASE).tgz: pdf-$(PAPER)-$(RELEASE).tar
584 gzip -9 <$? >$@
586 pdf-$(PAPER)-$(RELEASE).tar.bz2: pdf-$(PAPER)-$(RELEASE).tar
587 bzip2 -9 <$? >$@
589 pdf-$(PAPER)-$(RELEASE).zip: pdf
590 rm -f $@
591 mkdir Python-Docs-$(RELEASE)
592 cp paper-$(PAPER)/*.pdf Python-Docs-$(RELEASE)
593 zip -q -r -9 $@ Python-Docs-$(RELEASE)
594 rm -r Python-Docs-$(RELEASE)
596 postscript-$(PAPER)-$(RELEASE).tar: $(PSFILES) paper-$(PAPER)/README
597 rm -f $@
598 mkdir Python-Docs-$(RELEASE)
599 cp paper-$(PAPER)/*.ps Python-Docs-$(RELEASE)
600 cp paper-$(PAPER)/README Python-Docs-$(RELEASE)
601 tar cf $@ Python-Docs-$(RELEASE)
602 rm -r Python-Docs-$(RELEASE)
604 postscript-$(PAPER)-$(RELEASE).tar.bz2: postscript-$(PAPER)-$(RELEASE).tar
605 bzip2 -9 <$< >$@
607 postscript-$(PAPER)-$(RELEASE).tgz: postscript-$(PAPER)-$(RELEASE).tar
608 gzip -9 <$< >$@
610 postscript-$(PAPER)-$(RELEASE).zip: $(PSFILES) paper-$(PAPER)/README
611 rm -f $@
612 mkdir Python-Docs-$(RELEASE)
613 cp paper-$(PAPER)/*.ps Python-Docs-$(RELEASE)
614 cp paper-$(PAPER)/README Python-Docs-$(RELEASE)
615 zip -q -r -9 $@ Python-Docs-$(RELEASE)
616 rm -r Python-Docs-$(RELEASE)
618 HTMLPKGFILES=*.html */*.css */*.html */*.gif */*.png */*.txt
620 html-$(RELEASE).tar: $(ALLHTMLFILES) $(HTMLCSSFILES)
621 mkdir Python-Docs-$(RELEASE)
622 -find html -name '*.gif' -size 0 | xargs rm -f
623 cd html && tar cf ../temp.tar $(HTMLPKGFILES)
624 cd Python-Docs-$(RELEASE) && tar xf ../temp.tar
625 rm temp.tar
626 tar cf html-$(RELEASE).tar Python-Docs-$(RELEASE)
627 rm -r Python-Docs-$(RELEASE)
629 html-$(RELEASE).tgz: html-$(RELEASE).tar
630 gzip -9 <$? >$@
632 html-$(RELEASE).tar.bz2: html-$(RELEASE).tar
633 bzip2 -9 <$? >$@
635 html-$(RELEASE).zip: $(ALLHTMLFILES) $(HTMLCSSFILES)
636 rm -f $@
637 mkdir Python-Docs-$(RELEASE)
638 cd html && tar cf ../temp.tar $(HTMLPKGFILES)
639 cd Python-Docs-$(RELEASE) && tar xf ../temp.tar
640 rm temp.tar
641 zip -q -r -9 $@ Python-Docs-$(RELEASE)
642 rm -r Python-Docs-$(RELEASE)
644 isilo-$(RELEASE).zip: isilo
645 rm -f $@
646 mkdir Python-Docs-$(RELEASE)
647 cp isilo/python-*.pdb Python-Docs-$(RELEASE)
648 zip -q -r -9 $@ Python-Docs-$(RELEASE)
649 rm -r Python-Docs-$(RELEASE)
652 # convenience targets:
654 tarhtml: html-$(RELEASE).tgz
655 tarinfo: info-$(RELEASE).tgz
656 tarps: postscript-$(PAPER)-$(RELEASE).tgz
657 tarpdf: pdf-$(PAPER)-$(RELEASE).tgz
658 tarlatex: latex-$(RELEASE).tgz
660 tarballs: tarpdf tarps tarhtml
662 ziphtml: html-$(RELEASE).zip
663 zipps: postscript-$(PAPER)-$(RELEASE).zip
664 zippdf: pdf-$(PAPER)-$(RELEASE).zip
665 ziplatex: latex-$(RELEASE).zip
666 zipisilo: isilo-$(RELEASE).zip
668 zips: zippdf zipps ziphtml
670 bziphtml: html-$(RELEASE).tar.bz2
671 bzipinfo: info-$(RELEASE).tar.bz2
672 bzipps: postscript-$(PAPER)-$(RELEASE).tar.bz2
673 bzippdf: pdf-$(PAPER)-$(RELEASE).tar.bz2
674 bziplatex: latex-$(RELEASE).tar.bz2
676 bzips: bzippdf bzipps bziphtml
678 disthtml: bziphtml ziphtml
679 distinfo: bzipinfo
680 distps: bzipps zipps
681 distpdf: bzippdf zippdf
682 distlatex: bziplatex ziplatex
684 # We use the "pkglist" target at the end of these to ensure the
685 # package list is updated after building either of these; this seems a
686 # reasonable compromise between only building it for distfiles or
687 # having to build it manually. Doing it here allows the packages for
688 # distribution to be built using either of
689 # make distfiles && make PAPER=a4 paperdist
690 # make paperdist && make PAPER=a4 distfiles
691 # The small amount of additional work is a small price to pay for not
692 # having to remember which order to do it in. ;)
693 paperdist: distpdf distps pkglist
694 edist: disthtml pkglist
696 # The pkglist.html file is used as part of the download.html page on
697 # python.org; it is not used as intermediate input here or as part of
698 # the packages created.
699 pkglist:
700 $(TOOLSDIR)/mkpkglist >pkglist.html
702 distfiles: paperdist edist
703 $(TOOLSDIR)/mksourcepkg --bzip2 --zip $(RELEASE)
704 $(TOOLSDIR)/mkpkglist >pkglist.html
707 # Housekeeping targets
709 # Remove temporary files; all except the following:
710 # - sources: .tex, .bib, .sty, *.cls
711 # - useful results: .dvi, .pdf, .ps, .texi, .info
712 clean:
713 rm -f html-$(RELEASE).tar
714 cd $(INFODIR) && $(MAKE) clean
716 # Remove temporaries as well as final products
717 clobber:
718 rm -f html-$(RELEASE).tar
719 rm -f html-$(RELEASE).tgz info-$(RELEASE).tgz
720 rm -f pdf-$(RELEASE).tgz postscript-$(RELEASE).tgz
721 rm -f latex-$(RELEASE).tgz html-$(RELEASE).zip
722 rm -f pdf-$(RELEASE).zip postscript-$(RELEASE).zip
723 rm -f $(DVIFILES) $(PSFILES) $(PDFFILES)
724 cd $(INFODIR) && $(MAKE) clobber
725 rm -f paper-$(PAPER)/*.tex paper-$(PAPER)/*.ind paper-$(PAPER)/*.idx
726 rm -f paper-$(PAPER)/*.l2h paper-$(PAPER)/*.how paper-$(PAPER)/README
727 rm -rf html/index.html html/modindex.html html/acks.html
728 rm -rf html/api/ html/doc/ html/ext/ html/lib/ html/mac/
729 rm -rf html/ref/ html/tut/ html/inst/ html/dist/
730 rm -rf html/whatsnew/
731 rm -rf isilo/api/ isilo/doc/ isilo/ext/ isilo/lib/ isilo/mac/
732 rm -rf isilo/ref/ isilo/tut/ isilo/inst/ isilo/dist/
733 rm -rf isilo/whatsnew/
734 rm -f isilo/python-*.pdb isilo-$(RELEASE).zip
736 realclean distclean: clobber