blob: e48fdb24ee99c0a37d7282e1f60f2fb4cd554db9 [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#
Guido van Rossume83e3801995-03-17 16:01:35 +00006# This is a bit of a mess. The main documents are:
Fred Draked69e2c41998-05-11 18:25:46 +00007# api -- Python/C API Reference Manual
8# ext -- Extending and Embedding the Python Interpreter
9# lib -- Library Reference Manual
Fred Drake34116ba1998-07-24 15:42:12 +000010# mac -- Macintosh Library Modules
Fred Drakef2951131998-05-07 19:30:16 +000011# ref -- Python Reference Manual
Fred Draked69e2c41998-05-11 18:25:46 +000012# tut -- Python Tutorial
Guido van Rossume83e3801995-03-17 16:01:35 +000013#
Fred Drakef2951131998-05-07 19:30:16 +000014# The latex sources for each of these documents are in subdirectories
15# with the three-letter designations above as the directory names.
Guido van Rossum1f175431996-10-22 20:00:02 +000016#
Fred Draked69e2c41998-05-11 18:25:46 +000017# The main target creates DVI and PostScript for the main each of the
Fred Drakeefc17bd1998-07-28 21:05:16 +000018# documents. You can also do "make lib" (etc.) to create the DVI and
19# PostScript versions of individual documents.
Guido van Rossume83e3801995-03-17 16:01:35 +000020#
Fred Drakef2951131998-05-07 19:30:16 +000021# The document classes and styles are in the texinputs/ directory.
22# These define a number of macros that are similar in name and intent
23# as macros in Texinfo (e.g. \code{...} and \emph{...}), as well as a
Fred Drakeefc17bd1998-07-28 21:05:16 +000024# number of environments for formatting function and data definitions.
Guido van Rossume83e3801995-03-17 16:01:35 +000025#
Fred Draked69e2c41998-05-11 18:25:46 +000026# Everything is processed by LaTeX. See the file `README' for more
27# information on the tools needed for processing.
Guido van Rossume83e3801995-03-17 16:01:35 +000028#
29# There's a problem with generating the index which has been solved by
30# a sed command applied to the index file. The shell script fix_hack
31# does this (the Makefile takes care of calling it).
32#
Guido van Rossume83e3801995-03-17 16:01:35 +000033# Additional targets attempt to convert selected LaTeX sources to
34# various other formats. These are generally site specific because
35# the tools used are all but universal. These targets are:
Fred Drake34116ba1998-07-24 15:42:12 +000036#
37# html -- convert all documents from LaTeX to HTML
Fred Drakeefc17bd1998-07-28 21:05:16 +000038# pdf -- convert all documents from LaTeX to the
39# Portable Document Format
Fred Drake34116ba1998-07-24 15:42:12 +000040#
Fred Drakeefc17bd1998-07-28 21:05:16 +000041# See the README file for more information on these targets.
Fred Draked69e2c41998-05-11 18:25:46 +000042#
43# The formatted output is located in subdirectories. For PDF and
44# PostScript, look in the paper-$(PAPER)/ directory. For HTML, look in
Fred Drake34116ba1998-07-24 15:42:12 +000045# the html/ directory. If you want to fix the GNU info process, look
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000046# in the info/ directory; please send patches to python-docs@python.org.
Guido van Rossume83e3801995-03-17 16:01:35 +000047
Guido van Rossum73827c61995-03-20 13:00:32 +000048# Customizations -- you *may* have to edit these
Guido van Rossume83e3801995-03-17 16:01:35 +000049
Fred Drakef2951131998-05-07 19:30:16 +000050# you could set this to a4
51PAPER=letter
52
Guido van Rossum73827c61995-03-20 13:00:32 +000053# Ideally, you shouldn't need to edit beyond this point
Guido van Rossum5b343731992-07-07 09:06:34 +000054
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000055HTMLDIR= html
56INFODIR= info
57TOOLSDIR= tools
58
Fred Drake63f21771999-02-16 20:23:55 +000059RELEASE=1.5.2b2
Fred Drake33d05b91998-01-13 16:33:09 +000060VERSION=1.5
61
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000062# These must be declared phony since there
63# are directories with matching names:
64.PHONY: api ext lib mac ref tut
65.PHONY: html info
Fred Drake3f8a59f1998-07-24 13:58:27 +000066
Fred Drakebbe33c51998-05-07 01:39:06 +000067
Guido van Rossume83e3801995-03-17 16:01:35 +000068# Main target
Fred Drake34116ba1998-07-24 15:42:12 +000069all: ps
Guido van Rossumeb8d5031996-08-09 21:46:05 +000070
Fred Drake34116ba1998-07-24 15:42:12 +000071dvi:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000072 (cd paper-$(PAPER); $(MAKE) dvi)
Fred Drakee4837a11998-03-06 21:29:34 +000073
Fred Drake34116ba1998-07-24 15:42:12 +000074pdf:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000075 (cd paper-$(PAPER); $(MAKE) pdf)
Guido van Rossum20aca5a1991-01-25 13:29:04 +000076
Fred Drake34116ba1998-07-24 15:42:12 +000077ps:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000078 (cd paper-$(PAPER); $(MAKE) ps)
Fred Drakef2951131998-05-07 19:30:16 +000079
Fred Drake34116ba1998-07-24 15:42:12 +000080world: ps pdf html tarballs
Fred Draked69e2c41998-05-11 18:25:46 +000081
82
83# Targets for each document:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000084api api.ps:
85 (cd paper-$(PAPER); $(MAKE) api.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000086
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000087ext ext.ps:
88 (cd paper-$(PAPER); $(MAKE) ext.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000089
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000090lib lib.ps:
91 (cd paper-$(PAPER); $(MAKE) lib.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000092
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000093mac mac.ps:
94 (cd paper-$(PAPER); $(MAKE) mac.ps)
Fred Draked69e2c41998-05-11 18:25:46 +000095
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000096ref ref.ps:
97 (cd paper-$(PAPER); $(MAKE) ref.ps)
Fred Drake3f8a59f1998-07-24 13:58:27 +000098
Fred Drakeeb7fe4f1998-08-12 17:08:37 +000099tut tut.ps:
100 (cd paper-$(PAPER); $(MAKE) tut.ps)
Fred Draked69e2c41998-05-11 18:25:46 +0000101
102
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000103api.dvi:
104 (cd paper-$(PAPER); $(MAKE) api.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000105
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000106ext.dvi:
107 (cd paper-$(PAPER); $(MAKE) ext.dvi)
Fred Drakef2951131998-05-07 19:30:16 +0000108
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000109lib.dvi:
110 (cd paper-$(PAPER); $(MAKE) lib.dvi)
111
112mac.dvi:
113 (cd paper-$(PAPER); $(MAKE) mac.dvi)
114
115ref.dvi:
116 (cd paper-$(PAPER); $(MAKE) ref.dvi)
117
118tut.dvi:
119 (cd paper-$(PAPER); $(MAKE) tut.dvi)
Fred Drakeddae4141998-02-17 15:45:25 +0000120
Fred Drakedd946761998-02-18 16:02:14 +0000121
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000122api.pdf:
123 (cd paper-$(PAPER); $(MAKE) api.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000124
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000125ext.pdf:
126 (cd paper-$(PAPER); $(MAKE) ext.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000127
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000128lib.pdf:
129 (cd paper-$(PAPER); $(MAKE) lib.pdf)
Fred Drake126d8401998-02-04 19:54:40 +0000130
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000131mac.pdf:
132 (cd paper-$(PAPER); $(MAKE) mac.pdf)
Fred Drake3b26eed1998-02-16 17:06:10 +0000133
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000134ref.pdf:
135 (cd paper-$(PAPER); $(MAKE) ref.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000136
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000137tut.pdf:
138 (cd paper-$(PAPER); $(MAKE) tut.pdf)
Fred Drakef2951131998-05-07 19:30:16 +0000139
Guido van Rossume83e3801995-03-17 16:01:35 +0000140
141# The remaining part of the Makefile is concerned with various
Guido van Rossum73827c61995-03-20 13:00:32 +0000142# conversions, as described above. See also the README file.
Guido van Rossume83e3801995-03-17 16:01:35 +0000143
Fred Drakeb9838d91998-05-08 15:43:08 +0000144info:
145 (cd $(INFODIR); $(MAKE))
Fred Drake5ad78f31998-02-22 19:47:13 +0000146
Guido van Rossum73827c61995-03-20 13:00:32 +0000147# Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to
148# HTML converter. For more info on this program, see
Guido van Rossume83e3801995-03-17 16:01:35 +0000149# <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
Guido van Rossume83e3801995-03-17 16:01:35 +0000150
Guido van Rossum9cb64801997-12-29 20:01:55 +0000151# Note that LaTeX2HTML inserts references to an icons directory in
152# each page that it generates. I have placed a copy of this directory
153# in the distribution to simplify the process of creating a
154# self-contained HTML distribution; for this purpose I have also added
155# a (trivial) index.html. Change the definition of $ICONSERVER in
Fred Drake9fab3aa1998-04-28 19:20:43 +0000156# perl/l2hinit.perl to use a different location for the icons directory.
Guido van Rossume83e3801995-03-17 16:01:35 +0000157
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000158# If you have the standard LaTeX2HTML icons installed, the versions shipped
159# with this documentation should be stored in a separate directory and used
160# instead. The standard set does *not* include all the icons used in the
161# Python documentation.
Fred Drakebbe33c51998-05-07 01:39:06 +0000162
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000163html:
164 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile)
Guido van Rossum6938f061994-08-01 12:22:53 +0000165
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000166htmlapi:
167 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile api)
Guido van Rossum6938f061994-08-01 12:22:53 +0000168
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000169htmlext:
170 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ext)
Guido van Rossum970871f1993-02-21 20:10:26 +0000171
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000172htmllib:
173 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile lib)
Fred Drakea6bb3961998-05-06 19:51:39 +0000174
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000175htmlmac:
176 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile mac)
Fred Drakecdbd3911998-05-15 17:02:10 +0000177
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000178htmlref:
179 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile ref)
Guido van Rossume83e3801995-03-17 16:01:35 +0000180
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000181htmltut:
182 (cd $(HTMLDIR); $(MAKE) PAPER=$(PAPER) -f ../html/Makefile tut)
183
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000184
Fred Drakee4837a11998-03-06 21:29:34 +0000185# webchecker needs an extra flag to process the huge index from the libref
186webcheck:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000187 (cd $(HTMLDIR); $(MAKE) -f ../html/Makefile webcheck)
188
189
190# Release packaging targets:
Fred Drakee4837a11998-03-06 21:29:34 +0000191
Fred Drakeb6584ca1999-01-08 15:49:45 +0000192info-$(RELEASE).tgz: info
Fred Drake28e66d11999-01-29 22:23:25 +0000193 (cd $(INFODIR); tar cf - README python.dir python-???.info*) \
194 | gzip -9 >$@
Fred Drakea7998351998-02-19 16:01:04 +0000195
Fred Drakee34ab301998-05-11 21:10:15 +0000196latex-$(RELEASE).tgz:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000197 $(TOOLSDIR)/mktarball.sh $(RELEASE)
Fred Drakee61d7af1998-03-05 16:37:34 +0000198
Fred Draked19b9d61998-07-29 03:49:44 +0000199pdf-$(PAPER)-$(RELEASE).tgz: pdf
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000200 (cd paper-$(PAPER); tar cf - *.pdf) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000201
Fred Draked19b9d61998-07-29 03:49:44 +0000202postscript-$(PAPER)-$(RELEASE).tgz: ps
Fred Drake2335a301998-08-28 21:17:58 +0000203 (cd paper-$(PAPER); $(MAKE) README)
204 (cd paper-$(PAPER); tar cf - *.ps README) | gzip -9 >$@
Fred Drake04cf4dc1998-02-12 22:33:50 +0000205
Fred Drakefcb7adb1999-01-12 20:32:39 +0000206html-$(RELEASE).tgz: html
Fred Drakee34ab301998-05-11 21:10:15 +0000207 (cd $(HTMLDIR); tar cf - index.html ???/???.css ???/*.html */*.gif) \
Fred Drake29cabd41998-05-11 18:53:07 +0000208 | gzip -9 >$@
Fred Drake33d05b91998-01-13 16:33:09 +0000209
Fred Drakea7998351998-02-19 16:01:04 +0000210# convenience targets:
211
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000212tarhtml: html-$(RELEASE).tgz
Fred Drakeb6584ca1999-01-08 15:49:45 +0000213tarinfo: info-$(RELEASE).tgz
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000214tarps: postscript-$(PAPER)-$(RELEASE).tgz
215tarpdf: pdf-$(PAPER)-$(RELEASE).tgz
216tarlatex: latex-$(RELEASE).tgz
Fred Drakebbe33c51998-05-07 01:39:06 +0000217
Fred Drake28e66d11999-01-29 22:23:25 +0000218tarballs: tarpdf tarps tarhtml tarinfo tarlatex
Guido van Rossum84cca441997-11-25 20:49:09 +0000219
Guido van Rossume83e3801995-03-17 16:01:35 +0000220
221# Housekeeping targets
222
Guido van Rossum9231c8f1997-05-15 21:43:21 +0000223# Remove temporary files; all except the following:
Fred Drake6659c301998-03-03 22:02:19 +0000224# - sources: .tex, .bib, .sty, *.cls
Fred Drake04cf4dc1998-02-12 22:33:50 +0000225# - useful results: .dvi, .pdf, .ps, .texi, .info
Fred Drakee4837a11998-03-06 21:29:34 +0000226clean:
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000227 (cd paper-$(PAPER); $(MAKE) clean)
228 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drakee34ab301998-05-11 21:10:15 +0000229 (cd $(INFODIR); $(MAKE) clean)
Guido van Rossum5b343731992-07-07 09:06:34 +0000230
Fred Drake03ff6f71997-08-22 18:18:54 +0000231l2hclean:
Fred Drakeb6584ca1999-01-08 15:49:45 +0000232 (cd $(HTMLDIR); $(MAKE) clean)
Fred Drake03ff6f71997-08-22 18:18:54 +0000233
Guido van Rossume83e3801995-03-17 16:01:35 +0000234# Remove temporaries as well as final products
Fred Drakeb6584ca1999-01-08 15:49:45 +0000235clobber:
236 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakeeb7fe4f1998-08-12 17:08:37 +0000237 rm -f html-$(RELEASE).tgz info-$(RELEASE).tgz
238 rm -f pdf-$(RELEASE).tgz postscript-$(RELEASE).tgz
239 rm -f latex-$(RELEASE).tgz
240 (cd paper-$(PAPER); $(MAKE) clobber)
241 (cd $(HTMLDIR); $(MAKE) clobber)
Fred Drakee34ab301998-05-11 21:10:15 +0000242 (cd $(INFODIR); $(MAKE) clobber)
Fred Drake5ad78f31998-02-22 19:47:13 +0000243
244realclean: clobber
245distclean: clobber