- # Build a release of 'tmkproject' using 'make'
- # Requires a modern 'make' like GNU.
- #
- # Copyright (c) 2012 TundraWare Inc., Des Plaines, IL 60018 USA
- # All Rights Reserved. For Terms Of Use See: tmkproject-license.txt
- #
- # For Program Updates See: http://www.tundraware.com/Software/tmkproject
- #
- # $Id: makefile,v 1.110 2012/09/06 15:39:41 tundra Exp $
- CVSID='$Id: makefile,v 1.110 2012/09/06 15:39:41 tundra Exp $'
- # Uncomment One Of The Following For Early Releases
- #EARLY = Alpha
- #EARLY = Beta
- #EARLY = RC1
- #####
- # Definitions Relevant To This Program
- #####
- PROGNAME = tmkproject
- TYPE = sh
- PROGMAIN = tmkproject.sh
- PROGFILES = ${PROGMAIN} tokens .tmkproject
- PROGDOCS = ${PROGMAIN}.ps
- SUPPDIRS = ./common ./pl ./py ./sh
- PROGSUPP = $(shell find ${SUPPDIRS} | grep -v CVS)
- DOCS = ${PROGNAME}-license.txt \
- ${PROGNAME}.1.gz \
- ${PROGNAME}.html \
- ${PROGNAME}.pdf \
- ${PROGNAME}.ps \
- ${PROGNAME}.rst \
- ${PROGNAME}.txt \
- CHANGELOG.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
- ###
- # 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.
- 2HTML = $(shell which rst2html.py rst2html | tr '\012' ' ' | awk '{print $$1}')
- 2LATEX = $(shell which rst2latex.py rst2latex | tr '\012' ' ' | awk '{print $$1}') --stylesheet=parskip
- 2ODT = $(shell which rst2odt.py rst2odt | tr '\012' ' ' | awk '{print $$1}')
- 2MAN = $(shell which rst2man.py rst2man | tr '\012' ' ' | awk '{print $$1}')
- # TeX/LaTeX Processing
- 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} $@
- @emacs -nw $@
- @cvs commit -m${HEADER1} $@
- docs: ${DOCS} ${PROGDOCS}
- @chmod 644 ${DOCS} ${PROGDOCS}
- @chmod 644 *.gz *.txt
- release: docs WHATSNEW.txt ${PROGFILES} ${PROGSUPP}
- @mkdir ${DIR}
- -@mkdir ${RELEASES} 2>&1 >/dev/null
- @cp -pvR WHATSNEW.txt ${PROGFILES} ${SUPPDIRS} ${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