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)/vmng/command/msg
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vmng/inc
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vpc/common
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/inc/driver
    EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
    ifeq (${Driver_Install_Mode}, vnpu_guest)
        SERVER_TYPE := vvpc
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vmng/virt/vpcie
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vpc/virt
    else
        SERVER_TYPE := vpc
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vmng/phy/host
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vpc/phy
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vpc/phy/adapt
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/vmng/phy/vascend_drv_stub
    endif
else
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vmng/command/msg
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vmng/inc
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vpc/common
	EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/kernel_adapt/include
    EXTRA_CFLAGS += -I$(TOP_DIR)/inc/driver
    EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/kernel_adapt/include
    ifeq ($(SERVER_TYPE), vpc)
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vmng/phy/host
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vpc/phy
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vpc/phy/adapt
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vmng/phy/vascend_drv_stub
    else
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vmng/virt/vpcie
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/vpc/virt
    endif
endif

MODULE_NAME := asdrv_${SERVER_TYPE}
obj-m += ${MODULE_NAME}.o
${MODULE_NAME}-objs := common/virtmng_msg_pub.o common/virtmng_msg_common.o common/virtmng_msg_admin.o
${MODULE_NAME}-objs += common/virtmng_extension.o common/virtmng_stack.o common/virtmng_resource.o
ifeq ($(SERVER_TYPE), vpc)
    ${MODULE_NAME}-objs += phy/virtmnghost_msg.o phy/virtmnghost_msg_common.o phy/virtmnghost_msg_admin.o
    ${MODULE_NAME}-objs += phy/virtmnghost_vpc.o phy/virtmnghost_vpc_unit.o
    ${MODULE_NAME}-objs += phy/adapt/virtmnghost_resource_default.o phy/adapt/virtmnghost_resource_sriov.o
    ${MODULE_NAME}-objs += phy/adapt/vpc_soc_adapt.o
    ${MODULE_NAME}-objs += phy/vmngh_vpc_interface.o
else
    ${MODULE_NAME}-objs += virt/virtmngagent_msg.o virt/virtmngagent_msg_common.o virt/virtmngagent_msg_admin.o
    ${MODULE_NAME}-objs += virt/virtmngagent_vpc.o virt/virtmngagent_vpc_unit.o
    ${MODULE_NAME}-objs += virt/vmnga_vpc_interface.o
endif

ifneq ($(filter $(PRODUCT), ascend950 ascend950esl ascend910_96 ascend910_96esl),)
    EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_CLOUD_V4
endif

EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
EXTRA_CFLAGS += -isystem $(shell $(CC) -print-file-name=include)

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

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
ccflags-y += -fno-common -pipe -s -Wstrict-prototypes -Wunused