X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=debian%2Frules;h=9dd3685eccdc5090636b6b846a2a51d2d1d6d607;hb=cccca1357e2ddcc14725926e1361558de1b746c0;hp=6db3f3401270451b1f19863c49d0c419558853f3;hpb=7ae91ec653811a6e7cb669047ee464fd84361d13;p=developers-reference.git diff --git a/debian/rules b/debian/rules index 6db3f34..9dd3685 100755 --- a/debian/rules +++ b/debian/rules @@ -1,75 +1,117 @@ #!/usr/bin/make -f +# rules file for developers-reference +# +# I do not use debstd, debhelper, or any of that stuff. +# I believe in stripped down rules files; nothing that is not required +# I believe in readability through abstraction package := developers-reference -DEB_VERSION := $(shell LC_ALL=C dpkg-parsechangelog | grep ^Version: | sed 's/^Version: *//') -DATE := $(shell date +"%Y-%m-%d") +# directory abstraction +prefix := debian/tmp +docdir := $(prefix)/usr/share/doc/$(package) +docbasedir := $(prefix)/usr/share/doc-base -.PHONY: version.ent -version.ent: - $(checkdir) - rm -f version.ent +# tool abstraction +install_file := install -o root -g root -m 644 -p +install_script := install -o root -g root -m 755 -p +make_directory := install -d -o root -g root -m 755 +compress := gzip -9f + +# version abstraction +DEB_VERSION := $(shell LC_ALL=C dpkg-parsechangelog | grep '^Version: ' | sed 's/^Version: *//') +# pretty-print the date +DATE := $(shell LC_ALL=C date --date="`dpkg-parsechangelog | grep '^Date: ' | sed 's/^Date: *//'`" '+%d %B, %Y') + +version.ent: debian/changelog + :> version.ent echo "" >> version.ent echo "" >> version.ent -build: version.ent +build: $(checkdir) - debiandoc2html developers-reference.sgml - debiandoc2text developers-reference.sgml - gzip -9 developers-reference.text + $(MAKE) touch build clean: $(checkdir) - -rm -f build - -rm -rf developers-reference.html - -rm -rf developers-reference.text* - -rm -rf developers-reference.lout* lout.li - -rm -f `find . -name "*~"` - -rm -rf debian/tmp debian/files* core debian/substvars version.ent - -binary-indep: checkroot build - $(checkdir) - -rm -rf debian/tmp - install -d debian/tmp - cd debian/tmp && install -d `cat ../dirs` - cp -a developers-reference.html debian/tmp/usr/doc/developers-reference/ - cp developers-reference.text.gz debian/tmp/usr/doc/developers-reference/ - cp developers-reference.sgml debian/tmp/usr/doc/developers-reference/ - gzip -9 debian/tmp/usr/doc/developers-reference/developers-reference.sgml - cp debian/{copyright,changelog} debian/tmp/usr/doc/developers-reference/ - gzip -9 debian/tmp/usr/doc/developers-reference/changelog - cp debian/menu debian/tmp/usr/lib/menu/developers-reference - cp developers-reference.desc debian/tmp/usr/share/doc-base/developers-reference - cp debian/{control,postinst,prerm} debian/tmp/DEBIAN/ - chmod +x debian/tmp/DEBIAN/{postinst,prerm} - dpkg-gencontrol - chown -R root.root debian/tmp - chmod -R go=rX debian/tmp - dpkg --build debian/tmp .. - debiandoc2ps -pa4 -1 -O developers-reference.sgml | gzip -9v > ../developers-reference.ps.gz - dpkg-distaddfile -fdebian/files developers-reference.ps.gz byhand - - GZIP=-9v tar zcf ../developers-reference.html.tar.gz developers-reference.html - dpkg-distaddfile -fdebian/files developers-reference.html.tar.gz byhand - - cp developers-reference.text.gz .. - dpkg-distaddfile -fdebian/files developers-reference.text.gz byhand - - -binary-arch: checkroot build + $(MAKE) clean + rm -f build + rm -rf $(prefix) + rm -f debian/files* core debian/substvars + +binary-indep: build $(checkdir) + $(checkroot) + rm -rf $(prefix) + $(make_directory) $(prefix)/DEBIAN + $(make_directory) $(docdir) $(docbasedir) + + for dir in $(wildcard developers-reference*.html); do \ + $(make_directory) $(docdir)/$$dir ;\ + $(install_file) $$dir/*.html $(docdir)/$$dir/ ;\ + done + $(install_file) developers-reference*.txt $(docdir)/ + $(install_file) developers-reference*.pdf $(docdir)/ + $(install_file) developers-reference*.sgml version.ent common.ent $(docdir)/ + + $(install_file) debian/copyright $(docdir)/ + $(install_file) debian/changelog $(docdir)/ + $(install_file) developers-reference.desc $(docbasedir)/$(package) + +# make sure control files are good + sh -n debian/postinst + sh -n debian/prerm + $(install_script) debian/postinst debian/prerm $(prefix)/DEBIAN/ + +# compress docdir (policy) + find $(docdir) -type f \( -size +4k -or -iname "change*" \) \ + ! -name "*.html" ! -name "*.gif" ! -name "*.pdf" \ + ! -name "copyright" | xargs $(compress) + + dpkg-gencontrol -isp +# be tricky about putting the TOC sections into the description of the package + perl -ne '/^\d+\.\s/ && print " $$_";' < developers-reference.txt \ + >> $(prefix)/DEBIAN/control + + dpkg --build $(prefix) .. + +# some extra-package files + $(install_file) developers-reference.pdf \ + ../developers-reference.pdf.$(DEB_VERSION) + dpkg-distaddfile -fdebian/files developers-reference.pdf.$(DEB_VERSION) byhand - + GZIP=-9 tar czf ../developers-reference.html.tar.gz.$(DEB_VERSION)\ + developers-reference.html + dpkg-distaddfile -fdebian/files developers-reference.html.tar.gz.$(DEB_VERSION)\ + byhand - + $(install_file) developers-reference.txt \ + ../developers-reference.txt + $(compress) ../developers-reference.txt + mv ../developers-reference.txt.gz \ + ../developers-reference.txt.gz.$(DEB_VERSION) + dpkg-distaddfile -fdebian/files \ + developers-reference.txt.gz.$(DEB_VERSION) byhand - + +binary-arch: build # There are no architecture-dependent files to be uploaded # generated by this package. If there were any they would be # made here. define checkdir test -f debian/rules + test -f developers-reference.sgml endef # Below here is fairly generic really +define checkroot + test `id -u` = 0 +endef + binary: binary-indep binary-arch -checkroot: - $(checkdir) - test root = "`whoami`" +.PHONY: binary binary-arch binary-indep clean -.PHONY: binary binary-arch binary-indep clean checkroot +#Local variables: +#mode: makefile +#End: