ifeq ($(DAVINCI_HIAI_DKMS), y)  # for dkms compile
    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/pbl
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/libc_sec/include
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/inc/driver
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/hdc/inc
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/hdc/command/msg
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/hdc/command/ioctl
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/hdc/pcie/inc
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/hdc/pcie/host
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dms/command/ioctl
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
    ifeq ($(TARGET_PRODUCT), cloud)
        EXTRA_CFLAGS += -DCFG_FEATURE_VFIO
        EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
    else
        ifeq ($(TARGET_CHIP_ID), $(ASCEND_FLORENCE_DC_V10))
            EXTRA_CFLAGS += -DCFG_FEATURE_VFIO
            EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
        endif
    endif
else # for non-dkms compile
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc/pbl
    EXTRA_CFLAGS += -I$(TOP_DIR)/inc/driver
    EXTRA_CFLAGS += -I$(TOP_DIR)/abl/libc_sec/include
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/hdc/inc
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/hdc/pcie/inc
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/hdc/command/ioctl
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/hdc/command/msg
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/hdc/pcie/host
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/kernel_adapt/include
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/dms/command/ioctl
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/kernel_adapt/include

    EXTRA_CFLAGS += -DCFG_FEATURE_SHARE_LOG
    ifneq ($(filter $(PRODUCT), ascend910 ascend310p),)
        EXTRA_CFLAGS += -DCFG_FEATURE_VFIO
        EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
    endif
endif

MODULE_NAME := drv_vhdc
obj-m += $(MODULE_NAME).o
$(MODULE_NAME)-objs := vhdc_agent.o vhdc_core.o vhdc_mem.o hdcdrv_core_com.o hdcdrv_mem_com.o hdcdrv_adapt.o

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

EXTRA_CFLAGS += -fstack-protector-all

ccflags-y += -Wall -Werror -Wtrampolines $(WDATE_TIME) -Wfloat-equal -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align
ccflags-y += -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-missing-field-initializers