summaryrefslogtreecommitdiff
path: root/debian/rules
blob: ef833d1c3d52a7f32e8774e37536aa5608386e5e (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#!/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.

# 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

build:
	# Run regression tests.
	$(MAKE) test

clean:
	./dh_testdir
	./dh_testroot
	./dh_clean

test:
	./dh_clean
	DH_VERSION=10 perl -MTest::Harness -e 'runtests @ARGV' t/*
	./dh_clean

# 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/lib/debhelper

	echo -e "package Dh_Version;\n\$$version='$(VERSION)';" > debian/debhelper/usr/lib/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/lib/debhelper
	cp -a autoscripts debian/debhelper/usr/lib/debhelper

	./dh_installdocs doc/*
	./dh_installexamples examples/*
	./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=<IN>; \
		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=<I>; \
			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

# 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/\((.*?)\)/'<debian/changelog)
dist:
	dpkg-buildpackage -rfakeroot -tc
	if [ `hostname` = 'kite' ] ; then \
		cp ../debhelper_$(VERSION).tar.gz ../../public; \
		rm /home/ftp/pub/code/debhelper/* || true; \
		cp debian/changelog /home/pub/programs/debhelper/CHANGES; \
		echo $(VERSION) > /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

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