Updated to CVS and newest makefile skeleton.
1 parent 81bf3d9 commit 3ae01ac74c0743fb4d368b66cce89203d343b29a
@tundra tundra authored on 8 Jun 2012
Showing 1 changed file
View
210
makefile
# 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
 
# Definitions Relevant To This Program
#####
 
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 \
 
 
#####
# Nothing Should Need To Change Below This Line
#####
 
 
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}
 
 
#####
# Pattern Rules
#####
 
###
# '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
###
 
%.pl.ps: %.pl
@enscript -Eperl --color -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
 
%.py.ps: %.py
@enscript -Epython -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
@enscript -Epython --color -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
 
%.sh.ps: %
@enscript -Esh -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