#!/usr/bin/make -f # -*- makefile -*- # debian/rules file - for gcc 3.2.3 with mspgcc patches # Based on sample debian/rules file - for GNU Hello (1.3). # Copyright 1994,1995 by Ian Jackson. # I hereby give you perpetual unlimited permission to copy, # modify and relicense this file, provided that you do not remove # my name from the file itself. (I assert my moral right of # paternity under the Copyright, Designs and Patents Act 1988.) # This file may have to be extensively modified include /usr/share/dpatch/dpatch.make package = deputy-tinyos # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif STRIP = strip --strip-unneeded --remove-section=.comment --remove-section=.note install_dir = install -d -m 755 install_file = install -m 644 install_script = install -m 755 install_binary = install -m 755 -s DISTRIBUTION := $(shell lsb_release -is) NJOBS = # Support parallel= in DEB_BUILD_OPTIONS (see #209008) ifneq (,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) COMMA = , NJOBS := -j $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS)))) endif # At the current time (20080827) deputy-tinyos will not build from a separate # build directory. # # For now, the solution is quite hackish: copy the source directory to the # build directory before running configure. tempdir := $(shell tempfile $(PACKAGE)) configure-stamp: patch-stamp $(checkdir) rm -rf configure-stamp builddir rm -f $(tempdir) cp -a . $(tempdir) rm -rf $(tempdir)/debian mv -f $(tempdir) builddir cd builddir && ./configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \ --mandir=/usr/share/man --infodir=/usr/share/info \ CFLAGS="$(CFLAGS)" LDFLAGS="-Wl,-z,defs" touch $@ build: build-stamp build-stamp: configure-stamp $(checkdir) $(MAKE) -C builddir #docbook-to-man debian/deputy.sgml > deputy.1 touch $@ install: install-stamp install-stamp: checkroot build-stamp $(checkdir) rm -rf debian/tmp $(install_dir) debian/tmp $(MAKE) -C builddir prefix=$$(pwd)/debian/tmp/usr \ mandir=$$(pwd)/debian/tmp/usr/share/man install : # upstream Makefile doesn't understand mandir $(install_dir) debian/tmp/usr/share mv $$(pwd)/debian/tmp/usr/man \ $$(pwd)/debian/tmp/usr/share/man touch $@ # Build architecture-independent files here. binary-indep: checkroot build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: checkroot build install $(checkdir) : # install maintainer scripts $(install_dir) debian/tmp/DEBIAN : # install post scripts : # $(install_script) debian/deputy-tinyos.postinst debian/tmp/DEBIAN/postinst : # $(install_script) debian/deputy-tinyos.postrm debian/tmp/DEBIAN/postrm : # $(install_file) debian/deputy-tinyos.shlibs debian/tmp/DEBIAN/shlibs : # install docs $(install_dir) debian/tmp/usr/share/doc/$(package)/ $(install_file) debian/changelog \ debian/tmp/usr/share/doc/$(package)/changelog.Debian $(install_file) debian/copyright debian/tmp/usr/share/doc/$(package)/ $(install_file) LICENSE debian/README.Debian \ debian/tmp/usr/share/doc/$(package)/ : # Remove unnecessary files installed rm debian/tmp/usr/lib/deputy/bin/deputy.byte.exe : # Create links : # Compress stuff that needs it gzip -9 debian/tmp/usr/share/man/man1/* find debian/tmp/usr/share/doc/$(package)/ -type f ! -name copyright | \ xargs gzip -9 : # Finish it all up find debian/tmp -type f | xargs file | grep ELF | cut -d: -f 1 | \ xargs dpkg-shlibdeps dpkg-gencontrol -isp $(CONFLICTS) chown -R root:root debian/tmp chmod -R go=rX debian/tmp dpkg --build debian/tmp .. binary: binary-indep binary-arch clean: unpatch $(checkdir) -rm -rf debian/tmp builddir -find . -name \*.gmo -o -name \*~ -o -name \*.info | xargs rm -f -rm -fr debian/patched debian/files* debian/substvars -rm -f *-stamp define checkdir test -f cil/config.h.in -a -f debian/rules endef checkroot: $(checkdir) test root = "`whoami`" .PHONY: build clean binary-indep binary-arch binary install checkroot