blob: 85bcda20a8c082a5e472d559f99c4f72347036e8 [file] [log] [blame]
Guido van Rossume83e3801995-03-17 16:01:35 +00001# Makefile for Python documentation
2# ---------------------------------
3#
4# This is a bit of a mess. The main documents are:
5# tut -- Tutorial (file tut.tex)
6# lib -- Library Reference (file lib.tex, inputs lib*.tex)
7# ref -- Language Reference (file ref.tex, inputs ref*.tex)
8# ext -- Extending and Embedding (file ext.tex)
9#
10# The main target "make all" creates DVI and PostScript for these
11# four. You can also do "make lib" (etc.) to process individual
12# documents.
13#
14# There's also:
15# qua -- Paper published in the CWI Quarterly (file qua.tex)
16#
17# There's one local style file: myformat.sty. This defines a number
18# of macros that are similar in name and intent as macros in Texinfo
19# (e.g. \code{...} and \emph{...}), as well as a number of
20# environments for formatting function and data definitions, also in
21# the style of Texinfo.
22#
23# Everything is processed by LaTeX. The following tools are used:
24# latex
25# makeindex
26# dvips
27# bibtex (only for formatting qua.tex)
28#
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#
33# To preview the dvi files produced by LaTeX it would be useful to
34# have xdvi as well.
35#
36# Additional targets attempt to convert selected LaTeX sources to
37# various other formats. These are generally site specific because
38# the tools used are all but universal. These targets are:
39# l2h -- convert tut, ref, ext (but not lib!) from LaTeX to HTML
40# lib.texi -- convert lib from LaTeX to Texinfo
41# lib.info -- convert lib from Texinfo to Emacs INFO
42# libwww -- convert lib from Texinfo to HTML
43
44# Where's dvips?
45DVIPS= dvips -f
46
47# Install destination -- actually not used
Guido van Rossum5b343731992-07-07 09:06:34 +000048DESTDIR=/usr/local
49LIBDESTDIR=$DESTDIR/lib
50LIBDEST=$LIBDESTDIR/python
51DOCDESTDIR=$LIBDEST/doc
52
Guido van Rossume83e3801995-03-17 16:01:35 +000053# Main target
Guido van Rossum16d6e711994-08-08 12:30:22 +000054all: tut.dvi lib.dvi ref.dvi ext.dvi
Guido van Rossum20aca5a1991-01-25 13:29:04 +000055
Guido van Rossume83e3801995-03-17 16:01:35 +000056# Individual document fake targets
Guido van Rossum16d6e711994-08-08 12:30:22 +000057tut: tut.dvi
Guido van Rossum16d6e711994-08-08 12:30:22 +000058lib: lib.dvi
Guido van Rossume83e3801995-03-17 16:01:35 +000059ref: ref.dvi
60ext: ext.dvi
Guido van Rossum16d6e711994-08-08 12:30:22 +000061
Guido van Rossume83e3801995-03-17 16:01:35 +000062# CWI Quarterly document fake target
63qua: qua.dvi
64
65# Dependencies
Guido van Rossum16d6e711994-08-08 12:30:22 +000066tut.dvi lib.dvi ref.dvi ext.dvi: myformat.sty fix_hack
67
Guido van Rossume83e3801995-03-17 16:01:35 +000068# Tutorial document
Guido van Rossum16d6e711994-08-08 12:30:22 +000069tut.dvi: tut.tex
Guido van Rossumb83241c1992-03-06 10:56:42 +000070 latex tut
71 latex tut
Guido van Rossum6938f061994-08-01 12:22:53 +000072 $(DVIPS) tut >tut.ps
Guido van Rossumb3fa13c1991-01-22 11:47:14 +000073
Guido van Rossume83e3801995-03-17 16:01:35 +000074# Reference document
Guido van Rossum16d6e711994-08-08 12:30:22 +000075ref.dvi: ref.tex ref1.tex ref2.tex ref3.tex ref4.tex ref5.tex ref6.tex \
76 ref7.tex ref8.tex
Guido van Rossumb83241c1992-03-06 10:56:42 +000077 touch ref.ind
78 latex ref
Guido van Rossum4ac605e1992-12-17 15:31:02 +000079 ./fix_hack ref.idx
Guido van Rossumb83241c1992-03-06 10:56:42 +000080 makeindex ref
81 latex ref
Guido van Rossum6938f061994-08-01 12:22:53 +000082 $(DVIPS) ref >ref.ps
Guido van Rossumb3fa13c1991-01-22 11:47:14 +000083
Guido van Rossum16d6e711994-08-08 12:30:22 +000084# LaTeX source files for the Python Library Reference
85LIBFILES = lib.tex \
Guido van Rossum817a8421995-02-16 16:28:22 +000086libal.tex libaifc.tex libamoeba.tex libarray.tex libaudio.tex libaudioop.tex \
Guido van Rossum16d6e711994-08-08 12:30:22 +000087libbltin.tex \
Guido van Rossumdc46c7f1995-03-01 15:38:16 +000088libcgi.tex libcopy.tex libctb.tex libcrypto.tex \
Guido van Rossum16d6e711994-08-08 12:30:22 +000089libdbm.tex \
90libexcs.tex \
Guido van Rossuma12ef941995-02-27 17:53:25 +000091libfcntl.tex libfl.tex libfm.tex libftplib.tex libfuncs.tex \
92libgdbm.tex libgetopt.tex libgl.tex libgopherlib.tex libgrp.tex \
93libhtmllib.tex libhttplib.tex \
Guido van Rossum16d6e711994-08-08 12:30:22 +000094libimageop.tex libimgfile.tex libintro.tex \
95libjpeg.tex \
Guido van Rossum85c4ff21995-03-07 10:12:11 +000096libmac.tex libmacconsole.tex libmacdnr.tex \
97 libmacfs.tex libmactcp.tex libmacspeech.tex \
98 libmain.tex libmarshal.tex libmath.tex \
Guido van Rossuma12ef941995-02-27 17:53:25 +000099 libmd5.tex libmimetools.tex libmm.tex libmods.tex libmpz.tex \
100libnntplib.tex \
Guido van Rossum16d6e711994-08-08 12:30:22 +0000101libobjs.tex libos.tex \
Guido van Rossumdf804f81995-03-02 12:38:39 +0000102libpanel.tex libpickle.tex libposix.tex libposixfile.tex \
103 libppath.tex libprofile.tex libpwd.tex \
Guido van Rossuma12ef941995-02-27 17:53:25 +0000104librand.tex libregex.tex libregsub.tex \
105 librfc822.tex librgbimg.tex librotor.tex \
106libselect.tex libsgi.tex libsgmllib.tex \
107 libshelve.tex libsocket.tex libstd.tex libstdwin.tex \
Guido van Rossum16d6e711994-08-08 12:30:22 +0000108 libstring.tex libstruct.tex libsun.tex libsys.tex \
Guido van Rossumdc46c7f1995-03-01 15:38:16 +0000109libtempfile.tex libthread.tex libtime.tex \
110 libtraceback.tex libtypes.tex libtypes2.tex \
Guido van Rossuma12ef941995-02-27 17:53:25 +0000111libunix.tex liburllib.tex liburlparse.tex \
Guido van Rossum817a8421995-02-16 16:28:22 +0000112libwhrandom.tex libwww.tex
Guido van Rossum16d6e711994-08-08 12:30:22 +0000113
Guido van Rossume83e3801995-03-17 16:01:35 +0000114# Library document
Guido van Rossum16d6e711994-08-08 12:30:22 +0000115lib.dvi: $(LIBFILES)
Guido van Rossumb83241c1992-03-06 10:56:42 +0000116 touch lib.ind
117 latex lib
Guido van Rossum95cd2ef1992-12-08 14:37:55 +0000118 ./fix_hack lib.idx
Guido van Rossumb83241c1992-03-06 10:56:42 +0000119 makeindex lib
120 latex lib
Guido van Rossum6938f061994-08-01 12:22:53 +0000121 $(DVIPS) lib >lib.ps
Guido van Rossuma52117e1991-11-21 13:54:36 +0000122
Guido van Rossume83e3801995-03-17 16:01:35 +0000123# Extensions document
Guido van Rossum16d6e711994-08-08 12:30:22 +0000124ext.dvi: ext.tex
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000125 touch ext.ind
126 latex ext
127 ./fix_hack ext.idx
128 makeindex ext
129 latex ext
Guido van Rossum6938f061994-08-01 12:22:53 +0000130 $(DVIPS) ext >ext.ps
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000131
Guido van Rossume83e3801995-03-17 16:01:35 +0000132# Quarterly document
Guido van Rossum16d6e711994-08-08 12:30:22 +0000133qua.dvi: qua.tex quabib.bib
Guido van Rossumb83241c1992-03-06 10:56:42 +0000134 latex qua
Guido van Rossumb83241c1992-03-06 10:56:42 +0000135 bibtex qua
136 latex qua
Guido van Rossuma3d50761992-06-03 17:59:20 +0000137 latex qua
Guido van Rossum6938f061994-08-01 12:22:53 +0000138 $(DVIPS) qua >qua.ps
Guido van Rossumb3fa13c1991-01-22 11:47:14 +0000139
Guido van Rossume83e3801995-03-17 16:01:35 +0000140
141# The remaining part of the Makefile is concerned with various
142# conversions, as described above.
143
Guido van Rossum6938f061994-08-01 12:22:53 +0000144lib.texi: lib*.tex texipre.dat texipost.dat partparse.py fix.el
Guido van Rossume6757c21994-10-20 22:01:07 +0000145 python partparse.py -o @lib.texi `./whichlibs`
Guido van Rossum6938f061994-08-01 12:22:53 +0000146 emacs -batch -l fix.el -f save-buffer -kill
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000147 mv @lib.texi lib.texi
Guido van Rossum95cd2ef1992-12-08 14:37:55 +0000148
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000149.PRECIOUS: lib.texi
150
Guido van Rossum6938f061994-08-01 12:22:53 +0000151python-lib.info: lib.texi
Guido van Rossume83e3801995-03-17 16:01:35 +0000152 -makeinfo --footnote-style end --fill-column 72 --paragraph-indent 0 \
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000153 lib.texi
154
155lib.info: python-lib.info
156
157# This target is very local to CWI...
158libwww: lib.texi
Guido van Rossume83e3801995-03-17 16:01:35 +0000159 python texi2html.py -d lib.texi /ufs/guido/public_html/python-lib
Guido van Rossum6938f061994-08-01 12:22:53 +0000160
Guido van Rossume83e3801995-03-17 16:01:35 +0000161# Targets to convert the manuals to HTML using Nikos Drakos' excellent
162# LaTeX to HTML Converter. For more info on this program, see
163# <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
164# (I've had some trouble getting this to work with the netpbm version
165# of the pbmplus library; ppmtogif dumped core because giftopnm
166# outputs bitmap (pbm) files. I've fixed this by changing the source
167# of LaTeX2HTML to insert a call to pnmtoppm, which I wrote myself.
168# You can probably also use "pbmtopgm | pgmtoppm"...
169
170# In order to use these targets, you must edit the definition of L2H
171# in the Makefile to point to the latex2html program. Note that
172# LaTeX2HTML inserts references to an "icons" directory in each page
173# that it generates. You can customize where these icons are to be
174# found; I generally make it point to "../icons" and then create a
175# symbolic link to the icons directory in the LaTeX2HTML source at the
176# appropriate place.
177
178L2H= /ufs/guido/l2h/latex2html
179L2HARGS=-address $$USER@`domainname` -dont_include myformat
Guido van Rossum6938f061994-08-01 12:22:53 +0000180l2h: l2htut l2href l2hext
181
182l2htut: tut
183 $(L2H) $(L2HARGS) tut.tex
184 @rm -rf python-tut
185 mv tut python-tut
186
187l2href: ref
188 $(L2H) $(L2HARGS) ref.tex
189 @rm -rf python-ref
190 mv ref python-ref
191
192l2hext: ext
193 $(L2H) $(L2HARGS) ext.tex
194 @rm -rf python-ext
195 mv ext python-ext
Guido van Rossum970871f1993-02-21 20:10:26 +0000196
Guido van Rossume83e3801995-03-17 16:01:35 +0000197# This target doesn't quite work, since l2h doesn't understand the
198# funcdesc and similar environments, and turns them into GIF images.
199# Use the "libwww" target above instead.
200l2hlib: lib
201 $(L2H) $(L2HARGS) lib.tex
202 @rm -rf python-lib
203 mv lib python-lib
204
205
206# Housekeeping targets
207
208# Remove temporary files
Guido van Rossum7f777ed1990-08-09 14:25:15 +0000209clean:
Guido van Rossum4ac605e1992-12-17 15:31:02 +0000210 rm -f @* *~ *.aux *.idx *.ilg *.ind *.log *.toc *.blg *.bbl *.pyc
Guido van Rossume83e3801995-03-17 16:01:35 +0000211 rm -f *.bak *.orig
Guido van Rossum5b343731992-07-07 09:06:34 +0000212 # Sources: .tex, .bib, .sty
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000213 # Useful results: .dvi, .ps, .texi, .info
Guido van Rossum5b343731992-07-07 09:06:34 +0000214
Guido van Rossume83e3801995-03-17 16:01:35 +0000215# Remove temporaries as well as final products
Guido van Rossum5b343731992-07-07 09:06:34 +0000216clobber: clean
Guido van Rossum7a2dba21993-11-05 14:45:11 +0000217 rm -f *.dvi *.ps *.texi *.info *.info-[0-9]*