
subdir-ccflags-y := -Wall -Wextra -Wvla
subdir-ccflags-y += $(call cc-disable-warning, unused-parameter)
subdir-ccflags-y += $(call cc-disable-warning, type-limits)
subdir-ccflags-y += $(call cc-disable-warning, missing-field-initializers)
subdir-ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
subdir-ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
# clang warnings
subdir-ccflags-y += $(call cc-disable-warning, sign-compare)
subdir-ccflags-y += $(call cc-disable-warning, sometimes-uninitialized)
subdir-ccflags-y += $(call cc-disable-warning, initializer-overrides)
#subdir-ccflags-y += -Werror

# core driver code
corex-y := itr_drv.o \
	  itr_dma.o \
	  itr_ctrldev_drv.o \
	  itr_ioctl.o \
	  itr_jpu_hmt.o \
          itr_p2p.o \
	  itr_sysfs.o \
	  itr_trace_points.o \
	  itr_trace_wrapper.o \
	  os_interface.o
	  
# chip driver
include $(src)/kmdlib/Makefile


# VGPU driver
ifeq ($(CONFIG_ILUVATAR_VGPU),y)
corex-y += vgpu_arch_deps.o vgpu_interface.o vgpu_kvm.o vgpu_os_impl.o
include $(src)/kmdlib/vgpu/Makefile
endif

#mem check
ifeq ($(CONFIG_ILUVATAR_MEM_CHECK),y)
corex-y += itr_mem_check.o
ccflags-y += -DITR_MEM_LOGGER
endif


ccflags-y += -Wall
ccflags-y += -Wimplicit-int
ccflags-y += -Wincompatible-pointer-types
ccflags-y += -DITR_WAIT_QUEUE_WITH_ENTRY
ccflags-y += -DITR_KREF_READ_PRESENT
ccflags-y += -DITR_MDEV_PARENT_OPS
ccflags-y += -DITR_GET_USER_PAGES_REMOTE_PRESENT
ccflags-y += -DITR_GET_USER_PAGES_REMOTE_HAS_LOCKED_ARG
ccflags-y += -DITR_GET_USER_PAGES_REMOTE_HAS_TSK_ARG
ccflags-y += -DITR_VM_FAULT_OPS_NO_VMA
ccflags-y += -DITR_MDEV_OPS_OPEN
ccflags-y += -DITR_MDEV_OPS_RELEASE
ccflags-y += -DITR_IOMMU_GET_DOMAIN_PRESENT
ccflags-y				+= -I$(src) -I$(src)/common/include -I$(src)/kmdlib/vgpu

obj-$(CONFIG_ILUVATAR) += corex.o
