#!/usr/bin/make -f
# Build the NVIDIA open modules from the installed source tree
# (/usr/src/nvidia-<ver>, scutarius-nvidia-kernel-580-open) against the
# Scutarius gb10 headers. Mirrors the vendor dkms.conf MAKE line, incl. the
# Debian split-headers fix (SYSSRC=-common tree, SYSOUT=arch tree).
NVV   := 580.173.02
KABI  := 7.1.12+scutarius
KVER  := $(KABI)-gb10
SRC   := /usr/src/nvidia-$(NVV)
HDR   := /usr/src/linux-headers-$(KVER)
COMMON:= /usr/src/linux-headers-$(KABI)-common
PKG   := scutarius-nvidia-modules-$(KVER)
DEST  := debian/$(PKG)/lib/modules/$(KVER)/updates/scutarius
JOBS  := $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
JOBS  := $(if $(JOBS),$(JOBS),4)

%:
	dh $@

override_dh_auto_configure:
	rm -rf build && cp -a $(SRC) build

override_dh_auto_build:
	unset ARCH; cd build && env NV_VERBOSE=1 $(MAKE) -j$(JOBS) NV_EXCLUDE_BUILD_MODULES='' \
	  KERNEL_UNAME=$(KVER) IGNORE_XEN_PRESENCE=1 IGNORE_CC_MISMATCH=1 \
	  SYSSRC=$(COMMON) SYSOUT=$(HDR) LD=/usr/bin/ld.bfd modules

override_dh_auto_install:
	install -d $(DEST)
	install -m644 build/nvidia.ko build/nvidia-modeset.ko build/nvidia-drm.ko build/nvidia-uvm.ko build/nvidia-peermem.ko $(DEST)/
	# as kbuild's INSTALL_MOD_STRIP=1: drop debug info BEFORE signing
	strip --strip-debug $(DEST)/*.ko

override_dh_auto_clean:
	rm -rf build

# modules are signed + compressed later by sign-linux.sh; never strip them
override_dh_strip:
override_dh_dwz:
