diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 134 |
1 files changed, 56 insertions, 78 deletions
diff --git a/debian/rules b/debian/rules index 68d6eb05..ffb2c9ba 100755 --- a/debian/rules +++ b/debian/rules @@ -1,35 +1,64 @@ #!/usr/bin/make -f # Note that I have to refer to debhelper programs with ./, to make sure -# I run the most current ones. That's also why there is a symlink to the -# current Dh_lib.pm and the current Dh_getopt.pm in this debian/ directory. +# I run the most current ones. # -# This is _not_ a good example of a debhelper rules file. +# This is _not_ a good example of a debhelper rules file, but I didn't need +# to tell you that; just see the chunk of inlined perl below.. +# See examples/ for some good examples. + +# Ensure that builds are self-hosting, which means I have to use the .pm +# files in this package, not any that may be on the system. +export PERL5LIB=. # If any automatic script generation is done in building this package, # be sure to use the new templates from this package. export DH_AUTOSCRIPTDIR=autoscripts -# Living dangerously :-) -export DH_COMPAT=2 - -# Figure out the current debhelper version. +# Figure out the `current debhelper version. VERSION=$(shell expr "`dpkg-parsechangelog 2>/dev/null |grep Version:`" : '.*Version: \(.*\)') -export DH_VERBOSE=1 +PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}') -build: - # Run regression tests. - $(MAKE) test +build: test build-stamp +build-stamp: + # Generate the main man page. All the perl cruft is to get a list + # of debhelper commands with short descriptions into the man page. + pod2man --section=7 -c Debhelper -r "$(VERSION)" debhelper.pod | \ + perl -e ' \ + undef $$/; \ + foreach (@ARGV) { \ + open (IN, $$_) or die "$$_: $$!"; \ + $$file=<IN>; \ + close IN; \ + if ($$file=~m/=head1 NAME\n\n(.*?) - (.*?)\n/m) { \ + $$collect.=".IP $$1(1)\n$$2\n"; \ + } \ + } \ + END { \ + while (<STDIN>) { \ + s/#LIST#/$$collect/; \ + print; \ + }; \ + }' `find . -type f -perm +100 -maxdepth 1 -name "dh_*" | sort` > debhelper.7 + # Turn all executables into man pages. + find . -type f -perm +100 -maxdepth 1 -name "dh_*" \ + -exec pod2man -c Debhelper -r "$(VERSION)" {} {}.1 \; + printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';" > \ + Debian/Debhelper/Dh_Version.pm + + touch build-stamp clean: ./dh_testdir ./dh_testroot - ./dh_clean + -./dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm -test: +test: test-stamp +test-stamp: ./dh_clean - DH_VERSION=10 perl -MTest::Harness -e 'runtests @ARGV' t/* + DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/* ./dh_clean + touch test-stamp # Build architecture-dependent files here. binary-arch: build @@ -40,81 +69,30 @@ binary-indep: build ./dh_testdir ./dh_testroot ./dh_clean -k - ./dh_installdirs usr/bin usr/share/debhelper - - echo -e "package Dh_Version;\n\$$version='$(VERSION)';" > debian/debhelper/usr/share/debhelper/Dh_Version.pm - find . -perm +111 -maxdepth 1 -type f -not -name "*.pl" \ - -exec install -p {} debian/debhelper/usr/bin \; - cp -a Dh_*.pm debian/debhelper/usr/share/debhelper - cp -a autoscripts debian/debhelper/usr/share/debhelper - + ./dh_install -X .1 dh_* usr/bin + ./dh_install Debian/Debhelper/*.pm $(PERLLIBDIR)/Debian/Debhelper/ + ./dh_install autoscripts usr/share/debhelper ./dh_installdocs doc/* ./dh_installexamples examples/* - ./dh_installmenu - ./dh_installmanpages - ./dh_installinfo - # Fix up all man pages, filling in the modification time for them. - # Note this runs beofre the command below so debhelper.1 gets the right - # date on it. - perl -mPOSIX -e ' \ - foreach $$f (@ARGV) { \ - @data=stat($$f); \ - $$date=POSIX::strftime("%d %B %Y",localtime($$data[9])); \ - open (IN,$$f); \ - @lines=<IN>; \ - close IN; \ - $$lines[0]=~s/1 ""/1 "$$date"/; \ - open (OUT,">$$f"); \ - print OUT @lines; \ - close OUT; \ - }' debian/debhelper/usr/man/man1/*.1 - # Fix up the debhelper.1 man page, substituting in a list of all - # debhelper commands. eek! - perl -ne ' \ - s/\\- /(1)\n/; \ - $$collect.=".TP\n.BR $$_" if $$. eq 3 && /^dh_/; \ - close(ARGV) if eof; \ - END { \ - open(I,"debian/debhelper/usr/man/man1/debhelper.1"); \ - @lines=<I>; \ - close I; \ - open(O,">debian/debhelper/usr/man/man1/debhelper.1"); \ - foreach (@lines) { \ - s/#LIST#/$$collect/; \ - print O; \ - } \ - close O; \ - }' *.1 + ./dh_installman *.1 *.7 ./dh_installchangelogs -# ./dh_movefiles + ./dh_shlibdeps ./dh_link ./dh_compress ./dh_fixperms - ./dh_suidregister + ./dh_perl ./dh_installdeb ./dh_gencontrol ./dh_md5sums ./dh_builddeb -# Install in the proper location on my ftp server and web server. Not intended -# for use by anyone except the author. -OLD_VER=$(shell perl -e '<>;<>;while(<>){last if /^ --/};<>;$$_=<>;print m/\((.*?)\)/'<debian/changelog) -dist: - dpkg-buildpackage -rfakeroot -tc - if [ `hostname` = 'kite' ] ; then \ - cp ../debhelper_$(VERSION).tar.gz ../../public; \ - rm /home/ftp/pub/code/debhelper/* || true; \ - cp debian/changelog /home/pub/programs/debhelper/CHANGES; \ - echo $(VERSION) > /home/pub/programs/debhelper/LATEST-VERSION-IS; \ - cd ..; rm -rf debhelper-$(OLD_VER); \ - [ -f ../public/debhelper_$(OLD_VER).tar.gz ] && \ - tar zxf ../public/debhelper_$(OLD_VER).tar.gz || \ - tar zxf ../outdated/debhelper_$(OLD_VER).tar.gz; \ - diff -r -u --new-file debhelper-$(OLD_VER) debhelper-$(VERSION) > \ - /home/ftp/pub/code/debhelper/diffs/debhelper-$(VERSION).diff; \ - gzip -9f /home/ftp/pub/code/debhelper/diffs/debhelper-$(VERSION).diff; \ - cd /tmp; rm -f debhelper-$(OLD-VER); \ - fi +# Update the debhelper web page. Not intended for use by anyone except the +# author. +DIR=/home/web/kitenet.net/programs/debhelper +installhook: + cp debian/changelog $(DIR)/CHANGES + echo -n $(VERSION) > $(DIR)/LATEST-VERSION-IS binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary dist + |