Newer
Older
tbku / makefile
  1. # Build a release of 'tbku' using 'make'
  2. # $Id: makefile,v 1.103 2008/03/11 21:24:34 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. #####
  13. # Definitions Relevant To This Program
  14. #####
  15.  
  16. PROGNAME = tbku
  17.  
  18. PORTNAME = ${PROGNAME}
  19.  
  20. PROGFILES = ${PROGNAME}
  21.  
  22. DOCSOURCES = ${PROGNAME}-license.txt ${PROGNAME}.txt CHANGELOG.txt Makefile WHATSNEW.txt \
  23. Imaging-FreeBSD-With-tbku.txt Imaging-SUSE-Linux-With-tbku.txt
  24.  
  25. DOCFILES = ${PROGNAME}.1.gz ${PROGNAME}.html ${PROGNAME}.pdf ${PROGNAME}.ps ${PROGNAME}.sh.ps\
  26. Imaging-FreeBSD-With-tbku.html Imaging-SUSE-Linux-With-tbku.html \
  27. Imaging-FreeBSD-With-tbku.pdf Imaging-SUSE-Linux-With-tbku.pdf \
  28. Imaging-FreeBSD-With-tbku.ps Imaging-SUSE-Linux-With-tbku.ps
  29.  
  30.  
  31. #####
  32. # Nothing Should Need To Change Below This Line
  33. #####
  34.  
  35. DIR = ${PORTNAME}-${VERSION}
  36. HEADER1 = "WHATSNEW For '${PROGNAME}' ${VERSION} (`date`)"
  37. HEADER2 = "----------------------------------------------------------------------"
  38. TARBALL = ${DIR}.tar.gz
  39. TMPFILE = tmpfile
  40. VERSION = $(shell rlog -v ${PROGNAME} | cut -f 2 -d " ")${EARLY}
  41.  
  42.  
  43. #####
  44. # Pattern Rules
  45. #####
  46.  
  47. %.1.gz: %.1
  48. @gzip $<
  49.  
  50. %.1: %.txt
  51. @cp $< $@
  52.  
  53. %.dvi: %.latex
  54. latex $<
  55.  
  56. # %.html: %.1
  57. # @manserver $< >$@
  58.  
  59. %.html: %.txt
  60. rst2html.py $< >$@
  61.  
  62. %.latex: %.txt
  63. rst2latex.py $< >$@
  64.  
  65. %.pdf: %.dvi
  66. @dvipdf $< $@
  67.  
  68. %.pdf: %.ps
  69. @gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sOutputFile=$@ $<
  70.  
  71. # %.ps: %.1
  72. # @groff -man -Tps $< >$@
  73.  
  74. %.ps: %.dvi
  75. dvips $< >$@
  76.  
  77. %.py.ps: %.py
  78. @enscript -Epython -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
  79.  
  80. %.sh.ps: %
  81. @enscript -Esh -fCourier8 -i2 -L77 -C --mark-wrapped-lines=arrow -p$@ $<
  82.  
  83. %.txt: %.1
  84. @groff -man -Tascii $< | col -xb >$@
  85.  
  86.  
  87. #####
  88. # Actual Build Rules
  89. #####
  90.  
  91. CHANGELOG.txt:
  92. @rlog ${PROGNAME} >CHANGELOG.txt
  93.  
  94. WHATSNEW.txt:
  95. @co -l $@
  96. @printf "%s\n%s\n\n" ${HEADER1} ${HEADER2} | cat - $@ >${TMPFILE}
  97. @mv ${TMPFILE} $@
  98. @emacs $@
  99. @ci -m${HEADER1} $@
  100. @co $@
  101.  
  102. clean:
  103. @rm -rf ${DIR} ${DOCFILES} ${PORTNAME} ${PROGFILES} ${DOCSOURCES} ${TARBALL} ${TMPFILE} \
  104. *.1 *.aux *.log *.out *.core *~
  105.  
  106. docs: ${DOCSOURCES} ${DOCFILES}
  107. @chmod 644 ${DOCFILES} ${DOCSOURCES}
  108. @chmod 644 *.gz *.txt
  109. @flip -u *txt
  110.  
  111. progs: ${PROGFILES}
  112. chmod 755 ${PROGFILES}
  113.  
  114. release: docs progs
  115. @mkdir ${DIR}
  116. @for f in `for f in ${DOCFILES} ${PROGFILES} ${DOCSOURCES};do echo $$f;done | sort`; do mv -v $$f ${DIR};done
  117. @tar -czvf ${TARBALL} ${DIR}
  118. @rm -rf ${DIR}
  119. @mv ${DIR}.tar.gz Releases
  120.  
  121. version:
  122. @echo ${VERSION}