X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Frules;h=af5c5e341107c21b76436ebe7f60a23fb43a84cc;hb=d2631eede7bb957eb7c82f6974aa7808091ac3c2;hp=29069e725d691d22bcfe0402f1ea393efb06bae7;hpb=d2abdd9f80bb68a52bbd7a8eba60b8a17d3e6c73;p=debhelper.git diff --git a/debian/rules b/debian/rules index 29069e7..af5c5e3 100755 --- a/debian/rules +++ b/debian/rules @@ -1,139 +1,106 @@ #!/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. -# # This is _not_ a good example of a debhelper rules file. +# See examples/ for some good examples. -# 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. -VERSION=$(shell expr "`dpkg-parsechangelog 2>/dev/null |grep Version:`" : '.*Version: \(.*\)') - -export DH_VERBOSE=1 +# 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=; \ + close IN; \ + if ($$file=~m/=head1 .*?\n\n(.*?) - (.*?)\n\n/s) { \ + $$collect.="=item $$1(1)\n\n$$2\n\n"; \ + } \ + } \ + END { \ + while () { \ + s/\#LIST\#/$$collect/; \ + print; \ + }; \ + }' -build: link-stamp - # Run regression tests. - $(MAKE) test +# Figure out the `current debhelper version. +VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)') -clean: link-stamp - ./dh_testdir - ./dh_testroot - ./dh_clean link-stamp +PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}') -test: link-stamp - ./dh_clean - DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/* - ./dh_clean +POD2MAN=pod2man -c Debhelper -r "$(VERSION)" -# Build architecture-dependent files here. -binary-arch: link-stamp build -# Nothing to do. +# l10n to be built is determined from .po files +LANGS=$(notdir $(basename $(wildcard man/po4a/po/*.po))) -# Build architecture-independent files here. -binary-indep: link-stamp build - ./dh_testdir - ./dh_testroot - ./dh_clean -k - ./dh_installdirs usr/bin usr/share/debhelper +version: + printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';\n1" > \ + Debian/Debhelper/Dh_Version.pm - 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 - rm -rf debian/debhelper/usr/share/debhelper/autoscripts/CVS +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) --name="debhelper" --section=7 > debhelper.7 + po4a man/po4a/po4a.cfg + set -e; \ + for lang in $(LANGS); do \ + dir=man/$$lang; \ + 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 - ./dh_installdocs `ls -1 doc/* | grep -v CVS` - ./dh_installexamples `ls -1 examples/* | 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=; \ - 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=; \ - close I; \ - open(O,">debian/debhelper/usr/man/man1/debhelper.1"); \ - foreach (@lines) { \ - s/#LIST#/$$collect/; \ - print O; \ - } \ - close O; \ - }' *.1 - ./dh_installchangelogs -# ./dh_movefiles - ./dh_link - ./dh_compress - ./dh_fixperms - ./dh_suidregister - ./dh_installdeb - ./dh_gencontrol - ./dh_md5sums - ./dh_builddeb +clean: + ./run dh_testdir + ./run dh_testroot + ./run dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm + po4a --rm-translations --rm-backups man/po4a/po4a.cfg + for lang in $(LANGS); do \ + if [ -e man/$$lang ]; then rmdir man/$$lang; fi; \ + done; -# 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/\((.*?)\)/' /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 +test: version test-stamp +test-stamp: + ./run dh_clean + ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ } @ARGV' t/* + ./run dh_clean + touch test-stamp -link-stamp: - sh -e debian/fixlinks - touch link-stamp +binary-indep: build + ./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 -# This is for local use - it tags the current code with the debian version -# number, then commits the current code using the contents of the changelog -# as the cvs changelog, then increments the version number -commit: - cvs -Q commit -m "`dpkg-parsechangelog | grep '^ '`" - cvs -Q tag rel-$(shell dpkg-parsechangelog | grep ^Version: \ - |cut -d " " -f 2 |tr '.' '-') - -new: - # Update w/o editing. - EDITOR=true dch -i 2>/dev/null - # Dch has to change the bloody directory name. Feh. - mv . ../debhelper +# Not intended for use by anyone except the author. +announcedir: + @echo ${HOME}/src/joeywiki/code/debhelper/news +binary-arch: binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary dist +.PHONY: build clean binary-indep binary-arch binary