ifneq ($(KERNELRELEASE),)
	# start
	ifeq ($(Driver_Install_Mode),vnpu_guest)
		obj-m := comm/pcie/
		obj-m += hdc/
		obj-m += vnic/
		obj-m += fms/
		obj-m += dms/
		obj-m += libc_sec/
		obj-m += svm/kern/master/
		obj-m += queue/host/
		obj-m += vmng/virt/host_stub/
		obj-m += vmng/phy/vascend_drv_stub/
		obj-m += vpc/
		obj-m += buff/dc/buff_host/
		obj-m += dms/devmng/adapter/
		obj-m += trsbase/
		obj-m += trs/
		obj-m += dpa/
		obj-m += esched/dc/host_adapt/
		obj-m += ubdevshm/
	else
		obj-m := comm/pcie/
		obj-m += hdc/
		obj-m += vnic/
		obj-m += fms/
		obj-m += dms/
		obj-m += libc_sec/
		obj-m += svm/kern/master/
		obj-m += queue/host/
		obj-m += vmng/phy/
		obj-m += vmng/phy/vascend_drv_stub/
		obj-m += vpc/
		obj-m += buff/dc/buff_host/
		obj-m += dms/devmng/adapter/
		obj-m += trsbase/
		obj-m += trs/
		obj-m += dpa/
		obj-m += esched/dc/host_adapt/
		obj-m += ts_agent/
		obj-m += vascend_drv/
		obj-m += ubdevshm/
	endif
	obj-m += pbl/
	obj-m += kernel_adapt/
	# end

	-include ${HIAI_DKMS_DIR}/product_dkms.mk
else
	KERNEL_UNAME := $(shell uname -r)
	PWD := $(shell pwd)

	DAVINCI_HIAI_DKMS := y
	HIAI_DKMS_DIR := $(shell pwd)
	FEATURE_MK_PATH := ${HIAI_DKMS_DIR}/feature_config/feature.mk

	export DAVINCI_HIAI_DKMS
	export HIAI_DKMS_DIR
	export FEATURE_MK_PATH

	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 ($(DKMS_JOBS),0) # if logic cpu-nums is 0 or 1.
			DKMS_JOBS := 1
		endif
	endif

    $(shell grep -v "^#" ${HIAI_DKMS_DIR}/feature_config/ascend950.config | sed 's/^CONFIG/#define CONFIG/g' > ${HIAI_DKMS_DIR}/feature_config/feature.h)
    $(shell grep -v "^#" ${HIAI_DKMS_DIR}/feature_config/ascend950.config | sed -r 's/^(.*)=(.*)/CONFIG_DEFINES += -D\1=\2\n\1 := \2/;1iCONFIG_DEFINES :=' > ${HIAI_DKMS_DIR}/feature_config/feature.mk)
    $(shell grep -v "^#" ${HIAI_DKMS_DIR}/feature_config/ascend950.config | sed -r 's/^(.*)=(.*)/list(APPEND CONFIG_DEFINES \1=\2)\nset(\1 \2)/;1iset(CONFIG_DEFINES)' > ${HIAI_DKMS_DIR}/feature_config/feature.cmake)

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

	MAKE_EXTRA_ARGS :=
	-include ${HIAI_DKMS_DIR}/product_dkms.mk

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

clean:
	$(MAKE) --jobs=$(DKMS_JOBS) -C /lib/modules/$(KERNEL_UNAME)/build M=$(PWD) clean

endif
