rules revision 75df90ee416be3e2196e0977cd405053df505073
1#! /usr/bin/make -f
2
3# Debian package information
4package		= strace
5
6DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
7DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
8DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)
9
10VERSION := $(shell dpkg-parsechangelog | awk '/^Version: / { print $$2 }')
11UDEB := strace-udeb_$(VERSION)_$(DEB_HOST_ARCH).udeb
12
13arch64_map = i386=x86_64 powerpc=powerpc64 sparc=sparc64 s390=s390x
14ifneq (,$(filter $(DEB_HOST_ARCH)=%, $(arch64_map)))
15  HOST64 = $(strip $(patsubst $(DEB_HOST_ARCH)=%, %, \
16	     $(filter $(DEB_HOST_ARCH)=%, $(arch64_map))))-linux-gnu
17  CC64 = gcc -m64
18  extra_build_targets += stamp-build64
19endif
20
21ifeq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
22  CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE)
23else
24  CONFIG_OPTS = --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
25endif
26
27all build: stamp-build $(extra_build_targets)
28
29stamp-%: %/Makefile
30	$(MAKE) -C $*
31	touch $@
32
33build/Makefile:
34	mkdir -p $(@D)
35	cd $(@D); sh ../configure --prefix=/usr $(CONFIG_OPTS)
36
37build64/Makefile:
38	mkdir -p $(@D)
39	cd $(@D); CC="$(CC64)" sh ../configure --prefix=/usr --build=$(DEB_BUILD_GNU_TYPE) --host=$(HOST64)
40
41clean:
42	rm -rf debian/$(package) debian/substvars debian/files debian/files~
43	rm -rf build64 stamp-build64
44	rm -rf build stamp-build
45
46binary: binary-indep binary-arch
47
48binary-indep:
49
50binary-arch: build checkroot
51	test -f stamp-build || make $(MFLAGS) -f debian/rules build
52	-rm -rf debian/$(package) debian/files debian/substvars
53
54	install -d -m 755 -o root -g root debian/$(package)
55	# reset the mode to work around a bug in install
56	chown 755 debian/$(package)
57	install -d -m 755 -o root -g root debian/$(package)/DEBIAN
58
59# Install strace
60	install -d -o root -g root -m 755 debian/$(package)/usr/bin
61	install -o root -g root -m 755 build/strace \
62		debian/$(package)/usr/bin/strace
63	dh_strip
64
65	dpkg-gencontrol -is -pstrace-udeb -fdebian/files~
66	dpkg-deb --build debian/$(package) ../$(UDEB)
67	dpkg-distaddfile $(UDEB) debian-installer extra
68
69# Install documentation
70	install -d -o root -g root -m 755 \
71		debian/$(package)/usr/share/doc/$(package)
72	install -d -o root -g root -m 755 debian/$(package)/usr/share/man/man1
73	install -p -o root -g root -m 644 debian/changelog \
74 		debian/$(package)/usr/share/doc/$(package)/changelog.Debian
75	install -p -o root -g root -m 644 TODO \
76 		debian/$(package)/usr/share/doc/$(package)/TODO
77	install -p -o root -g root -m 644 NEWS \
78 		debian/$(package)/usr/share/doc/$(package)/changelog
79	gzip -9 debian/$(package)/usr/share/doc/$(package)/*
80	install -p -o root -g root -m 644 debian/copyright \
81 		debian/$(package)/usr/share/doc/$(package)/copyright
82	install -p -o root -g root -m 644 strace.1 \
83		debian/$(package)/usr/share/man/man1/strace.1
84	gzip -9 debian/$(package)/usr/share/man/man1/strace.1
85
86ifneq (,$(HOST64))
87	install -o root -g root -m 755 build64/strace debian/$(package)/usr/bin/strace64
88	ln -s strace.1.gz debian/$(package)/usr/share/man/man1/strace64.1.gz
89	dh_strip
90endif
91
92	dpkg-shlibdeps build/strace $(patsubst yes,build64/strace,$(build64))
93
94	dpkg-gencontrol -is -pstrace
95	dpkg-deb --build debian/$(package) ..
96
97checkroot:
98	test root = "`whoami`"
99