OBJ_DIR := $(srctree)/$(src)

ifndef ARCH
	ARCH := arm64
endif

OBJS := $(subst .o.hex,.o, $(wildcard objs/$(ARCH)/*.o.hex))

obj-$(CONFIG_GPU_MOORE_THREADS) += mtgpu.o

mtgpu-y := src/allocmem.o                                         \
	src/event.o                                                   \
	src/fwload.o                                                  \
	src/handle_idr.o                                              \
	src/interrupt_support.o                                       \
	src/km_apphint.o                                              \
	src/module_common.o                                           \
	src/osconnection_server.o                                     \
	src/osfunc.o                                                  \
	src/osmmap_stub.o                                             \
	src/pci_support.o                                             \
	src/physmem_dmabuf.o                                          \
	src/physmem_osmem_linux.o                                     \
	src/physmem_test.o                                            \
	src/pmr_os.o                                                  \
	src/pvr_bridge_k.o                                            \
	src/pvr_buffer_sync.o                                         \
	src/pvr_counting_timeline.o                                   \
	src/pvr_debug.o                                               \
	src/pvr_debugfs.o                                             \
	src/pvr_drm.o                                                 \
	src/pvr_fence.o                                               \
	src/pvr_gputrace.o                                            \
	src/pvr_platform_drv.o                                        \
	src/pvr_sw_fence.o                                            \
	src/pvr_sync_file.o                                           \
	src/pvr_sync_ioctl_common.o                                   \
	src/pvr_sync_ioctl_drm.o                                      \
	src/trace_events.o                                            \
	objs/$(ARCH)/mtgpu_core.o

mtgpu-$(CONFIG_RISCV) += src/osfunc_riscv.o
mtgpu-$(CONFIG_ARM) += src/osfunc_arm.o
mtgpu-$(CONFIG_ARM64) += src/osfunc_arm64.o
mtgpu-$(CONFIG_LOONGARCH) += src/osfunc_loongarch.o
mtgpu-$(CONFIG_X86) += src/osfunc_x86.o

ccflags-y += -include $(OBJ_DIR)/inc/config_kernel.h \
	-I$(OBJ_DIR)/inc \
	-I$(OBJ_DIR)/inc/hwdefs_volcanic \
	-I$(OBJ_DIR)/inc/hwdefs_volcanic/km

%.o: %.o.hex
	xxd -r $< $@
