summaryrefslogtreecommitdiff
path: root/debian/rules
blob: ffb2c9ba536dcdc8e3b6f47bf0124ebaf6dfd2fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/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 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

# 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}')

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

	touch build-stamp

clean:
	./dh_testdir
	./dh_testroot
	-./dh_clean *.1 *.7 *-stamp Debian/Debhelper/Dh_Version.pm

test: test-stamp
test-stamp:
	./dh_clean
	DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/*
	./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_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_shlibdeps
	./dh_link
	./dh_compress
	./dh_fixperms
	./dh_perl
	./dh_installdeb
	./dh_gencontrol
	./dh_md5sums
	./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 $(DIR)/CHANGES
	echo -n $(VERSION) > $(DIR)/LATEST-VERSION-IS

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary dist