X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=rules;h=206ad31b39ba5a62b0d3b220e4f54329ec7ebe16;hb=refs%2Fheads%2Fdebian%2Fmaster;hp=e46391fec7c76d4cf8bc7bdb32b42ce48b0a2f0d;hpb=da54001c6ec765d7924c6da3b5025dc4af310548;p=tinyos-2.x.git diff --git a/rules b/rules index e46391fe..206ad31b 100755 --- a/rules +++ b/rules @@ -9,11 +9,14 @@ # 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 @@ -25,6 +28,7 @@ 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 @@ -33,32 +37,45 @@ DISTRIBUTION := $(shell lsb_release -is) # 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 $@ @@ -68,76 +85,129 @@ binary-indep: checkroot build install 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