blob: d849189f32589692c8e38d7210c5d65708750ae9 [file] [log] [blame]
Guido van Rossume83e3801995-03-17 16:01:35 +00001# Makefile for Python documentation
2# ---------------------------------
3#
Guido van Rossum73827c61995-03-20 13:00:32 +00004# See also the README file.
5#
Fred Drake6532b9b1999-04-22 14:16:14 +00006# This is a bit of a mess. The documents are identified by short names:
Fred Draked69e2c41998-05-11 18:25:46 +00007# api -- Python/C API Reference Manual
Fred Drake6532b9b1999-04-22 14:16:14 +00008# doc -- Documenting Python
Fred Draked69e2c41998-05-11 18:25:46 +00009# ext -- Extending and Embedding the Python Interpreter
10# lib -- Library Reference Manual
Fred Drake34116ba1998-07-24 15:42:12 +000011# mac -- Macintosh Library Modules
Fred Drakef2951131998-05-07 19:30:16 +000012# ref -- Python Reference Manual
Fred Draked69e2c41998-05-11 18:25:46 +000013# tut -- Python Tutorial
Guido van Rossume83e3801995-03-17 16:01:35 +000014#
Fred Drakef2951131998-05-07 19:30:16 +000015# The latex sources for each of these documents are in subdirectories
16# with the three-letter designations above as the directory names.
Guido van Rossum1f175431996-10-22 20:00:02 +000017#
Fred Draked69e2c41998-05-11 18:25:46 +000018# The main target creates DVI and PostScript for the main each of the
Fred Drakeefc17bd1998-07-28 21:05:16 +000019# documents. You can also do "make lib" (etc.) to create the DVI and
20# PostScript versions of individual documents.
Guido van Rossume83e3801995-03-17 16:01:35 +000021#
Fred Drakef2951131998-05-07 19:30:16 +000022# The document classes and styles are in the texinputs/ directory.
23# These define a number of macros that are similar in name and intent
24# as macros in Texinfo (e.g. \code{...} and \emph{...}), as well as a
Fred Drakeefc17bd1998-07-28 21:05:16 +000025# number of environments for formatting function and data definitions.
Guido van Rossume83e3801995-03-17 16:01:35 +000026#
Fred Draked69e2c41998-05-11 18:25:46 +000027# Everything is processed by LaTeX. See the file `README' for more
28# information on the tools needed for processing.
Guido van Rossume83e3801995-03-17 16:01:35 +000029#
30# There's a problem with generating the index which has been solved by
31# a sed command applied to the index file. The shell script fix_hack
32# does this (the Makefile takes care of calling it).
33#
Guido van Rossume83e3801995-03-17 16:01:35 +000034# Additional targets attempt to convert selected LaTeX sources to
35# various other formats. These are generally site specific because
36# the tools used are all but universal. These targets are:
Fred Drake34116ba1998-07-24 15:42:12 +000037#
38# html -- convert all documents from LaTeX to HTML
Fred Drakeefc17bd1998-07-28 21:05:16 +000039# pdf -- convert all documents from LaTeX to the
40# Portable Document Format
Fred Drake34116ba1998-07-24 15:42:12 +000041#
Fred Drakeefc17bd1998-07-28 21:05:16 +000042# See the README file for more information on these targets.
Fred Draked69e2c41998-05-11 18:25:46 +000043#
44# The formatted output is located in subdirectories. For PDF and
45# PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in
Fred Drake34116ba1998-07-24 15:42:12 +000046# the html/ directory. If you want to fix the GNU info process, look
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000047# in the info/ directory; please send patches to python-docs@python.org.
Guido van Rossume83e3801995-03-17 16:01:35 +000048
Guido van Rossum73827c61995-03-20 13:00:32 +000049# Customizations -- you *may* have to edit these
Guido van Rossume83e3801995-03-17 16:01:35 +000050
Fred Drakef2951131998-05-07 19:30:16 +000051# you could set this to a4
52PAPER=letter
53
Guido van Rossum73827c61995-03-20 13:00:32 +000054# Ideally, you shouldn't need to edit beyond this point
Guido van Rossum5b343731992-07-07 09:06:34 +000055
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000056HTMLDIR= html
57INFODIR= info
58TOOLSDIR= tools
59
Fred Drake860e2561999-07-12 16:52:50 +000060# This is the *documentation* release, and is used to construct the file
61# names of the downloadable tarballs.
Fred Drakee72d48d1999-07-06 14:30:04 +000062RELEASE=1.5.2p1
Fred Drake860e2561999-07-12 16:52:50 +000063
Fred Drake33d05b91998-01-13 16:33:09 +000064
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000065# These must be declared phony since there
66# are directories with matching names:
Fred Drake90fc0a71999-03-17 16:06:51 +000067.PHONY: api doc ext lib mac ref tut
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000068.PHONY: html info
Fred Drake3f8a59f1998-07-24 13:58:27 +000069
Fred Drakebbe33c51998-05-07 01:39:06 +000070
Guido van Rossume83e3801995-03-17 16:01:35 +000071# Main target
Fred Drake34116ba1998-07-24 15:42:12 +000072all: ps
Guido van Rossumeb8d5031996-08-09 21:46:05 +000073
Fred Drake34116ba1998-07-24 15:42:12 +000074dvi:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000075 (cd paper-$(PAPER); $(MAKE) dvi)
Fred Drakee4837a11998-03-06 21:29:34 +000076
Fred Drake34116ba1998-07-24 15:42:12 +000077pdf:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000078 (cd paper-$(PAPER); $(MAKE) pdf)
Guido van Rossum20aca5a1991-01-25 13:29:04 +000079
Fred Drake34116ba1998-07-24 15:42:12 +000080ps:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000081 (cd paper-$(PAPER); $(MAKE) ps)
Fred Drakef2951131998-05-07 19:30:16 +000082
Fred Drake34116ba1998-07-24 15:42:12 +000083world: ps pdf html tarballs
Fred Draked69e2c41998-05-11 18:25:46 +000084
85
86# Targets for each document:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000087api api.ps:
88 (cd paper-$(PAPER); $(MAKE) api.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000089
Fred Drake15087431999-03-16 16:11:27 +000090doc doc.ps:
91 (cd paper-$(PAPER); $(MAKE) doc.ps)
92
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000093ext ext.ps:
94 (cd paper-$(PAPER); $(MAKE) ext.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000095
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000096lib lib.ps:
97 (cd paper-$(PAPER); $(MAKE) lib.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000098
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000099mac mac.ps:
100 (cd paper-$(PAPER); $(MAKE) mac.ps)
Fred Draked69e2c41998-05-11 18:25:46 +0000101
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000102ref ref.ps:
103 (cd paper-$(PAPER); $(MAKE) ref.ps)
Fred Drake3f8a59f1998-07-24 13:58:27 +0000104
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000105tut tut.ps:
106 (cd paper-$(PAPER); $(MAKE) tut.ps)
Fred Draked69e2c41998-05-11 18:25:46 +0000107
108
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000109api.dvi:
110 (cd paper-$(PAPER); $(MAKE) api.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000111
Fred Drake15087431999-03-16 16:11:27 +0000112doc.dvi:
113 (cd paper-$(PAPER); $(MAKE) doc.dvi)
114
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000115ext.dvi:
116 (cd paper-$(PAPER); $(MAKE) ext.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000117
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000118lib.dvi:
119 (cd paper-$(PAPER); $(MAKE) lib.dvi)
120
121mac.dvi:
122 (cd paper-$(PAPER); $(MAKE) mac.dvi)
123
124ref.dvi:
125 (cd paper-$(PAPER); $(MAKE) ref.dvi)
126
127tut.dvi:
128 (cd paper-$(PAPER); $(MAKE) tut.dvi)
Fred Drakeddae4141998-02-17 15:45:25 +0000129
Fred Drakedd946761998-02-18 16:02:14 +0000130
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000131api.pdf:
132 (cd paper-$(PAPER); $(MAKE) api.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000133
Fred Drake15087431999-03-16 16:11:27 +0000134doc.pdf:
135 (cd paper-$(PAPER); $(MAKE) doc.pdf)
136
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000137ext.pdf:
138 (cd paper-$(PAPER); $(MAKE) ext.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000139
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000140lib.pdf:
141 (cd paper-$(PAPER); $(MAKE) lib.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000142
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000143mac.pdf:
144 (cd paper-$(PAPER); $(MAKE) mac.pdf)
Fred Drake3b26eed1998-02-16 17:06:10 +0000145
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000146ref.pdf:
147 (cd paper-$(PAPER); $(MAKE) ref.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000148
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000149tut.pdf:
150 (cd paper-$(PAPER); $(MAKE) tut.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000151
Guido van Rossume83e3801995-03-17 16:01:35 +0000152
153# The remaining part of the Makefile is concerned with various
Guido van Rossum73827c61995-03-20 13:00:32 +0000154# conversions, as described above. See also the README file.
Guido van Rossume83e3801995-03-17 16:01:35 +0000155
Fred Drakeb9838d91998-05-08 15:43:08 +0000156info:
157 (cd $(INFODIR); $(MAKE))
Fred Drake5ad78f31998-02-22 19:47:13 +0000158
Guido van Rossum73827c61995-03-20 13:00:32 +0000159# Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to
160# HTML converter. For more info on this program, see
Guido van Rossume83e3801995-03-17 16:01:35 +0000161# <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
Guido van Rossume83e3801995-03-17 16:01:35 +0000162
Guido van Rossum9cb64801997-12-29 20:01:55 +0000163# Note that LaTeX2HTML inserts references to an icons directory in
164# each page that it generates. I have placed a copy of this directory
165# in the distribution to simplify the process of creating a
166# self-contained HTML distribution; for this purpose I have also added
167# a (trivial) index.html. Change the definition of $ICONSERVER in
Fred Drake9fab3aa1998-04-28 19:20:43 +0000168# perl/l2hinit.perl to use a different location for the icons directory.
Guido van Rossume83e3801995-03-17 16:01:35 +0000169
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000170# If you have the standard LaTeX2HTML icons installed, the versions shipped
171# with this documentation should be stored in a separate directory and used
172# instead. The standard set does *not* include all the icons used in the
173# Python documentation.
Fred Drakebbe33c51998-05-07 01:39:06 +0000174
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000175html:
176 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile)
Guido van Rossum6938f061994-08-01 12:22:53 +0000177
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000178htmlapi:
179 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile api)
Guido van Rossum6938f061994-08-01 12:22:53 +0000180
Fred Drake7d5f5dd1999-03-18 19:08:47 +0000181htmldoc:
182 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile doc)
183
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000184htmlext:
185 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ext)
Guido van Rossum970871f1993-02-21 20:10:26 +0000186
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000187htmllib:
188 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile lib)
Fred Drakea6bb3961998-05-06 19:51:39 +0000189
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000190htmlmac:
191 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile mac)
Fred Drakecdbd3911998-05-15 17:02:10 +0000192
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000193htmlref:
194 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ref)
Guido van Rossume83e3801995-03-17 16:01:35 +0000195
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000196htmltut:
197 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile tut)
198
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000199
Fred Drakee4837a11998-03-06 21:29:34 +0000200# webchecker needs an extra flag to process the huge index from the libref
201webcheck:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000202 (cd $(HTMLDIR); $(MAKE) -f ../html/Makefile webcheck)
203
204
205# Release packaging targets:
Fred Drakee4837a11998-03-06 21:29:34 +0000206
Fred Drakeb6584ca1999-01-08 15:49:45 +0000207info-$(RELEASE).tgz: info
Fred Drake28e66d11999-01-29 22:23:25 +0000208 (cd $(INFODIR); tar cf - README python.dir python-???.info*) \
209 | gzip -9 >$@
Fred Drakea7998351998-02-19 16:01:04 +0000210
Fred Drake4ef3ea01999-07-27 16:30:59 +0000211info-$(RELEASE).tar.bz2: info
212 (cd $(INFODIR); tar cf - README python.dir python-???.info*) \
213 | bzip2 -9 >$@
214
Fred Drakee34ab301998-05-11 21:10:15 +0000215latex-$(RELEASE).tgz:
Fred Drake83c09831999-08-02 20:20:14 +0000216 $(TOOLSDIR)/mksourcepkg --gzip $(RELEASE)
Fred Drakee61d7af1998-03-05 16:37:34 +0000217
Fred Drake4ef3ea01999-07-27 16:30:59 +0000218latex-$(RELEASE).tar.bz2:
Fred Drake83c09831999-08-02 20:20:14 +0000219 $(TOOLSDIR)/mksourcepkg --bzip2 $(RELEASE)
Fred Drake4ef3ea01999-07-27 16:30:59 +0000220
Fred Drake7dcc69a1999-07-23 16:11:36 +0000221latex-$(RELEASE).zip:
Fred Drake83c09831999-08-02 20:20:14 +0000222 $(TOOLSDIR)/mksourcepkg --zip $(RELEASE)
Fred Drake7dcc69a1999-07-23 16:11:36 +0000223
Fred Draked19b9d61998-07-29 03:49:44 +0000224pdf-$(PAPER)-$(RELEASE).tgz: pdf
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000225 (cd paper-$(PAPER); tar cf - *.pdf) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000226
Fred Drake4ef3ea01999-07-27 16:30:59 +0000227pdf-$(PAPER)-$(RELEASE).tar.bz2: pdf
228 (cd paper-$(PAPER); tar cf - *.pdf) | bzip2 -9 >$@
229
Fred Drake7dcc69a1999-07-23 16:11:36 +0000230pdf-$(PAPER)-$(RELEASE).zip: pdf
231 (cd paper-$(PAPER); zip -9 ../$@ *.pdf)
232
Fred Drake4ef3ea01999-07-27 16:30:59 +0000233postscript-$(PAPER)-$(RELEASE).tar.bz2: ps
Fred Drake2335a301998-08-28 21:17:58 +0000234 (cd paper-$(PAPER); $(MAKE) README)
235 (cd paper-$(PAPER); tar cf - *.ps README) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000236
Fred Drake4ef3ea01999-07-27 16:30:59 +0000237postscript-$(PAPER)-$(RELEASE).tgz: ps
238 (cd paper-$(PAPER); $(MAKE) README)
239 (cd paper-$(PAPER); tar cf - *.ps README) | bzip2 -9 >$@
240
Fred Drake7dcc69a1999-07-23 16:11:36 +0000241postscript-$(PAPER)-$(RELEASE).zip: ps
242 (cd paper-$(PAPER); $(MAKE) README)
243 (cd paper-$(PAPER); zip -9 ../$@ *.ps README)
244
Fred Drakefcb7adb1999-01-12 20:32:39 +0000245html-$(RELEASE).tgz: html
Fred Drakeab005d51999-04-30 15:58:45 +0000246 (cd $(HTMLDIR); tar cf - *index.html ???/*.css ???/*.html */*.gif) \
Fred Drake29cabd41998-05-11 18:53:07 +0000247 | gzip -9 >$@
Fred Drake33d05b91998-01-13 16:33:09 +0000248
Fred Drake4ef3ea01999-07-27 16:30:59 +0000249html-$(RELEASE).tar.bz2: html
250 (cd $(HTMLDIR); tar cf - *index.html ???/*.css ???/*.html */*.gif) \
251 | bzip2 -9 >$@
252
Fred Drake7dcc69a1999-07-23 16:11:36 +0000253html-$(RELEASE).zip: html
254 (cd $(HTMLDIR); zip -9 ../$@ *index.html ???/*.css ???/*.html */*.gif)
255
Fred Drakea7998351998-02-19 16:01:04 +0000256# convenience targets:
257
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000258tarhtml: html-$(RELEASE).tgz
Fred Drakeb6584ca1999-01-08 15:49:45 +0000259tarinfo: info-$(RELEASE).tgz
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000260tarps: postscript-$(PAPER)-$(RELEASE).tgz
261tarpdf: pdf-$(PAPER)-$(RELEASE).tgz
262tarlatex: latex-$(RELEASE).tgz
Fred Drakebbe33c51998-05-07 01:39:06 +0000263
Fred Drake83c09831999-08-02 20:20:14 +0000264tarballs: tarpdf tarps tarhtml
Guido van Rossum84cca441997-11-25 20:49:09 +0000265
Fred Drake7dcc69a1999-07-23 16:11:36 +0000266ziphtml: html-$(RELEASE).zip
267zipps: postscript-$(PAPER)-$(RELEASE).zip
268zippdf: pdf-$(PAPER)-$(RELEASE).zip
269ziplatex: latex-$(RELEASE).zip
270
Fred Drake83c09831999-08-02 20:20:14 +0000271zips: zippdf zipps ziphtml
Fred Drake7dcc69a1999-07-23 16:11:36 +0000272
Fred Drake4ef3ea01999-07-27 16:30:59 +0000273bziphtml: html-$(RELEASE).tar.bz2
274bzipinfo: info-$(RELEASE).tar.bz2
275bzipps: postscript-$(PAPER)-$(RELEASE).tar.bz2
276bzippdf: pdf-$(PAPER)-$(RELEASE).tar.bz2
277bziplatex: latex-$(RELEASE).tar.bz2
278
Fred Drake83c09831999-08-02 20:20:14 +0000279bzips: bzippdf bzipps bziphtml
Fred Drake4ef3ea01999-07-27 16:30:59 +0000280
281distfiles: tarballs zips bzips
Fred Drake83c09831999-08-02 20:20:14 +0000282 $(TOOLSDIR)/mksourcepkg --all $(RELEASE)
Fred Drake4ef3ea01999-07-27 16:30:59 +0000283
Guido van Rossume83e3801995-03-17 16:01:35 +0000284
285# Housekeeping targets
286
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000287# Remove temporary files; all except the following:
Fred Drake6659c301998-03-03 22:02:19 +0000288# - sources: .tex, .bib, .sty, *.cls
Fred Drake04cf4dc1998-02-12 22:33:50 +0000289# - useful results: .dvi, .pdf, .ps, .texi, .info
Fred Drakee4837a11998-03-06 21:29:34 +0000290clean:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000291 (cd paper-$(PAPER); $(MAKE) clean)
292 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drakee34ab301998-05-11 21:10:15 +0000293 (cd $(INFODIR); $(MAKE) clean)
Guido van Rossum5b343731992-07-07 09:06:34 +0000294
Fred Drake03ff6f71997-08-22 18:18:54 +0000295l2hclean:
Fred Drakeb6584ca1999-01-08 15:49:45 +0000296 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drake03ff6f71997-08-22 18:18:54 +0000297
Guido van Rossume83e3801995-03-17 16:01:35 +0000298# Remove temporaries as well as final products
Fred Drakeb6584ca1999-01-08 15:49:45 +0000299clobber:
300 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000301 rm -f html-$(RELEASE).tgz info-$(RELEASE).tgz
302 rm -f pdf-$(RELEASE).tgz postscript-$(RELEASE).tgz
Fred Drake7dcc69a1999-07-23 16:11:36 +0000303 rm -f latex-$(RELEASE).tgz html-$(RELEASE).zip
304 rm -f pdf-$(RELEASE).zip postscript-$(RELEASE).zip
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000305 (cd paper-$(PAPER); $(MAKE) clobber)
306 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakee34ab301998-05-11 21:10:15 +0000307 (cd $(INFODIR); $(MAKE) clobber)
Fred Drake5ad78f31998-02-22 19:47:13 +0000308
309realclean: clobber
310distclean: clobber