chiark / gitweb /
*** empty log message ***
[userv-utils.git] / debian / rules
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..0349565
--- /dev/null
@@ -0,0 +1,117 @@
+#!/usr/bin/make -f
+
+subdirs_build= ipif www-cgi
+subdirs_nobuild=dyndns groupmanage misc
+package=       userv-utils
+packages_indep=        userv-dyndns userv-groupmanage userv-misc
+packages_arch= userv-ipif userv-cgi
+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/userv-$$s/usr \
+                       etcdir=$t/userv-$$s/etc \
+                       varlib=$t/userv-$$s/var/lib; \
+       done
+       #
+       mv debian/tmp/userv-www-cgi debian/tmp/userv-cgi
+       mv debian/tmp/userv-groupmanage/usr/share/doc/groupmanage \
+          debian/tmp/userv-groupmanage/usr/share/doc/userv-groupmanage
+       #
+       set -e; for p in $(packages); do \
+               install -d $t/$$p/DEBIAN $t/$$p/usr/share/doc/$$p; \
+               cp debian/copyright 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
+       #
+       rename 's/\.example$$//' $t/userv-ipif/etc/userv/vpn/*.example \
+               $t/userv-dyndns/etc/userv/dyndns-service-users.example \
+               $t/userv-groupmanage/etc/groupmanage.conf.example
+       rename 's/\.distrib$$//' $t/*/etc/userv/services.d/*.distrib
+       rename 's/$$/\.disabled/' $t/userv-misc/etc/userv/services.d/mailq
+       set -e; for p in $(packages); do \
+               cd $t/$$p; \
+               test ! -d etc || \
+                 find etc -type f -exec printf '/%s\n' '{}' ';' \
+                       >>DEBIAN/conffiles; \
+       done
+       #
+       mv $t/userv-misc/usr/bin/mailq $t/userv-misc/usr/bin/mailq.userv
+       #
+#      gzip -9f $t/*/usr/share/man/man*/*
+
+binary-hook-userv-misc:
+binary-hook-userv-groupmanage:
+binary-hook-userv-cgi:
+binary-hook-userv-dyndns:
+binary-hook-userv-ipif:
+
+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 -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)
+       dpkg-shlibdeps -Tdebian/sv-userv-ipif \
+               $t/userv-ipif/usr/bin/udptunnel-forwarder \
+               $t/userv-ipif/usr/lib/userv/ipif
+       dpkg-shlibdeps -Tdebian/sv-userv-cgi \
+               $t/userv-cgi/usr/lib/userv/cgi/target \
+               $t/userv-cgi/usr/lib/userv/cgi/cgi/ucgi
+       set -e; for p in $(packages_arch); \
+               do debian/rules binary-one p=$$p; done
+
+define checkdir
+       test -f ipif/service.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