blob: 3a5103ee6bd993575ce76ab9795f2532b09d92c2 [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 Drake6532b9b1999-04-22 14:16:14 +000060RELEASE=1.5.2
Fred Drake33d05b91998-01-13 16:33:09 +000061VERSION=1.5
62
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000063# These must be declared phony since there
64# are directories with matching names:
Fred Drake90fc0a71999-03-17 16:06:51 +000065.PHONY: api doc ext lib mac ref tut
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000066.PHONY: html info
Fred Drake3f8a59f1998-07-24 13:58:27 +000067
Fred Drakebbe33c51998-05-07 01:39:06 +000068
Guido van Rossume83e3801995-03-17 16:01:35 +000069# Main target
Fred Drake34116ba1998-07-24 15:42:12 +000070all: ps
Guido van Rossumeb8d5031996-08-09 21:46:05 +000071
Fred Drake34116ba1998-07-24 15:42:12 +000072dvi:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000073 (cd paper-$(PAPER); $(MAKE) dvi)
Fred Drakee4837a11998-03-06 21:29:34 +000074
Fred Drake34116ba1998-07-24 15:42:12 +000075pdf:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000076 (cd paper-$(PAPER); $(MAKE) pdf)
Guido van Rossum20aca5a1991-01-25 13:29:04 +000077
Fred Drake34116ba1998-07-24 15:42:12 +000078ps:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000079 (cd paper-$(PAPER); $(MAKE) ps)
Fred Drakef2951131998-05-07 19:30:16 +000080
Fred Drake34116ba1998-07-24 15:42:12 +000081world: ps pdf html tarballs
Fred Draked69e2c41998-05-11 18:25:46 +000082
83
84# Targets for each document:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000085api api.ps:
86 (cd paper-$(PAPER); $(MAKE) api.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000087
Fred Drake15087431999-03-16 16:11:27 +000088doc doc.ps:
89 (cd paper-$(PAPER); $(MAKE) doc.ps)
90
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000091ext ext.ps:
92 (cd paper-$(PAPER); $(MAKE) ext.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000093
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000094lib lib.ps:
95 (cd paper-$(PAPER); $(MAKE) lib.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000096
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000097mac mac.ps:
98 (cd paper-$(PAPER); $(MAKE) mac.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000099
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000100ref ref.ps:
101 (cd paper-$(PAPER); $(MAKE) ref.ps)
Fred Drake3f8a59f1998-07-24 13:58:27 +0000102
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000103tut tut.ps:
104 (cd paper-$(PAPER); $(MAKE) tut.ps)
Fred Draked69e2c41998-05-11 18:25:46 +0000105
106
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000107api.dvi:
108 (cd paper-$(PAPER); $(MAKE) api.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000109
Fred Drake15087431999-03-16 16:11:27 +0000110doc.dvi:
111 (cd paper-$(PAPER); $(MAKE) doc.dvi)
112
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000113ext.dvi:
114 (cd paper-$(PAPER); $(MAKE) ext.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000115
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000116lib.dvi:
117 (cd paper-$(PAPER); $(MAKE) lib.dvi)
118
119mac.dvi:
120 (cd paper-$(PAPER); $(MAKE) mac.dvi)
121
122ref.dvi:
123 (cd paper-$(PAPER); $(MAKE) ref.dvi)
124
125tut.dvi:
126 (cd paper-$(PAPER); $(MAKE) tut.dvi)
Fred Drakeddae4141998-02-17 15:45:25 +0000127
Fred Drakedd946761998-02-18 16:02:14 +0000128
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000129api.pdf:
130 (cd paper-$(PAPER); $(MAKE) api.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000131
Fred Drake15087431999-03-16 16:11:27 +0000132doc.pdf:
133 (cd paper-$(PAPER); $(MAKE) doc.pdf)
134
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000135ext.pdf:
136 (cd paper-$(PAPER); $(MAKE) ext.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000137
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000138lib.pdf:
139 (cd paper-$(PAPER); $(MAKE) lib.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000140
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000141mac.pdf:
142 (cd paper-$(PAPER); $(MAKE) mac.pdf)
Fred Drake3b26eed1998-02-16 17:06:10 +0000143
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000144ref.pdf:
145 (cd paper-$(PAPER); $(MAKE) ref.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000146
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000147tut.pdf:
148 (cd paper-$(PAPER); $(MAKE) tut.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000149
Guido van Rossume83e3801995-03-17 16:01:35 +0000150
151# The remaining part of the Makefile is concerned with various
Guido van Rossum73827c61995-03-20 13:00:32 +0000152# conversions, as described above. See also the README file.
Guido van Rossume83e3801995-03-17 16:01:35 +0000153
Fred Drakeb9838d91998-05-08 15:43:08 +0000154info:
155 (cd $(INFODIR); $(MAKE))
Fred Drake5ad78f31998-02-22 19:47:13 +0000156
Guido van Rossum73827c61995-03-20 13:00:32 +0000157# Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to
158# HTML converter. For more info on this program, see
Guido van Rossume83e3801995-03-17 16:01:35 +0000159# <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
Guido van Rossume83e3801995-03-17 16:01:35 +0000160
Guido van Rossum9cb64801997-12-29 20:01:55 +0000161# Note that LaTeX2HTML inserts references to an icons directory in
162# each page that it generates. I have placed a copy of this directory
163# in the distribution to simplify the process of creating a
164# self-contained HTML distribution; for this purpose I have also added
165# a (trivial) index.html. Change the definition of $ICONSERVER in
Fred Drake9fab3aa1998-04-28 19:20:43 +0000166# perl/l2hinit.perl to use a different location for the icons directory.
Guido van Rossume83e3801995-03-17 16:01:35 +0000167
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000168# If you have the standard LaTeX2HTML icons installed, the versions shipped
169# with this documentation should be stored in a separate directory and used
170# instead. The standard set does *not* include all the icons used in the
171# Python documentation.
Fred Drakebbe33c51998-05-07 01:39:06 +0000172
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000173html:
174 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile)
Guido van Rossum6938f061994-08-01 12:22:53 +0000175
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000176htmlapi:
177 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile api)
Guido van Rossum6938f061994-08-01 12:22:53 +0000178
Fred Drake7d5f5dd1999-03-18 19:08:47 +0000179htmldoc:
180 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile doc)
181
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000182htmlext:
183 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ext)
Guido van Rossum970871f1993-02-21 20:10:26 +0000184
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000185htmllib:
186 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile lib)
Fred Drakea6bb3961998-05-06 19:51:39 +0000187
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000188htmlmac:
189 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile mac)
Fred Drakecdbd3911998-05-15 17:02:10 +0000190
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000191htmlref:
192 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ref)
Guido van Rossume83e3801995-03-17 16:01:35 +0000193
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000194htmltut:
195 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile tut)
196
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000197
Fred Drakee4837a11998-03-06 21:29:34 +0000198# webchecker needs an extra flag to process the huge index from the libref
199webcheck:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000200 (cd $(HTMLDIR); $(MAKE) -f ../html/Makefile webcheck)
201
202
203# Release packaging targets:
Fred Drakee4837a11998-03-06 21:29:34 +0000204
Fred Drakeb6584ca1999-01-08 15:49:45 +0000205info-$(RELEASE).tgz: info
Fred Drake28e66d11999-01-29 22:23:25 +0000206 (cd $(INFODIR); tar cf - README python.dir python-???.info*) \
207 | gzip -9 >$@
Fred Drakea7998351998-02-19 16:01:04 +0000208
Fred Drakee34ab301998-05-11 21:10:15 +0000209latex-$(RELEASE).tgz:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000210 $(TOOLSDIR)/mktarball.sh $(RELEASE)
Fred Drakee61d7af1998-03-05 16:37:34 +0000211
Fred Draked19b9d61998-07-29 03:49:44 +0000212pdf-$(PAPER)-$(RELEASE).tgz: pdf
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000213 (cd paper-$(PAPER); tar cf - *.pdf) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000214
Fred Draked19b9d61998-07-29 03:49:44 +0000215postscript-$(PAPER)-$(RELEASE).tgz: ps
Fred Drake2335a301998-08-28 21:17:58 +0000216 (cd paper-$(PAPER); $(MAKE) README)
217 (cd paper-$(PAPER); tar cf - *.ps README) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000218
Fred Drakefcb7adb1999-01-12 20:32:39 +0000219html-$(RELEASE).tgz: html
Fred Drakeab005d51999-04-30 15:58:45 +0000220 (cd $(HTMLDIR); tar cf - *index.html ???/*.css ???/*.html */*.gif) \
Fred Drake29cabd41998-05-11 18:53:07 +0000221 | gzip -9 >$@
Fred Drake33d05b91998-01-13 16:33:09 +0000222
Fred Drakea7998351998-02-19 16:01:04 +0000223# convenience targets:
224
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000225tarhtml: html-$(RELEASE).tgz
Fred Drakeb6584ca1999-01-08 15:49:45 +0000226tarinfo: info-$(RELEASE).tgz
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000227tarps: postscript-$(PAPER)-$(RELEASE).tgz
228tarpdf: pdf-$(PAPER)-$(RELEASE).tgz
229tarlatex: latex-$(RELEASE).tgz
Fred Drakebbe33c51998-05-07 01:39:06 +0000230
Fred Drake28e66d11999-01-29 22:23:25 +0000231tarballs: tarpdf tarps tarhtml tarinfo tarlatex
Guido van Rossum84cca441997-11-25 20:49:09 +0000232
Guido van Rossume83e3801995-03-17 16:01:35 +0000233
234# Housekeeping targets
235
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000236# Remove temporary files; all except the following:
Fred Drake6659c301998-03-03 22:02:19 +0000237# - sources: .tex, .bib, .sty, *.cls
Fred Drake04cf4dc1998-02-12 22:33:50 +0000238# - useful results: .dvi, .pdf, .ps, .texi, .info
Fred Drakee4837a11998-03-06 21:29:34 +0000239clean:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000240 (cd paper-$(PAPER); $(MAKE) clean)
241 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drakee34ab301998-05-11 21:10:15 +0000242 (cd $(INFODIR); $(MAKE) clean)
Guido van Rossum5b343731992-07-07 09:06:34 +0000243
Fred Drake03ff6f71997-08-22 18:18:54 +0000244l2hclean:
Fred Drakeb6584ca1999-01-08 15:49:45 +0000245 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drake03ff6f71997-08-22 18:18:54 +0000246
Guido van Rossume83e3801995-03-17 16:01:35 +0000247# Remove temporaries as well as final products
Fred Drakeb6584ca1999-01-08 15:49:45 +0000248clobber:
249 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000250 rm -f html-$(RELEASE).tgz info-$(RELEASE).tgz
251 rm -f pdf-$(RELEASE).tgz postscript-$(RELEASE).tgz
252 rm -f latex-$(RELEASE).tgz
253 (cd paper-$(PAPER); $(MAKE) clobber)
254 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakee34ab301998-05-11 21:10:15 +0000255 (cd $(INFODIR); $(MAKE) clobber)
Fred Drake5ad78f31998-02-22 19:47:13 +0000256
257realclean: clobber
258distclean: clobber