#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_CFLAGS_MAINT_APPEND  = -Wall -DNDEBUG
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

export DPKG_GENSYMBOLS_CHECK_LEVEL := 4
export KNOT_SOFTHSM2_DSO = /usr/lib/softhsm/libsofthsm2.so

include /usr/share/dpkg/default.mk

# Disable fastparser if requested
ifeq (maint,$(filter $(DEB_BUILD_OPTIONS),maint))
  FASTPARSER := --disable-fastparser
else
  FASTPARSER := --enable-fastparser
endif

LIBKNOT_SYMBOLS := $(wildcard $(CURDIR)/debian/libknot*.symbols)

# MAJOR.MINOR version part
BASE_VERSION := $(shell echo $(DEB_VERSION) | sed 's/^\([^.]\+\.[^.]\+\).*/\1/')

# pyproject is supported by knot but fails on second `pybuild --build`
# invocation due to bug in dh-python's plugin_pyproject.py wheel unpack
export PYBUILD_SYSTEM = distutils

%:
	dh $@ \
	  --with python3

override_dh_auto_configure:
	@echo 'architecture:' $(DEB_HOST_ARCH)
	dh_auto_configure -- \
	  --sysconfdir=/etc \
	  --localstatedir=/var/lib \
	  --libexecdir=/usr/lib/knot \
	  --with-rundir=/run/knot \
	  --with-moduledir=/usr/lib/$(DEB_HOST_MULTIARCH)/knot/modules-$(BASE_VERSION) \
	  --with-storage=/var/lib/knot \
	  --enable-systemd=auto \
	  --enable-dnstap \
	  --with-module-dnstap=shared \
	  --with-module-geoip=shared \
	  --enable-recvmmsg=yes \
	  --disable-silent-rules \
	  --enable-xdp=yes \
	  --enable-quic=yes \
	  --enable-redis=auto \
	  --disable-static \
	  $(FASTPARSER)

override_dh_auto_configure-indep:
	pybuild --dir python/libknot --configure
	pybuild --dir python/knot_exporter --configure

override_dh_auto_build-indep:
	dh_auto_build -- html
	pybuild --dir python/libknot --build
	pybuild --dir python/knot_exporter --build

override_dh_auto_install-arch:
	dh_auto_install -- install
	# rename knot.sample.conf to knot.conf
	mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf
	@if grep -E -q "DoQ support: +no" "$(CURDIR)/debian/tmp/usr/sbin/knotd"; then \
	  echo "Stripping the QUIC symbols"; \
	  sed -i '/knot_quic_/d' $(LIBKNOT_SYMBOLS); \
	fi
	@if [ -f "$(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so" ]; then \
	  chmod 0755 $(CURDIR)/debian/tmp/usr/lib/*/knot/redis/knot.so; \
	fi

override_dh_auto_install-indep:
	dh_auto_install -- install-html
	# rename knot.sample.conf to knot.conf
	mv $(CURDIR)/debian/tmp/etc/knot/knot.sample.conf $(CURDIR)/debian/tmp/etc/knot/knot.conf
	pybuild --dir python/libknot --install
	pybuild --dir python/knot_exporter --install
	rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/libknot/__pycache__
	rm -rf $(CURDIR)/debian/tmp/usr/lib/python*/dist-packages/knot_exporter/__pycache__

override_dh_auto_test-indep:
override_dh_auto_test-arch:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	dh_auto_test
endif

override_dh_missing:
	dh_missing --exclude=.la --fail-missing

override_dh_installchangelogs:
	dh_installchangelogs NEWS
