Newer
Older
tconfpy / makefile
  1. # Build a release of tconfpy using 'make'
  2. # $Id: makefile,v 1.115 2012/06/09 19:22:59 tundra Exp $
  3. # Requires a modern 'make' like GNU.
  4.  
  5. # Uncomment One Of The Following For Early Releases
  6.  
  7. #EARLY = Alpha
  8. #EARLY = Beta
  9. #EARLY = RC1
  10.  
  11. #####
  12. # Definitions Relevant To This Program
  13. #####
  14.  
  15. PROGNAME=tconfpy
  16. TESTPROG=test-tc
  17.  
  18. PORTNAME = py-${PROGNAME}
  19.  
  20. PROGFILES = ${PROGNAME}.py ${TESTPROG}.py
  21.  
  22. SUPPFILES = ${PROGNAME}-license.txt CHANGELOG.txt Makefile READ-1ST.txt WHATSNEW.txt setup.py example.cfg
  23.  
  24. DOCFILES = ${PROGNAME}.html ${PROGNAME}.pdf ${PROGNAME}.ps ${PROGNAME}.py.ps ${PROGNAME}.txt \
  25. ${TESTPROG}.html ${TESTPROG}.pdf ${TESTPROG}.ps ${TESTPROG}.py.ps ${TESTPROG}.txt \
  26. ${TESTPROG}.1.gz ${PROGNAME}.3.gz
  27.  
  28.  
  29. #####
  30. # Nothing Should Need To Change Below This Line
  31. #####
  32.  
  33.  
  34. DIR = ${PORTNAME}-${VERSION}
  35. HEADER1 = "WHATSNEW For '${PROGNAME}' ${VERSION} (`date`)"
  36. HEADER2 = "----------------------------------------------------------------------"
  37. TARBALL = ${DIR}.tar.gz
  38. TMPFILE = tmpfile
  39. VERSION = $(shell cvs log ${PROGNAME}.py | grep ^head\: | cut -f2 -d " ")${EARLY}
  40.  
  41.  
  42. #####
  43. # Pattern Rules
  44. #####
  45.  
  46. %.html: %.1
  47. @manserver $< >$@
  48.  
  49. %.html: %.3
  50. @manserver $< >$@
  51.  
  52. %.pdf: %.ps
  53. @gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$@ $<
  54.  
  55. %.ps: %.1
  56. @groff -man -Tps $< >$@
  57.  
  58. %.ps: %.3
  59. @groff -man -Tps $< >$@
  60.  
  61. %.py.ps: %.py
  62. @enscript -Epython -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
  63.  
  64. %.txt: %.1
  65. @groff -man -Tascii $< | col -xb >$@
  66.  
  67. %.txt: %.3
  68. @groff -man -Tascii $< | col -xb >$@
  69.  
  70. %.1.gz: %.1
  71. @gzip $<
  72.  
  73. %.3.gz: %.3
  74. @gzip $<
  75.  
  76.  
  77. #####
  78. # Actual Build Rules
  79. #####
  80.  
  81. FORCE:
  82.  
  83. CHANGELOG.txt: FORCE
  84. @cvs log ${PROGNAME}.py >CHANGELOG.txt
  85.  
  86. WHATSNEW.txt: FORCE
  87. @printf "%s\n%s\n\n" ${HEADER1} ${HEADER2} | cat - $@ >${TMPFILE}
  88. @mv ${TMPFILE} $@
  89. @emacs -nw $@
  90. @cvs commit -m${HEADER1} $@
  91.  
  92. docs: ${DOCFILES} ${SUPPFILES}
  93. @chmod 644 ${DOCFILES} ${SUPPFILES}
  94. @chmod 644 *.gz *.txt
  95. @flip -u *txt
  96.  
  97. progs: ${PROGFILES}
  98. chmod 755 ${PROGFILES}
  99.  
  100. release: docs progs
  101. @mkdir ${DIR}
  102. @mv ${DOCFILES} ${PROGFILES} ${SUPPFILES} ${DIR}
  103. @tar -czvf ${TARBALL} ${DIR}
  104. @rm -rf ${DIR}
  105. @mkdir Releases
  106. @mv ${DIR}.tar.gz Releases
  107.  
  108.  
  109. #####
  110. # Housekeeping
  111. #####
  112.  
  113. clean:
  114. @rm -rf *~ *.1 *.1.gz *.aux *.core *.dvi *.latex *.log *.out tmpfile *.toc
  115.  
  116. version:
  117. @echo ${VERSION}
  118.  
  119. scrub: clean
  120. @rm -rf ${DIR} ${PROGFILES} ${DOCS} ${PROGDOCS} ${TARBALL} ${TMPFILE}
  121.  
  122. init: scrub
  123. cvs update
  124.