X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Makefile;h=38f3c15d7b2370d5e7136e747b84e14f831993fe;hb=18a0da8092ea9f3dc48bca92b36f592af25a608d;hp=5efe0a3f29c6e7a67a5969ca03ec91268cef95f1;hpb=4d52de86a9ea0822ed2b9965892ac7a658c0fcee;p=debhelper.git diff --git a/Makefile b/Makefile index 5efe0a3..38f3c15 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,94 @@ -# Take it from here, debian/rules. -# This whole file could be a symlink, but CVS sucks. -include debian/rules +# List of files of dh_* commands. Sorted for debhelper man page. +COMMANDS=$(shell find . -maxdepth 1 -type f -perm +100 -name "dh_*" -printf "%f\n" | sort) + +# Find deprecated commands by looking at their synopsis. +DEPRECATED=$(shell egrep -l '^dh_.* - .*deprecated' $(COMMANDS)) + +# 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. +# 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) { \ + my $$item="=item $$1(1)\n\n$$2\n\n"; \ + if (" $(DEPRECATED) " !~ / $$1 /) { \ + $$list.=$$item; \ + } \ + else { \ + $$list_deprecated.=$$item; \ + } \ + } \ + } \ + END { \ + while () { \ + s/\#LIST\#/$$list/; \ + s/\#LIST_DEPRECATED\#/$$list_deprecated/; \ + print; \ + }; \ + }' + +# Figure out the `current debhelper version. +VERSION=$(shell expr "`dpkg-parsechangelog |grep Version:`" : '.*Version: \(.*\)') + +PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}')/Debian/Debhelper + +POD2MAN=pod2man --utf8 -c Debhelper -r "$(VERSION)" + +# l10n to be built is determined from .po files +LANGS=$(notdir $(basename $(wildcard man/po4a/po/*.po))) + +build: version debhelper.7 + find . -maxdepth 1 -type f -perm +100 -name "dh*" \ + -exec $(POD2MAN) {} {}.1 \; + po4a --previous -L UTF-8 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; \ + if [ -e $$dir/debhelper.pod ]; then \ + cat $$dir/debhelper.pod | \ + $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | sort` | \ + $(POD2MAN) --name="debhelper" --section=7 > debhelper.$$lang.7; \ + fi; \ + done + +version: + printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';\n1" > \ + Debian/Debhelper/Dh_Version.pm + +debhelper.7: debhelper.pod + cat debhelper.pod | \ + $(MAKEMANLIST) $(COMMANDS) | \ + $(POD2MAN) --name="debhelper" --section=7 > debhelper.7 + +clean: + rm -f *.1 *.7 Debian/Debhelper/Dh_Version.pm + po4a --previous --rm-translations --rm-backups man/po4a/po4a.cfg + for lang in $(LANGS); do \ + if [ -e man/$$lang ]; then rmdir man/$$lang; fi; \ + done; + +install: + install -d $(DESTDIR)/usr/bin \ + $(DESTDIR)/usr/share/debhelper/autoscripts \ + $(DESTDIR)$(PERLLIBDIR)/Sequence \ + $(DESTDIR)$(PERLLIBDIR)/Buildsystem + install dh $(COMMANDS) $(DESTDIR)/usr/bin + install -m 0644 autoscripts/* $(DESTDIR)/usr/share/debhelper/autoscripts + install -m 0644 Debian/Debhelper/*.pm $(DESTDIR)$(PERLLIBDIR) + install -m 0644 Debian/Debhelper/Sequence/*.pm $(DESTDIR)$(PERLLIBDIR)/Sequence + install -m 0644 Debian/Debhelper/Buildsystem/*.pm $(DESTDIR)$(PERLLIBDIR)/Buildsystem + +test: version + ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ && -f && -x } @ARGV' t/* t/buildsystems/* + # clean up log etc + ./run dh_clean