-include $(ROOTDIR)/.config
#CONFIG_PRODUCT=DA-682A
PKG_ARCH=amd64
PKG_VERSION=1.0
MOXA_PACKAGE_DIR=fakeroot

#KDIR:=$(ROOTDIR)/$(LINUXDIR)
KDIR:=/lib/modules/`uname -r`/build
KERNEL_VER=`cat $(ROOTDIR)/$(LINUXDIR)/include/config/kernel.release`
#KERNEL_VER=`uname -r`
TARGET_MODULE = moxa_v2100_wdt
obj-m += $(TARGET_MODULE).o

#EXTRA_CFLAGS+=-isystem $(PWD)/../moxa_v2100_superio
EXTRA_CFLAGS+=-isystem $(shell pwd)/../modules/moxa_v2100_superio
#EXTRA_CFLAGS+=-D__WDT_TEST__  # Define for watchdog driver testing
#EXTRA_CFLAGS=-D__PROC_READ_ENTRY__

.PHONY: modules clean romfs

modules:
	@echo "Making modules $(TARGET_MODULE).ko ..."
	# Jared, 2013-04-24, 
	# First, to build moxa_v2100_superio
	# Then we need to link with Module.symvers of moxa_superio.ko
	cp -a ../moxa_v2100_superio/Module.symvers .
	$(MAKE) -C $(KDIR) M=`pwd` modules

clean:
	$(MAKE) -C $(KDIR) M=`pwd` clean
	rm -rf $(MOXA_PACKAGE_DIR)/lib \
	$(MOXA_PACKAGE_DIR)/DEBIAN/control \
	$(DPKGDIR)/$(CONFIG_PRODUCT)-wdt_$(PKG_VERSION)_$(PKG_ARCH).deb

package:
	mkdir -p $(MOXA_PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)/kernel/drivers/char/
	cp $(TARGET_MODULE).ko $(MOXA_PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)/kernel/drivers/char/
	:> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo -n "Package: " > $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "$(CONFIG_PRODUCT)-wdt" | tr '[A-Z]' '[a-z]' >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Version: $(PKG_VERSION)" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Section: base" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Priority: required" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Architecture: $(PKG_ARCH)" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo -n "Depends:" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "$(CONFIG_PRODUCT)-superio" | tr '[A-Z]' '[a-z]' >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Maintainer: Jared Wu <jared.wu@moxa.com>" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	echo "Description: Moxa $(CONFIG_PRODUCT) watchdog device driver" >> $(MOXA_PACKAGE_DIR)/DEBIAN/control
	dpkg -b $(MOXA_PACKAGE_DIR) $(DPKGDIR)/$(CONFIG_PRODUCT)-wdt_$(PKG_VERSION)_$(PKG_ARCH).deb
	rm -rf ../$(MOXA_PACKAGE_DIR)/lib/modules/$(KERNEL_VERSION)
	# Sign the package
	dpkg-sig -v -k F7F3CD9E --sign builder $(DPKGDIR)/$(CONFIG_PRODUCT)-wdt_$(PKG_VERSION)_$(PKG_ARCH).deb
	scp $(DPKGDIR)/$(CONFIG_PRODUCT)-wdt_$(PKG_VERSION)_$(PKG_ARCH).deb moxa@220.135.161.42:/dev/shm/

romfs:
	mkdir -v -p "$(ROMFSDIR)/lib/modules/$(KERNEL_VER)/kernel/drivers/watchdog"
	$(ROMFSINST) -v $(TARGET_MODULE).ko "/lib/modules/$(KERNEL_VER)/kernel/drivers/watchdog"

install:
	mkdir -v -p "/lib/modules/$(KERNEL_VERSION)/kernel/drivers/watchdog"
	cp -a $(TARGET_MODULE).ko "/lib/modules/$(KERNEL_VERSION)/kernel/drivers/watchdog/"
	depmod -a
	if [ -f /etc/modules ]; then \
		if [ "`grep -c $(TARGET_MODULE) /etc/modules`" == "0" ]; then \
			echo "moxa_v2100_superio.ko" >> /etc/modules; \
			echo "$(TARGET_MODULE).ko" >> /etc/modules; \
		fi \
	elif [ -d /etc/sysconfig/modules ]; then \
		:> /etc/sysconfig/modules/$(TARGET_MODULE).modules; \
		echo "#!/bin/sh" >> /etc/sysconfig/modules/$(TARGET_MODULE).modules; \
		echo "modprobe moxa_v2100_superio" >> /etc/sysconfig/modules/$(TARGET_MODULE).modules; \
		echo "modprobe $(TARGET_MODULE)" >> /etc/sysconfig/modules/$(TARGET_MODULE).modules; \
		chmod a+x /etc/sysconfig/modules/$(TARGET_MODULE).modules; \
	fi

uninstall:
	rm -f /lib/modules/$(KERNEL_VERSION)/kernel/drivers/watchdog/$(TARGET_MODULE).ko \
	/etc/sysconfig/modules/$(TARGET_MODULE).modules
	depmod -a

