ifneq ($(KERNELRELEASE),)
	# start
	ifeq ($(Driver_Install_Mode),vnpu_guest)
		obj-m := svmdrv/vmaster/
		obj-m += dms/dtm/
		obj-m += dms/smf/
		obj-m += dms/
		obj-m += vhdc/
		obj-m += vmng_agent/
		obj-m += ts_drv_vm/
		obj-m += libc_sec/
		obj-m += drv_davinci_intf_host/
		obj-m += vmng_vpc_drv/
		obj-m += dbl/dev_urd/
		obj-m += dbl/runenv_config/
		obj-m += logdrv/host/
		obj-m += dbl/kernel_adapt/
        obj-m += dms/mng/
        obj-m += dbl/soc_resmng/
	else
		obj-m := pcie_host/
		obj-m += hdc_host/
		obj-m += pcievnic_host/
		obj-m += dms/dtm/
		obj-m += dms/smf/
		obj-m += dms/
		obj-m += libc_sec/
		obj-m += ts_drv_host/
		obj-m += svmdrv/pmaster/
		obj-m += ts_platform_host/
		obj-m += drv_davinci_intf_host/
		obj-m += event_sched/host/
		obj-m += queue/host/
		obj-m += soft_fault/
		obj-m += vmng_host/
		obj-m += vascend_drv_stub/
		obj-m += ts_agent/
		obj-m += vascend_drv/
		obj-m += dbl/comm_algorithm/
		obj-m += dbl/dev_identity/
		obj-m += dbl/runenv_config/
		obj-m += dbl/kernel_adapt/
		obj-m += logdrv/host/
		obj-m += dp_proc_mng/pmaster/
		obj-m += vmng_vpc_drv/
		obj-m += xsmem/dc/xsmem_host/
		obj-m += dbl/dev_urd/
		obj-m += dbl/soc_resmng/
        obj-m += debug/
	endif
	obj-m += dbl/uda/
	obj-m += kernel_adapt/
	# end
else
	KERNEL_UNAME := $(shell uname -r)
	PWD := $(shell pwd)

	DAVINCI_HIAI_DKMS := y
	HIAI_DKMS_DIR := $(shell pwd)
	NOT_SUPPORT_SP := n

	CONFIG_SP := $(shell bash -c ' \
	for item in $$(ls /lib/modules/ 2>/dev/null); do \
        if [[ -d /lib/modules/$${item} ]] && \
                ls /boot/ 2>/dev/null | grep -q "$${item}"; then \
        KERNEL_VERSION=$${item}; \
        cat /boot/config-$${KERNEL_VERSION} | grep -e "CONFIG_STACKPROTECTOR.*=y" -e "CONFIG_CC_STACKPROTECTOR.*=y" | grep -v NONE; \
                break; \
        fi \
	done')
	ifeq ($(CONFIG_SP), )
    	NOT_SUPPORT_SP = y
	endif

	export NOT_SUPPORT_SP
	export DAVINCI_HIAI_DKMS
	export HIAI_DKMS_DIR

	DKMS_JOBS := $(shell grep -c ^processor /proc/cpuinfo 2>/dev/null)
	ifeq ($(strip $(DKMS_JOBS)),$(filter $(DKMS_JOBS), 0))
		DKMS_JOBS := 1
	else
		DKMS_JOBS := $(shell expr $(DKMS_JOBS) / 2)
		ifeq ($(shell test $(DKMS_JOBS) -gt 32; echo $$?),0)
			DKMS_JOBS := 32
		endif
endif

# Adaptive kernel
DKMS_EXTRA_CFLAGS := "-isystem $(shell $(CC) -print-file-name=include)"

all:
	$(MAKE) --jobs=$(DKMS_JOBS) -C /lib/modules/$(KERNEL_UNAME)/build M=$(PWD) KBUILD_MODPOST_WARN=1 CFLAGS_MODULE=${DKMS_EXTRA_CFLAGS} modules
clean:
	$(MAKE) --jobs=$(DKMS_JOBS) -C /lib/modules/$(KERNEL_UNAME)/build M=$(PWD) clean

endif
