]> git.donarmstrong.com Git - debhelper.git/blobdiff - debian/rules
r1818: releasing version 5.0.5
[debhelper.git] / debian / rules
index f889fee53d1349fd0ef6124d0f55f588b8d6e504..c9b186eda7c7ba4188fbd246d09514a22363d1ea 100755 (executable)
 #!/usr/bin/make -f
-# 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.. 
+# This is _not_ a good example of a debhelper rules file.
 # 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
-
-# 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: \(.*\)')
-
-# Debug
-#export DH_VERBOSE=1
-
-build: test build-stamp
-build-stamp:
-       # Turn all executables and .pod files into man pages.
-       find . \( \( -type f -perm +1 -maxdepth 1 \) -or \
-                 \( -type f -name '*.pod' \) \) \
-               -exec pod2man -c Debhelper -r "$(VERSION)" {} {}.1 \;
-       mv -f debhelper.pod.1 debhelper.1
-       # Fix up the debhelper.1 man page, substituting in a list of all
-       # debhelper commands. Eek!
-       perl -e ' \
+# This generates a list of synopses of debhelper commands, and substitutes
+# it in to the #LIST# line on the man page fed to it on stdin. Must be passed
+# parameters of all the executables or pod files to get the synopses from.
+# (Like I said, this is not a good example of a debhelper rules file..)
+# For correct conversion of pod tags (like S< >) #LIST# must be substituted in
+# the pod file and not in the troff file.
+MAKEMANLIST=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"; \
+                       if ($$file=~m/=head1 .*?\n\n(.*?) - (.*?)\n\n/s) { \
+                               $$collect.="=item $$1(1)\n\n$$2\n\n"; \
                        } \
                } \
                END { \
-                       open(IN,"debhelper.1") or die "debhelper.1: $$!"; \
-                       $$file=<IN>; \
-                       open(OUT,">debhelper.1") or die "debhelper.1: $$!";; \
-                       $$file=~s/#LIST#/$$collect/; \
-                       print OUT $$file; \
-                       close OUT; \
-               }' dh_*
+                       while (<STDIN>) { \
+                               s/\#LIST\#/$$collect/; \
+                               print; \
+                       }; \
+               }'
+
+# 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}')
+
+POD2MAN=pod2man -c Debhelper -r "$(VERSION)"
+
+version:
+       printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';" > \
+               Debian/Debhelper/Dh_Version.pm
+
+build: version test build-stamp
+build-stamp:
+       find . -maxdepth 1 -type f -perm +100 -name "dh_*" \
+               -exec $(POD2MAN) {} {}.1 \;
+       cat debhelper.pod | \
+               $(MAKEMANLIST) `find . -maxdepth 1 -type f -perm +100 -name "dh_*" | sort` | \
+               $(POD2MAN) --section=7  > debhelper.7
+       po4a po/po4a.cfg 
+       set -e; \
+       for dir in man/*; do \
+               lang=`basename $$dir`; \
+               for file in $$dir/dh_*.pod; do \
+                       prog=`basename $$file | sed 's/.pod//'`; \
+                       $(POD2MAN) $$file $$prog.$$lang.1; \
+               done; \
+               cat $$dir/debhelper.pod | \
+                       $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | sort` | \
+                       $(POD2MAN) --section=7 > debhelper.$$lang.7; \
+       done
+       
        touch build-stamp
 
 clean:
-       ./dh_testdir
-       ./dh_testroot
-       -./dh_clean *.1 *-stamp
+       ./run dh_testdir
+       ./run dh_testroot
+       ./run dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm
+       rm -rf man
 
-test: test-stamp
+test: version test-stamp
 test-stamp:
-       ./dh_clean
-       DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/*
-       ./dh_clean
+       ./run dh_clean
+       ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ } @ARGV' t/*
+       ./run dh_clean
        touch test-stamp
 
-# Build architecture-dependent files here.
-binary-arch: build
-# Nothing to do.
-
-# Build architecture-independent files here.
 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_installman *.1
-       ./dh_installinfo
-       ./dh_installchangelogs
-       ./dh_link
-       ./dh_compress
-       ./dh_fixperms
-       ./dh_installdeb
-       ./dh_gencontrol
-       ./dh_md5sums
-       ./dh_builddeb
+       ./run dh_testdir
+       ./run dh_testroot
+       ./run dh_clean -k
+       ./run dh_install -X .1 dh_* usr/bin
+       ./run dh_install Debian/Debhelper/*.pm $(PERLLIBDIR)/Debian/Debhelper/
+       ./run dh_install autoscripts usr/share/debhelper
+       ./run dh_installdocs doc/*
+       ./run dh_installexamples examples/*
+       ./run dh_installman *.1 *.7
+       ./run dh_installchangelogs
+       ./run dh_link
+       ./run dh_compress
+       ./run dh_fixperms
+       ./run dh_perl
+       ./run dh_installdeb
+       ./run dh_gencontrol
+       ./run dh_md5sums
+       ./run dh_builddeb
 
 # 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 -n $(VERSION) > /home/pub/programs/debhelper/LATEST-VERSION-IS
+       cp debian/changelog $(DIR)/CHANGES
+       echo -n $(VERSION) > $(DIR)/LATEST-VERSION-IS
 
+binary-arch:
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary dist
-
+.PHONY: build clean binary-indep binary-arch binary