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

ccflags-y += -Wall -Werror -Wno-missing-prototypes -Wno-missing-declarations

EXTRA_CFLAGS += -DCFG_FEATURE_SHARE_LOG
EXTRA_CFLAGS += -isystem $(shell $(CC) -print-file-name=include)
EXTRA_CFLAGS += -I$(TOP_DIR)/driver/driver/src/sdk_driver/kernel_adapt/include/

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

ifneq ($(filter $(PRODUCT), ascend950esl ascend910_5591 ascend910_5591esl ascend910_96 ascend910_96esl),)
    EXTRA_CFLAGS += -DCFG_PLATFORM_FPGA
endif

ifeq ($(TOP_DIR),)
    MAKE_PRODUCT := $(PRODUCT)
    ifeq ($(DAVINCI_HIAI_DKMS),y)
        ifneq ($(filter $(TARGET_CHIP_ID), hi1910b hi1980 hi1980b hi1980d),)
            EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
            EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
        endif
        ifeq ($(TARGET_CHIP_ID), $(ASCEND_FLORENCE_DC_V10))
            ifneq ($(filter $(PRODUCT),  helper310p),)
            else
                EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG
                EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE
            endif
        endif
        EXTRA_CFLAGS += -DDRV_HOST
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dev_inc_open/inc \
            -I$(HIAI_DKMS_DIR)/dev_inc/inc \
            -I$(HIAI_DKMS_DIR)/dev_inc/inc/pbl \
            -I$(HIAI_DKMS_DIR)/queue/host/common \
            -I$(HIAI_DKMS_DIR)/queue/host \
            -I$(HIAI_DKMS_DIR)/queue/command/ioctl \
            -I$(HIAI_DKMS_DIR)/queue/command/msg \
            -I$(HIAI_DKMS_DIR)/esched/command/ioctl \
            -I$(HIAI_DKMS_DIR)/esched/command/msg \
            -I$(HIAI_DKMS_DIR)/inc/driver \
            -I$(HIAI_DKMS_DIR)/libc_sec/include
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include

        obj-m   += asdrv_queue.o    # host
        asdrv_queue-objs := common/queue_module.o common/queue_context.o common/queue_dma.o queue_fops.o queue_host_msg.o queue_ctx_private.o common/queue_proc_fs.o common/queue_status_record.o common/queue_channel.o
    else
       ccflags-y += -Wtrampolines $(WDATE_TIME) -Wfloat-equal -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align -Wextra
       ccflags-y += -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare
    endif
else
    MAKE_PRODUCT := $(PRODUCT)
    ifeq ($(DAVINCI_HIAI_DKMS),y)

    else
        ccflags-y += -Wtrampolines $(WDATE_TIME) -Wfloat-equal -Wvla -Wundef -funsigned-char -Wformat=2 -Wstack-usage=2048 -Wcast-align -Wextra
        ccflags-y += -Wno-unused-parameter -Wno-missing-field-initializers -Wno-sign-compare
        EXTRA_CFLAGS += -DDRV_HOST
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/inc \
            -I$(DRIVER_KERNEL_DIR)/inc/pbl \
            -I$(DRIVER_KERNEL_DIR)/src/queue/host/common \
            -I$(DRIVER_KERNEL_DIR)/src/queue/host \
            -I$(DRIVER_KERNEL_DIR)/src/queue/command/ioctl \
            -I$(DRIVER_KERNEL_DIR)/src/queue/command/msg \
            -I$(DRIVER_KERNEL_DIR)/src/esched/command/ioctl \
            -I$(DRIVER_KERNEL_DIR)/src/esched/command/msg \
            -I$(TOP_DIR)/inc/driver \
            -I$(TOP_DIR)/abl/libc_sec/include

        obj-m   += asdrv_queue.o    # host
        asdrv_queue-objs := common/queue_module.o common/queue_context.o common/queue_dma.o common/queue_proc_fs.o common/queue_status_record.o queue_fops.o queue_host_msg.o queue_ctx_private.o common/queue_channel.o
    endif
endif
