ifeq ($(TARGET_BUILD_TYPE),debug)
    EXTRA_CFLAGS += -DCFG_BUILD_DEBUG
endif

ifeq ($(ENABLE_ASAN),true)
    EXTRA_CFLAGS += -DCFG_ENABLE_ASAN
endif

ifneq ($(NOT_SUPPORT_SP), y)
    EXTRA_CFLAGS += -fstack-protector-all
endif

ccflags-y += -Wall -Werror

EXTRA_CFLAGS += -DHOST_AGENT
EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_CLOUD
EXTRA_CFLAGS += -DCFG_FEATURE_SHARE_LOG

ifeq ($(TOP_DIR),)
	ifeq ($(DAVINCI_HIAI_DKMS),y)
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dev_inc_open/inc
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dev_inc/inc
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dev_inc/inc/dbl
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/libc_sec/include
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/inc/driver
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/comm/common/
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/comm/common/inc
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/comm_agent/comm/
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/comm_master/comm/
		EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/svm_agent_host/host/comm_master/comm/inc

        ifneq ($(filter $(TARGET_CHIP_ID), hi1910b hi1980 hi1980b),)
            EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
            EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
        endif

        ifeq ($(TARGET_CHIP_ID), $(ASCEND_FLORENCE_DC_V10))
            EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
            EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
        endif

		drv_devmm_host_agent-objs := svm_msg_server.o svm_agent_vma_ops.o svm_agent_proc_fs.o
		drv_devmm_host_agent-objs += comm_master/comm/svm_master_mem_mng.o comm_master/comm/svm_master_cgroup.o
		drv_devmm_host_agent-objs += comm_agent/comm/agentmm_proc_info.o comm_agent/comm/agentmm_channel.o comm_agent/comm/svm_agent_memset.o comm_agent/comm/svm_agent_memcpy.o
		drv_devmm_host_agent-objs += comm_agent/comm/svm_agent_proc_mng.o comm_agent/comm/svm_agent_mem_create.o comm_agent/comm/svm_agent_mem_map.o
		drv_devmm_host_agent-objs += comm/common/devmm_dev.o comm/common/devmm_common.o comm/common/devmm_addr_mng.o comm/common/svm_heap_mng.o comm/common/svm_proc_mng.o comm/common/svm_mmu_notifier.o
		drv_devmm_host_agent-objs += comm/common/svm_pci_dev_tbl.o comm/common/svm_module_ops.o comm/common/svm_mem_mng.o comm/common/svm_version_adapt.o comm/common/svm_log.o
		drv_devmm_host_agent-objs += comm/common/svm_rbtree.o comm/common/svm_srcu_work.o comm/common/svm_page_cnt_stats.o comm/common/svm_gfp.o comm/common/svm_dma_map.o comm/common/svm_mem_split.o
		drv_devmm_host_agent-objs += comm/common/svm_proc_gfp.o comm/common/svm_phy_addr_blk_mng.o comm/common/svm_mem_create.o comm/common/svm_mem_map.o comm/common/svm_vmma_mng.o
		obj-m := drv_devmm_host_agent.o
	else
		ccflags-y += -Wtrampolines $(WDATE_TIME) -Wfloat-equal
		ccflags-y += -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align -Wextra
		ccflags-y += -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-format-nonliteral
	endif
else
	ifeq ($(DAVINCI_HIAI_DKMS),y)

	else
		ccflags-y += -Wtrampolines $(WDATE_TIME) -Wfloat-equal
		ccflags-y += -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align -Wextra
		ccflags-y += -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare -Wno-format-nonliteral
		EXTRA_CFLAGS += -I$(TOP_DIR)/abl/libc_sec/include
		EXTRA_CFLAGS += -I$(TOP_DIR)/inc/driver
		EXTRA_CFLAGS += -I$(DRIVER_OPEN_KERNEL_DIR)/inc
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc/dbl
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/svmdrv/agent/comm/
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/svmdrv/agent/host/
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/svmdrv/common/
		EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/svmdrv/common/inc

        ifneq ($(filter $(PRODUCT), ascend310B ascend310p ascend910 ascend910B),)
            EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
            EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
        endif
	endif

	ifeq ($(PRODUCT),ascend910B)
		ifeq ($(ADAPT_KP_OS_FOR_EMU_TEST),ON)
			EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_ESL_FPGA
			EXTRA_CFLAGS += -DADAPT_KP_OS_FOR_EMU_TEST
		endif
		EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_CLOUD_V2               #temporary
	endif

	drv_devmm_host_agent-objs := svm_msg_server.o svm_agent_vma_ops.o svm_agent_mem_mng.o svm_agent_cgroup.o svm_agent_proc_fs.o
	drv_devmm_host_agent-objs += agent_comm/agentmm_proc_info.o agent_comm/agentmm_channel.o agent_comm/svm_agent_memset.o agent_comm/svm_agent_memcpy.o
	drv_devmm_host_agent-objs += agent_comm/svm_agent_proc_mng.o agent_comm/svm_agent_mem_create.o agent_comm/svm_agent_mem_map.o
	drv_devmm_host_agent-objs += common/devmm_dev.o common/devmm_common.o common/devmm_addr_mng.o common/svm_heap_mng.o common/svm_proc_mng.o common/svm_mmu_notifier.o
	drv_devmm_host_agent-objs += common/svm_pci_dev_tbl.o common/svm_module_ops.o common/svm_mem_mng.o common/svm_version_adapt.o common/svm_log.o
	drv_devmm_host_agent-objs += common/svm_rbtree.o common/svm_srcu_work.o common/svm_page_cnt_stats.o common/svm_gfp.o common/svm_dma_map.o common/svm_mem_split.o
	drv_devmm_host_agent-objs += common/svm_proc_gfp.o common/svm_phy_addr_blk_mng.o common/svm_mem_create.o common/svm_mem_map.o common/svm_vmma_mng.o
	obj-m := drv_devmm_host_agent.o
endif

