File: rules

package info (click to toggle)
mksh 59c-43
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 4,688 kB
  • sloc: ansic: 58,251; sh: 6,114; perl: 2,155; makefile: 127
file content (146 lines) | stat: -rwxr-xr-x 4,674 bytes parent folder | download
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/make -f

ifeq (,$(filter terse,${DEB_BUILD_OPTIONS}))
export DH_VERBOSE=1
export V=1
export VERBOSE=1
endif

LC_ALL:=C
export LC_ALL

shellescape='$(subst ','\'',$(1))'
shellexport=$(1)=$(call shellescape,${$(1)})

DEB_HOST_GNU_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

MUSL=$(DEB_HOST_GNU_CPU)-linux-musl
ifneq (,$(filter armel,$(DEB_HOST_ARCH)))
MUSL=arm-linux-musleabi
endif
ifneq (,$(filter armhf,$(DEB_HOST_ARCH)))
MUSL=arm-linux-musleabihf
endif
ifeq ($(DEB_HOST_ARCH_CPU),i386)
MUSL=i386-linux-musl
endif
ifeq ($(DEB_HOST_ARCH_CPU),sh4)
MUSL=sh-linux-musl
endif

FALLBACK=$(call shellescape,$(shell dpkg-architecture -qDEB_HOST_MULTIARCH 2>/dev/null || dpkg-architecture -qDEB_HOST_GNU_TYPE))

%:
	dh $@ --buildsystem=none

execute_before_dh_auto_clean:
	-rm -rf builddir
	-rm -f debian/*~ debian/mksh.copyright
	-rm -f t.* xmusl.spec

override_dh_auto_build:
	exec sh debian/meat

execute_before_dh_install:
	cat builddir/substvars >>debian/mksh.substvars

extract_categories:=sed --posix -n '/^set -A check_categories -- */{s//cat=/;s/  */ /g;y/ /,/;p;q;}'

execute_after_dh_install:
	mkdir -p debian/mksh/usr/share/doc/mksh
	{ \
		${extract_categories} builddir/full/test.sh; \
		echo shell=/bin/mksh; \
		echo skip=0; \
	} >debian/mksh/usr/share/doc/mksh/testdata.full
	{ \
		${extract_categories} builddir/legacy/test.sh; \
		echo shell=/bin/lksh; \
		echo skip=0; \
	} >debian/mksh/usr/share/doc/mksh/testdata.legacy
	if test -e builddir/static-klibc/mksh; then \
		{ \
			${extract_categories} builddir/static-klibc/test.sh; \
			echo shell=/usr/lib/klibc/bin/mksh; \
			echo skip=$$( \
				test -x builddir/static-klibc/mksh; \
				echo $$? \
			    ); \
		} >debian/mksh/usr/share/doc/mksh/testdata.static-klibc; \
		mkdir -p debian/mksh/usr/lib/klibc/bin && \
		cp builddir/static-klibc/mksh debian/mksh/usr/lib/klibc/bin/; \
	fi
	if test -e builddir/static-dietlibc/mksh; then \
		{ \
			${extract_categories} builddir/static-dietlibc/test.sh; \
			echo shell=/usr/lib/diet/bin/mksh; \
			echo skip=$$( \
				test -x builddir/static-dietlibc/mksh; \
				echo $$? \
			    ); \
		} >debian/mksh/usr/share/doc/mksh/testdata.static-dietlibc; \
		mkdir -p debian/mksh/usr/lib/diet/bin && \
		cp builddir/static-dietlibc/mksh debian/mksh/usr/lib/diet/bin/; \
	fi
	if test -e builddir/static-musl/mksh; then \
		{ \
			${extract_categories} builddir/static-musl/test.sh; \
			echo shell=/usr/lib/${MUSL}/bin/mksh; \
			echo skip=$$( \
				test -x builddir/static-musl/mksh; \
				echo $$? \
			    ); \
		} >debian/mksh/usr/share/doc/mksh/testdata.static-musl; \
		mkdir -p debian/mksh/usr/lib/${MUSL}/bin && \
		cp builddir/static-musl/mksh debian/mksh/usr/lib/${MUSL}/bin/; \
	fi
	case $$(cat builddir/which_static) in \
	(klibc) ln -sf /usr/lib/klibc/bin/mksh debian/mksh/bin/mksh-static ;; \
	(diet*) ln -sf /usr/lib/diet/bin/mksh debian/mksh/bin/mksh-static ;; \
	(musl) ln -sf /usr/lib/${MUSL}/bin/mksh debian/mksh/bin/mksh-static ;; \
	(glibc) { \
			${extract_categories} builddir/static-glibc/test.sh; \
			echo shell=/usr/lib/${FALLBACK}/bin/mksh; \
			echo skip=0; \
		} >debian/mksh/usr/share/doc/mksh/testdata.static-glibc; \
		mkdir -p debian/mksh/usr/lib/${FALLBACK}/bin; \
		cp builddir/static-glibc/mksh debian/mksh/usr/lib/${FALLBACK}/bin/; \
		ln -sf /usr/lib/${FALLBACK}/bin/mksh debian/mksh/bin/mksh-static ;; \
	(*) echo cannot happen; exit 1 ;; \
	esac
	{ \
		${extract_categories} builddir/asan/test.sh; \
		echo shell=/usr/lib/${FALLBACK}/bin/mksh-g; \
		echo skip=$$( \
			test -x builddir/asan/mksh; \
			echo $$? \
		    ); \
		cat builddir/asan/asanopts.inc; \
	} >debian/mksh/usr/share/doc/mksh/testdata.asan
	mkdir -p debian/mksh/usr/lib/${FALLBACK}/bin
	cp builddir/asan/mksh debian/mksh/usr/lib/${FALLBACK}/bin/mksh-g
	test -x debian/mksh/$$(readlink debian/mksh/bin/mksh-static)
	test -x debian/mksh/bin/mksh
	test -x debian/mksh/bin/lksh
	cp -a builddir/dot.mkshrc debian/mksh/etc/mkshrc

execute_after_dh_installdocs-arch:
	# we install this already, except with more information
	rm -f debian/mksh/usr/share/doc/mksh/README.Debian
	cp builddir/README.Debian.gz debian/mksh/usr/share/doc/mksh/

override_dh_shlibdeps:
	dh_shlibdeps -Xmksh-g -- \
	    -dSuggests debian/mksh/usr/lib/*/bin/mksh-g \
	    -dDepends

execute_before_dh_installdeb:
	if command -v dh_movetousr >/dev/null 2>&1; then dh_movetousr; fi

execute_after_dh_builddeb-arch:
	#-
	cat builddir/loglibc.txt
	gzip -d <builddir/README.Debian.gz | sed --posix \
	    -e '1,/^Details/d' -e '/^Actual/d' -e '/^]/d'