#!/usr/bin/make -f # Uncomment this to turn on verbose mode. #export DH_VERBOSE=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) VERSION = $(shell dpkg-parsechangelog | grep ^Version: | 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 configure-stamp debian/files~ -$(MAKE) distclean -rm -rf busybox-deb busybox-static install* busybox.1 dh_clean install-deb: build-arch-deb-all dh_testdir dh_testroot dh_clean -k $(DEBHELPER_PACKAGES_DEB) dh_installdirs $(DEBHELPER_PACKAGES_DEB) 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 -m644 debian/$(PACKAGE_PREFIX)-static.override \ debian/$(PACKAGE_PREFIX)-static/usr/share/lintian/overrides/$(PACKAGE_PREFIX)-static install-udeb: build-arch-udeb-all dh_testdir dh_testroot 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 binary-arch: binary-arch-deb binary-arch-udeb # Build architecture-dependent files here. binary-arch-deb: build-arch-deb-all install-deb dh_testdir dh_testroot 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_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