#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1

LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
CXXFLAGS += -std=c++14
LIBDIR := /usr/lib/$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)

%:
	dh $@ --parallel --with=systemd

override_dh_auto_configure:
	CXXFLAGS="$(CXXFLAGS)" ./waf configure --without-pch --prefix=/usr --sysconfdir=/etc --localstatedir=/var --boost-libs="$(LIBDIR)"

override_dh_auto_build:
	./waf build

override_dh_auto_install:
	./waf install --destdir=debian/tmp

override_dh_auto_clean:
	./waf distclean

override_dh_clean:
	dh_clean
	./waf distclean
	rm -rf .waf-1*
	rm -f .waf-tools/*.pyc
	rm -f docs/*.pyc
	rm -rf .waf-tools/__pycache__
	rm -rf docs/__pycache__

override_dh_auto_test:

override_dh_systemd_enable:
	dh_systemd_enable -pnfd
	dh_systemd_enable -pnfd-status-http-server
	dh_systemd_enable -pndn-autoconfig-server --no-enable
	dh_systemd_enable -pndn-autoconfig-client --no-enable
	dh_systemd_enable -pnfd-autoreg --no-enable

override_dh_systemd_start:
	dh_systemd_start -pnfd
	dh_systemd_start -pnfd-status-http-server
	dh_systemd_start -pndn-autoconfig-server --no-start
	dh_systemd_start -pndn-autoconfig-client --no-start
	dh_systemd_start -pnfd-autoreg --no-start

.PHONY: override_dh_strip
override_dh_strip:
	dh_strip --dbg-package=nfd-dbg
