]> git.donarmstrong.com Git - debhelper.git/blob - debian/rules
r1788: * Patch from Valéry Perrin to use po4a for localised manpages. Thanks!
[debhelper.git] / debian / rules
1 #!/usr/bin/make -f
2 # This is _not_ a good example of a debhelper rules file.
3 # See examples/ for some good examples.
4
5 # This generates a list of synopses of debhelper commands, and substitutes
6 # it in to the #LIST# line on the man page fed to it on stdin. Must be passed
7 # parameters of all the executables or pod files to get the synopses from.
8 # (Like I said, this is not a good example of a debhelper rules file..)
9 # For correct conversion of pod tag (like S< >) #LIST# must be substituted in 
10 # pod file and not in the troff file
11 MAKEMANLIST=perl -e ' \
12                 undef $$/; \
13                 foreach (@ARGV) { \
14                         open (IN, $$_) or die "$$_: $$!"; \
15                         $$file=<IN>; \
16                         close IN; \
17                         if ($$file=~m/=head1 .*?\n\n(.*?) - (.*?)\n\n/s) { \
18                                 $$collect.="=item $$1(1)\n\n$$2\n\n"; \
19                         } \
20                 } \
21                 END { \
22                         while (<STDIN>) { \
23                                 s/\#LIST\#/$$collect/; \
24                                 print; \
25                         }; \
26                 }'
27
28 # Figure out the `current debhelper version.
29 VERSION=$(shell expr "`dpkg-parsechangelog 2>/dev/null |grep Version:`" : '.*Version: \(.*\)')
30
31 PERLLIBDIR=$(shell perl -MConfig -e 'print $$Config{vendorlib}')
32
33 POD2MAN=pod2man -c Debhelper -r "$(VERSION)"
34
35 build: test build-stamp
36 build-stamp:
37         # Build all the man pages then generate LIST before convert to man
38         find . -maxdepth 1 -type f -perm +100 -name "dh_*" \
39                 -exec $(POD2MAN) {} {}.1 \;
40         cat debhelper.pod | \
41                 $(MAKEMANLIST) `find . -maxdepth 1 -type f -perm +100 -name "dh_*" | sort` | \
42                 $(POD2MAN) --section=7  > debhelper.7
43         # Translated pages.
44         # Generate translated files .pod from <ll>.po and put them in man/<ll> directories
45         po4a po/po4a.cfg 
46         # Generate dh_*.pod then generate LIST before convert to man
47         set -e; \
48         for dir in man/*; do \
49                 lang=`basename $$dir`; \
50                 for file in $$dir/dh_*.pod; do \
51                         prog=`basename $$file | sed 's/.pod//'`; \
52                         $(POD2MAN) $$file $$prog.$$lang.1; \
53                 done; \
54                 cat $$dir/debhelper.pod | \
55                         $(MAKEMANLIST) `find $$dir -type f -maxdepth 1 -name "dh_*.pod" | sort` | \
56                         $(POD2MAN) --section=7 > debhelper.$$lang.7; \
57         done
58         
59         printf "package Debian::Debhelper::Dh_Version;\n\$$version='$(VERSION)';" > \
60                 Debian/Debhelper/Dh_Version.pm
61         touch build-stamp
62
63 clean:
64         ./run dh_testdir
65         ./run dh_testroot
66         ./run dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm
67
68 test: test-stamp
69 test-stamp:
70         ./run dh_clean
71         ./run perl -MTest::Harness -e 'runtests grep { ! /CVS/ && ! /\.svn/ } @ARGV' t/*
72         ./run dh_clean
73         touch test-stamp
74
75 binary-indep: build
76         ./run dh_testdir
77         ./run dh_testroot
78         ./run dh_clean -k
79         ./run dh_install -X .1 dh_* usr/bin
80         ./run dh_install Debian/Debhelper/*.pm $(PERLLIBDIR)/Debian/Debhelper/
81         ./run dh_install autoscripts usr/share/debhelper
82         ./run dh_installdocs doc/*
83         ./run dh_installexamples examples/*
84         ./run dh_installman *.1 *.7
85         ./run dh_installchangelogs
86         ./run dh_shlibdeps
87         ./run dh_link
88         ./run dh_compress
89         ./run dh_fixperms
90         ./run dh_perl
91         ./run dh_installdeb
92         ./run dh_gencontrol
93         ./run dh_md5sums
94         ./run dh_builddeb
95
96 # Update the debhelper web page. Not intended for use by anyone except the
97 # author.
98 DIR=/home/web/kitenet.net/programs/debhelper
99 installhook:
100         cp debian/changelog $(DIR)/CHANGES
101         echo -n $(VERSION) > $(DIR)/LATEST-VERSION-IS
102
103 binary-arch:
104 binary: binary-indep binary-arch
105 .PHONY: build clean binary-indep binary-arch binary