#!/usr/bin/make -f
# SPDX-License-Identifier: GPL-3.0-or-later

# see FEATURE AREAS in dpkg-buildflags(1)
export DEB_BUILD_MAINT_OPTIONS = hardening=+all

# see ENVIRONMENT in dpkg-buildflags(1)
# package maintainers to append CFLAGS
export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic -fno-omit-frame-pointer
# package maintainers to append LDFLAGS
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

export PYKRES_NAME=knot_resolver
export PYKRES_DEST=debian/knot-resolver-core/
export KRES_MANAGER_NAME=knot_resolver_manager
export KRES_MANAGER_DEST=debian/knot-resolver-manager/

# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

export ARCH=$(DEB_HOST_GNU_CPU)


%:
	dh $@ --with python3

override_dh_auto_build:
	meson build_deb \
		--buildtype=plain \
		--prefix=/usr \
		--libdir=lib \
		-Dsystemd_files=enabled \
		-Ddnstap=enabled \
		-Dkeyfile_default=/usr/share/dns/root.key \
		-Droot_hints=/usr/share/dns/root.hints \
		-Dunit_tests=enabled \
		-Dmalloc=jemalloc \
		-Dc_args="$${CFLAGS}" \
		-Dc_link_args="$${LDFLAGS}"
	ninja -v -C build_deb
	PYBUILD_NAME="$${PYKRES_NAME}" PYBUILD_DESTDIR="$${PYKRES_DEST}" \
		dh_auto_build --buildsystem=pybuild --sourcedirectory build_deb/python
	PYBUILD_NAME="$${KRES_MANAGER_NAME}" PYBUILD_DESTDIR="$${KRES_MANAGER_DEST}" \
		dh_auto_build --buildsystem=pybuild --sourcedirectory manager

override_dh_auto_install:
	DESTDIR="${PWD}/debian/tmp" ninja -v -C build_deb install
	PYBUILD_NAME="$${PYKRES_NAME}" PYBUILD_DESTDIR="$${PYKRES_DEST}" \
		dh_auto_install --buildsystem=pybuild --sourcedirectory build_deb/python
	PYBUILD_NAME="$${KRES_MANAGER_NAME}" PYBUILD_DESTDIR="$${KRES_MANAGER_DEST}" \
		dh_auto_install --buildsystem=pybuild --sourcedirectory manager
	install -m 644 -D manager/etc/knot-resolver/config.yaml debian/tmp/etc/knot-resolver/config.yaml
	install -m 644 -D manager/shell-completion/client.bash debian/tmp/usr/share/bash-completion/completions/kresctl
	install -m 644 -D manager/shell-completion/client.fish debian/tmp/usr/share/fish/completions/kresctl.fish

override_dh_auto_test:
	meson test -C build_deb

override_dh_missing:
	dh_missing --fail-missing

override_dh_strip:
	dh_strip --dbg-package=knot-resolver-core-dbg
