#!/usr/bin/make -f
#
# debian/rules for kernel-source.
#
# GNU copyright 1997 to 1999 by Joey Hess.
# Copyright (c) 1999-2004 Herbert Xu <herbert@gondor.apana.org.au>
# Copyright (c) 2004 Jens Schmalzing <jensen@debian.org>
#

# Pull out the source suffix, we intend to maintain an -lts-<series> suffix
# but otherwise assume this main packages are not intended to have a suffix
# so that linux-meta and linux-meta-ti-omap4 will behave normally, but
# linux-meta-lts-vivid will add the series suffix.
SERIES=$(shell dpkg-parsechangelog | sed -ne 's/^Distribution: *//p' | sed -e 's/-\(security\|updates\|proposed\)$$//')
SOURCE=$(shell dpkg-parsechangelog | sed -ne 's/^Source: *//p')
SUFFIX=$(shell dpkg-parsechangelog | sed -ne 's/^Source: *linux-meta-lts/-lts/p')

# 5 digit versions (2.6.38.<abi>.<upload>, 3 digit kernel base versions (2.6.38)
KERNEL_VERSION=$(shell dpkg-parsechangelog | grep ^Version | sed -e \
	's/Version: \([0-9]*\.[0-9]*\.[0-9]*\)\..*/\1/')
KERNEL_ABI=$(shell head -n1 < debian/changelog | gawk '{n=split($$0,v,"."); print v[4];}')

# 4 digit versions (3.0.<abi>.<upload>), 2 digit kernel base versions (3.0)
#KERNEL_VERSION=$(shell dpkg-parsechangelog | grep ^Version | sed -e \
	's/Version: \([0-9]*\.[0-9]*\)\..*/\1/')
#KERNEL_ABI=$(shell head -n1 < debian/changelog | gawk '{n=split($$0,v,"."); print v[3];}')

KERNEL_ABI_VERSION=$(KERNEL_VERSION)-$(KERNEL_ABI)

GENERIC_amd64=generic

GENERIC=$(value GENERIC_$(shell dpkg-architecture -qDEB_HOST_ARCH))
GENERIC_DEP=$(if $(GENERIC),$(GENERIC),)

control_files := debian/control.common $(shell LC_ALL=C ls -d debian/control.d/*)

SHELL := sh -e

clean: debian/control
	dh_testdir
	dh_testroot
	dh_clean

# Versions of dkms packages.
dkms_zfs_linux_version=$(shell gawk '/^zfs-linux / { print $$2; }' debian/dkms-versions)
dkms_wireguard_version=$(shell gawk '/^wireguard-linux-compat / { print $$2; }' debian/dkms-versions)

debian/control: $(control_files)
	rm -f debian/control.tmp
	for i in $^; do \
		sed \
			-e 's/@SERIES@/$(SERIES)/g' \
			-e 's/@SUFFIX@/$(SUFFIX)/g' \
			-e 's/@kernel-abi-version@/$(KERNEL_ABI_VERSION)/g' \
			$$i >> debian/control.tmp; \
		echo >> debian/control.tmp; \
	done
	rm -f $@
	mv debian/control.tmp $@

.PHONY: debian/control

gencontrol_flags = -Vkernel-version=$(KERNEL_VERSION)
gencontrol_flags += -Vkernel-abi-version=$(KERNEL_ABI_VERSION)
gencontrol_flags += -Vgeneric-depends=$(GENERIC_DEP)
gencontrol_flags += -Vdkms:zfs-modules="zfs-modules (= $(dkms_zfs_linux_version)),"
gencontrol_flags += -Vdkms:wireguard-linux-compat-modules="wireguard-modules (= $(dkms_wireguard_version)),"

build-%:
	:

install-%: build-%
	dh_testdir
	dh_testroot
	dh_prep

binary-arch: t=-a
binary-indep: t=-i
binary-%: debian/control install-%
	dh_testdir
	dh_testroot

	dh_installdirs $(t)
	dh_installdocs $(t)
	dh_installchangelogs $(t)
	dh_compress $(t)
	dh_fixperms $(t)
	dh_installdeb $(t)
	dh_gencontrol $(t) -- $(gencontrol_flags)
	dh_md5sums $(t)
	dh_builddeb $(t)

build: build-indep build-arch
binary: binary-indep binary-arch

.PHONY: clean
