#!/usr/bin/make -f
-# Note that I have to refer to debhelper programs witrh ./, to make sure
+# Note that I have to refer to debhelper programs with ./, to make sure
# I run the most current ones.
+#
+# 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.
-test_files=dh_lib
+# 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=.
-build:
- ./dh_testdir $(test_files)
+# 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
+
+# Figure out the `current debhelper version.
+VERSION=$(shell expr "`dpkg-parsechangelog 2>/dev/null |grep Version:`" : '.*Version: \(.*\)')
+
+PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}')
+
+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 -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 +1 -maxdepth 1 -name "dh_*" | sort` > debhelper.1
+ # Turn all executables into man pages.
+ find . -type f -perm +1 -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 $(test_files)
+ ./dh_testdir
./dh_testroot
+ -./dh_clean *.1 *-stamp Debian/Debhelper/Dh_Version.pm
+
+test: test-stamp
+test-stamp:
+ ./dh_clean
+ 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
- # We have nothing to do by default.
+# Nothing to do.
# Build architecture-independent files here.
binary-indep: build
- ./dh_testdir $(test_files)
+ ./dh_testdir
./dh_testroot
- ./dh_clean
-
- install -d debian/tmp/usr/bin
- find . -perm +111 -maxdepth 1 -type f \
- -exec install -p {} debian/tmp/usr/bin \;
- install -d debian/tmp/usr/lib/debhelper
- cp dh_lib debian/tmp/usr/lib/debhelper
-
- ./dh_installdocs TODO
+ ./dh_clean -k
+ ./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_installman *.1
./dh_installchangelogs
+ ./dh_shlibdeps
+ ./dh_link
./dh_compress
- ./dh_installdebfiles
./dh_fixperms
- ./dh_builddeb
+ ./dh_perl
+ ./dh_installdeb
+ ./dh_gencontrol
+ ./dh_md5sums
+ ./dh_builddeb -v
+
+# Update the debhelper web page. Not intended for use by anyone except the
+# author.
+installhook:
+ cp debian/changelog /home/pub/programs/debhelper/CHANGES
+ echo -n $(VERSION) > /home/pub/programs/debhelper/LATEST-VERSION-IS
binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary
+.PHONY: build clean binary-indep binary-arch binary dist
+