# Copyright 2019 University of Warsaw
# The package contains files based on others' works. The contributions
# are stated in those files.

include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk

PKG_NAME:=icount-i2c
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=License

include $(INCLUDE_DIR)/package.mk

define KernelPackage/icount-i2c
  SUBMENU:=Other modules
  TITLE:=iCount driver
  DEPENDS:=+kmod-i2c-core
  FILES:=$(PKG_BUILD_DIR)/icount-i2c.ko
  KCONFIG:=
endef

define KernelPackage/icount-i2c/description
 Kernel module for iCount power measurement connected via i2c
endef

EXTRA_KCONFIG:= \
	CONFIG_ICOUNT_I2C=m

EXTRA_CFLAGS:= \
	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
	$(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \

MAKE_OPTS:= \
	ARCH="$(LINUX_KARCH)" \
	CROSS_COMPILE="$(TARGET_CROSS)" \
	SUBDIRS="$(PKG_BUILD_DIR)" \
	EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
	$(EXTRA_KCONFIG)

define Build/Prepare
	mkdir -p $(PKG_BUILD_DIR)
	$(CP) ./src/* $(PKG_BUILD_DIR)/
endef

define Build/Compile
	$(MAKE) -C "$(LINUX_DIR)" \
		$(MAKE_OPTS) \
		modules
endef

define KernelPackage/icount-i2c/install
	$(INSTALL_DIR) $(1)/etc
	$(INSTALL_DIR) $(1)/etc/modules.d
	$(INSTALL_DIR) $(1)/usr
	$(INSTALL_DIR) $(1)/usr/local
	$(INSTALL_DIR) $(1)/usr/local/bin
	$(INSTALL_BIN) ./files/usr/local/bin/collect-icount.lua $(1)/usr/local/bin/collect-icount.lua
	$(INSTALL_DATA) ./files/etc/modules.d/60-icount-i2c $(1)/etc/modules.d/60-icount-i2c
endef

$(eval $(call KernelPackage,icount-i2c))
