File: rules

package info (click to toggle)
adequate 0.17.6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 488 kB
  • sloc: python: 254; makefile: 111; sh: 75; ansic: 29
file content (73 lines) | stat: -rwxr-xr-x 3,659 bytes parent folder | download | duplicates (2)
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
#!/usr/bin/make -f

tmp = debian/tmp
at = adequate-test

debian/control: debian/control.in
	sed -r 's/#$(shell test "$$(readlink -f /bin)" = "$$(readlink -f /usr/bin)" || echo "non-")merged-usr#//' $< > $@

%: debian/control
	dh $@

override_dh_auto_install:
	mkdir -p $(tmp)
	# library-not-found
	$(CC) lib.c -fPIC -shared -Wl,-soname,libadequate-lib.so.0 -o $(tmp)/libadequate-lib.so.0
	ln -sf libadequate-lib.so.0 $(tmp)/libadequate-lib.so
	$(CC) lib.c -fPIC -shared -Wl,-soname,libadequate-usrlib.so.0 -o $(tmp)/libadequate-usrlib.so.0
	ln -sf libadequate-usrlib.so.0 $(tmp)/libadequate-usrlib.so
	$(CC) prog.c -L$(tmp) -Wl,--no-as-needed -ladequate-lib -o $(tmp)/adequate-lib1
	cd $(tmp) && seq 2 5 | xargs -t -I {} ln -f adequate-lib1 adequate-lib{}
	$(CC) prog.c -L$(tmp) -Wl,--no-as-needed -ladequate-usrlib -o $(tmp)/adequate-usrlib1
	cd $(tmp) && seq 2 5 | xargs -t -I {} ln -f adequate-usrlib1 adequate-usrlib{}
	# missing-version-information
	$(CC) -shared -Wl,--soname=lib$(at)-versionless.so.0 -Wl,--version-script=verscript-global lib.c -o $(tmp)/lib$(at)-versionless.so.0
	ln -sf lib$(at)-versionless.so.0 $(tmp)/lib$(at)-versionless.so
	$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-msvi -l$(at)-versionless
	$(CC) -shared -Wl,--no-as-needed -Wl,--soname=lib$(at)-versionless.so.0 lib.c -o $(tmp)/lib$(at)-versionless.so.0
	# symbol-size-mismatch
	$(CC) -shared -Wl,--soname=lib$(at)-symsize.so.0 lib.c -o $(tmp)/lib$(at)-symsize.so.0
	ln -sf lib$(at)-symsize.so.0 $(tmp)/lib$(at)-symsize.so
	$(CC) symsize.c -L$(tmp) -o $(tmp)/$(at)-symsize -l$(at)-symsize
	$(CC) -shared -Wl,--soname=lib$(at)-symsize.so.0 -DADEQUATE_SYMBOL_SIZE=42 lib.c -o $(tmp)/lib$(at)-symsize.so.0
	readelf --wide --symbols $(tmp)/$(at)-symsize | grep this_symbol_size_varies
	test "$$(readelf --wide --symbols $(tmp)/$(at)-symsize | grep this_symbol_size_varies | head -n 1 | awk '{print $$3}')" != "0" || touch $(tmp)/skip-symbol-size-mismatch
	# undefined-symbol
	$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 lib.c -o $(tmp)/lib$(at)-versioning.so.0
	ln -sf lib$(at)-versioning.so.0 $(tmp)/lib$(at)-versioning.so
	$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-us1 -l$(at)-versioning
	nm $(tmp)/$(at)-us1 | grep 'U this_symbol_might_be_undefined'
	$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 -Wl,--version-script=verscript-global lib.c -o $(tmp)/lib$(at)-versioning.so.0
	$(CC) undef.c -L$(tmp) -o $(tmp)/$(at)-us2 -l$(at)-versioning
	nm $(tmp)/$(at)-us2 | grep 'U this_symbol_might_be_undefined@ADEQUATE_TEST'
	$(CC) -shared -Wl,--soname=lib$(at)-versioning.so.0 -Wl,--version-script=verscript-local lib.c -o $(tmp)/lib$(at)-versioning.so.0
	# py-file-not-bytecompiled; pyshared-file-not-bytecompiled
	cp *.py debian/tmp/
	python3 -m compileall debian/tmp/

override_dh_installdocs:
	dh_installdocs -N adequate-testpkg-missing-copyright-file

override_dh_missing:
	dh_missing --list-missing

override_dh_strip:
	dh_strip --no-automatic-dbgsym

# we build binaries with missing symbols
override_dh_shlibdeps:

override_dh_gencontrol:
	dh_gencontrol $(patsubst $(tmp)/skip-%,-N adequate-testpkg-%,$(wildcard $(tmp)/skip-*))

override_dh_builddeb:
	dh_builddeb $(patsubst $(tmp)/skip-%,-N adequate-testpkg-%,$(wildcard $(tmp)/skip-*))

execute_after_dh_builddeb:
	rm debian/adequate-testpkg-obsolete-conffile/etc/adequate/test-obsolete-conffile
	sed -i -e '/test-obsolete/d' debian/adequate-testpkg-obsolete-conffile/DEBIAN/conffiles
	dh_gencontrol -p adequate-testpkg-obsolete-conffile -- -v2 -fdebian/files2
	cat debian/files2 >> debian/files
	rm -f debian/files2
	dh_md5sums -p adequate-testpkg-obsolete-conffile
	dh_builddeb -p adequate-testpkg-obsolete-conffile