chiark / gitweb /
@@ -1,3 +1,9 @@
[chiark-utils.git] / debian / rules
1 #!/usr/bin/make -f
2
3 subdirs=        backup
4 package=        chiark-utils
5 packages_indep= chiark-backup sync-accounts chiark-named-conf
6 packages_arch=  chiark-rwbuffer
7 packages=       $(packages_indep) $(packages_arch)
8
9 cwd=    $(shell pwd)
10 d=      $(cwd)/debian
11 t=      $d/tmp
12
13 build:
14         $(checkdir)
15         set -e; for s in $(subdirs); do $(MAKE) -C $$s all; done
16         touch build
17
18 clean:
19         $(checkdir)
20         rm -f build
21         set -e; for s in $(subdirs); do \
22                 $(MAKE) -C $$s -i distclean || \
23                 $(MAKE) -C $$s -f Makefile.in distclean; \
24         done
25         rm -rf *~ debian/tmp debian/*~ debian/files* debian/substvars*
26
27 binary-prep:
28         $(checkdir)
29         rm -rf debian/tmp*
30         #
31         set -e; for p in $(packages); do \
32                 install -d $t/$$p/DEBIAN $t/$$p/usr/share/doc/$$p; \
33                 cp debian/copyright debian/changelog \
34                         $t/$$p/usr/share/doc/$$p; \
35                 ln -s changelog.gz \
36                         $t/$$p/usr/share/doc/$$p/changelog.Debian.gz; \
37                 gzip -9v $t/$$p/usr/share/doc/$$p/changelog; \
38                 done
39         #
40         $(MAKE) -C backup install install-docs install-examples \
41                 prefix=$t/chiark-backup/usr \
42                 etcdir=$t/chiark-backup/etc \
43                 varlib=$t/chiark-backup/var/lib \
44                 mandir=$t/chiark-backup/usr/share/man
45         #
46         $(MAKE) -C sync-accounts install install-docs install-examples \
47                 prefix=$t/sync-accounts/usr \
48                 etcdir=$t/sync-accounts/etc \
49                 varlib=$t/sync-accounts/var/lib \
50                 mandir=$t/sync-accounts/usr/share/man
51         #
52         $(MAKE) -C scripts install install-docs install-examples \
53                 prefix=$t/chiark-named-conf/usr \
54                 etcdir=$t/chiark-named-conf/etc \
55                 varlib=$t/chiark-named-conf/var/lib \
56                 mandir=$t/chiark-named-conf/usr/share/man
57         #
58         install -d $t/chiark-rwbuffer/usr/bin
59         install -d $t/chiark-rwbuffer/usr/share/man/man1
60         cd $t/chiark-backup/usr/bin && \
61                 mv readbuffer writebuffer $t/chiark-rwbuffer/usr/bin
62         cd $t/chiark-backup/usr/share/man/man1 && \
63                 mv readbuffer.1 writebuffer.1 $t/chiark-rwbuffer/usr/share/man/man1
64         gzip -9f $t/*/usr/share/man/man*/*
65
66 binary-hook-chiark-backup:
67 binary-hook-chiark-rwbuffer:
68 binary-hook-sync-accounts:
69 binary-hook-chiark-named-conf:
70
71 binary-one:
72         set -e; for f in preinst postinst prerm postrm conffiles; do \
73                 test -f debian/$p/$$f || continue; \
74                 cp debian/$p/$$f $t/$p/DEBIAN/$$f; \
75                 chmod u=rwX,go=rX $t/$p/DEBIAN/$$f; \
76         done
77         dpkg-gencontrol -p$p -P$t/$p -Tdebian/sv-$p
78         chown -R root.root debian/tmp
79         chmod -R g-ws debian/tmp
80         debian/rules binary-hook-$p
81         dpkg --build $t/$p ..
82
83 binary-indep:   checkroot build binary-prep
84         set -e; for p in $(packages_indep); do \
85                 debian/rules binary-one p=$$p; done
86
87 binary-arch:    checkroot build binary-prep
88         $(checkdir)
89         dpkg-shlibdeps -Tdebian/sv-chiark-rwbuffer $t/chiark-rwbuffer/usr/bin/*
90         set -e; for p in $(packages_arch); \
91                 do debian/rules binary-one p=$$p; done
92
93 define checkdir
94         test -f backup/writebuffer.c
95 endef
96
97 # Below here is fairly generic really
98
99 binary:         binary-indep binary-arch
100
101 source diff:
102         @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
103
104 checkroot:
105         $(checkdir)
106         test root = "`whoami`"
107
108 .PHONY: binary binary-arch binary-indep clean checkroot