Newer
Older
tconfpy / makefile
  1. # Build a release of tconfpy using 'make'
  2. # $Id: makefile,v 1.113 2012/06/09 18:49:09 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. clean:
  82. @rm -rf ${DIR} ${DOCFILES} ${PORTNAME} ${PROGFILES} ${SUPPFILES} ${TARBALL} ${TMPFILE} ${PROGNAME}.3 ${TESTPROG}.1 *.pyc *~
  83.  
  84. version:
  85. @echo ${VERSION}
  86.  
  87. CHANGELOG.txt:
  88. @cvs log ${PROGNAME}.py >CHANGELOG.txt
  89.  
  90. WHATSNEW.txt:
  91. @printf "%s\n%s\n\n" ${HEADER1} ${HEADER2} | cat - $@ >${TMPFILE}
  92. @mv ${TMPFILE} $@
  93. @emacs -nw $@
  94. @cvs commit -m${HEADER1} $@
  95.  
  96. docs: ${DOCFILES} ${SUPPFILES}
  97. @chmod 644 ${DOCFILES} ${SUPPFILES}
  98. @chmod 644 *.gz *.txt
  99. @flip -u *txt
  100.  
  101. progs: ${PROGFILES}
  102. chmod 755 ${PROGFILES}
  103.  
  104. release: docs progs
  105. @mkdir ${DIR}
  106. @mv ${DOCFILES} ${PROGFILES} ${SUPPFILES} ${DIR}
  107. @tar -czvf ${TARBALL} ${DIR}
  108. @rm -rf ${DIR}
  109. @mv ${DIR}.tar.gz Releases
  110.  
  111.