Use implicit rules to perform DVI->PS and PS->PDF conversions.  PDF conversion
requires "distill" from a FrameMaker installation.  ;-)  Would probably need
to be different for Windows/Mac.
diff --git a/Doc/Makefile b/Doc/Makefile
index 8034d39..d247101 100644
--- a/Doc/Makefile
+++ b/Doc/Makefile
@@ -49,6 +49,7 @@
 LATEX=		latex
 BIBTEX=		bibtex
 DVIPS=		dvips -f -N0
+DISTILL=	distill
 MAKEINDEX=	makeindex
 L2H=		latex2html
 L2HARGS=	-address $$LOGNAME@`domainname`
@@ -74,6 +75,7 @@
 
 all-dvi: tut.dvi lib.dvi ext.dvi api.dvi
 all-ps:	 tut.ps lib.ps ext.ps api.ps
+all-pdf: tut.pdf lib.pdf ext.pdf api.pdf
 
 # Individual document fake targets
 tut:	tut.ps
@@ -81,6 +83,15 @@
 ext:	ext.ps
 api:	api.ps
 
+# Rules to build PostScript and PDF formats
+.SUFFIXES: .dvi .ps .pdf
+
+.dvi.ps:
+	$(DVIPS) $< >$@
+
+.ps.pdf:
+	$(DISTILL) $<
+
 # Dependencies
 tut.dvi lib.dvi ext.dvi api.dvi: myformat.sty fix_hack
 
@@ -89,9 +100,6 @@
 	$(LATEX) tut
 	$(LATEX) tut
 
-tut.ps:	tut.dvi
-	$(DVIPS) tut >tut.ps
-
 # LaTeX source files for the Python Library Reference
 LIBFILES = lib.tex \
     libintro.tex libobjs.tex libtypes.tex libexcs.tex libfuncs.tex \
@@ -135,9 +143,6 @@
 	./modindex.py modules.idx
 	$(LATEX) lib
 
-lib.ps:	lib.dvi
-	$(DVIPS) lib >lib.ps
-
 # Extensions document
 ext.dvi: ext.tex
 	touch ext.ind
@@ -146,9 +151,6 @@
 	$(MAKEINDEX) ext.idx
 	$(LATEX) ext
 
-ext.ps:	ext.dvi
-	$(DVIPS) ext >ext.ps
-
 # Python-C API document
 api.dvi: api.tex 
 	touch api.ind
@@ -157,9 +159,6 @@
 	$(MAKEINDEX) api.idx
 	$(LATEX) api
 
-api.ps:	api.dvi
-	$(DVIPS) api >api.ps
-
 
 # The remaining part of the Makefile is concerned with various
 # conversions, as described above.  See also the README file.