home *** CD-ROM | disk | FTP | other *** search
Makefile | 1995-12-17 | 6.9 KB | 235 lines | [TEXT/R*ch] |
- # Makefile for Python documentation
- # ---------------------------------
- #
- # See also the README file.
- #
- # This is a bit of a mess. The main documents are:
- # tut -- Tutorial (file tut.tex)
- # lib -- Library Reference (file lib.tex, inputs lib*.tex)
- # ref -- Language Reference (file ref.tex, inputs ref*.tex)
- # ext -- Extending and Embedding (file ext.tex)
- #
- # The main target "make all" creates DVI and PostScript for these
- # four. You can also do "make lib" (etc.) to process individual
- # documents.
- #
- # There's also:
- # qua -- Paper published in the CWI Quarterly (file qua.tex)
- #
- # There's one local style file: myformat.sty. This defines a number
- # of macros that are similar in name and intent as macros in Texinfo
- # (e.g. \code{...} and \emph{...}), as well as a number of
- # environments for formatting function and data definitions, also in
- # the style of Texinfo.
- #
- # Everything is processed by LaTeX. The following tools are used:
- # latex
- # makeindex
- # dvips
- # bibtex (only for formatting qua.tex)
- #
- # There's a problem with generating the index which has been solved by
- # a sed command applied to the index file. The shell script fix_hack
- # does this (the Makefile takes care of calling it).
- #
- # To preview the dvi files produced by LaTeX it would be useful to
- # have xdvi as well.
- #
- # Additional targets attempt to convert selected LaTeX sources to
- # various other formats. These are generally site specific because
- # the tools used are all but universal. These targets are:
- # l2h -- convert tut, ref, ext (but not lib!) from LaTeX to HTML
- # lib.texi -- convert lib from LaTeX to Texinfo
- # lib.info -- convert lib from Texinfo to Emacs INFO
- # libwww -- convert lib from Texinfo to HTML
- # See the README file for more info on these targets.
-
- # Customizations -- you *may* have to edit these
-
- # Where are the various programs?
- LATEX= latex
- BIBTEX= bibtex
- EMACS= emacs
- DVIPS= dvips -f
- MAKEINDEX= makeindex
- PYTHON= python
- MAKEINFO= makeinfo
- L2H= /ufs/guido/l2h/latex2html
- L2HARGS= -address $$USER@`domainname` -dont_include myformat
-
- # Install destination -- not used now but might be useful some time...
- DESTDIR= /usr/local
- LIBDESTDIR= $DESTDIR/lib
- LIBDEST= $LIBDESTDIR/python
- DOCDESTDIR= $LIBDEST/doc
-
- # Ideally, you shouldn't need to edit beyond this point
-
- # Main target
- all: tut.dvi lib.dvi ref.dvi ext.dvi
-
- # Individual document fake targets
- tut: tut.dvi
- lib: lib.dvi
- ref: ref.dvi
- ext: ext.dvi
-
- # CWI Quarterly document fake target
- qua: qua.dvi
-
- # Dependencies
- tut.dvi lib.dvi ref.dvi ext.dvi: myformat.sty fix_hack
-
- # Tutorial document
- tut.dvi: tut.tex
- $(LATEX) tut
- $(LATEX) tut
- $(DVIPS) tut >tut.ps
-
- # Reference document
- ref.dvi: ref.tex ref1.tex ref2.tex ref3.tex ref4.tex ref5.tex ref6.tex \
- ref7.tex ref8.tex
- touch ref.ind
- $(LATEX) ref
- ./fix_hack ref.idx
- $(MAKEINDEX) ref
- $(LATEX) ref
- $(DVIPS) ref >ref.ps
-
- # LaTeX source files for the Python Library Reference
- LIBFILES = lib.tex \
- libal.tex libaifc.tex liballos.tex \
- libamoeba.tex libarray.tex libaudio.tex libaudioop.tex \
- libbltin.tex libbinascii.tex \
- libcd.tex \
- libcgi.tex libcopy.tex libctb.tex libcrypto.tex \
- libdbm.tex \
- libexcs.tex \
- libfcntl.tex libfl.tex libfm.tex libftplib.tex libfuncs.tex \
- libgdbm.tex libgetopt.tex libgl.tex libgopherlib.tex libgrp.tex \
- libhtmllib.tex libhttplib.tex \
- libimageop.tex libimgfile.tex libintro.tex \
- libjpeg.tex \
- libmac.tex libmacconsole.tex libmacdnr.tex \
- libmacfs.tex libmacos.tex libmacostools.tex libmactcp.tex \
- libmacspeech.tex libmacui.tex \
- libmain.tex libmarshal.tex libmath.tex \
- libmd5.tex libmimetools.tex libmisc.tex \
- libmm.tex libmpz.tex \
- libnntplib.tex \
- libobjs.tex libos.tex \
- libpanel.tex libparser.tex libpickle.tex libposix.tex libposixfile.tex \
- libppath.tex libprofile.tex libpwd.tex libpython.tex \
- librand.tex libregex.tex libregsub.tex \
- librfc822.tex librgbimg.tex librotor.tex \
- libselect.tex libsgi.tex libsgmllib.tex \
- libshelve.tex libsocket.tex libsomeos.tex libstdwin.tex \
- libstring.tex libstrings.tex libstruct.tex libsun.tex libsys.tex \
- libtempfile.tex libtermios.tex libthread.tex libtime.tex \
- libtraceback.tex libtypes.tex libtypes2.tex \
- libunix.tex liburllib.tex liburlparse.tex \
- libwhrandom.tex libwww.tex
-
- # Library document
- lib.dvi: $(LIBFILES)
- touch lib.ind
- $(LATEX) lib
- ./fix_hack lib.idx
- $(MAKEINDEX) lib
- $(LATEX) lib
- $(DVIPS) lib >lib.ps
-
- # Extensions document
- ext.dvi: ext.tex
- touch ext.ind
- $(LATEX) ext
- ./fix_hack ext.idx
- $(MAKEINDEX) ext
- $(LATEX) ext
- $(DVIPS) ext >ext.ps
-
- # Quarterly document
- qua.dvi: qua.tex quabib.bib
- $(LATEX) qua
- $(BIBTEX) qua
- $(LATEX) qua
- $(BIBTEX) qua
- $(DVIPS) qua >qua.ps
-
-
- # The remaining part of the Makefile is concerned with various
- # conversions, as described above. See also the README file.
-
- lib.texi: lib*.tex texipre.dat texipost.dat partparse.py fix.el
- $(PYTHON) partparse.py -o @lib.texi `./whichlibs`
- $(EMACS) -batch -l fix.el -f save-buffer -kill
- mv @lib.texi lib.texi
-
- .PRECIOUS: lib.texi
-
- python-lib.info: lib.texi
- -$(MAKEINFO) --footnote-style end --fill-column 72 \
- --paragraph-indent 0 lib.texi
-
- lib.info: python-lib.info
-
- # This target is very local to CWI...
- libwww: lib.texi
- $(PYTHON) texi2html.py -d lib.texi /ufs/guido/public_html/python-lib
-
- # Targets to convert the manuals to HTML using Nikos Drakos' LaTeX to
- # HTML converter. For more info on this program, see
- # <URL:http://cbl.leeds.ac.uk/nikos/tex2html/doc/latex2html/latex2html.html>.
- # (I've had some trouble getting this to work with the netpbm version
- # of the pbmplus library; ppmtogif dumped core because giftopnm
- # outputs bitmap (pbm) files. I've fixed this by changing the source
- # of LaTeX2HTML to insert a call to pnmtoppm, which I wrote myself.
- # You can probably also use "pbmtopgm | pgmtoppm"...
-
- # In order to use these targets, you must edit the definition of L2H
- # earlier in the Makefile to point to the latex2html program. Note
- # that LaTeX2HTML inserts references to an "icons" directory in each
- # page that it generates. You can customize where these icons are to
- # be found; I generally make it point to "../icons" and then create a
- # symbolic link to the icons directory in the LaTeX2HTML source at the
- # appropriate place.
-
- l2h: l2htut l2href l2hext
-
- l2htut: tut
- $(L2H) $(L2HARGS) tut.tex
- @rm -rf python-tut
- mv tut python-tut
-
- l2href: ref
- $(L2H) $(L2HARGS) ref.tex
- @rm -rf python-ref
- mv ref python-ref
-
- l2hext: ext
- $(L2H) $(L2HARGS) ext.tex
- @rm -rf python-ext
- mv ext python-ext
-
- # This target doesn't quite work, since l2h doesn't understand the
- # funcdesc and similar environments, and turns them into GIF images.
- # Use the "libwww" target above instead.
- l2hlib: lib
- $(L2H) $(L2HARGS) lib.tex
- @rm -rf python-lib
- mv lib python-lib
-
-
- # Housekeeping targets
-
- # Remove temporary files
- clean:
- rm -f @* *~ *.aux *.idx *.ilg *.ind *.log *.toc *.blg *.bbl *.pyc
- rm -f *.bak *.orig
- # Sources: .tex, .bib, .sty
- # Useful results: .dvi, .ps, .texi, .info
-
- # Remove temporaries as well as final products
- clobber: clean
- rm -f *.dvi *.ps *.texi *.info *.info-[0-9]*
-