1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
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
|