obj-m += open-iov-vfio.o

open-iov-vfio-y := \
	main.o \
	bar_init.o \
	bar_emulation.o \
	gsp_comm.o \
	gsp_emulation.o \
	gsp_rpc_client.o \
	gsp_rpc_integration.o \
	memory.o \
	irq.o \
	migration.o \
	ioctl.o \
	firmware_analyzer.o \
	dynamic_rpc_dispatcher.o \
	architecture/architecture.o \
	version/version.o

ccflags-y := -I$(src)/include -I$(src)/architecture -I$(src)/version -Wall -Wextra -Wno-error -Wno-unused-parameter -Wno-unused-function

# mdev dependencies
KBUILD_MODPOST_WARN := 1

# Use symbols from host nvidia.ko (path resolved relative to this repo)
KBUILD_EXTRA_SYMBOLS := $(abspath $(src)/../nvidia-open-gpu-kernel-modules/kernel-open/Module.symvers)

all:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

install:
	$(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules_install
	depmod -a

.PHONY: all clean install