X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=debian%2Frules;h=e77b4ef96099c610b96df71a091fb8397808d408;hb=3603f79ce594a1043d1a7b2c0b45cf8c79d33f60;hp=67741b19f6616dbe3dbf1a292cd89410ee88e842;hpb=e2f6e1221330f2944d467cad2fb630deb5ef6f0a;p=oweals%2Fbusybox.git diff --git a/debian/rules b/debian/rules index 67741b19f..e77b4ef96 100755 --- a/debian/rules +++ b/debian/rules @@ -1,180 +1,196 @@ #!/usr/bin/make -f -# This is a bit unusual, in that I have to completely recompile everything -# twice. The first is the normal, dynamically linked package. The second is -# for the statically linked package. This file has been adjusted accordingly. +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 -# This is the debhelper compatability version to use. -export DH_COMPAT=1 +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU) +DEB_HOST_GNU_SYSTEM ?= $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) -bb=debian/tmp -bbbd=debian/bb_builddir -bbs=debian/busybox-static -bbsbd=debian/bb-static_builddir +VERSION = $(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) -#For the debian-installer .udeb package -PACKAGE=busybox-udeb -VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2) -ARCH=$(shell dpkg --print-architecture) -FILENAME=$(PACKAGE)_$(VERSION)_$(ARCH).udeb -PRIORITY=$(shell grep ^Priority: debian/control | cut -d ' ' -f 2) +ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) + CONFIG_DEBUG = true +endif +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) +endif + +PACKAGE_PREFIX = busybox-cvs + +ARCH_FLOPPY_UDEB = $(shell sh debian/control-extract Architecture $(PACKAGE_PREFIX)-floppy-udeb) + +PACKAGES_DEB = $(PACKAGE_PREFIX) $(PACKAGE_PREFIX)-static +PACKAGES_UDEB = $(PACKAGE_PREFIX)-udeb +ifneq ($(filter $(DEB_HOST_ARCH),$(ARCH_FLOPPY_UDEB)),) +PACKAGES_UDEB += $(PACKAGE_PREFIX)-floppy-udeb +endif +PACKAGES = $(PACKAGES_DEB) $(PACKAGES_UDEB) + +DEBHELPER_PACKAGES_DEB = $(patsubst %,-p%,$(PACKAGES_DEB)) +DEBHELPER_PACKAGES_UDEB = $(patsubst %,-p%,$(PACKAGES_UDEB)) + +CONFIG = $(firstword $(wildcard ./debian/config-$(1)-$(DEB_HOST_GNU_SYSTEM)-$(DEB_HOST_GNU_CPU) ./debian/config-$(1)-$(DEB_HOST_GNU_SYSTEM) ./debian/config-$(1))) +CONFIG_DEB = $(call CONFIG,deb) +CONFIG_STATIC = $(call CONFIG,static) +CONFIG_UDEB = $(call CONFIG,udeb) +CONFIG_FLOPPY_UDEB = $(call CONFIG,floppy-udeb) + +configure: configure-stamp +configure-stamp: + sh ./configure + + touch $@ + +build-arch: build-arch-deb-all build-arch-udeb-all +build-arch-deb-all: build-arch-deb build-arch-static build-arch-doc +build-arch-udeb-all: build-arch-udeb build-arch-floppy-udeb + +build-arch-deb: build-arch-deb-stamp +build-arch-deb-stamp: configure-stamp + $(MAKE) clean + + cp $(CONFIG_DEB) .config + + $(MAKE) dep + $(MAKE) CONFIG_DEBUG=$(CONFIG_DEBUG) + + install -d install-$(PACKAGE_PREFIX)/bin + install busybox install-$(PACKAGE_PREFIX)/bin/busybox + + touch $@ + +build-arch-static: build-arch-static-stamp +build-arch-static-stamp: configure-stamp + $(MAKE) clean + + cp $(CONFIG_STATIC) .config + + $(MAKE) dep + $(MAKE) CONFIG_DEBUG=$(CONFIG_DEBUG) + + install -d install-$(PACKAGE_PREFIX)-static/bin + install busybox install-$(PACKAGE_PREFIX)-static/bin/busybox + + touch $@ + +build-arch-udeb: build-arch-udeb-stamp +build-arch-udeb-stamp: configure-stamp + $(MAKE) clean + + cp $(CONFIG_UDEB) .config + + $(MAKE) dep + $(MAKE) CONFIG_DEBUG=$(CONFIG_DEBUG) + + $(MAKE) PREFIX=$(CURDIR)/install-$(PACKAGE_PREFIX)-udeb install + # Remove init link, but init support is still compiled in to be + # used. + rm -f $(CURDIR)/install-$(PACKAGE_PREFIX)-udeb/sbin/init + + touch $@ + +build-arch-floppy-udeb: build-arch-floppy-udeb-stamp +build-arch-floppy-udeb-stamp: configure-stamp +ifneq ($(filter $(DEB_HOST_ARCH),$(ARCH_FLOPPY_UDEB)),) + $(MAKE) clean + + cp $(CONFIG_FLOPPY_UDEB) .config + + $(MAKE) dep + $(MAKE) CONFIG_DEBUG=$(CONFIG_DEBUG) + + $(MAKE) PREFIX=$(CURDIR)/install-$(PACKAGE_PREFIX)-floppy-udeb install +endif + + touch $@ + +build-arch-doc: build-arch-doc-stamp +build-arch-doc-stamp: configure-stamp + $(MAKE) docs/BusyBox.1 + + cp docs/BusyBox.1 busybox.1 + + touch $@ + +build: build-arch clean: dh_testdir dh_testroot - rm -f build-stamp-busybox build-stamp-busybox-static - -$(MAKE) clean - -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) + rm -f build-*-stamp configure-stamp debian/files~ + + -$(MAKE) distclean + -rm -rf busybox-deb busybox-static install* busybox.1 + dh_clean -half_clean: +install-deb: build-arch-deb-all dh_testdir dh_testroot - rm -rf $(bbs) build-stamp-busybox-static - -$(MAKE) clean + dh_clean -k $(DEBHELPER_PACKAGES_DEB) + dh_installdirs $(DEBHELPER_PACKAGES_DEB) -build: build-stamp-busybox -build-stamp-busybox: - dh_testdir - mkdir -p $(bbbd) - cp Makefile Config.h $(bbbd) - (cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../") - touch build-stamp-busybox + for i in $(PACKAGES_DEB); do \ + ( \ + cd install-$$i; \ + find -type d -exec install -d $(CURDIR)/debian/$$i/{} \;; \ + find \( -type f -o -type l \) -exec cp -a {} $(CURDIR)/debian/$$i/{} \;; \ + ); \ + done -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - (cd $(bbbd); $(MAKE) "BB_SRC_DIR=../../" "PREFIX=../../$(bb)" install) - mkdir -p $(bb)/usr/share/man/man1 - cp docs/BusyBox.1 $(bb)/usr/share/man/man1/busybox.1 - -# Now for the statically linked stuff -build-static: build-stamp-busybox-static -build-stamp-busybox-static: - dh_testdir - $(MAKE) DOSTATIC=true - touch build-stamp-busybox-static + install -m644 debian/$(PACKAGE_PREFIX)-static.override \ + debian/$(PACKAGE_PREFIX)-static/usr/share/lintian/overrides/$(PACKAGE_PREFIX)-static -install-static: build +install-udeb: build-arch-udeb-all dh_testdir dh_testroot - dh_clean -k - dh_installdirs - # Do not run 'make install', since we do not want all the symlinks. - # This just installes the busybox binary... - #$(MAKE) "PREFIX=$(bbs)" install - mkdir -p $(bbs)/bin/ - cp busybox $(bbs)/bin/busybox - mkdir -p $(bbs)/usr/share/man/man1/ - cp docs/BusyBox.1 $(bbs)/usr/share/man/man1/busybox.1 - -do_static: half_clean build-static install-static + dh_clean -k $(DEBHELPER_PACKAGES_UDEB) + dh_installdirs $(DEBHELPER_PACKAGES_UDEB) + for i in $(PACKAGES_UDEB); do \ + ( \ + cd install-$$i; \ + find -type d -exec install -d $(CURDIR)/debian/$$i/{} \;; \ + find \( -type f -o -type l \) -exec cp -a {} $(CURDIR)/debian/$$i/{} \;; \ + ); \ + done -# Build architecture-independent files here. -binary-indep: -# We have nothing to do by default. +binary-arch: binary-arch-deb binary-arch-udeb # Build architecture-dependent files here. -binary-arch: busybox busybox-static busybox-udeb - -busybox: install - @echo "--- Building: $@" - dh_testdir - dh_testroot - dh_installdirs - # - #Note that for busybox, we do not install any docs, - # or man apges or anything else. This is in blatent violation of every - # Debian policy out there, since this package is intended to be used - # _only_ by the debian-installer. - # - #dh_installdocs -p$@ docs/BusyBox.txt \ - # docs/BusyBox.html docs/busybox.lineo.com AUTHORS README TODO - #rm -rf $(bb)/usr/share/doc/busybox/busybox.lineo.com/CVS \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/.cvsignore \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/CVS \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/.cvsignore - #dh_undocumented -p$@ - #dh_installchangelogs -p$@ Changelog - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - # - #Make _very_ sure there are no docs lurking about. - # - rm -rf $(bb)/usr/share/doc - rm -rf $(bb)/usr/share/man - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - - -busybox-static: do_static - @echo "--- Building: $@" +binary-arch-deb: build-arch-deb-all install-deb dh_testdir dh_testroot - dh_installdirs - dh_installdocs -p$@ docs/BusyBox.txt \ - docs/BusyBox.html docs/busybox.lineo.com AUTHORS README TODO - rm -rf $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com/CVS \ - $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com/.cvsignore \ - $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com/images/CVS \ - $(bbs)/usr/share/doc/busybox-static/busybox.lineo.com/images/.cvsignore - dh_undocumented -p$@ - dh_installchangelogs -p$@ Changelog - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - dh_gencontrol -p$@ - dh_md5sums -p$@ - dh_builddeb -p$@ - - -# Note that this builds a .udeb, which is not policy compliant or anything. -# -busybox-udeb: install - @echo "--- Building: $@" + dh_installdocs $(DEBHELPER_PACKAGES_DEB) + dh_installman $(DEBHELPER_PACKAGES_DEB) + dh_installchangelogs Changelog $(DEBHELPER_PACKAGES_DEB) + dh_strip $(DEBHELPER_PACKAGES_DEB) + dh_link $(DEBHELPER_PACKAGES_DEB) + dh_compress $(DEBHELPER_PACKAGES_DEB) + dh_fixperms $(DEBHELPER_PACKAGES_DEB) + dh_installdeb $(DEBHELPER_PACKAGES_DEB) + dh_shlibdeps $(DEBHELPER_PACKAGES_DEB) + dh_gencontrol $(DEBHELPER_PACKAGES_DEB) + dh_md5sums $(DEBHELPER_PACKAGES_DEB) + dh_builddeb $(DEBHELPER_PACKAGES_DEB) + +# Build architecture-dependent files here. +binary-arch-udeb: build-arch-udeb-all install-udeb dh_testdir dh_testroot - dh_installdirs - # - #Note that for busybox, we do not install any docs, - # or man apges or anything else. This is in blatent violation of every - # Debian policy out there, since this package is intended to be used - # _only_ by the debian-installer. - # - #dh_installdocs -p$@ docs/BusyBox.txt \ - # docs/BusyBox.html docs/busybox.lineo.com AUTHORS README TODO - #rm -rf $(bb)/usr/share/doc/busybox/busybox.lineo.com/CVS \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/.cvsignore \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/CVS \ - # $(bb)/usr/share/doc/busybox/busybox.lineo.com/images/.cvsignore - #dh_undocumented -p$@ - #dh_installchangelogs -p$@ Changelog - dh_strip -p$@ - dh_compress -p$@ - dh_fixperms -p$@ - dh_installdeb -p$@ - dh_shlibdeps -p$@ - # - #Make _very_ sure there are no docs lurking about. - # - rm -rf $(bb)/usr/share/doc - rm -rf $(bb)/usr/share/man - dh_gencontrol -p$@ - # Don't write your stupid guesses to debian/files. - #dh_gencontrol -p$@ -- -fdebian/files~ - # Register file manually. - dpkg-distaddfile $(FILENAME) debian-installer $(PRIORITY) - dh_md5sums -p$@ - dh_builddeb -p$@ --filename=$(FILENAME) - -binary: binary-indep binary-arch + dh_strip $(DEBHELPER_PACKAGES_UDEB) + dh_link $(DEBHELPER_PACKAGES_UDEB) + dh_compress $(DEBHELPER_PACKAGES_UDEB) + dh_fixperms $(DEBHELPER_PACKAGES_UDEB) + dh_installdeb $(DEBHELPER_PACKAGES_UDEB) + dh_shlibdeps $(DEBHELPER_PACKAGES_UDEB) + dh_gencontrol $(DEBHELPER_PACKAGES_DEB) + + $(foreach PACKAGE, $(PACKAGES_UDEB), \ + dh_gencontrol -p$(PACKAGE) -- -fdebian/files~; \ + dpkg-distaddfile $(PACKAGE)_$(VERSION)_$(DEB_HOST_ARCH).udeb debian-installer extra; \ + dh_builddeb -p$(PACKAGE) --filename=$(PACKAGE)_$(VERSION)_$(DEB_HOST_ARCH).udeb; \ + ) + +binary: binary-arch .PHONY: build clean binary-indep binary-arch binary install