diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..521e0b1d --- /dev/null +++ b/debian/rules @@ -0,0 +1,183 @@ +#!/usr/bin/make -f +############################ -*- Mode: Makefile -*- ########################### +## rules --- +## Author : Marcus Brinkmann <brinkmd@debian.org> +## Created On : Sat, 1 Aug 1998 21:33:31 +0200 +## Created On Node : localhost +## Last Modified By : Marcus Brinkmann +## Last Modified On : Thu, 23 Sep 1999 01:41:38 +0200 +## Last Machine Used: localhost +## Update Count : 2 +## Status : Unknown, Use with caution! +## HISTORY : +## Description : +## +############################################################################### + +# The name of the package (for example, `emacs'). +package := hurd + +DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) + +# Configuration variables (these should be pretty generic) +CC = cc +CFLAGS = -O2 -g -pipe -Wall +LDFLAGS = -s +PREFIX = /usr +BINDIR = $(PREFIX)/bin +MANDIR = $(PREFIX)/man +INFODIR = $(PREFIX)/info +DOCDIR = $(PREFIX)/doc/$(package) + +# Package specific stuff. The idea is to try to make the rules +# generic (gradually). + +FILES_TO_CLEAN = debian/files include/*.h +DIRS_TO_CLEAN = debian/tmp debian/$(package)-dev build +STAMPS_TO_CLEAN = stamp-build stamp-config + +install_file = install -o root -g root -m 644 +install_program = install -s -o root -g root -m 755 +make_directory = install -d -o root -g root -m 755 + +define checkdir + test -f debian/rules +endef + +define checkroot + @test 0 = "`id -u`" || (echo need root priviledges; exit 1) +endef + +# Next is NOT a phony target. + +configure: configure.in + aclocal + autoconf + +# The next IS a phony target. + +config: stamp-config +stamp-config: configure + $(checkdir) + -mkdir build + cd build && ../configure --build=$(DEB_BUILD_GNU_TYPE) \ + --host=$(DEB_HOST_GNU_TYPE) --prefix= + touch stamp-config + +all build: config stamp-build +stamp-build: + $(checkdir) + cd build && $(MAKE) no_prof=t +# XXX-doc + cd build && $(MAKE) -C doc hurd.info + cd build && $(MAKE) -C doc hurd.ps + touch stamp-build + +clean: + $(checkdir) +# -cd build && make clean no_deps=t + -rm -f $(FILES_TO_CLEAN) $(STAMPS_TO_CLEAN) + -rm -rf $(DIRS_TO_CLEAN) +# XXX-doc + -rm -f doc/hurd.d doc/hurd.info* version.texi + for NAME in hurd/*.h; do \ + if [ -L $$NAME ] ; then \ + rm -f $$NAME ; \ + fi \ + done + -rm -f core `find . \( -name '*.o' -name '*.orig' -o -name '*.rej' -o -name '*~' \ + -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \ + -o -name '.*.rej' -o -name '.SUMS' \) -print` + +binary: binary-indep binary-arch + +binary-indep: +# We have nothing to do here. + +binary-arch: build + $(checkdir) + $(checkroot) + -rm -rf debian/{tmp,$(package)-dev} + +# first the general install + $(make_directory) debian/tmp/boot + cd build && $(MAKE) install prefix=`pwd`/../debian/tmp no_prof=t +# kill the profiling libs + -rm -f debian/tmp/lib/*_p.a +# /etc/motd is in base-files! + -rm -f debian/tmp/etc/motd +# probably we'll make debug packages later, for now, strip'em + -strip --strip-unneeded debian/tmp/lib/lib*.so + -strip --strip-debug debian/tmp/lib/lib*.a + -strip --strip-all debian/tmp/bin/* + -strip --strip-all debian/tmp/sbin/* + -strip --strip-all debian/tmp/boot/* + -strip --strip-all debian/tmp/hurd/* + -strip --strip-all debian/tmp/libexec/* + chmod 0644 debian/tmp/lib/lib*.a + chmod 0755 $(addprefix debian/tmp/, \ + include include/hurd \ + lib hurd bin sbin \ + dev libexec etc etc/login) + +# now distribute the files +# first the source package + $(make_directory) debian/$(package)-dev/{DEBIAN,usr/{doc,bin,lib}} + ln -s $(package) debian/$(package)-dev/usr/doc/$(package)-dev + mv debian/tmp/include debian/$(package)-dev/usr/. + mv debian/tmp/lib/*.a debian/$(package)-dev/usr/lib/. + # Create development library links. + for file in `cd debian/tmp/lib && ls *.so.*`; do \ + linkname=`echo "$$file" | sed 's/\..*$$/.so/'`; \ + ln -sf /lib/$$file debian/$(package)-dev/usr/lib/$$linkname; \ + done + rm -f debian/tmp/lib/*.so + + dpkg-gencontrol -p$(package)-dev -Pdebian/$(package)-dev + chown -R root.root debian/$(package)-dev + dpkg --build debian/$(package)-dev .. + +# now the shared libs and other stuff + $(make_directory) debian/tmp/DEBIAN + $(make_directory) debian/tmp$(DOCDIR) + $(make_directory) debian/tmp$(INFODIR) + + gzip -9fq debian/tmp/boot/serverboot + +# Only found in CVS, not the distribution. +# $(install_file) BUGS debian/tmp$(DOCDIR) +# $(install_file) TODO debian/tmp$(DOCDIR) + $(install_file) INSTALL debian/tmp$(DOCDIR) + $(install_file) NEWS debian/tmp$(DOCDIR) + $(install_file) README debian/tmp$(DOCDIR) + $(install_file) tasks debian/tmp$(DOCDIR) + $(install_file) ChangeLog debian/tmp$(DOCDIR)/changelog + $(install_file) debian/README.Debian debian/tmp$(DOCDIR) + $(install_file) debian/changelog debian/tmp$(DOCDIR)/changelog.Debian +# XXX-doc + $(install_file) build/doc/hurd.ps debian/tmp$(DOCDIR) + gzip -9frq debian/tmp$(DOCDIR)/. + $(install_file) debian/copyright debian/tmp$(DOCDIR) + +# XXX-doc + $(install_file) build/doc/hurd.info* debian/tmp$(INFODIR) + -gzip -9frq debian/tmp$(INFODIR) + + $(install_file) debian/servers.boot debian/tmp/boot/servers.boot + $(make_directory) debian/tmp/servers + +# libexec/runsystem is managed by update-alternatives + mv debian/tmp/libexec/runsystem debian/tmp/libexec/runsystem.gnu + + $(install_file) debian/conffiles debian/tmp/DEBIAN/conffiles + $(install_file) debian/shlibs debian/tmp/DEBIAN/shlibs + $(install_program) debian/postinst debian/tmp/DEBIAN/postinst + $(install_program) debian/prerm debian/tmp/DEBIAN/prerm + + dpkg-shlibdeps -p$(package) debian/tmp/bin/* debian/tmp/libexec/* debian/tmp/hurd/* debian/tmp/sbin/* + dpkg-gencontrol -p$(package) -Pdebian/tmp + chown -R root.root debian/tmp + dpkg --build debian/tmp .. + +.PHONY: build config clean binary-indep binary-arch binary |