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
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:
62 # Ideally, you shouldn't need to edit beyond this point
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
)
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)
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 \
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."
120 # The emacs binary used to build the info docs. GNU Emacs 21 is required.
123 # The end of this should reflect the major/minor version numbers of
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 \
160 ISILOCSSFILES
=isilo
/api
/api.css \
167 isilo
/inst
/inst.css \
170 ALLCSSFILES
=$(HTMLCSSFILES
) $(ISILOCSSFILES
)
172 INDEXFILES
=html
/api
/api.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
199 all: html
dvi ps pdf isilo
205 world
: ps pdf html distfiles
208 # Rules to build PostScript and PDF formats
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
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
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
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
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.
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
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
) \
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
368 $(PYTHON
) ..
/$(TOOLSDIR
)/mkmodindex
--columns
3 \
369 --output modindex.html
--address
$(PYTHONDOCS
) \
370 --favicon icons
/pyfav.png \
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 \
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
)
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* \
562 info-
$(RELEASE
).
tar.bz2
: info
563 cd
$(INFODIR
) && tar cf
- README python.
dir python-
*.
info* \
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
:
574 $(PYTHON
) $(TOOLSDIR
)/mksourcepkg
--zip
$(RELEASE
)
576 pdf-
$(PAPER
)-$(RELEASE
).
tar: $(PDFFILES
)
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
586 pdf-
$(PAPER
)-$(RELEASE
).
tar.bz2
: pdf-
$(PAPER
)-$(RELEASE
).
tar
589 pdf-
$(PAPER
)-$(RELEASE
).zip
: pdf
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
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
607 postscript-
$(PAPER
)-$(RELEASE
).tgz
: postscript-
$(PAPER
)-$(RELEASE
).
tar
610 postscript-
$(PAPER
)-$(RELEASE
).zip
: $(PSFILES
) paper-
$(PAPER
)/README
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
626 tar cf html-
$(RELEASE
).
tar Python-Docs-
$(RELEASE
)
627 rm -r Python-Docs-
$(RELEASE
)
629 html-
$(RELEASE
).tgz
: html-
$(RELEASE
).
tar
632 html-
$(RELEASE
).
tar.bz2
: html-
$(RELEASE
).
tar
635 html-
$(RELEASE
).zip
: $(ALLHTMLFILES
) $(HTMLCSSFILES
)
637 mkdir Python-Docs-
$(RELEASE
)
638 cd html
&& tar cf ..
/temp.
tar $(HTMLPKGFILES
)
639 cd Python-Docs-
$(RELEASE
) && tar xf ..
/temp.
tar
641 zip
-q
-r
-9 $@ Python-Docs-
$(RELEASE
)
642 rm -r Python-Docs-
$(RELEASE
)
644 isilo-
$(RELEASE
).zip
: isilo
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
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.
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
713 rm -f html-
$(RELEASE
).
tar
714 cd
$(INFODIR
) && $(MAKE
) clean
716 # Remove temporaries as well as final products
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