##########################################################################
# 1. asdrv_esched.ko in host
###########################################################################
ifeq ($(TARGET_BUILD_TYPE),debug)
    EXTRA_CFLAGS += -DCFG_BUILD_DEBUG
endif

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 += -Iinclude/linux

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

EXTRA_CFLAGS += -I$(TOP_DIR)/driver/driver/src/sdk_driver/kernel_adapt/include/

ifeq ($(TOP_DIR),)
    ifeq ($(DAVINCI_HIAI_DKMS),y)
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/command/ioctl
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/command/msg
        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)/inc/driver/
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/libc_sec/include
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/soft_sched/
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dev_inc/inc/pbl
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/dms/command/ioctl
        EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include

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

        ifneq ($(filter $(PRODUCT),  helper310p),)
            obj-m += asdrv_esched.o
            asdrv_esched-objs := common/esched_fops.o common/esched.o common/esched_sysfs.o esched_adapt.o
            asdrv_esched-objs += soft_sched/esched_table_intf.o soft_sched/irq_sched/esched_table.o soft_sched/irq_sched/esched_table_proc_fs.o
            EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/soft_sched/irq_sched/
            EXTRA_CFLAGS += -DCFG_ENV_HOST
            EXTRA_CFLAGS += -DCFG_FEATURE_DEEPER_EVENT_QUE
        else
            obj-m += asdrv_esched.o
            asdrv_esched-objs := common/esched_fops.o common/esched.o common/esched_sysfs.o esched_adapt.o
            asdrv_esched-objs += esched_host_msg.o

            EXTRA_CFLAGS += -DCFG_ENV_HOST
            EXTRA_CFLAGS += -DCFG_FEATURE_IDENTIFY_CP -DCFG_FEATURE_REMOTE_SUBMIT -DCFG_FEATURE_EXTERNAL_CDEV
            ifeq ($(TARGET_CHIP_ID), hi1980b)
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v1/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trs/inc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trsbase/inc/
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_HARDWARE_MIA -DCFG_FEATURE_REMOTE_PUB_HARD_SCHED
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v1/topic_sched_drv.o
            endif

            ifeq ($(TARGET_CHIP_ID), hi1980d)
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v2/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trs/inc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trsbase/inc/
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_HARDWARE_MIA
                EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_CLOUD_V4
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v2/topic_sched_drv.o
            endif

            ifeq ($(TARGET_CHIP_ID), hi1910b)
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_REMOTE_PUB_HARD_SCHED
                EXTRA_CFLAGS += -DCFG_FEATURE_SIA_MAP_TOPIC_TABLE
                EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_MINIV3
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v1/
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v1/topic_sched_drv.o
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trs/inc/
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/kernel_adapt/include
                EXTRA_CFLAGS += -I$(HIAI_DKMS_DIR)/trsbase/inc/
            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
        endif
    endif
else
    ifeq ($(DAVINCI_HIAI_DKMS),y)

    else
        ccflags-y += $(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 -Wno-format-nonliteral -Wno-empty-body

        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/command/ioctl
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/command/msg
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/soft_sched
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/include
        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/kernel_adapt/include
        EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/dms/command/ioctl


        ifneq ($(filter $(PRODUCT),  helper310p),)
            obj-m += asdrv_esched.o
            asdrv_esched-objs := common/esched_fops.o common/esched.o common/esched_sysfs.o esched_adapt.o
            asdrv_esched-objs += soft_sched/esched_table_intf.o soft_sched/irq_sched/esched_table.o soft_sched/irq_sched/esched_table_proc_fs.o
            EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/soft_sched/irq_sched/
            EXTRA_CFLAGS += -DCFG_ENV_HOST
            EXTRA_CFLAGS += -DCFG_FEATURE_DEEPER_EVENT_QUE
        else
            obj-m += asdrv_esched.o
            asdrv_esched-objs := common/esched_fops.o common/esched.o common/esched_sysfs.o esched_adapt.o
            asdrv_esched-objs += esched_host_msg.o

            EXTRA_CFLAGS += -DCFG_ENV_HOST
            EXTRA_CFLAGS += -DCFG_FEATURE_IDENTIFY_CP -DCFG_FEATURE_REMOTE_SUBMIT -DCFG_FEATURE_EXTERNAL_CDEV

            EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/soc/
            EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/hard_sched/
            EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/hard_sched/soc/

            ifneq ($(filter $(PRODUCT),  ascend910B),)
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/common/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v1/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trs/inc/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trsbase/inc/
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_HARDWARE_MIA -DCFG_FEATURE_REMOTE_PUB_HARD_SCHED
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v1/topic_sched_drv.o
            endif

            ifneq ($(filter $(PRODUCT),  ascend950 ascend950esl ascend910_55 ascend910_55esl ascend910_96 ascend910_96esl),)
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/host/soc/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v2/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trs/inc/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trsbase/inc/
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_HARDWARE_MIA
                EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_CLOUD_V4
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v2/topic_sched_drv.o
            endif

            ifneq ($(filter $(PRODUCT),  ascend310B ascend310Besl ascend310Bemu),)
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/esched/dc/host_adapt/common/hard_sched/soc/topic_sched_v1/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trs/inc/
                EXTRA_CFLAGS += -I$(DRIVER_KERNEL_DIR)/src/trsbase/inc/
                EXTRA_CFLAGS += -DCFG_FEATURE_HARDWARE_SCHED -DCFG_FEATURE_SOFT_NON_SCHED_ONLY -DCFG_FEATURE_REMOTE_PUB_HARD_SCHED
                EXTRA_CFLAGS += -DCFG_FEATURE_SIA_MAP_TOPIC_TABLE
                EXTRA_CFLAGS += -DCFG_SOC_PLATFORM_MINIV3
                ifneq ($(filter $(PRODUCT),  ascend310Besl),)
                    EXTRA_CFLAGS += -DCFG_PLATFORM_ESL
                endif
                asdrv_esched-objs += esched_drv_adapt.o soc/topic_sched_v1.o soc/topic_sched_v2.o common/hard_sched/esched_drv.o
                asdrv_esched-objs += common/hard_sched/soc/topic_sched_v1/topic_sched_drv.o
            endif
        endif
    endif
endif
