summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 09a09a1eb4552598fb1c30542e5b8714a037eb1b (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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#!/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, but I didn't need
# to tell you that; just see the 25 lines of inlined perl below.. 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

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

clean: link-stamp
	./dh_testdir
	./dh_testroot
	./dh_clean link-stamp

test: link-stamp
	./dh_clean
	DH_VERSION=10 perl -MTest::Harness -e 'runtests grep { ! /CVS/ } @ARGV' t/*
	./dh_clean

# Build architecture-dependent files here.
binary-arch: link-stamp build
# Nothing to do.

# Build architecture-independent files here.
binary-indep: link-stamp build
	./dh_testdir
	./dh_testroot
	./dh_clean -k
	./dh_installdirs usr/bin usr/share/debhelper

	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

	./dh_installdocs `find doc -type f | grep -v CVS`
	./dh_installexamples `find examples -type f | 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=<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: commit link-stamp
	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

link-stamp:
	sh -e debian/fixlinks
	touch link-stamp

# 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

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