diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..603ffc9 --- /dev/null +++ b/debian/rules @@ -0,0 +1,113 @@ +#!/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 |