###############################################################################
# export variables
###############################################################################
ifeq ($(CONFIG_SOCT_KMOD_CFLAGS),)
ccflags-y += $(CONFIG_SOCT_KMOD_CFLAGS)
endif
#===============================================================================
# local variables
#===============================================================================
ccflags-y += -Idrivers/drv/common/include \
             -Idrivers/drv/ioctl_inc/generic \
             -Idrivers/drv/ioctl_inc/common \
             -Idrivers/drv/ioctl_inc/video \
             -Idrivers/drv/ioctl_inc/stat \
             -Idrivers/drv/ext_inc/base \
             -Idrivers/drv/ext_inc/osal \
             -Idrivers/drv/ext_inc/common \
             -Idrivers/drv/ext_inc/otp \
             -Idrivers/drv/ext_inc/stat \
             -Iinclude/linux/huanglong/tee

ccflags-y   += -Werror
ccflags-y   += -Wno-error=date-time

ifeq ($(TARGET_BUILD_VARIANT),user)
ccflags-y += -DANDROID_BUILD_USER
endif

ifeq ($(CONFIG_SOCT_FPGA),y)
ccflags-y += -DSOCT_FPGA_SUPPORT
endif

MODNAME := uapi_common

ifeq ($(CONFIG_SOCT_DRV_BUILDIN),y)
MOD_OBJ_BUILD_FLAGS := -objs-y
MOD_OBJ_TARGET_FLAGS := obj-y
else
MOD_OBJ_BUILD_FLAGS := -objs-m
MOD_OBJ_TARGET_FLAGS := obj-m
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolingun"),)
EXTRA_CFLAGS += -DCONFIG_SHAOLINGUN
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick"),)
EXTRA_CFLAGS += -DCONFIG_WUDANGSTICK
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "hi3751v811"),)
EXTRA_CFLAGS += -DCONFIG_HI3751V811
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinsword"),)
EXTRA_CFLAGS += -DCONFIG_SHAOLINSWORD
endif

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinknive"),)
EXTRA_CFLAGS += -DCONFIG_SHAOLINKNIVE
endif

endif

$(MOD_OBJ_TARGET_FLAGS) += $(MODNAME).o

ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "wudangstick", "shaolingun", "shaolinspear"),)
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += hal/wudangstick/hal_sys.o
endif
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinaxe"),)
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += hal/shaolinaxe/hal_sys.o
endif
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "shaolinsword", "shaolinknive"),)
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += hal/shaolinknive/hal_sys.o
endif
ifneq ($(findstring $(CONFIG_SOCT_CHIP_TYPE), "hi3751v811"),)
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += hal/hi3751v811/hal_sys.o
endif

ifeq ($(CONFIG_SOCT_LOG_SUPPORT), y)
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_log.o
endif

$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_common_intf.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_common_ext.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_file.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_osal.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_reg.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_stat.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_sys.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_proc.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_user_proc.o
$(MODNAME)$(MOD_OBJ_BUILD_FLAGS) += drv_sys_policy.o
$(MODNAME)-objs := $($(MODNAME)$(MOD_OBJ_BUILD_FLAGS))

##################modules######################

KDIR := $(LINUX_DIR)

PWD := $(shell pwd)
CURFOLDER ?= $(pwd)

EXTRA_CFLAGS += -I$(CURFOLDER)/include -D__linux__
all:drivers_modules

drivers_modules:
	$(MAKE) -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=$(CROSS_COMPILE)

clean:
	$(MAKE) -C $(KDIR) M=$(PWD) clean
	$(RM) Module.markers
	$(RM) modules.order
