# paternity under the Copyright, Designs and Patents Act 1988.)
# This file may have to be extensively modified
-include /usr/share/dpatch/dpatch.make
+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
-srcpkg = $(package)-source
+srcmetapkg = $(package)-source
+srcpkg = $(srcmetapkg)-$(version)
msppkg = tinyos-msp430
avrpkg = tinyos-avr
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
# For now, the solution is quite hackish: copy the source directory to the
# build directory before running configure.
tempdir := $(shell tempfile $(PACKAGE))
-version := $(shell head -1 debian/changelog | sed -e s'|^.*(\([^-)]*\).*$$|\1|')
-configure-stamp: patch-stamp
+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 builddir $(tempdir)
+ rm -rf configure-stamp $(dtmp)/builddir $(tempdir)
+ $(install_dir) $(dtmp)
cp -a . $(tempdir)
- rm -rf $(tempdir)/debian
- mv -f $(tempdir) builddir
- cd builddir/tools && ./Bootstrap && ./configure --prefix=/usr
+ 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 builddir/tools
+ $(MAKE) -C $(dtmp)/builddir/tools
touch $@
install: install-stamp
install-stamp: checkroot build-stamp
$(checkdir)
- rm -rf debian/$(toolspkg)
- $(install_dir) debian/$(toolspkg)
- $(MAKE) -C builddir/tools prefix=$$(pwd)/debian/$(toolspkg)/usr \
- mandir=$$(pwd)/debian/$(toolspkg)/usr/share/man install
+ 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
+ : # Build tinyos.jar here; gain access to uninstalled tinyos tools.
+ PATH=$$(pwd)/$(dtmp)/$(toolspkg)/usr/bin:$$PATH \
+ TOSROOT=$$(pwd)/$(dtmp)/builddir \
+ TOSDIR=$$(pwd)/$(dtmp)/builddir/tos \
+ CLASSPATH=$$(pwd)/$(dtmp)/builddir/support/sdk/java:. \
+ $(MAKE) -C $(dtmp)/builddir/support/sdk/java tinyos.jar
+ $(MAKE) -C $(dtmp)/builddir/support/sdk/java clean
touch $@
binary-arch: checkroot build install
$(checkdir)
- : # install maintainer scripts
- $(install_dir) debian/$(toolspkg)/DEBIAN
- : # install docs
- $(install_dir) debian/$(toolspkg)/usr/share/doc/$(toolspkg)/
+
+ : # 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_script) debian/$(toolspkg).postinst \
+ $(dtmp)/$(toolspkg)/DEBIAN/postinst
+ : # $(install_script) debian/$(toolspkg).postrm \
+ : # $(dtmp)/$(toolspkg)/DEBIAN/postrm
+ $(install_dir) $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/
$(install_file) debian/changelog \
- debian/$(toolspkg)/usr/share/doc/$(toolspkg)/changelog.Debian
+ $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/changelog.Debian
$(install_file) debian/copyright \
- debian/$(toolspkg)/usr/share/doc/$(toolspkg)/
+ $(dtmp)/$(toolspkg)/usr/share/doc/$(toolspkg)/
$(install_file) tools/README debian/README.Debian \
- debian/$(toolspkg)/usr/share/doc/$(toolspkg)/
- : # Remove unnecessary files installed
- : # Create links
- : # Compress stuff that needs it
- gzip -9 debian/$(toolspkg)/usr/share/man/man1/*
- find debian/$(toolspkg)/usr/share/doc/$(toolspkg) -type f \
+ $(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
- : # Finish it all up
- find debian/$(toolspkg) -type f | xargs file | grep ELF | \
+ $(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 -Pdebian/$(toolspkg) -p$(toolspkg)
- chown -R root:root debian/$(toolspkg)
- chmod -R go=rX debian/$(toolspkg)
- dpkg --build debian/$(toolspkg) ..
-
- : # Build the tinyos-source package
- rm -rf debian/$(srcpkg)
- $(install_dir) debian/$(srcpkg)/DEBIAN
- $(install_dir) debian/$(srcpkg)/opt/tinyos
+ 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 debian/$(srcpkg)/opt/tinyos/$(version) < \
- tools/release/tinyos.files >/dev/null
- dpkg-gencontrol -isp -Pdebian/$(srcpkg) -p$(srcpkg)
- chown -R root:root debian/$(srcpkg)
- chmod -R go=rX debian/$(srcpkg)
- dpkg --build debian/$(srcpkg) ..
-
- : # Build the tinyos package too
- rm -rf debian/$(package)
- $(install_dir) debian/$(package)/DEBIAN
- $(install_dir) debian/$(package)/opt/tinyos
- $(install_file) tinyos.sh debian/$(package)/opt/tinyos
- dpkg-gencontrol -isp -Pdebian/$(package) -p$(package)
- chown -R root:root debian/$(package)
- chmod -R go=rX debian/$(package)
- dpkg --build debian/$(package) ..
+ tools/release/extractor $(dtmp)/$(srcpkg)/opt/tinyos/$(version) < \
+ tools/release/tinyos.filter >/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 debian/tmp
- $(install_dir) debian/tmp/DEBIAN
- dpkg-gencontrol -isp -Pdebian/tmp -p$(msppkg)
- chown -R root:root debian/tmp
- chmod -R go=rX debian/tmp
- dpkg --build debian/tmp ..
+ 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 debian/tmp
- $(install_dir) debian/tmp/DEBIAN
- dpkg-gencontrol -isp -Pdebian/tmp -p$(avrpkg)
- chown -R root:root debian/tmp
- chmod -R go=rX debian/tmp
- dpkg --build debian/tmp ..
+ 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: unpatch
+clean: debian/control
$(checkdir)
- -rm -rf debian/tmp debian/$(package) debian/$(toolspkg) debian/$(srcpkg) builddir
- -rm -fr debian/patched debian/files* debian/substvars
+ -rm -rf $(dtmp)
+ -rm -fr debian/files* debian/substvars
-rm -f *-stamp