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

export DH_VERBOSE=1

SOURCE_VERSION := $(shell sed -n 's/^Build-Depends-Indep: .*kernel-source-\([^ ]*\).*$$/\1/; t e; b; :e; p; q' debian/control)

KERNELRELEASE = $(shell cat $(CURDIR)/kernel-source-$(SOURCE_VERSION)/include/config/kernel.release 2> /dev/null)

PACKAGE := $(shell sed -n 's/^Source:[\t ]*\([^ ]*\).*$$/\1/; t e; b; :e; p; q' debian/control)
MODULES_PACKAGE=$(PACKAGE)-modules
MODULES_EXTRA_PACKAGE=$(PACKAGE)

PRODUCT := diablo
DEBIAN_DIR := debian
DEFCONFIG := nokia_2420_defconfig

MODULES_EXTRA = drivers/md/dm-mod.ko drivers/md/dm-loop.ko

HOSTCC=/scratchbox/compilers/cs2005q3.2-glibc2.5-arm/bin/arm-linux-gcc

build: modules-extra

modules-extra: configure-stamp
	echo "compile $(PRODUCT) kernel EXTRA modules"
	cd $(CURDIR)/kernel-source-$(SOURCE_VERSION)/ && \
	patch -p1 < $(CURDIR)/$(DEBIAN_DIR)/dm-bio-list-helpers.patch && \
	patch -p1 < $(CURDIR)/$(DEBIAN_DIR)/dm-loop-config.patch && \
	patch -p1 < $(CURDIR)/$(DEBIAN_DIR)/dm-loop.patch && \
	patch -p1 < $(CURDIR)/$(DEBIAN_DIR)/dm-loop-invalidate_mapping_pages.patch && \
	patch -p1 < $(CURDIR)/$(DEBIAN_DIR)/modules-dmloop_config.patch && \
	make HOSTCC=$(HOSTCC) oldconfig modules 
	touch $@

configure-stamp: sources-stamp
	cd $(CURDIR)/kernel-source-$(SOURCE_VERSION)/ && \
	make HOSTCC=$(HOSTCC) $(DEFCONFIG)
	touch $@

sources-stamp:
	test -d $(CURDIR)/kernel-source-$(SOURCE_VERSION) || tar jxf /usr/src/kernel-source-$(SOURCE_VERSION).tar.bz2
	touch $@

clean:
	dh_testdir
	dh_testroot
	rm -f configure-stamp sources-stamp modules-extra
	rm -rf kernel-source-$(SOURCE_VERSION)
	dh_clean

install-modules-extra:
	dh_testdir
	dh_testroot

	mkdir -p $(CURDIR)/$(DEBIAN_DIR)/$(MODULES_EXTRA_PACKAGE)/lib/modules/$(KERNELRELEASE)/extra
	for f in $(MODULES_EXTRA); do \
		install -c -m 644 $(CURDIR)/kernel-source-$(SOURCE_VERSION)/$$f \
			$(CURDIR)/$(DEBIAN_DIR)/$(MODULES_EXTRA_PACKAGE)/lib/modules/$(KERNELRELEASE)/extra/$$(basename $$f); \
	done

binary-arch: build install-modules-extra
	dh_testdir
	dh_testroot
	dh_installchangelogs 
	dh_installdocs
	dh_compress
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary: binary-arch

.PHONY: build clean binary-arch binary install-modules-extra
