#!/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.
+# for each package I build (obviously static and dynamic builds require
+# things to be recompiled...)
# This is the debhelper compatability version to use.
-export DH_COMPAT=1
+#export DH_COMPAT=1
+bbbd=debian/busybox_builddir
bb=debian/tmp
+bbsbd=debian/busybox_static_builddir
bbs=debian/busybox-static
+bbubd=debian/busybox_udeb_builddir
+bbu=debian/busybox-udeb
clean:
dh_testdir
dh_testroot
- rm -f build-stamp-busybox build-stamp-busybox-static
+ rm -f debian/build-stamp-busybox debian/build-stamp-busybox-static debian/build-stamp-busybox-udeb
-$(MAKE) clean
- -rm -rf $(bb) $(bbs)
+ -rm -rf $(bb) $(bbbd) $(bbs) $(bbsbd) $(bbubd) $(bbu)
dh_clean
-half_clean:
- dh_testdir
- dh_testroot
- rm -rf $(bbs) build-stamp-busybox-static
- -$(MAKE) clean
-
-build: build-stamp-busybox
-build-stamp-busybox:
+build: debian/build-stamp-busybox
+debian/build-stamp-busybox:
dh_testdir
- $(MAKE)
- touch build-stamp-busybox
+ mkdir -p $(bbbd)
+ cp Makefile $(bbbd)
+ cp debian/Config.h-deb $(bbbd)/Config.h
+ -(cd $(bbbd); $(MAKE) "CONFIG_SRC_DIR=../../" applet_source_list)
+ (cd $(bbbd); $(MAKE) USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
+ touch debian/build-stamp-busybox
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
- $(MAKE) "PREFIX=$(bb)" install
+ # Do not run 'make install', since we do not want all the symlinks.
+ # This just installes the busybox binary...
+ #(cd $(bbbd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bb)" install)
+ mkdir -p $(bb)/bin/
+ cp $(bbbd)/busybox $(bb)/bin/busybox
+ mkdir -p $(bb)/usr/share/doc/busybox/busybox.net
+ cp $(bbbd)/docs/busybox.net/BusyBox.html $(bb)/usr/share/doc/busybox/busybox.net/
mkdir -p $(bb)/usr/share/man/man1
- cp docs/BusyBox.1 $(bb)/usr/share/man/man1/busybox.1
+ cp $(bbbd)/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:
+build-static: debian/build-stamp-busybox-static
+debian/build-stamp-busybox-static:
dh_testdir
- $(MAKE) DOSTATIC=true
- touch build-stamp-busybox-static
+ mkdir -p $(bbsbd)
+ cp Makefile $(bbsbd)
+ cp debian/Config.h-static $(bbsbd)/Config.h
+ (cd $(bbsbd); $(MAKE) DOSTATIC=true USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
+ touch debian/build-stamp-busybox-static
install-static: build
dh_testdir
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
+ #(cd $(bbsbd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bbs)" install)
mkdir -p $(bbs)/bin/
- cp busybox $(bbs)/bin/busybox
+ cp $(bbsbd)/busybox $(bbs)/bin/busybox
+ mkdir -p $(bbs)/usr/share/doc/busybox-static/busybox.net
+ cp $(bbsbd)/docs/busybox.net/BusyBox.html $(bbs)/usr/share/doc/busybox-static/busybox.net/
mkdir -p $(bbs)/usr/share/man/man1/
- cp docs/BusyBox.1 $(bbs)/usr/share/man/man1/busybox.1
+ cp $(bbsbd)/docs/BusyBox.1 $(bbs)/usr/share/man/man1/busybox.1
+
+half_clean:
+ dh_testdir
+ dh_testroot
+ rm -rf $(bbs) debian/build-stamp-busybox-static
+ -$(MAKE) clean
do_static: half_clean build-static install-static
+
+# Now for the .udeb stuff
+PACKAGE=busybox-udeb
+VERSION=$(shell dpkg-parsechangelog | grep ^Version: | cut -d ' ' -f 2 | sed -e s/[0-9]://g)
+ARCH=$(shell dpkg --print-architecture)
+FILENAME=$(PACKAGE)_$(VERSION)_$(ARCH).udeb
+
+build-udeb: debian/build-stamp-busybox-udeb
+debian/build-stamp-busybox-udeb:
+ dh_testdir
+ mkdir -p $(bbubd)
+ cp Makefile $(bbubd)
+ cp debian/Config.h-udeb $(bbubd)/Config.h
+ (cd $(bbubd); $(MAKE) USE_SYSTEM_PWD_GRP=false "CONFIG_SRC_DIR=../../")
+ touch debian/build-stamp-busybox-udeb
+
+install-udeb: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+ (cd $(bbubd); $(MAKE) "CONFIG_SRC_DIR=../../" "PREFIX=../../$(bbu)" install)
+ mkdir -p $(bbu)/usr/share/man/man1/
+ cp $(bbubd)/docs/BusyBox.1 $(bbu)/usr/share/man/man1/busybox.1
+
+three_quarter_clean:
+ dh_testdir
+ dh_testroot
+ rm -rf $(bbu) debian/build-stamp-busybox-udeb
+ -$(MAKE) clean
+
+do_udeb: three_quarter_clean build-udeb install-udeb
+
+
+
# Build architecture-independent files here.
binary-indep:
# We have nothing to do by default.
# Build architecture-dependent files here.
-binary-arch: busybox busybox-static clean
+binary-arch: busybox busybox-static busybox-udeb
busybox: install
@echo "--- Building: $@"
dh_testdir
dh_testroot
dh_installdirs
- 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_installdocs -p$@ $(bbbd)/docs/BusyBox.txt \
+ $(bbbd)/docs/BusyBox.html docs/style-guide.txt \
+ docs/busybox.net AUTHORS README TODO
+ rm -rf `find $(bb) -name CVS`
+ rm -f `find $(bb) -name .cvsignore`
dh_installchangelogs -p$@ Changelog
+ dh_undocumented -p$@
dh_strip -p$@
dh_compress -p$@
dh_fixperms -p$@
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_installdocs -p$@ $(bbsbd)/docs/BusyBox.txt \
+ $(bbsbd)/docs/BusyBox.html docs/style-guide.txt \
+ docs/busybox.net AUTHORS README TODO
+ rm -rf `find $(bbs) -name CVS`
+ rm -f `find $(bbs) -name .cvsignore`
dh_installchangelogs -p$@ Changelog
+ dh_undocumented -p$@
dh_strip -p$@
dh_compress -p$@
dh_fixperms -p$@
dh_builddeb -p$@
+# Note that this builds a .udeb, which is not policy compliant or anything.
+#
+busybox-udeb: do_udeb
+ @echo "--- Building: $@"
+ dh_testdir
+ dh_testroot
+ dh_installdirs
+ 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 $(bbu)/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 standard
+ dh_md5sums -p$@
+ dh_builddeb -p$@ --filename=$(FILENAME)
+
binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install