#!/usr/bin/make -f
export DH_VERBOSE=1
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
include /usr/share/dpkg/default.mk
export ERL_COMPILER_OPTIONS=deterministic

BIN_PACKAGES=$(shell grep ^Package: debian/control  | sed 's/^Package: //' | grep -v ejabberd-contrib)
EJABBERDDIR=$(shell basename `find /usr/lib -regextype posix-egrep -maxdepth 2 -type d -regex ".*/ejabberd-[0-9.]{5,10}"`)
EJABBERDVER=$(shell dpkg-query --show --showformat '$${Version;-25}' ejabberd)

ejabberd-mod-cron_BUILD_PATH=mod_cron/
ejabberd-mod-autoreload_BUILD_PATH=mod_autoreload/
ejabberd-mod-default-contacts_BUILD_PATH=mod_default_contacts/
ejabberd-mod-default-rooms_BUILD_PATH=mod_default_rooms/
ejabberd-mod-deny-omemo_BUILD_PATH=mod_deny_omemo/
ejabberd-mod-filter_BUILD_PATH=mod_filter/
ejabberd-mod-grafite_BUILD_PATH=mod_grafite/
ejabberd-mod-http-redirect_BUILD_PATH=mod_http_redirect/
ejabberd-mod-isolation_BUILD_PATH=mod_isolation/
ejabberd-mod-log-chat_BUILD_PATH=mod_log_chat/
ejabberd-mod-logsession_BUILD_PATH=mod_logsession/
ejabberd-mod-logxml_BUILD_PATH=mod_logxml/
ejabberd-mod-message-log_BUILD_PATH=mod_message_log/
ejabberd-mod-muc-log-http_BUILD_PATH=mod_muc_log_http/
ejabberd-mod-muc-webchat-url_BUILD_PATH=mod_muc_webchat_url/
ejabberd-mod-post-log_BUILD_PATH=mod_post_log/
ejabberd-mod-pottymouth_BUILD_PATH=mod_pottymouth/
ejabberd-mod-rest_BUILD_PATH=mod_rest/
ejabberd-mod-s3-upload_BUILD_PATH=mod_s3_upload/
ejabberd-mod-s2s-log_BUILD_PATH=mod_s2s_log/
ejabberd-mod-shcommands_BUILD_PATH=mod_shcommands/
ejabberd-mod-spam-filter_BUILD_PATH=mod_spam_filter/
ejabberd-mod-statsdx_BUILD_PATH=mod_statsdx/
ejabberd-mod-tombstones_BUILD_PATH=mod_tombstones/
ejabberd-mod-unified-push_BUILD_PATH=mod_unified_push/
ejabberd-mod-webadmin-config_BUILD_PATH=mod_webadmin_config/
ejabberd-mod-webpresence_BUILD_PATH=mod_webpresence/

%:
	dh $@

compile-%:
	mkdir ${$*_BUILD_PATH}ebin
	cd ${$*_BUILD_PATH} && erlc -o ebin -I include -I /usr/lib/$(DEB_TARGET_MULTIARCH)/$(EJABBERDDIR)/include \
		-pa /usr/lib/$(DEB_TARGET_MULTIARCH)/$(EJABBERDDIR)/ebin/ src/*.erl

override_dh_auto_build: $(BIN_PACKAGES:%=compile-%)

module-install-%:
	mkdir -p debian/$*/usr/lib/$(DEB_TARGET_MULTIARCH)/$(EJABBERDDIR)/ebin
	mkdir -p debian/$*/usr/share/doc/$*
	mv -v ${$*_BUILD_PATH}ebin/*.beam debian/$*/usr/lib/$(DEB_TARGET_MULTIARCH)/$(EJABBERDDIR)/ebin/
	debian/dh_moduleupdate $*
	if [ -f ${$*_BUILD_PATH}ChangeLog ]; then cp ${$*_BUILD_PATH}ChangeLog debian/$*/usr/share/doc/$*/changelog; fi
	if [ -d ${$*_BUILD_PATH}conf ];	then cp -a ${$*_BUILD_PATH}conf debian/$*/usr/share/doc/$*/; fi
	if [ -f ${$*_BUILD_PATH}README.* ]; then cp -v ${$*_BUILD_PATH}README.* debian/$*/usr/share/doc/$*/; fi
	if [ -f ${$*_BUILD_PATH}TODO* ]; then cp -v ${$*_BUILD_PATH}TODO* debian/$*/usr/share/doc/$*/; fi

override_dh_auto_install: $(BIN_PACKAGES:%=module-install-%)
	erlang-depends
	dh_auto_install

override_dh_gencontrol:
	echo "ejabberd=$(EJABBERDVER)" >> $(CURDIR)/debian/substvars
	dh_gencontrol -- -T$(CURDIR)/debian/substvars

override_dh_installdeb:
	dh_installdeb
	rm -f debian/ejabberd-contrib/DEBIAN/postinst

override_dh_auto_clean:
	rm -rf */ebin debian/substvars
	dh_auto_clean
