mirror of https://github.com/python/cpython
166 lines
4.8 KiB
Makefile
166 lines
4.8 KiB
Makefile
# Convenience Makefile for building HTML documentation. You probably need to
|
|
# set TEXINPUTS from the command line for this to be useful, unless you
|
|
# actually build the .dvi files in the top level directory.
|
|
#
|
|
# Note that the .dvi files must already be built and TEXINPUTS must include the
|
|
# directory where latex's working files (esp. *.aux) are kept.
|
|
|
|
PAPER=letter
|
|
TOPDIR=..
|
|
TOOLSDIR=$(TOPDIR)/tools
|
|
PAPERDIR=$(TOPDIR)/paper-$(PAPER)
|
|
|
|
TEXINPUTS=$(TOPDIR)/paper-$(PAPER):$(TOPDIR)/texinputs:
|
|
|
|
# Where are the various programs?
|
|
PYTHON= python
|
|
WEBCHECKER=$(PYTHON) $(TOPDIR)/../Tools/webchecker/webchecker.py
|
|
WCNEW=$(PYTHON) $(TOPDIR)/../Tools/webchecker/wcnew.py
|
|
MKAUX= PAPER=$(PAPER) TEXINPUTS=$(TEXINPUTS) $(TOOLSDIR)/mkdvi.sh --aux
|
|
MKHTML= PAPER=$(PAPER) $(TOOLSDIR)/mkhtml.sh
|
|
KPSEWHICH= TEXINPUTS=$(TEXINPUTS) kpsewhich tex
|
|
|
|
BUILDINDEX=$(TOOLSDIR)/buildindex.py
|
|
|
|
# make it clear to l2h, since our support only generates HTML 4.0
|
|
L2HARGS= -html_version 4.0
|
|
|
|
PYTHONDOCS='<hr>See <i><a href="about.html">About this document...</a></i> for information on suggesting changes.'
|
|
HTMLBASE= file:`pwd`
|
|
|
|
INDEXFILES=api/api.html \
|
|
doc/doc.html \
|
|
ext/ext.html \
|
|
lib/lib.html \
|
|
mac/mac.html \
|
|
ref/ref.html \
|
|
tut/tut.html \
|
|
inst/inst.html \
|
|
dist/dist.html
|
|
|
|
COMMONPERL= $(TOPDIR)/perl/manual.perl \
|
|
$(TOPDIR)/perl/python.perl \
|
|
$(TOPDIR)/perl/l2hinit.perl
|
|
|
|
|
|
all: $(INDEXFILES) index.html modindex.html
|
|
|
|
.PHONY: api ext lib mac ref tut inst dist
|
|
|
|
api: api/api.html
|
|
doc: doc/doc.html
|
|
ext: ext/ext.html
|
|
lib: lib/lib.html
|
|
mac: mac/mac.html
|
|
ref: ref/ref.html
|
|
tut: tut/tut.html
|
|
inst: inst/inst.html
|
|
dist: dist/dist.html
|
|
|
|
$(INDEXFILES): $(COMMONPERL) \
|
|
$(TOPDIR)/html/about.dat \
|
|
$(TOPDIR)/tools/node2label.pl
|
|
|
|
# The index.html target is at the end since it screws up font-lock.
|
|
|
|
modindex.html: lib/lib.html mac/mac.html $(TOOLSDIR)/mkmodindex
|
|
$(TOOLSDIR)/mkmodindex --columns 4 --output modindex.html \
|
|
--address $(PYTHONDOCS) \
|
|
lib/modindex.html mac/modindex.html
|
|
|
|
api/api.html: $(PAPERDIR)/api.aux $(BUILDINDEX) $(TOOLSDIR)/mkhtml.sh
|
|
$(MKHTML) api $(L2HARGS)
|
|
|
|
doc/doc.html: $(DOCFILES) $(BUILDINDEX) $(TOPDIR)/perl/ltxmarkup.perl
|
|
$(TOOLSDIR)/mkhowto --about stdabout.dat --address $(PYTHONDOCS) \
|
|
--html $(TOPDIR)/doc/doc.tex
|
|
|
|
ext/ext.html: $(PAPERDIR)/ext.aux $(TOOLSDIR)/mkhtml.sh
|
|
$(MKHTML) ext $(L2HARGS)
|
|
|
|
lib/lib.html: $(PAPERDIR)/lib.aux $(BUILDINDEX) $(TOOLSDIR)/mkhtml.sh
|
|
$(TOOLSDIR)/fix_libaux.sed <`$(KPSEWHICH) lib.aux` >lib1.aux
|
|
mv lib1.aux `$(KPSEWHICH) lib.aux`
|
|
$(MKHTML) lib $(L2HARGS)
|
|
|
|
mac/mac.html: $(MACFILES) $(BUILDINDEX)
|
|
$(TOOLSDIR)/mkhowto --about stdabout.dat --address $(PYTHONDOCS) \
|
|
--html $(TOPDIR)/mac/mac.tex
|
|
|
|
ref/ref.html: $(PAPERDIR)/ref.aux $(BUILDINDEX) $(TOOLSDIR)/mkhtml.sh
|
|
$(MKHTML) ref $(L2HARGS)
|
|
|
|
tut/tut.html: $(PAPERDIR)/tut.aux $(TOOLSDIR)/mkhtml.sh
|
|
$(MKHTML) --numeric tut $(L2HARGS) -split 3
|
|
|
|
inst/inst.html:$(INSTFILES) $(TOPDIR)/perl/distutils.perl
|
|
$(TOOLSDIR)/mkhowto --about stdabout.dat --address $(PYTHONDOCS) \
|
|
--html $(TOPDIR)/inst/inst.tex
|
|
|
|
dist/dist.html:$(DISTFILES) $(TOPDIR)/perl/distutils.perl
|
|
$(TOOLSDIR)/mkhowto --about stdabout.dat --address $(PYTHONDOCS) \
|
|
--html $(TOPDIR)/dist/dist.tex
|
|
|
|
include ../Makefile.deps
|
|
|
|
$(PAPERDIR)/api.aux: $(APIFILES)
|
|
(cd $(PAPERDIR); $(MKAUX) api)
|
|
|
|
$(PAPERDIR)/ext.aux: $(EXTFILES)
|
|
(cd $(PAPERDIR); $(MKAUX) ext)
|
|
|
|
$(PAPERDIR)/lib.aux: $(LIBFILES)
|
|
(cd $(PAPERDIR); $(MKAUX) lib)
|
|
|
|
$(PAPERDIR)/ref.aux: $(REFFILES)
|
|
(cd $(PAPERDIR); $(MKAUX) ref)
|
|
|
|
$(PAPERDIR)/tut.aux: $(TUTFILES)
|
|
(cd $(PAPERDIR); $(MKAUX) tut)
|
|
|
|
|
|
webcheck: all
|
|
$(WEBCHECKER) $(HTMLBASE)/api/
|
|
$(WEBCHECKER) $(HTMLBASE)/doc/
|
|
$(WEBCHECKER) $(HTMLBASE)/ext/
|
|
$(WEBCHECKER) -m290000 $(HTMLBASE)/lib/
|
|
$(WEBCHECKER) $(HTMLBASE)/mac/
|
|
$(WEBCHECKER) $(HTMLBASE)/ref/
|
|
$(WEBCHECKER) $(HTMLBASE)/tut/
|
|
$(WEBCHECKER) $(HTMLBASE)/dist/
|
|
$(WEBCHECKER) $(HTMLBASE)/inst/
|
|
|
|
wcnew: all
|
|
$(WCNEW) $(HTMLBASE)/api/
|
|
$(WCNEW) $(HTMLBASE)/doc/
|
|
$(WCNEW) $(HTMLBASE)/ext/
|
|
$(WCNEW) -m290000 $(HTMLBASE)/lib/
|
|
$(WCNEW) $(HTMLBASE)/mac/
|
|
$(WCNEW) $(HTMLBASE)/ref/
|
|
$(WCNEW) $(HTMLBASE)/tut/
|
|
|
|
|
|
clean:
|
|
rm -rf @webchecker.pickle
|
|
|
|
distclean realclean clobber: clean
|
|
rm -rf index.html modindex.html
|
|
rm -rf api/ doc/ ext/ lib/ mac/ ref/ tut/ inst/ dist/
|
|
|
|
|
|
# This is really ugly, but we're not dependent on $(RELEASE), which isn't
|
|
# defined here. It also maintains the proper dependency on boilerplate.tex.
|
|
|
|
# It's at the end of the file since it wedges font-lock in XEmacs.
|
|
|
|
BOILERPLATE=$(TOPDIR)/texinputs/boilerplate.tex
|
|
index.html: index.html.in $(BOILERPLATE)
|
|
REL=`grep '\\release{' $(BOILERPLATE) | sed 's/.*\\release{\(.*\)}.*$$/\1/'`; \
|
|
REL=`echo "$$REL" | sed 's/[$$]//g'`; \
|
|
sed "s/@RELEASE@/$$REL/g" $< >TEMP
|
|
DATE=`grep '\\date{' $(BOILERPLATE) | sed 's/.*\\date{\(.*\)}.*$$/\1/'` ; \
|
|
if [ "$$DATE" = '\today' ] ; then DATE=`date '+%B %e, %Y'`;fi;\
|
|
sed "s/@DATE@/$$DATE/g" TEMP >$@
|
|
rm -f TEMP
|
|
|