#
# Makefile for Mediatek device drivers.
#

EXTRA_CFLAGS    += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/signal_test_ctrl
EXTRA_CFLAGS    += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/common
EXTRA_CFLAGS    += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/hwreg/signal_test_ctrl
EXTRA_CFLAGS    += -I$(REPO_ROOT_PATH)/mtktv_drivers/ree/include/mtktv-public-if/hwreg

obj-m := mtk-stctrl.o

mtk-stctrl-objs    += drv/signal_test_ctrl.o

# include kernel config
include $(O)/.config

ifeq ($(CONFIG_ARM),y)
    CHECKSTACK_ARCH = arm
endif
ifeq ($(CONFIG_ARM64),y)
    CHECKSTACK_ARCH = aarch64
endif
ifeq ($(CONFIG_MIPS),y)
    CHECKSTACK_ARCH = mips
endif

STCTRL_KO_STACKUSAGE_FILE=stctrlko_stackUsage.txt

.PHONY: all $PWD clean bsp checkstack

clean:
	@find -L \
		\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \
		-o -name '*.ko.*' \
		-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' -o -name '*.mod'\
		-o -name '*.symtypes' -o -name 'modules.order' \
		-o -name modules.builtin -o -name '.tmp_*.o.*' \
		-o -name '*.gcno' -o -name 'Module.symvers' \) -type f -print | xargs rm -f
	@find -L \( -name '.tmp_versions' -o -name 'bsp' \) -print | xargs rm -rf {}

stctrlkover:
	@echo "LIBCODE:Kernel signal_test_ctrl KO" > lib_version.txt
	@echo "LIBVER:2.$(shell date +%s)" >> lib_version.txt
	@echo "BUILDHASH:$(shell perl scripts/get_last_commit.pl $(shell dirname $(shell pwd)))" >> lib_version.txt
	@echo "BUILDDATE:$(shell date +%Y%m%d%H)" >> lib_version.txt
	@find ./bsp -name '*.ko' -type f | xargs -i $(CROSS_COMPILE)objcopy --remove-section .mmodule_version {}
	@find ./bsp -name '*.ko' -type f | xargs -i $(CROSS_COMPILE)objcopy --add-section .mmodule_version=./lib_version.txt {}

	@rm lib_version.txt

bsp:
	@rm -rf bsp
	@mkdir -p bsp
	@mkdir -p bsp/include
	@cp ../include/signal_test_ctrl/*.h bsp/include
	@find . -name "*.ko" | xargs -i bash -c "cp -rf {} bsp"
	@make stctrlkover

checkstack:
	@find . -name '*.ko' -type f | xargs -i $(CROSS_COMPILE)objdump -D {} | scripts/checkstack.pl $(CHECKSTACK_ARCH) > $(STCTRL_KO_STACKUSAGE_FILE)
	@scripts/checkstack.sh $(STCTRL_KO_STACKUSAGE_FILE)
