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 142 143 144 145 146 147 148 149 150 151 152
|
#!/usr/bin/make -f
SHELL=/bin/bash
subdirs_build= cprogs
subdirs_nobuild=backup sync-accounts scripts
package= chiark-utils
packages_indep= chiark-backup chiark-scripts
packages_arch= chiark-rwbuffer chiark-really chiark-utils-bin
packages= $(packages_indep) $(packages_arch)
cwd= $(shell pwd)
d= $(cwd)/debian
t= $d/tmp
build:
$(checkdir)
set -e; for s in $(subdirs_build); do $(MAKE) -C $$s all; done
touch build
clean:
$(checkdir)
rm -f build
set -e; for s in $(subdirs_build); do \
$(MAKE) -C $$s -i distclean || \
$(MAKE) -C $$s -f Makefile.in distclean; \
done
rm -rf *~ debian/tmp debian/*~ debian/files* debian/substvars*
binary-prep:
$(checkdir)
rm -rf debian/tmp*
#
set -e; for s in $(subdirs_build) $(subdirs_nobuild); do \
$(MAKE) -C $$s install install-docs install-examples \
prefix=$t/$$s/usr \
etcdir=$t/$$s/etc \
varlib=$t/$$s/var/lib \
mandir=$t/$$s/usr/share/man; \
done
#
mv $t/cprogs $t/chiark-utils-bin
#
cp -a debian/tmp/sync-accounts/* debian/tmp/scripts/.
rm -r debian/tmp/sync-accounts
mv debian/tmp/scripts debian/tmp/chiark-scripts
mv debian/tmp/backup debian/tmp/chiark-backup
#
set -e; for p in $(packages); do \
install -d $t/$$p/DEBIAN $t/$$p/usr/share/doc/$$p; \
cp debian/copyright debian/changelog \
$t/$$p/usr/share/doc/$$p/; \
ln -s changelog.gz \
$t/$$p/usr/share/doc/$$p/changelog.Debian.gz; \
gzip -9v $t/$$p/usr/share/doc/$$p/changelog; \
done
#
install -d $t/chiark-rwbuffer/usr/bin
install -d $t/chiark-rwbuffer/usr/share/man/man1
cd $t/chiark-utils-bin/usr/bin && \
mv readbuffer writebuffer $t/chiark-rwbuffer/usr/bin/
cd $t/chiark-utils-bin/usr/share/man/man1 && \
mv readbuffer.1 writebuffer.1 $t/chiark-rwbuffer/usr/share/man/man1/
#
install -d $t/chiark-backup/usr/share/man/man1
cp backup/man/*.1 $t/chiark-backup/usr/share/man/man1/
cd $t/chiark-backup/usr/share/man/man1 && \
for m in *.1; do \
mv "$$m" backup-"$$m"; \
done
cp \
$t/chiark-backup/usr/share/doc/chiark-backup/examples/chiark/settings.sh \
$t/chiark-backup/etc/chiark-backup/settings.sh
#
install -d $t/chiark-really/usr/sbin
install -d $t/chiark-really/usr/share/man/man8
cd $t/chiark-utils-bin/usr/sbin && \
mv really $t/chiark-really/usr/sbin/
cd $t/chiark-utils-bin/usr/share/man/man8 && \
mv really.8 $t/chiark-really/usr/share/man/man8/
rm $t/chiark-utils-bin/usr/sbin/trivsoundd \
$t/chiark-utils-bin/usr/share/man/man8/trivsoundd.8
rmdir $t/chiark-utils-bin/usr/sbin \
$t/chiark-utils-bin/usr/share/man/man8
#
gzip -9f $t/*/usr/share/man/man*/*
binary-hook-chiark-backup:
binary-hook-chiark-rwbuffer:
binary-hook-sync-accounts:
binary-hook-chiark-scripts:
binary-hook-chiark-really:
binary-hook-chiark-utils-bin:
binary-one:
set -e; for f in preinst postinst prerm postrm conffiles; do \
test -f debian/$p/$$f || continue; \
cp debian/$p/$$f $t/$p/DEBIAN/$$f; \
chmod u=rwX,go=rX $t/$p/DEBIAN/$$f; \
done
dpkg-gencontrol -isp -p$p -P$t/$p -Tdebian/sv-$p
chown -R root.root debian/tmp
chmod -R g-ws debian/tmp
debian/rules binary-hook-$p
dpkg --build $t/$p ..
binary-indep: checkroot build binary-prep
set -e; for p in $(packages_indep); do \
debian/rules binary-one p=$$p; done
binary-arch: checkroot build binary-prep
$(checkdir)
set -ex; for p in chiark-really chiark-utils-bin chiark-rwbuffer; do \
dh_strip -p$$p -Pdebian/tmp/$$p; done
dpkg-shlibdeps -Tdebian/sv-chiark-rwbuffer \
$t/chiark-rwbuffer/usr/bin/*
dpkg-shlibdeps -Tdebian/sv-chiark-really \
$t/chiark-really/usr/sbin/*
set -e; for f in $t/chiark-utils-bin/usr/bin/*; do \
case "$$f" in \
*/xacpi-simple) d=Suggests ;; \
*/watershed|*/summer) d=Recommends ;; \
*) d=Depends ;; \
esac; \
a="$$a -d$$d $$f"; \
done; set -x; \
dpkg-shlibdeps -Tdebian/sv-chiark-utils-bin $$a
perl -i~ -pe ' '\
-e' next unless m/^shlibs:/; '\
-e' s/$$/,/; s/=/=, /; '\
-e' s/, libgmp3(?:c2)?,/, libgmp3 | libgmp3c2,/; '\
-e' s/=, /=/; s/,$$//; '\
debian/sv-*[!~]
set -e; for p in $(packages_arch); \
do debian/rules binary-one p=$$p; done
define checkdir
test -f cprogs/writebuffer.c
endef
# Below here is fairly generic really
binary: binary-indep binary-arch
source diff:
@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
checkroot:
$(checkdir)
test root = "`whoami`"
.PHONY: binary binary-arch binary-indep clean checkroot
|