# Build a release of '__PROJECTNAME__' using 'make'
# Requires a modern 'make' like GNU.
#
# __COPYRIGHT__
# __RESERVED__
#
# __UPDATES__
#
# __ID__
# Uncomment One Of The Following For Early Releases
#EARLY = Alpha
#EARLY = Beta
#EARLY = RC1
#####
# Definitions Relevant To This Program
#####
PROGNAME = __PROJECTNAME__
TYPE = __TYPE__
PROGMAIN = __PROJECTNAME__.__TYPE__
PROGFILES = ${PROGMAIN}
PROGDOCS = ${PROGMAIN}.ps
DOCS = __LICENSE__ \
${PROGNAME}.1.gz \
${PROGNAME}.html \
${PROGNAME}.pdf \
${PROGNAME}.ps \
${PROGNAME}.rst \
${PROGNAME}.txt \
CHANGELOG.txt \
Makefile \
WHATSNEW.txt \
#####
# Nothing Should Need To Change Below This Line
#####
DIR = ${PROGNAME}-${VERSION}
HEADER1 = "WHATSNEW For '${PROGNAME}' ${VERSION} (`date`)"
HEADER2 = "----------------------------------------------------------------------"
RELEASES = "Releases"
TARBALL = ${DIR}.tar.gz
TMPFILE = tmpfile
VERSION = $(shell cvs log ${PROGMAIN} | grep head | cut -f2 -d " ")${EARLY}
#####
# Pattern Rules
#####
###
# Document Production
###
2HTML = rst2html
2LATEX = rst2latex --stylesheet=parskip
2ODT = rst2odt
2MAN = rst2man
DVIPS = dvips
PDFLATEX = pdflatex
LATEX = latex
%.dvi : %.latex
${LATEX} $*.latex
%.html : %.rst
${2HTML} <$*.rst >$*.html
%.latex : %.rst
${2LATEX} $*.rst >$*.latex
%.1 : %.rst
${2MAN} <$*.rst >$*.1
%.1.gz: %.1
@gzip -c <$*.1 >$*.1.gz
%.odt : %.rst
${2ODT} <$*.rst >$*.odt
%.pdf : %.latex
${PDFLATEX} $*.latex
${PDFLATEX} $*.latex
${PDFLATEX} $*.latex
%.ps : %.dvi
${DVIPS} $*.dvi
%.txt: %.1
@groff -man -Tascii $< | col -xb >$@
###
# Pretty Print Programs & Scripts
###
%.pl.ps: %.pl
@enscript -Eperl --color -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: FORCE
@cvs log ${PROGMAIN} >CHANGELOG.txt
WHATSNEW.txt: FORCE
@printf "%s\n%s\n\n" ${HEADER1} ${HEADER2} | cat - $@ >${TMPFILE}
@mv ${TMPFILE} $@
@__EDITOR__ __EDITARGS__ $@
@cvs commit -m${HEADER1} $@
docs: ${DOCS} ${PROGDOCS}
@chmod 644 ${DOCS} ${PROGDOCS}
@chmod 644 *.gz *.txt
release: docs ${PROGFILES}
@mkdir ${DIR}
-@mkdir ${RELEASES} 2>&1 >/dev/null
@cp -pv ${PROGFILES} ${DOCS} ${PROGDOCS} ${DIR}
@tar -czvf ${TARBALL} --exclude CVS ${DIR}
@rm -rf ${DIR}
@mv ${DIR}.tar.gz ${RELEASES}
#####
# Housekeeping
#####
clean:
@rm -rf *~ *.1 *.1.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