#!/usr/bin/make -f

export DEB_BUILD_MAINT_OPTIONS = hardening=+all

include /usr/share/dpkg/architecture.mk
include /usr/share/dpkg/pkg-info.mk

UPVER := $(DEB_VERSION_UPSTREAM)

# Trim the DKMS source tree to what the module build actually needs.
DKMS_RSYNC_EXCLUDES = \
	--include='lustre/tests/Makefile.am' \
	--include='lustre/tests/*/Makefile.am' \
	--include='lustre/tests/mpi/' \
	--include='lustre/tests/iabf/' \
	--exclude='lustre/tests/*/*' \
	--exclude='lustre/tests/*' \
	--exclude='lustre/kunit/' \
	--exclude='lustre/osd-wbcfs/TODO' \
	--exclude='lustre/osd-ldiskfs/' \
	--include='ldiskfs/Makefile.in' \
	--include='ldiskfs/autoMakefile.am' \
	--exclude='ldiskfs/*' \
	--include='Documentation/Makefile.am' \
	--include='Documentation/man*/' \
	--include='Documentation/man*/Makefile.am' \
	--exclude='Documentation/man*/*' \
	--exclude='Documentation/*' \
	--exclude='contrib/' \
	--include='lustre-iokit/*/' \
	--include='lustre-iokit/*/Makefile.am' \
	--include='lustre-iokit/Makefile.am' \
	--exclude='lustre-iokit/*/*' \
	--exclude='lustre-iokit/*' \
	--exclude='lustre/kernel_patches/kernel_configs/' \
	--exclude='rpm/' \
	--exclude='.git/' \
	--exclude='autom4te.cache/' \
	--exclude='.gitignore' \
	--exclude='.gitreview' \
	--exclude='.mailmap' \
	--exclude='.editorconfig' \
	--exclude='.pc/' \
	--exclude='debian/' \
	--exclude='rustreapi/' \
	--exclude='Vagrantfile' \
	--exclude='requirements.txt' \
	--exclude='MAINTAINERS' \
	--exclude='ChangeLog' \
	--exclude='*.md' \
	--exclude='*.rst' \
	--exclude='*.txt' \
	--exclude='README'

%:
	dh $@ --with dkms

override_dh_auto_configure:
	rm -rf ../pristine-src
	rsync -a --exclude='.git/' --exclude='debian/' ./ ../pristine-src/

	./autogen.sh
	dh_auto_configure -- \
		--enable-utils \
		--enable-server \
		--with-zfs=yes \
		--disable-ldiskfs \
		--disable-modules \
		--disable-tests \
		--disable-iokit \
		--disable-doc \
		--disable-gss \
		--with-systemdsystemunitdir=/usr/lib/systemd/system

override_dh_auto_build:
	dh_auto_build -- utils

override_dh_install:
	dh_install

	# lgss_sk is not built (--disable-gss), so its man page is unused.
	rm -f debian/tmp/usr/share/man/man8/lgss_sk.8 \
	      debian/tmp/usr/share/man/man8/lgss_sk.8.gz

	# Ship the module source tree with the DKMS package; dkms copies it
	# to its private build area for every build, so /usr/src is never
	# written to during module builds.
	install -d debian/lustre-dkms/usr/src/lustre-dkms-$(UPVER)
	rsync -a -m --delete $(DKMS_RSYNC_EXCLUDES) \
		../pristine-src/ debian/lustre-dkms/usr/src/lustre-dkms-$(UPVER)/

override_dh_auto_install:
	dh_auto_install -- pkgconfigdir=/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig

override_dh_dkms:
	dh_dkms -plustre-dkms -V

override_dh_makeshlibs:
	dh_makeshlibs -pliblustreapi1 -V
	dh_makeshlibs -pliblnetconfig4 -V

override_dh_auto_clean:
	dh_auto_clean
	rm -rf ../pristine-src

override_dh_auto_test:
	# Tests require a proper VM to run, so we only test using autopkgtest
