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
|