KERNEL_DIR :=$(srctree)

subdir-ccflags-y                       += -Wall -Werror

MODNAME := ksms

ccflags-y += -I$(KERNEL_DIR)/include/linux/huanglong/ksms
$(MODNAME)-objs-y += ksms_mntn.o ksms_init.o

ifeq ($(strip $(CONFIG_KERNEL_BL31_LOG)), y)
$(MODNAME)-objs-y += bl31_log/bl31_log.o
endif

ifeq ($(strip $(CONFIG_BL31_HIBERNATE)), y)
$(MODNAME)-objs-y += bl31_hibernate/bl31_hibernate.o
ifeq ($(strip $(CONFIG_BL31_HIBERNATE_TEST)), y)
$(MODNAME)-objs-y += bl31_hibernate/bl31_hibernate_test.o
endif
endif

ifeq ($(strip $(CONFIG_FLASH_AUTH)), y)
ccflags-y += -Iinclude/linux/huanglong/tee
$(MODNAME)-objs-y += flash_auth/flash_auth.o
endif

ifeq ($(strip $(CONFIG_KERNEL_PROTECT)), y)
$(MODNAME)-objs-y += kernel_protect/kernel_protect.o
endif
ifeq ($(strip $(CONFIG_KHARDEN_TEST)), y)
$(MODNAME)-objs-y += kharden_test/cfi_test.o
$(MODNAME)-objs-y += kharden_test/kernel_harden.o
$(MODNAME)-objs-y += kharden_test/kernel_code_rw_test.o
endif

ifeq ($(strip $(CONFIG_SOCT_DRV_BUILD_KO)), y)
ccflags-y += -DCONFIG_KSMS_MODULE=y
	obj-m += $(MODNAME).o
	$(MODNAME)-objs := $($(MODNAME)-objs-y)
else
	obj-y += $($(MODNAME)-objs-y)
endif
