diff --git a/makefile b/makefile index 7af02a1..a46702a 100644 --- a/makefile +++ b/makefile @@ -1,6 +1,12 @@ # Build a release of 'tsearchpath' using 'make' -# $Id: makefile,v 1.106 2010/06/25 21:26:07 tundra Exp $ # Requires a modern 'make' like GNU. +# +# __COPYRIGHT__ +# __RESERVED__ +# +# __UPDATES__ +# +# __ID__ # Uncomment One Of The Following For Early Releases @@ -14,17 +20,21 @@ ##### PROGNAME = tsearchpath +PROGMAIN = tsearchpath.py -PORTNAME = ${PROGNAME} +PROGFILES = ${PROGMAIN} setup.py testpath.py +PROGDOCS = ${PROGMAIN}.ps -PROGFILES = ${PROGNAME}.py testpath.py - - -DOCSOURCES = ${PROGNAME}.rst ${PROGNAME}-license.txt CHANGELOG.txt Makefile \ - WHATSNEW.txt setup.py - -DOCFILES = ${PROGNAME}.html ${PROGNAME}.pdf ${PROGNAME}.ps ${PROGNAME}.py.ps \ - ${PROGNAME}.3.gz testpath.py.ps +DOCS = tsearchpath-license.txt \ + ${PROGNAME}.3.gz \ + ${PROGNAME}.html \ + ${PROGNAME}.pdf \ + ${PROGNAME}.ps \ + ${PROGNAME}.rst \ + ${PROGNAME}.txt \ + testpath.py.ps \ + CHANGELOG.txt \ + Makefile \ ##### @@ -32,12 +42,13 @@ ##### -DIR = py-${PORTNAME}-${VERSION} +DIR = ${PROGNAME}-${VERSION} HEADER1 = "WHATSNEW For '${PROGNAME}' ${VERSION} (`date`)" HEADER2 = "----------------------------------------------------------------------" +RELEASES = "Releases" TARBALL = ${DIR}.tar.gz TMPFILE = tmpfile -VERSION = $(shell rlog -v ${PROGNAME}.py | cut -f 2 -d " ")${EARLY} +VERSION = $(shell cvs log ${PROGMAIN} | grep ^head\: | cut -f2 -d " ")${EARLY} ##### @@ -45,98 +56,110 @@ ##### ### -# 'troff' Sources +# Document Production ### -# %.3.gz: %.3 -# @gzip $< +# Some Docutils installations keep the ".py" suffix for the various +# frontend programs, and some do not. It's even possible there are +# links from one to the other. Since the project can be checked out +# on any platform, we have to check for this every time we run the +# 'make'. This is irritating. -# %.3: %.txt -# @cp $< $@ +2HTML = $(shell which rst2html.py rst2html 2>/dev/null | head -n 1) +2LATEX = $(shell which rst2latex.py rst2latex 2>/dev/null | head -n 1) --stylesheet=parskip +2ODT = $(shell which rst2odt.py rst2odt 2>/dev/null | head -n 1) +2MAN = $(shell which rst2man.py rst2man 2>/dev/null | head -n 1) -# %.txt: %.3 -# @groff -man -Tascii $< | col -xb >$@ +# TeX/LaTeX Processing -# %.html: %.3 -# @manserver $< >$@ +DVIPS = dvips +PDFLATEX = pdflatex +LATEX = latex -# %.ps: %.3 -# @groff -man -Tps $< >$@ +%.dvi : %.latex + ${LATEX} $*.latex -### -# Restructured Text Sources -### +%.html : %.rst + ${2HTML} <$*.rst >$*.html -%.html: %.rst - rst2html $< >$@ +%.latex : %.rst + ${2LATEX} $*.rst >$*.latex -%.3: %.html - w3m -dump $< >$@ +%.3 : %.rst + ${2MAN} <$*.rst >$*.3 %.3.gz: %.3 - @gzip $< + @gzip -c <$*.3 >$*.3.gz -%.latex: %.rst - rst2latex $< >$@ +%.odt : %.rst + ${2ODT} <$*.rst >$*.odt -### -# LaTeX, PostScript, & PDF -### +%.pdf : %.latex + ${PDFLATEX} $*.latex + ${PDFLATEX} $*.latex + ${PDFLATEX} $*.latex -%.dvi: %.latex - latex $< +%.ps : %.dvi + ${DVIPS} $*.dvi -%.pdf: %.dvi - @dvipdf $< $@ - -%.ps: %.dvi - dvips $< >$@ +%.txt: %.3 + @groff -man -Tascii $< | col -xb >$@ ### # Pretty Print Programs & Scripts ### -%.py.ps: %.py - @enscript -Epython -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $< +%.pl.ps: %.pl + @enscript -Eperl --color -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $< -%.sh.ps: % - @enscript -Esh -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $< +%.py.ps: %.py + @enscript -Epython --color -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $< + +%.sh.ps: %.sh + @enscript -Esh --color -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $< ##### # Actual Build Rules ##### +FORCE: -CHANGELOG.txt: - @rlog ${PROGNAME}.py >CHANGELOG.txt +CHANGELOG.txt: FORCE + @cvs log ${PROGMAIN} >CHANGELOG.txt -WHATSNEW.txt: - @co -l $@ +WHATSNEW.txt: FORCE @printf "%s\n%s\n\n" ${HEADER1} ${HEADER2} | cat - $@ >${TMPFILE} @mv ${TMPFILE} $@ - @emacs $@ - @ci -m${HEADER1} $@ - @co $@ + @emacs -nw $@ + @cvs commit -m${HEADER1} $@ + +docs: ${DOCS} ${PROGDOCS} + @chmod 644 ${DOCS} ${PROGDOCS} + @chmod 644 *.gz *.txt + +release: docs WHATSNEW.txt ${PROGFILES} + @mkdir ${DIR} + -@mkdir ${RELEASES} 2>&1 >/dev/null + @cp -pv WHATSNEW.txt ${PROGFILES} ${DOCS} ${PROGDOCS} ${DIR} + @tar -czvf ${TARBALL} --exclude CVS ${DIR} + @rm -rf ${DIR} + @mv ${DIR}.tar.gz ${RELEASES} + +##### +# Housekeeping +##### clean: - @rm -rf ${DIR} ${DOCFILES} ${PORTNAME} ${PROGFILES} ${DOCSOURCES} ${TARBALL} ${TMPFILE} \ - *.3 *.aux *.dvi *.log *.out *.core *~ - -docs: ${DOCSOURCES} ${DOCFILES} - @chmod 644 ${DOCFILES} ${DOCSOURCES} - @chmod 644 *.txt - @flip -u *txt - -progs: ${PROGFILES} - chmod 755 ${PROGFILES} - -release: docs progs - @mkdir ${DIR} - @for f in `for f in ${DOCFILES} ${PROGFILES} ${DOCSOURCES};do echo $$f;done | sort`; do mv -v $$f ${DIR};done - @tar -czvf ${TARBALL} ${DIR} - @rm -rf ${DIR} - @mv ${DIR}.tar.gz Releases + @rm -rf *~ *.3 *.3.gz *.aux *.core *.dvi *.latex *.log *.out tmpfile *.toc version: @echo ${VERSION} + +scrub: clean + @rm -rf ${DIR} ${PROGFILES} ${DOCS} ${PROGDOCS} ${TARBALL} ${TMPFILE} + +init: scrub + cvs update + +