#!/usr/bin/make -f # $Id$ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # This has to be exported to make some magic below work. export DH_OPTIONS check_gcc = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) CDEF := \ -Wall -DBSD=1 -DSMALL -D_GNU_SOURCE -DHAVE_VASPRINTF=1 \ -DGLOB_BROKEN -DFNMATCH_BROKEN -DIFS_BROKEN \ -D__COPYRIGHT\(x\)= -D__RCSID\(x\)= -D_DIAGASSERT\(x\)= OPT := -g -O2 -fstrict-aliasing OPTSM := -g -Os -fstrict-aliasing -fomit-frame-pointer -DREALLY_SMALL ifeq ($(DEB_HOST_ARCH),i386) OPTSM += \ $(call check_gcc,-falign-loops=1,-malign-loops=0) \ $(call check_gcc,-falign-jumps=1,-malign-jumps=0) \ $(call check_gcc,-falign-functions=1,-malign-functions=0) \ -mpreferred-stack-boundary=2 -DUSE_NORETURN endif build: setup-stamp dh_testdir pmake CFLAGS:='$(CDEF) $(OPT)' \ YACC:=bison MAKEOBJDIR=obj-udeb pmake CFLAGS:='$(CDEF) $(OPTSM)' \ YACC:=bison setup: setup-stamp setup-stamp: rm -rf obj obj-udeb mkdir obj obj-udeb chmod u+x debian/bsdyacc touch setup-stamp predist: po2debconf debian/dash.templates > debian/dash.templates.merged clean: dh_testdir dh_testroot rm -f setup-stamp rm -rf obj obj-udeb dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs install obj/sh debian/dash/bin/dash install -m 644 sh.1 debian/dash/usr/share/man/man1/dash.1 install obj-udeb/sh debian/dash-udeb/bin/dash ln -s dash debian/dash-udeb/bin/sh ln -s dash debian/ash/bin/ash ln -s dash.1.gz debian/ash/usr/share/man/man1/ash.1.gz # This single target is used to build all the packages, all at once, or # one at a time. So keep in mind: any options passed to commands here will # affect _all_ packages. Anything you want to only affect one package # should be put in another target, such as the install target. binary-common: debian/dash.templates.merged dh_testdir dh_testroot dh_installdebconf if ! dh_testversion 4.1.16; then \ install -D debian/dash.templates.merged \ debian/dash/DEBIAN/templates; \ fi dh_installdocs -Ndash-udeb dh_installexamples dh_installmenu dh_installcron dh_installchangelogs -Ndash-udeb ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) dh_strip endif dh_compress dh_fixperms dh_installdeb -Ndash-udeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb # Build architecture-independent files here. binary-indep: install $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common # Build architecture-dependent files here. binary-arch: install $(MAKE) -f debian/rules DH_OPTIONS=-a binary-common for i in ../dash-udeb_*.deb; do mv $$i $${i%deb}udeb; done sed '/^[^ ]*\.udeb/d; s/^\(dash-udeb_[^ ]*\.\)deb/\1udeb/' \ debian/files > debian/files.new mv debian/files.new debian/files binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary binary-common install \ setup predist