#!/usr/bin/make -f

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

DEBIAN  := $(shell dpkg-parsechangelog | grep ^Version: | cut -d' ' -f2)
DEBVERS := $(shell echo '$(DEBIAN)' | cut -d- -f1)
VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/[+-].*//' -e 's/~//g')

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

export DEB_LDFLAGS_MAINT_STRIP = -Wl,-Bsymbolic-functions

%:
	dh $@ --with autoreconf --fail-missing

override_dh_strip:
	dh_strip --dbg-package=libosmocore-dbg

override_dh_install:
	sed -i "/dependency_libs/ s/'.*'/''/" `find . -name '*.la'`
	dh_install

# Print test results in case of a failure
override_dh_auto_test:
	dh_auto_test || (find . -name testsuite.log -exec cat {} \; ; false)

# Set --disable-uring for debian 10 and ubuntu 20.04
override_dh_auto_configure:
	set -x && \
	CONFIGURE_FLAGS=" \
		--disable-sctp-tests \
		--disable-uring-tests \
		--enable-static \
		--enable-systemd-logging \
	"; \
	distro_v=$$(. /etc/os-release && echo $$VERSION_ID); \
	if [ "$$distro_v" = 10 ] || [ "$$distro_v" = 20.04 ]; then \
		CONFIGURE_FLAGS="$$CONFIGURE_FLAGS --disable-uring"; \
	fi; \
	dh_auto_configure -- $$CONFIGURE_FLAGS

override_dh_clean:
	dh_clean
	$(RM) .version
	$(RM) debian/man/osmo-arfcn.1
	$(RM) debian/man/osmo-auc-gen.1
	$(RM) include/osmocom/core/bit16gen.h
	$(RM) include/osmocom/core/bit32gen.h
	$(RM) include/osmocom/core/bit64gen.h
	$(RM) include/osmocom/core/crc16gen.h
	$(RM) include/osmocom/core/crc32gen.h
	$(RM) include/osmocom/core/crc64gen.h
	$(RM) include/osmocom/core/crc8gen.h
	$(RM) src/core/crc16gen.c
	$(RM) src/core/crc32gen.c
	$(RM) src/core/crc64gen.c
	$(RM) src/core/crc8gen.c
	$(RM) tests/package.m4
	$(RM) tests/testsuite
	$(RM) -r doc/codec/
	$(RM) -r doc/core/
	$(RM) -r doc/ctrl/
	$(RM) -r doc/gsm/
	$(RM) -r doc/isdn/
	$(RM) -r doc/gb/
	$(RM) -r doc/vty/html/
	$(RM) -r doc/vty/latex/
