#!/usr/bin/make -f

# Turn on all hardening flags, as we're a networked daemon.
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk

# Vendor and version
CXXFLAGS += -DPACKAGEVERSION='"$(DEB_VERSION).$(DEB_VENDOR)"'

H2O_SOURCE_DIR=$(CURDIR)/debian/vendor-h2o/
H2O_BUILD_DIR=$(CURDIR)/debian/vendor-h2o-build/
H2O_INSTALL_DIR=$(CURDIR)/debian/vendor-h2o-destdir/
LDFLAGS += -L$(H2O_INSTALL_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)
CXXFLAGS += -I$(H2O_INSTALL_DIR)/usr/include

%:
	dh $@

override_dh_auto_clean:
	dh_auto_clean
	rm -f dnslabeltext.cc
	rm -rf $(H2O_BUILD_DIR) $(H2O_INSTALL_DIR)

vendored_libh2o:
	# Build vendorized copy of libh2o first
	mkdir $(H2O_BUILD_DIR) $(H2O_INSTALL_DIR)
	(cd $(H2O_BUILD_DIR) && CFLAGS='-fPIC' cmake -DWITH_PICOTLS=off -DWITH_BUNDLED_SSL=off -DWITH_MRUBY=off -DCMAKE_INSTALL_PREFIX=/usr $(H2O_SOURCE_DIR))
	$(MAKE) -C $(H2O_BUILD_DIR) install DESTDIR=$(H2O_INSTALL_DIR)

override_dh_auto_configure: vendored_libh2o
	# Actually configure dnsdist now
	chmod a+x debian/configure-helpers/*
	PATH=debian/configure-helpers/:$$PATH dh_auto_configure -- \
	  --sysconfdir=/etc/dnsdist \
	  --enable-systemd --with-systemd=$$(pkgconf --variable=systemdsystemunitdir systemd) \
	  --enable-unit-tests \
	  --disable-silent-rules \
	  --enable-dnscrypt \
	  --enable-dns-over-https \
	  --enable-dns-over-tls \
	  --enable-dnstap \
	  --with-ebpf \
	  --with-gnutls=no \
	  --with-libsodium \
	  --with-libssl \
	  --with-lmdb \
	  --with-lua \
	  --with-net-snmp \
	  --with-nghttp2 \
	  --with-protobuf \
	  --with-re2 \
	  --with-service-user='_dnsdist' \
	  --with-service-group='_dnsdist' \
	  $(CONFIGURE_ARGS) PKG_CONFIG_PATH=$(H2O_INSTALL_DIR)/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig:$(PKG_CONFIG_PATH)

override_dh_auto_build-arch:
	dh_auto_build -- V=1

override_dh_auto_test:
	echo tests disabled, require working ipv4 stack

override_dh_install:
	dh_auto_install
	install -m 0640 debian/config/dnsdist.conf debian/dnsdist/etc/dnsdist/
	rm debian/dnsdist/etc/dnsdist/dnsdist.conf-dist
	install -d debian/dnsdist/usr/share/dnsdist/snmp
	install -m 644 -t debian/dnsdist/usr/share/dnsdist/snmp DNSDIST-MIB.txt

override_dh_installexamples:
	cp dnsdist.conf-dist dnsdist.conf
	dh_installexamples
	rm -f dnsdist.conf

override_dh_fixperms:
	dh_fixperms
	chmod 0640 debian/dnsdist/etc/dnsdist/dnsdist.conf
