]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - debian/rules
Add 'debian/' from commit '3814f9febb4315c71e12ff32751afe5f73ada996'
[tinyos-2.x.git] / debian / rules
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..aaf0384
--- /dev/null
@@ -0,0 +1,213 @@
+#!/usr/bin/make -f
+# debian/rules file - for tinyos-tools
+# Based on sample debian/rules file - for GNU Hello (1.3).
+# Copyright 1994,1995 by Ian Jackson.
+# Copyright 1998-2007 James Troup
+# 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
+
+version := $(shell head -1 debian/changelog | sed -e s'|^.*(\(.*\)-.*).*$$|\1|')
+tosver := $(shell echo $(version) | sed -e s'|-.*||')
+tmiver := $(shell echo $(version) | sed -e s'|^.*-||')
+
+package = tinyos
+toolspkg = $(package)-tools
+srcmetapkg = $(package)-source
+srcpkg = $(srcmetapkg)-$(version)
+msppkg = tinyos-msp430
+avrpkg = tinyos-avr
+
+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)
+dtmp := debian/tmp
+
+
+# At the current time (20080827) tinyos-tools 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))
+
+debian/control: debian/control.in debian/changelog
+       sed -e 's/RELEASE-VERSION/$(version)/g' < $< | \
+               sed -e 's/TOS-VERSION/$(tosver)/g' | \
+               sed -e 's/TMI-VERSION/$(tmiver)/g' > debian/control
+
+configure-stamp:
+       $(checkdir)
+       rm -rf configure-stamp $(dtmp)/builddir $(tempdir)
+       $(install_dir) $(dtmp)
+       cp -a . $(tempdir)
+       mv $(tempdir) $(dtmp)/builddir
+       rm -rf $(dtmp)/builddir/debian
+       cd $(dtmp)/builddir/tools && ./Bootstrap && ./configure --prefix=/usr
+       touch $@
+
+
+build: build-stamp
+build-stamp: configure-stamp
+       $(checkdir)
+       $(MAKE) -C $(dtmp)/builddir/tools
+       touch $@
+
+
+install: install-stamp
+install-stamp: checkroot build-stamp
+       $(checkdir)
+       rm -rf $(dtmp)/$(toolspkg)
+       $(install_dir) $(dtmp)/$(toolspkg)
+       $(MAKE) -C $(dtmp)/builddir/tools \
+               prefix=$$(pwd)/$(dtmp)/$(toolspkg)/usr \
+               mandir=$$(pwd)/$(dtmp)/$(toolspkg)/usr/share/man install
+       touch $@
+
+
+binary-indep: checkroot build install
+       : # Nothing to do
+
+
+binary-arch: checkroot build install
+       $(checkdir)
+
+       : # Build the tinyos package too
+       rm -rf $(dtmp)/$(package)
+       $(install_dir) $(dtmp)/$(package)/DEBIAN
+       $(install_dir) $(dtmp)/$(package)/opt/tinyos
+       $(install_file) tinyos.sh $(dtmp)/$(package)/opt/tinyos
+       $(install_dir) $(dtmp)/$(package)/usr/share/lintian/overrides
+       $(install_file) debian/$(package).lintian-overrides \
+               $(dtmp)/$(package)/usr/share/lintian/overrides/$(package)
+       $(install_dir) $(dtmp)/$(package)/usr/share/doc/$(package)/
+       $(install_file) debian/copyright \
+               $(dtmp)/$(package)/usr/share/doc/$(package)/
+       $(install_file) tools/README debian/README.Debian \
+               $(dtmp)/$(package)/usr/share/doc/$(package)/
+       dpkg-gencontrol -isp -P$(dtmp)/$(package) -p$(package)
+       chown -R root:root $(dtmp)/$(package)
+       chmod -R go=rX  $(dtmp)/$(package)
+       dpkg --build $(dtmp)/$(package) ..
+
+       : # Build the tinyos-tools package
+       $(install_dir) $(dtmp)/$(toolspkg)/DEBIAN
+       $(install_dir) $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/
+       $(install_file) debian/changelog \
+               $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/changelog.Debian
+       $(install_file) debian/copyright \
+               $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/
+       $(install_file) tools/README debian/README.Debian \
+               $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/
+       gzip -9 $(dtmp)/$(toolspkg)/usr/share/man/man1/*
+       find $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg) -type f \
+               ! -name copyright | xargs gzip -9
+       $(install_dir) $(dtmp)/$(toolspkg)/usr/share/lintian/overrides
+       $(install_file) debian/$(toolspkg).lintian-overrides \
+               $(dtmp)/$(toolspkg)/usr/share/lintian/overrides/$(toolspkg)
+       find $(dtmp)/$(toolspkg) -type f | xargs file | grep ELF | \
+               cut -d: -f 1 | xargs dpkg-shlibdeps
+       dpkg-gencontrol -isp -P$(dtmp)/$(toolspkg) -p$(toolspkg)
+       chown -R root:root $(dtmp)/$(toolspkg)
+       chmod -R go=rX  $(dtmp)/$(toolspkg)
+       dpkg --build $(dtmp)/$(toolspkg) ..
+
+       : # Build the tinyos-source meta package
+       rm -rf $(dtmp)/$(srcmetapkg)
+       $(install_dir) $(dtmp)/$(srcmetapkg)/DEBIAN
+       $(install_dir) $(dtmp)/$(srcmetapkg)/usr/share/lintian/overrides
+       $(install_file) debian/$(srcmetapkg).lintian-overrides \
+               $(dtmp)/$(srcmetapkg)/usr/share/lintian/overrides/$(srcmetapkg)
+       $(install_dir) $(dtmp)/$(srcmetapkg)/usr/share/doc/$(srcmetapkg)/
+       $(install_file) debian/copyright \
+               $(dtmp)/$(srcmetapkg)/usr/share/doc/$(srcmetapkg)/
+       dpkg-gencontrol -isp -P$(dtmp)/$(srcmetapkg) -p$(srcmetapkg)
+       chown -R root:root $(dtmp)/$(srcmetapkg)
+       chmod -R go=rX  $(dtmp)/$(srcmetapkg)
+       dpkg --build $(dtmp)/$(srcmetapkg) ..
+
+       : # Build the tinyos-source-VERSION package
+       rm -rf $(dtmp)/$(srcpkg)
+       $(install_dir) $(dtmp)/$(srcpkg)/DEBIAN
+       $(install_dir) $(dtmp)/$(srcpkg)/opt/tinyos
+       chmod u+x tools/release/extractor
+       tools/release/extractor $(dtmp)/$(srcpkg)/opt/tinyos/$(version) < \
+               tools/release/tinyos.files >/dev/null
+       $(install_dir) $(dtmp)/$(srcpkg)/usr/share/lintian/overrides
+       $(install_file) debian/$(srcmetapkg).lintian-overrides \
+               $(dtmp)/$(srcpkg)/usr/share/lintian/overrides/$(srcpkg)
+       $(install_dir) $(dtmp)/$(srcpkg)/usr/share/doc/$(srcpkg)/
+       $(install_file) debian/changelog \
+               $(dtmp)/$(srcpkg)/usr/share/doc/$(srcpkg)/changelog.Debian
+       $(install_file) debian/copyright \
+               $(dtmp)/$(srcpkg)/usr/share/doc/$(srcpkg)/
+       $(install_file) tools/README debian/README.Debian \
+               $(dtmp)/$(srcpkg)/usr/share/doc/$(srcpkg)/
+       find $(dtmp)/$(srcpkg)/usr/share/doc/$(srcpkg) -type f \
+               ! -name copyright | xargs gzip -9
+       dpkg-gencontrol -isp -P$(dtmp)/$(srcpkg) -p$(srcpkg)
+       chown -R root:root $(dtmp)/$(srcpkg)
+       chmod -R go=rX  $(dtmp)/$(srcpkg)
+       dpkg --build $(dtmp)/$(srcpkg) ..
+
+       : # Build tinyos-msp430 dummy package
+       rm -rf $(dtmp)/$(msppkg)
+       $(install_dir) $(dtmp)/$(msppkg)/DEBIAN
+       $(install_dir) $(dtmp)/$(msppkg)/usr/share/lintian/overrides
+       $(install_file) debian/$(msppkg).lintian-overrides \
+               $(dtmp)/$(msppkg)/usr/share/lintian/overrides/$(msppkg)
+       $(install_dir) $(dtmp)/$(msppkg)/usr/share/doc/$(msppkg)/
+       $(install_file) debian/copyright \
+               $(dtmp)/$(msppkg)/usr/share/doc/$(msppkg)/
+       $(install_file) tools/README debian/README.Debian \
+               $(dtmp)/$(msppkg)/usr/share/doc/$(msppkg)/
+       dpkg-gencontrol -isp -P$(dtmp)/$(msppkg) -p$(msppkg)
+       chown -R root:root $(dtmp)/$(msppkg)
+       chmod -R go=rX  $(dtmp)/$(msppkg)
+       dpkg --build $(dtmp)/$(msppkg) ..
+
+       : # Build tinyos-avr dummy package
+       rm -rf $(dtmp)/$(avrpkg)
+       $(install_dir) $(dtmp)/$(avrpkg)/DEBIAN
+       $(install_dir) $(dtmp)/$(avrpkg)/usr/share/lintian/overrides
+       $(install_file) debian/$(avrpkg).lintian-overrides \
+               $(dtmp)/$(avrpkg)/usr/share/lintian/overrides/$(avrpkg)
+       $(install_dir) $(dtmp)/$(avrpkg)/usr/share/doc/$(avrpkg)/
+       $(install_file) debian/copyright \
+               $(dtmp)/$(avrpkg)/usr/share/doc/$(avrpkg)/
+       $(install_file) tools/README debian/README.Debian \
+               $(dtmp)/$(avrpkg)/usr/share/doc/$(avrpkg)/
+       dpkg-gencontrol -isp -P$(dtmp)/$(avrpkg) -p$(avrpkg)
+       chown -R root:root $(dtmp)/$(avrpkg)
+       chmod -R go=rX  $(dtmp)/$(avrpkg)
+       dpkg --build $(dtmp)/$(avrpkg) ..
+
+
+binary: binary-indep binary-arch
+
+
+clean: debian/control
+       $(checkdir)
+       -rm -rf $(dtmp)
+       -rm -fr debian/files* debian/substvars
+       -rm -f *-stamp
+
+
+define checkdir
+        test -d tos/chips -a -f debian/rules
+endef
+
+
+checkroot:
+       $(checkdir)
+       test root = "`whoami`"
+
+
+.PHONY: binary clean checkroot