File: rules

package info (click to toggle)
gnupg2 2.4.8-5
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 49,392 kB
  • sloc: ansic: 287,606; sh: 7,938; lisp: 6,735; makefile: 1,982; awk: 160; xml: 53; sed: 16; python: 16; php: 14; perl: 13
file content (137 lines) | stat: -rwxr-xr-x 5,003 bytes parent folder | download | duplicates (5)
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
#!/usr/bin/make -f
# debian/rules file - for GnuPG
# Copyright 1994,1995 by Ian Jackson.
# Copyright 1998-2003 by James Troup.
# Copyright 2003-2004 by Matthias Urlichs.
#
# I hereby give you perpetual unlimited permission to copy,
# modify and relicense this file, provided that you do not remove
# my name from the file itself.  (I assert my moral right of
# paternity under the Copyright, Designs and Patents Act 1988.)
# This file may have to be extensively modified

include /usr/share/dpkg/architecture.mk

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# avoid -pie for gpgv-static on kfreebsd-amd64, and x32
# platforms, which cannot support it by default:
ifeq (,$(filter $(DEB_HOST_ARCH), kfreebsd-amd64 x32))
GPGV_STATIC_HARDENING = "-pie"
else
GPGV_STATIC_HARDENING = ""
endif

# Avoid parallel tests on hppa and riscv64 architecture.
# Parallel tests generates high load on machine which causes timeouts and thus
# triggers unexpected failures.
ifeq (,$(filter $(DEB_HOST_ARCH), hppa riscv64))
# And also, avoid parallel tests due to swtpm failures (see https://dev.gnupg.org/T7494)
AUTOTEST_FLAGS = "--no-parallel"
else
AUTOTEST_FLAGS = "--no-parallel"
endif

ifneq ($(filter nodoc,$(DEB_BUILD_PROFILES)),)
	NODOC = --disable-doc
endif

%:
	dh $@ --with=autoreconf --builddirectory=build

GPGV_UNNEEDED = gpgtar gpgsm scdaemon dirmngr tofu exec ldap gnutls sqlite libdns keyboxd tpm2d npth
GPGV_UDEB_UNNEEDED = $(GPGV_UNNEEDED) bzip2 doc

WIN32_FLAGS=LDFLAGS="-Xlinker --no-insert-timestamp -static" CFLAGS="-g -Os" CPPFLAGS=

ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)),)

execute_after_dh_auto_configure:
	dh_auto_configure --builddirectory=build --verbose -- \
		--libexecdir=\$${prefix}/lib/gnupg \
		--enable-wks-tools \
		--enable-all-tests \
		--with-agent-s2k-calibration=300 \
		--enable-large-secmem \
		--with-mailprog=/usr/sbin/sendmail \
		--enable-maintainer-mode \
		$(NODOC)
	# win32 uses hand-written *FLAGS
	# mkdefsinc is built with *_FOR_BUILD
	# gpgscm is also not shipped
	@echo 'blhc: ignore-line-regexp: .*i686-w64-mingw32-gcc .*'
	@echo 'blhc: ignore-line-regexp: .*-o mkdefsinc .*'
	@echo 'blhc: ignore-line-regexp: .*-o gpgscm .*'

override_dh_auto_configure-arch:
	dh_auto_configure --builddirectory=build-gpgv-udeb -- \
		$(NODOC) \
		$(foreach x, $(GPGV_UDEB_UNNEEDED), --disable-$(x))

override_dh_auto_configure-indep:
	# nothing to do

execute_after_dh_auto_build:
	dh_auto_build --builddirectory=build

override_dh_auto_build-arch:
	dh_auto_build --builddirectory=build-gpgv-udeb
	cp -a build-gpgv-udeb build-gpgv-static
	rm -f build-gpgv-static/g10/gpgv
	cd build-gpgv-static/g10 && $(MAKE) LDFLAGS="$$LDFLAGS $(GPGV_STATIC_HARDENING) -static" gpgv
	mv build-gpgv-static/g10/gpgv build-gpgv-static/g10/gpgv-static

override_dh_auto_build-indep:
	mkdir -p build-gpgv-win32
	cd build-gpgv-win32 && $(WIN32_FLAGS) ../configure \
	   	$(foreach x, $(GPGV_UDEB_UNNEEDED), --disable-$(x)) \
		$(foreach x, libgpg-error libgcrypt libassuan ksba, --with-$x-prefix=/usr/i686-w64-mingw32) \
		$(NODOC) \
		--enable-gpg2-is-gpg \
		--with-zlib=/usr/i686-w64-mingw \
		--prefix=/usr/i686-w64-mingw32 \
		--host i686-w64-mingw32
	cd build-gpgv-win32/common && $(WIN32_FLAGS) $(MAKE) status-codes.h audit-events.h
	cd build-gpgv-win32/common && $(WIN32_FLAGS) $(MAKE) libgpgrl.a
	cd build-gpgv-win32/common && $(WIN32_FLAGS) $(MAKE) libsimple-pwquery.a
	cd build-gpgv-win32/common && $(WIN32_FLAGS) $(MAKE) libcommon.a
	cd build-gpgv-win32/kbx && $(WIN32_FLAGS) $(MAKE) libkeybox.a
	cd build-gpgv-win32/regexp && $(WIN32_FLAGS) $(MAKE) _unicode_mapping.c
	cd build-gpgv-win32/regexp && $(WIN32_FLAGS) $(MAKE) libregexp.a
	cd build-gpgv-win32/g10 && $(WIN32_FLAGS) $(MAKE) gpgv.exe
	strip build-gpgv-win32/g10/gpgv.exe

execute_after_dh_installdocs:
	# These are already shipped in the respective packages
	rm -vf \
		debian/gnupg/usr/share/doc/gnupg/examples/systemd-user/*.service \
		debian/gnupg/usr/share/doc/gnupg/examples/systemd-user/*.socket

override_dh_auto_test:
	dh_auto_test --builddirectory=build -- verbose=3 TESTFLAGS=$(AUTOTEST_FLAGS)

override_dh_shlibdeps:
# Make ldap a recommends rather than a hard dependency.
	dpkg-shlibdeps -Tdebian/dirmngr.substvars -dRecommends debian/dirmngr/usr/lib/gnupg/dirmngr_ldap -dDepends debian/dirmngr/usr/bin/dirmngr*
	dh_shlibdeps -Ndirmngr

else # ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)),)
override_dh_auto_configure:
	dh_auto_configure --builddirectory=build --verbose -- \
		--libexecdir=\$${prefix}/lib/gnupg \
		--enable-maintainer-mode \
		$(NODOC) \
		$(foreach x, $(GPGV_UNNEEDED), --disable-$(x))

override_dh_auto_test:
	# stripped down build fails on make check

endif  # ifeq ($(filter pkg.gnupg2.gpgvonly,$(DEB_BUILD_PROFILES)),


execute_before_dh_autoreconf:
	echo "Developer change history can be found in the source tarball. See NEWS for high-level changes." > ChangeLog

# visualizations of package dependencies:
debian/%.png: debian/%.dot
	dot -T png -o $@ $<