#!/usr/bin/make -f
# -*- makefile -*-

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

# Package version
pver := $(shell dpkg-parsechangelog | sed -ne 's,^Version: *\([0-9.]*\).*,\1,p')

DCFG := debian/xtables-addons-dkms.dkms
TMPSRC := debian/temp.src

# '--with autotools_dev' may be used instead of '--with autoreconf' but not together
%:
	dh $@ --with dkms --with autoreconf


override_dh_clean:
	dh_clean *.8 *.man .manpages.lst extensions/*/Makefile $(DCFG) $(TMPSRC) \
          extensions/.*.oo.d extensions/ACCOUNT/.*.oo.d extensions/pknock/.*.oo.d

override_dh_auto_configure:
	[ -d /lib/modules/`uname -r`/build ]  &&  dh_auto_configure \
	|| dh_auto_configure -- --without-kbuild

override_dh_auto_build:
	## prepare sources for DKMS and source packages
	mkdir -p $(TMPSRC) \
	&& cp -r extensions/* mconfig Makefile.extra Makefile.iptrules $(TMPSRC) \
	&& find $(TMPSRC) -name ".gitignore" -delete
	## continue with build
	dh_auto_build

SRC_MOD := debian/xtables-addons-source/usr/src/modules
SRC_DKMS := debian/xtables-addons-dkms/usr/src
override_dh_auto_install: $(DCFG)
	## prepare module sources
	mkdir -p $(TMPSRC)/debian \
	&& cp debian/changelog debian/copyright debian/compat \
		debian/control.modules.in debian/control $(TMPSRC)/debian/ \
	&& cp debian/rules.modules $(TMPSRC)/debian/rules
	mkdir -p $(SRC_MOD) \
	&& mv $(TMPSRC) $(SRC_MOD)/xtables-addons \
	&& cd debian/xtables-addons-source/usr/src \
	&& tar cjf xtables-addons.tar.bz2 modules \
	&& $(RM) -r modules/xtables-addons/debian
	## prepare DKMS sources
	mkdir -p $(SRC_DKMS) \
	&& mv $(SRC_MOD)/xtables-addons $(SRC_DKMS)/xtables-addons-$(pver) \
	&& $(RM) -r $(SRC_MOD)
	## continue with install
	dh_auto_install


DKMS_MODS=$(shell find . -name "*.ko" -print | sort | sed 's|.*/\([^/]*\)\.ko|\1|')

$(DCFG):
	sed -e 's/__VERSION__/$(pver)/g' $(DCFG).in > $(DCFG)
	# use the list of generated modules (if not empty) to create a dkms config file.
	[ -n "${DKMS_MODS}" ] \
	&& sed -i -e '/####/,$$d' $(DCFG) \
	&& ( value=0; for module_name in $(DKMS_MODS); \
	do echo "BUILT_MODULE_LOCATION[$$value]=\"\" \
			\nBUILT_MODULE_NAME[$$value]=\"$$module_name\" \
			\nDEST_MODULE_LOCATION[$$value]=\"/updates\"\n"; \
		value=$$((value+1)); \
	done ) >> $(DCFG) || exit 0;

#workaround for 'dpkg-shlibdeps: error: couldn't find library libipset.so.1'
override_dh_shlibdeps:
	LD_LIBRARY_PATH="debian/xtables-addons-common/usr/lib/xtables-addons:$(LD_LIBRARY_PATH)" dh_shlibdeps

get-orig-source:
	uscan --noconf --force-download --rename --download-current-version --destdir=.
