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

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

kdist_image:
	$(ROOT_CMD) dh_testroot
	$(ROOT_CMD) dh_prep
	$(ROOT_CMD) $(MAKE) -C $(KSRC) O=$(KOUT) M=$(shell pwd) modules
	$(ROOT_CMD) $(MAKE) INSTALL_MOD_PATH=$(shell pwd)/debian/apex \
                      -C $(KSRC) O=$(KOUT) M=$(shell pwd) modules_install
	$(ROOT_CMD) find $(shell pwd)/debian/apex/ -type f ! -name '*.ko' | xargs rm -f
	$(ROOT_CMD) dh_installmodules
	$(ROOT_CMD) dh_compress
	$(ROOT_CMD) dh_fixperms
	$(ROOT_CMD) dh_installdeb
	$(ROOT_CMD) dh_gencontrol
	$(ROOT_CMD) dh_md5sums
	$(ROOT_CMD) dh_builddeb --destdir=$(KOUT)/../..
	$(ROOT_CMD) dh_prep

kdist_clean:
	$(ROOT_CMD) $(MAKE) clean

%:
	dh $@
