obj-m += vgsp.o vgsp-y := \ main.o \ bar_init.o \ bar_emulation.o \ gsp_comm.o \ gsp_emulation.o \ gsp_rm_emulation.o \ gsp_sema_service.o \ gsp_cuda_bridge.o \ gsp_rpc_client.o \ gsp_rpc_integration.o \ memory.o \ irq.o \ migration.o \ ioctl.o \ firmware_analyzer.o \ dynamic_rpc_dispatcher.o \ gsp_phys_gpu.o \ gsp_phys_boot.o \ gsp_phys_vbios.o \ gsp_phys_fwsec.o \ gsp_phys_booter.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) # Use $(CURDIR), NOT $(PWD): when invoked via the top-level Makefile # (make -C kernel), $(PWD) still points at the caller's directory and kbuild # silently builds nothing (the "stale .ko" trap). all: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(CURDIR) modules clean: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(CURDIR) clean install: $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(CURDIR) modules_install depmod -a .PHONY: all clean install