#!/bin/sh
#
#       Output a Rules file for debian package
#

PKG_NAME="intel-i915-prerelease"
PKG_VER="1.0"
REL_NAME="1"
REL_TYPE=""
DEP_PKG_NAME=""
PKG_TYPE=""
KER_VER=""
BUILD_TYPE=""
NP=`nproc`
NPC=$(( $NP > 64 ? 64 : $NP ))

helpFunction()
{
	echo ""
	echo "Usage: $0 -n packagename -v packageversion -r releaseversion -p prerelease/opensource -z Package Type -k KLIB -s buildversion"
	echo -e "\t-n packagename"
	echo -e "\t-v packageversion"
	echo -e "\t-r releaseversion"
	echo -e "\t-p Release Type : prerelease/opensource"
	echo -e "\t-z Package Type : binary/dkms"
	echo -e "\t-k KLIB Path"
	echo -e "\t-s buildversion"
	exit 1
}

while getopts "n:v:r:p:z:k:s:" opt
do
	case "$opt" in
		n ) PKG_NAME="$OPTARG" ;;
		v ) PKG_VER="$OPTARG" ;;
		r ) REL_NAME="$OPTARG" ;;
		p ) REL_TYPE="$OPTARG" ;;
		z )
			PKG_TYPE="$OPTARG"
			if [ "$PKG_TYPE" = "binary" ]; then
				DKMS=DEL
				BIN=
			else
				DKMS=
				BIN=DEL
			fi
			;;
		k )
			 KLIB="$OPTARG"
			 KER_VER=`basename $KLIB`
			 ;;
		s) BUILD_TYPE="$OPTARG" ;;
		?) helpFunction ;; # Print helpFunction
	esac
done

sed -e '/^DEL/d' -e 's/^\t//' <<EOF
	#!/usr/bin/make -f

	# export DH_VERBOSE = 1
	include /usr/share/dpkg/pkg-info.mk

	_krel=$KER_VER
	tmpdir=debian/$PKG_NAME

	BACKPORT_PACKAGE_NAME=$PKG_NAME
	BACKPORT_PACKAGE_VERSION=$PKG_VER
	GENERATED_PKG_FILES= \\
$BIN	    debian/$PKG_NAME.install
$DKMS	    debian/$PKG_NAME.install \\
$DKMS	    debian/$PKG_NAME.dkms

	%:
$DKMS		dh \$@ --with dkms
$BIN		dh \$@

$BIN	build:
$BIN		cp defconfigs/i915 .config;
$BIN		\$(MAKE) -j$NPC KLIB=/lib/modules/\$(_krel) olddefconfig;
$BIN		\$(MAKE) -j$NPC KLIB=/lib/modules/\$(_krel)

$BIN	clean:
$BIN		\$(MAKE) clean
$BIN	binary:
$BIN		mkdir -p \$(tmpdir)/lib/modules/\$(_krel)/updates/
$BIN		find ./ -name '*.ko' -exec cp -prv '{}' '\$(tmpdir)/lib/modules/\$(_krel)/updates/' ';'
$BIN		sed '1d' debian/package.postinst.in > debian/$PKG_NAME.postinst
$BIN		sed '1d' debian/package.postrm.in > debian/$PKG_NAME.postrm
$BIN		dh_gencontrol
$BIN		dh_installdeb
$BIN		dh_builddeb

$DKMS	override_dh_auto_configure:
$DKMS	override_dh_auto_build:
$DKMS	override_dh_auto_test:
$DKMS	override_dh_auto_install:
$DKMS	override_dh_auto_clean:
$DKMS
$DKMS	override_dh_clean:
$DKMS		rm -f \$(GENERATED_PKG_FILES)
$DKMS		dh_clean

$DKMS	# Be careful with these names, they must match the pkg name or you'll get an empty .deb
$DKMS	override_dh_install: debian/$PKG_NAME.install
$DKMS		dh_install --exclude=.gitignore

$DKMS	override_dh_dkms: debian/$PKG_NAME.dkms
$DKMS		dh_dkms -V \$(BACKPORT_PACKAGE_VERSION)
$DKMS		sed '1d' debian/package.postinst.in >> debian/$PKG_NAME.postinst.debhelper
$DKMS		sed '1d' debian/package.postrm.in >> debian/$PKG_NAME.prerm.debhelper

$DKMS	\$(GENERATED_PKG_FILES) : \$(GENERATED_PKG_FILES:=.in) debian/rules
$DKMS		sed -e 's,@BACKPORT_PACKAGE_NAME@,\$(BACKPORT_PACKAGE_NAME),g' \\
$DKMS		    -e 's,@BACKPORT_PACKAGE_VERSION@,\$(BACKPORT_PACKAGE_VERSION),g' \\
$DKMS		    <\$(@:=.in) >\$@
EOF
