#!/usr/bin/make -f

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
  ENABLE_TESTS=ON
else
  ENABLE_TESTS=OFF
endif

ifneq (,$(filter $(DEB_HOST_ARCH), armel mipsel powerpc))
  export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
endif

dbusdir = $(CURDIR)/tmp
dbus_conf = $(dbusdir)/dbus.conf
dbus_sock = $(dbusdir)/sdbuscpp_bus
dbus_pidfile = $(dbusdir)/sdbuscpp.pid

%:
	dh $@

override_dh_auto_configure-arch:
	dh_auto_configure -- -DSDBUSCPP_BUILD_CODEGEN=ON -DSDBUSCPP_BUILD_DOCS=OFF -DSDBUSCPP_BUILD_TESTS=$(ENABLE_TESTS)

override_dh_auto_test-arch:
	-mkdir -p $(dbusdir)
	-kill -9 $$(cat $(dbusdir)/sdbuscpp.pid)
	-rm -v $(dbusdir)/dbus.conf $(dbusdir)/sdbuscpp_bus $(dbusdir)/sdbuscpp.pid

	sed 's|CURDIR|$(CURDIR)|g; s|DBUSDIR|$(dbusdir)|g;' debian/dbus.conf.tpl > $(dbusdir)/dbus.conf
	dbus-daemon --config-file $(dbusdir)/dbus.conf --fork

	deadline=$$(( $$(date +%s) + 60 )); \
	while [ $$(date +%s) -lt $$deadline ] && ! [ -S '$(dbus_sock)' ]; do \
		echo "Waiting for dbus socket at $(dbus_sock)"; \
		sleep 1; \
	done
	test -S $(dbus_sock)

	DBUS_SYSTEM_BUS_ADDRESS=unix:path=$(dbus_sock) dbus-run-session -- dh_auto_test --no-parallel

	-kill -9 $$(cat $(dbus_pidfile))
	-rm -v $(dbus_conf) $(dbus_sock) $(dbus_pidfile)
	-rmdir $(dbusdir)

override_dh_auto_configure-indep:
	dh_auto_configure -- -DSDBUSCPP_BUILD_DOCS=ON -DSDBUSCPP_BUILD_DOXYGEN_DOCS=ON

override_dh_auto_build-indep:
	dh_auto_build -- doc

override_dh_auto_install-indep:
	dh_auto_install -- -C docs

override_dh_auto_test-indep:
