]> git.donarmstrong.com Git - debhelper.git/blobdiff - debian/rules
r469: * Missing semi-colon.
[debhelper.git] / debian / rules
index 0806a4db0f346ef4fab98ab884b541c81857e219..9ec7d17c2619c86621e38d0316b0d18ef509e8d3 100755 (executable)
 #!/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 25 lines 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
+
+# Use most recent compatability level.
+export DH_COMPAT=3
+
+# 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}')
+
+# Debug
+#export DH_VERBOSE=1
+
+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 \;
+       touch build-stamp
 
 clean:
-       ./dh_testdir $(test_files)
+       ./dh_testdir
        ./dh_testroot
+       -./dh_clean *.1 *-stamp
+
+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
+       ./dh_clean -k
+       ./dh_installdirs usr/bin usr/share/debhelper \
+               $(PERLLIBDIR)/Debian/Debhelper
+
+       printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';" > \
+               debian/debhelper/$(PERLLIBDIR)/Debian/Debhelper/Dh_Version.pm
 
-       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
+       find . -perm +111 -maxdepth 1 -type f -not -name "*.pl" \
+               -exec install -p {} debian/debhelper/usr/bin \;
+       cp -a Debian/Debhelper/*.pm \
+               debian/debhelper/$(PERLLIBDIR)/Debian/Debhelper/
+       cp -a autoscripts debian/debhelper/usr/share/debhelper
+       rm -rf debian/debhelper/usr/share/debhelper/autoscripts/CVS
 
-       ./dh_installdocs TODO
-       ./dh_installexamples examples/*
-#      ./dh_installmenu
-       ./dh_installmanpages
+       ./dh_installdocs `find doc -type f | grep -v CVS`
+       ./dh_installexamples `find examples -type f | grep -v CVS`
+       ./dh_installmenu
+       ./dh_installman *.1
+       ./dh_installinfo
        ./dh_installchangelogs
+       ./dh_shlibdeps
+       ./dh_link
        ./dh_compress
-       ./dh_installdebfiles
        ./dh_fixperms
+       ./dh_perl
+       ./dh_installdeb
+       ./dh_gencontrol
+       ./dh_md5sums
        ./dh_builddeb
 
+# 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
+