##
## Makefile for Proof General doc directory.
##
## Author: David Aspinall <da@dcs.ed.ac.uk>
##
## Maintainer: Proof General maintainer <proofgen@dcs.ed.ac.uk>
##
## Makefile.doc,v 8.1 2004/05/06 17:52:35 da Exp
##
###########################################################################
##
## Use:
## make info,dvi,pdf,html - build respective docs from texi source.
## make doc - make default kinds of doc (dvi, info).
##
###########################################################################
MAKE = make -f Makefile.doc
MAKEINFO = makeinfo
TEXI2DVI = texi2dvi
# `dviutils' package contains these useful utilities.
# "make rearrange" will only be called if you have dviselect.
DVISELECT = dviselect
DVICONCAT = dviconcat
# Assumes actual first two pages belong to titlepage
TITLERANGE = =1,=2
# Assumes that main document starts on third actual page
MAINRANGE = =3,=4,3:
TOC = :_1
DVI2PS = dvips -Pcmz
TEXI2PDF = texi2pdf
TEXI2HTML = texi2html -expandinfo -number -split_chapter
# FIXME: choose emacs automatically if xemacs not available
EMACS = xemacs
EMACSFLAGS = -q -no-site-file -batch
TMPFILE=pgt
.SUFFIXES: .texi .info .dvi .html .pdf .ps .eps .tiff .gz
default: doc
.texi.info:
$(MAKEINFO) $<
.texi.dvi:
$(TEXI2DVI) $<
if `which $(DVISELECT) > /dev/null`; then $(MAKE) rearrange DOCNAME=$*; fi
rearrange:
$(DVISELECT) -i $(DOCNAME).dvi -o $(DOCNAME).tmp1 $(TITLERANGE)
$(DVISELECT) -i $(DOCNAME).dvi -o $(DOCNAME).tmp2 $(MAINRANGE)
$(DVISELECT) -i $(DOCNAME).dvi -o $(DOCNAME).tmp3 $(TOC)
$(DVICONCAT) -o $(DOCNAME).dvi $(DOCNAME).tmp1 $(DOCNAME).tmp3 $(DOCNAME).tmp2
rm -f $(DOCNAME).tmp1 $(DOCNAME).tmp2 $(DOCNAME).tmp3
.tiff.eps:
tiff2ps -e -w 3.48 -h 5 $*.tiff > $*.eps
## FIXME: need to do page rearrangement here, too!
.texi.pdf:
$(TEXI2PDF) $<
.dvi.ps:
$(DVI2PS) $< -o $*.ps
.texi.html:
$(TEXI2HTML) $<
default: doc
FORCE:
ProofGeneral.txt:
echo > ProofGeneral.txt
ProofGeneralPortrait.eps: FORCE
# if [ -f ProofGeneralPortrait.eps.gz ]; then gunzip -c ProofGeneralPortrait.eps.gz > ProofGeneralPortrait.eps; fi
if [ -f ProofGeneralPortrait.eps ]; then \
sed 's/@clear haveeps/@set haveeps/g' $(DOCNAME).texi > $(TMPFILE); \
sed 's/@c image{ProofGeneralPortrait}/@image{ProofGeneralPortrait}/g' $(TMPFILE) > $(DOCNAME).texi; \
else \
sed 's/@set haveeps/@clear haveeps/g' $(DOCNAME).texi > $(TMPFILE); \
sed 's/@image{ProofGeneralPortrait}/@c image{ProofGeneralPortrait}/g' $(TMPFILE) > $(DOCNAME).texi; \
fi
rm -f $(TMPFILE)
ProofGeneralPortrait.pdf:
# if [ -f ProofGeneralPortrait.eps.gz ]; then gunzip -c ProofGeneralPortrait.eps.gz > ProofGeneralPortrait.eps; epstopdf ProofGeneralPortrait.eps; fi
if [ -f ProofGeneralPortrait.pdf ]; then \
sed 's/@clear haveeps/@set haveeps/g' $(DOCNAME).texi > $(TMPFILE); \
sed 's/@c image{ProofGeneralPortrait}/@image{ProofGeneralPortrait}/g' $(TMPFILE) > $(DOCNAME).texi; \
else \
sed 's/@set haveeps/@clear haveeps/g' $(DOCNAME).texi > $(TMPFILE); \
sed 's/@image{ProofGeneralPortrait}/@c image{ProofGeneralPortrait}/g' $(TMPFILE) > $(DOCNAME).texi; \
fi
rm -f $(TMPFILE)
%.gz : %
gzip -f -9 $*
##
## doc : build info and dvi files from $(DOCNAME).texi
##
doc: dvi info
##
## all : build all documentation targets
##
all: dvi ps html info pdf
##
## dist: build distribution targets
##
dist: info html pdf
dvi: ProofGeneralPortrait.eps $(DOCNAME).dvi
ps: dvi $(DOCNAME).ps
psz: ps $(DOCNAME).ps.gz
pdf: ProofGeneralPortrait.pdf $(DOCNAME).pdf
html: $(DOCNAME).html
ln -sf $(DOCNAME)_toc.html index.html
info: ProofGeneral.txt $(DOCNAME).info
# NB: for info, could make localdir automatically from
# START-INFO-DIR-ENTRY / END-INFO-DIR-ENTRY.
# Does some utility do this?
##
## clean: Remove subsidiary documentation files
##
clean:
rm -f ProofGeneral.txt ProofGeneralPortrait.eps ProofGeneralPortrait.pdf
rm -f $(DOCNAME).{cp,fn,vr,tp,ky,pg}
rm -f $(DOCNAME).{fns,vrs,cps,aux,log,toc,kys,cp0}
rm -f *~
##
## distclean: Remove documentation targets
##
distclean: clean
rm -f $(DOCNAME).info* $(DOCNAME).dvi $(DOCNAME)*.ps $(DOCNAME).pdf $(DOCNAME)*.html
##
## texi: update magic comments in texi from docstrings in code.
## (developer use only!)
##
#$(DOCNAME).texi: ../*/*.el
# $(MAKE) magic
#magic:
# $(EMACS) $(EMACSFLAGS) -l docstring-magic.el $(DOCNAME).texi -f texi-docstring-magic -f save-buffer
syntax highlighted by Code2HTML, v. 0.9.1