]> git.donarmstrong.com Git - debhelper.git/blobdiff - debian/rules
r1086: * Several man pae typo fixes by Ruben Porras. Closes: #202819
[debhelper.git] / debian / rules
index 3f81682c2cfe56fdad9410300ee698df26140ad8..0c22f0e476e47fcb1f6299cfda28587019f79e95 100755 (executable)
 # 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.. 
+# 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: 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
 
-build: link-stamp test
-# Nothing to do.       
+       touch build-stamp
 
-clean: link-stamp
+clean:
        ./dh_testdir
        ./dh_testroot
-       ./dh_clean link-stamp
+       -./dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm
 
-test: link-stamp
+test: test-stamp
+test-stamp:
        ./dh_clean
-       DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/*
+       DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ } @ARGV' t/*
        ./dh_clean
+       touch test-stamp
 
 # Build architecture-dependent files here.
-binary-arch: link-stamp build
+binary-arch: build
 # Nothing to do.
 
 # Build architecture-independent files here.
-binary-indep: link-stamp build
+binary-indep: build
        ./dh_testdir
        ./dh_testroot
        ./dh_clean -k
-       ./dh_installdirs usr/bin usr/share/debhelper \
-               usr/lib/perl5/Debian/Debhelper
-
-       echo -e "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';" > \
-               debian/debhelper/usr/lib/perl5/Debian/Debhelper/Dh_Version.pm
-       find . -perm +111 -maxdepth 1 -type f -not -name "*.pl" \
-               -exec install -p {} debian/debhelper/usr/bin \;
-       cp -a Debian/Debhelper/*.pm \
-               debian/debhelper/usr/lib/perl5/Debian/Debhelper/
-       cp -a autoscripts debian/debhelper/usr/share/debhelper
-       rm -rf debian/debhelper/usr/share/debhelper/autoscripts/CVS
-
-       ./dh_installdocs `find doc -type f | grep -v CVS`
-       ./dh_installexamples `find examples -type f | grep -v CVS`
-       ./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/share/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/share/man/man1/debhelper.1"); \
-                       @lines=<I>; \
-                       close I; \
-                       open(O,">debian/debhelper/usr/share/man/man1/debhelper.1"); \
-                       foreach (@lines) { \
-                               s/#LIST#/$$collect/; \
-                               print O; \
-                       } \
-                       close O; \
-               }' *.1
+       ./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_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
 
-# Fix links when checking out of cvs by calling this target.
-link-stamp:
-       sh -e debian/fixlinks
-       touch link-stamp
-
 # 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 /home/pub/programs/debhelper/CHANGES
-       echo $(VERSION) > /home/pub/programs/debhelper/LATEST-VERSION-IS
+       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