aboutsummaryrefslogtreecommitdiffstats
path: root/debian/rules
blob: ce3ebf48807a465f2438b8cfe8a8c1291fc73066 (plain)
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
#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all reproducible=+fixfilepath
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
export ASAN_OPTIONS=detect_leaks=0

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
builddir = debian/build/flavor-
FLAVORS = release asan
CONFIG_asan = -DCMAKE_BUILD_TYPE=Debug -DSANITIZE=address -DENABLE_LTO=OFF
CONFIG_release = -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LTO=ON

ifneq ($(filter $(DEB_HOST_ARCH),amd64 armel armhf i386 mips mips64el mipsel ppc64 ppc64el),)
	ENABLE_LUAJIT := -DENABLE_LUAJIT=ON -DLUA_ROOT=/luajit-build
else
	ENABLE_LUAJIT := -DENABLE_LUAJIT=OFF
endif

# Can be filled by a build system
EXTRA_ARGS :=
ENABLE_JEMALLOC := -DENABLE_JEMALLOC=OFF

ifneq ($(filter $(DEB_HOST_ARCH),amd64 i386 arm64),)
ifeq ($(filter $(DEB_HOST_ARCH),arm64),)
	ENABLE_JEMALLOC := -DENABLE_JEMALLOC=ON
	ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON -DHYPERSCAN_ROOT_DIR=/vectorscan
else
	ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON
endif
else
	ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=OFF
endif

%:
	dh $@ --with systemd --parallel

override_dh_auto_configure: $(patsubst %,configure_%,$(FLAVORS))
configure_%:
	mkdir -p $(builddir)$*
	cd $(builddir)$* && cmake ../../../  -DCONFDIR=/etc/rspamd -DCMAKE_C_COMPILER=clang-16 -DCMAKE_CXX_COMPILER=clang++-16 \
		-DMANDIR=/usr/share/man \
		-DRUNDIR=/run/rspamd \
		-DDBDIR=/var/lib/rspamd \
		-DLOGDIR=/var/log/rspamd \
		-DSHAREDIR=/usr/share/rspamd \
		-DLIBDIR=/usr/lib/rspamd \
		-DINCLUDEDIR=/usr/include \
		-DSYSTEMDDIR=/lib/systemd/system \
		-DCMAKE_INSTALL_PREFIX:PATH=/usr \
		-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
		-DDEBIAN_BUILD=1 \
		-DENABLE_PCRE2=ON \
		-DENABLE_LUAJIT=$(ENABLE_LUAJIT) \
		-DENABLE_LIBUNWIND=ON \
		-DWANT_SYSTEMD_UNITS=ON \
		-DENABLE_STATIC_LIBCXX=OFF \
		-DENABLE_LIBCXX=OFF \
		$(ENABLE_HYPERSCAN) \
		$(ENABLE_LUAJIT) \
		$(ENABLE_JEMALLOC) \
		$(CONFIG_$*) \
		$(EXTRA_ARGS)

override_dh_auto_build: $(patsubst %,build_%,$(FLAVORS))
build_%:
	dh_auto_build --sourcedirectory=$(builddir)$*

override_dh_strip: $(patsubst %,strip_%,$(FLAVORS))
strip_%:
	if [ "$*" = "asan" ]; then \
		dh_strip --dbg-package=rspamd-dbg-asan ; \
	else \
		dh_strip --dbg-package=rspamd-dbg ; \
	fi

override_dh_makeshlibs:
	dh_makeshlibs -Xrspamd-actrie

override_dh_auto_install: $(patsubst %,install_%,$(FLAVORS))
install_%:
	if [ "$*" = "asan" ]; then \
		cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd-asan ; \
	else \
		cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd ; \
	fi

override_dh_fixperms:
	dh_fixperms
	chmod 750 $(CURDIR)/debian/rspamd/var/lib/rspamd
	chmod 750 $(CURDIR)/debian/rspamd/var/log/rspamd
	chmod 750 $(CURDIR)/debian/rspamd-asan/var/lib/rspamd
	chmod 750 $(CURDIR)/debian/rspamd-asan/var/log/rspamd