#!/usr/bin/make -f

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

export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/pkg-info.mk

# Enable parallel builds.
NUMJOBS = 1
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
  MAKEFLAGS += -j$(NUMJOBS)
endif

export RADCLI=1
export WOLFSSL_INTERNAL=no
# tlsa
export KTLS_INCLUDE_TLSA=yes
export LIBSSL_STATIC_SRCLIB=yes
export LIBSSL_STATIC_SRCPATH=/usr/$(LIBDIR)

# Modules not in the "main" kamailio package:
EXCLUDED_MODULES =
EXCLUDED_MODULES += mono
EXCLUDED_MODULES += geoip
EXCLUDED_MODULES += dnssec
EXCLUDED_MODULES += java
EXCLUDED_MODULES += berkeley

# Extra modules to skip, because they are not compilable now:
# - regardless if they go to the main kamailio package or to some module
#   package, they will be excluded from compile and install of all.
EXTRA_EXCLUDED_MODULES += bdb
EXTRA_EXCLUDED_MODULES += oracle
EXTRA_EXCLUDED_MODULES += pa
EXTRA_EXCLUDED_MODULES += iptrtpproxy
EXTRA_EXCLUDED_MODULES += python
## --EXCLUDED--


# Module groups that are packaged in separate packages (with the name
# kamailio-$(group_name)-modules).
# Note: the order is important (should be in dependency order, the one
# on which other depend first)
PACKAGE_GROUPS += mysql
PACKAGE_GROUPS += postgres
PACKAGE_GROUPS += unixodbc
PACKAGE_GROUPS += radius
PACKAGE_GROUPS += presence
PACKAGE_GROUPS += ldap
PACKAGE_GROUPS += xml
PACKAGE_GROUPS += perl
PACKAGE_GROUPS += utils
PACKAGE_GROUPS += lua
PACKAGE_GROUPS += memcached
PACKAGE_GROUPS += snmpstats
PACKAGE_GROUPS += xmpp
PACKAGE_GROUPS += cpl
PACKAGE_GROUPS += redis
PACKAGE_GROUPS += geoip2
PACKAGE_GROUPS += sqlite
PACKAGE_GROUPS += json
PACKAGE_GROUPS += ruby
PACKAGE_GROUPS += ims
PACKAGE_GROUPS += sctp
PACKAGE_GROUPS += tls
PACKAGE_GROUPS += outbound
PACKAGE_GROUPS += websocket
PACKAGE_GROUPS += autheph
PACKAGE_GROUPS += kazoo
PACKAGE_GROUPS += cnxcc
PACKAGE_GROUPS += erlang
PACKAGE_GROUPS += systemd
PACKAGE_GROUPS += phonenum
PACKAGE_GROUPS += mongodb
PACKAGE_GROUPS += rabbitmq
PACKAGE_GROUPS += python3
PACKAGE_GROUPS += mqtt
PACKAGE_GROUPS += secsipid
PACKAGE_GROUPS += lwsc
PACKAGE_GROUPS += nats
PACKAGE_GROUPS += tls_wolfssl
PACKAGE_GROUPS += microhttpd
PACKAGE_GROUPS += kafka
PACKAGE_GROUPS += auth_blockchain

# Module groups to be packaged onto kamailio-extra-modules.
EXTRA_GROUPS += ev
EXTRA_GROUPS += gzcompress
EXTRA_GROUPS += jansson
EXTRA_GROUPS += uuid
EXTRA_GROUPS += http_async

INSTALL_MODULES := $(addprefix install_, $(PACKAGE_GROUPS))

# https://wiki.debian.org/ReproducibleBuilds/
export DEB_CFLAGS_MAINT_APPEND=-DVERSION_NODATE

.PHONY: skip-modules $(INSTALL_MODULES)
skip-modules:
	@echo "$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)"

%:
	dh $@ --buildsystem=cmake

override_dh_auto_configure:
	dh_auto_configure -- \
		-DBUILD_DOC=ON \
		-DUSE_GIT=OFF \
		-DEXCLUDE_MODULES="$(EXCLUDED_MODULES) $(EXTRA_EXCLUDED_MODULES)" \
		-DMODULE_GROUP_NAME="KSTANDARD $(shell echo "$(addprefix K, $(PACKAGE_GROUPS) $(EXTRA_GROUPS))"| tr '[:lower:]' '[:upper:]')"

execute_after_dh_auto_build:
	cmake --build "obj-${DEB_HOST_GNU_TYPE}" -t dbschema

override_dh_auto_test:
