You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rules 2.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/usr/bin/make -f
  2. export DEB_BUILD_MAINT_OPTIONS = hardening=+all reproducible=+fixfilepath
  3. export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
  4. export ASAN_OPTIONS=detect_leaks=0
  5. DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
  6. builddir = debian/build/flavor-
  7. FLAVORS = release asan
  8. CONFIG_asan = -DCMAKE_BUILD_TYPE=Debug -DSANITIZE=address -DENABLE_LTO=OFF
  9. CONFIG_release = -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_LTO=ON
  10. ENABLE_LUAJIT := -DENABLE_LUAJIT=ON -DLUA_ROOT=/luajit-build
  11. # Can be filled by a build system
  12. EXTRA_ARGS :=
  13. ENABLE_JEMALLOC := -DENABLE_JEMALLOC=ON
  14. ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON
  15. ifneq ($(filter $(DEB_HOST_ARCH),arm64),)
  16. ENABLE_JEMALLOC := -DENABLE_JEMALLOC=OFF
  17. ENABLE_HYPERSCAN := -DENABLE_HYPERSCAN=ON -DHYPERSCAN_ROOT_DIR=/vectorscan
  18. endif
  19. %:
  20. dh $@ --with systemd --parallel
  21. override_dh_auto_configure: $(patsubst %,configure_%,$(FLAVORS))
  22. configure_%:
  23. mkdir -p $(builddir)$*
  24. cd $(builddir)$* && cmake ../../../ -DCONFDIR=/etc/rspamd \
  25. -DMANDIR=/usr/share/man \
  26. -DRUNDIR=/run/rspamd \
  27. -DDBDIR=/var/lib/rspamd \
  28. -DLOGDIR=/var/log/rspamd \
  29. -DSHAREDIR=/usr/share/rspamd \
  30. -DLIBDIR=/usr/lib/rspamd \
  31. -DINCLUDEDIR=/usr/include \
  32. -DSYSTEMDDIR=/lib/systemd/system \
  33. -DCMAKE_INSTALL_PREFIX:PATH=/usr \
  34. -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
  35. -DDEBIAN_BUILD=1 \
  36. -DENABLE_PCRE2=ON \
  37. -DENABLE_LIBUNWIND=ON \
  38. -DWANT_SYSTEMD_UNITS=ON \
  39. -DENABLE_LIBCXX=AUTO \
  40. $(ENABLE_HYPERSCAN) \
  41. $(ENABLE_LUAJIT) \
  42. $(ENABLE_JEMALLOC) \
  43. $(CONFIG_$*) \
  44. $(EXTRA_ARGS)
  45. override_dh_auto_build: $(patsubst %,build_%,$(FLAVORS))
  46. build_%:
  47. dh_auto_build --sourcedirectory=$(builddir)$*
  48. override_dh_strip: $(patsubst %,strip_%,$(FLAVORS))
  49. strip_%:
  50. if [ "$*" = "asan" ]; then \
  51. dh_strip -prspamd-asan --dbg-package=rspamd-asan-dbg ; \
  52. else \
  53. dh_strip -prspamd --dbg-package=rspamd-dbg ; \
  54. fi
  55. override_dh_makeshlibs:
  56. dh_makeshlibs -Xrspamd-actrie
  57. override_dh_auto_install: $(patsubst %,install_%,$(FLAVORS))
  58. install_%:
  59. if [ "$*" = "asan" ]; then \
  60. cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd-asan ; \
  61. cd ../../../debian/rspamd-asan && mkdir -p var/lib/rspamd \
  62. var/log/rspamd \
  63. etc/rspamd/local.d \
  64. etc/rspamd/override.d ; \
  65. else \
  66. cd $(builddir)$* && make install DESTDIR=../../../debian/rspamd ; \
  67. cd ../../../debian/rspamd && mkdir -p var/lib/rspamd \
  68. var/log/rspamd \
  69. etc/rspamd/local.d \
  70. etc/rspamd/override.d ; \
  71. fi
  72. override_dh_fixperms:
  73. dh_fixperms
  74. chmod 750 $(CURDIR)/debian/rspamd/var/lib/rspamd
  75. chmod 750 $(CURDIR)/debian/rspamd/var/log/rspamd
  76. chmod 750 $(CURDIR)/debian/rspamd-asan/var/lib/rspamd
  77. chmod 750 $(CURDIR)/debian/rspamd-asan/var/log/rspamd