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

EXTRA_CFLAGS += -Iinclude/linux



SVM_KERNEL_DIR := ${DRIVER_KERNEL_DIR}/svm/v3

SVM_USER_DIR := ${DRIVER_USER_DIR}/svm/v3



EXTRA_CFLAGS += -I${DRIVER_KERNEL_DIR}/inc

EXTRA_CFLAGS += -I${DRIVER_KERNEL_DIR}/inc/pbl

EXTRA_CFLAGS += -I${DRIVER_KERNEL_DIR}/inc/comm

EXTRA_CFLAGS += -I${DRIVER_KERNEL_DIR}/kernel_adapt/include

EXTRA_CFLAGS += -I${DRIVER_USER_DIR}/msnpureport/inc/libc_sec

EXTRA_CFLAGS += -I${DRIVER_HAL_INC_DIR}



EXTRA_CFLAGS += -DDRV_HOST



EXTRA_CFLAGS += -I${SVM_USER_DIR}/inc/def

EXTRA_CFLAGS += -I${SVM_USER_DIR}/command/msg

EXTRA_CFLAGS += -I${SVM_USER_DIR}/urma_adapt/inc



EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/command/msg

EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/command/ioctl



EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/inc

EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/inc/framework

EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/inc/kern_lib

EXTRA_CFLAGS += -I${SVM_KERNEL_DIR}/inc/share



SVM_KERNEL_MASTER_SRCS := $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/framework/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/host_dev/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/dbi/core/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/um_handle/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/um_handle_adapt/host/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/cmd_handle/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/kern_lib/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/kern_lib/normal_page/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/kern_lib/compound_large_page/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/kmc/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/kmc/h2d/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/mpl/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/share/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/share/smm/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmm/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmq/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmq_adapt/agent/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmq_adapt/agent/host/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmq_adapt/client/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pmq_adapt/client/host/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/memcpy/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/memcpy/async/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/memcpy/copy_ctrl/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/memcpy/dma_desc_ops/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/dma_map/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pcie_th_adapt/agent/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/smp/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/mwl/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/casm/*.c))

ifeq ($(ENABLE_UBE),true)

    SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/ubmm/*.c))

endif

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/user_mem_show/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/casm_adapt/cross_server/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/casm_adapt/ubmem/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/ubmem_adapt/client/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/share_log/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/ksvmm/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/pma/*.c))

SVM_KERNEL_MASTER_SRCS += $(subst $(SVM_KERNEL_DIR)/,,$(wildcard $(SVM_KERNEL_DIR)/mms/*.c))



EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/framework/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/host_dev/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/dbi/core/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/dbi/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/um_handle/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/um_handle_adapt/host/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/cmd_handle/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/kern_lib/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/kern_lib/normal_page/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/kern_lib/compound_large_page/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/kmc/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/kmc/h2d/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/mpl/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/share/

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/share/smm

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmm

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq_adapt

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq_adapt/agent

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq_adapt/agent/host

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq_adapt/client

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pmq_adapt/client/host

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/memcpy

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/memcpy/async

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/memcpy/copy_ctrl

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/memcpy/dma_desc_ops

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/dma_map

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pcie_th_adapt/agent

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pcie_th_adapt

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/smp

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/mwl

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/casm

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/ubmm

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/user_mem_show

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/casm_adapt/cross_server

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/casm_adapt/ubmem

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/ubmem_adapt/client

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/ubmem_adapt

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/share_log

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/ksvmm

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pma

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/pma_ub

EXTRA_CFLAGS += -I$(SVM_KERNEL_DIR)/mms



EXTRA_CFLAGS += -DCFG_FEATURE_SHARE_LOG

EXTRA_CFLAGS += -DCFG_FEATURE_HOST_LOG

ifneq ($(filter $(PRODUCT), ascend950),)

    EXTRA_CFLAGS += -DCFG_FEATURE_KA_ALLOC_INTERFACE

endif



asdrv_svm-objs := $(patsubst %.c,%.o,$(SVM_KERNEL_MASTER_SRCS))



obj-m := asdrv_svm.o