#!/bin/sh

DO_CLEAN=yes
DO_PATCH=yes

TARGET="kernel_image"
TARGET="binary-arch"

HOST=`echo ${PWD} | sed -n 's|^.*/\([a-z]*\)/[0-9.]*-[0-9]*|\1|p'`
KERNEL=`echo ${PWD} | sed -n 's|^.*/[a-z]*/\([0-9.]*\)-[0-9]*|\1|p'`
RELEASE=`echo ${PWD} | sed -n 's|^.*/[a-z]*/[0-9.]*-\([0-9]*\)|\1|p'`
VERSION="${HOST}.${RELEASE}"

[ -f arch ] && ARCH="--arch `cat arch`"

echo "HOST    = ${HOST}"
echo "ARCH    = ${ARCH}"
echo "KERNEL  = ${KERNEL}"
echo "RELEASE = ${RELEASE}"
echo "VERSION = ${VERSION}"

DIR=${PWD}
BUILD_DIR="linux-${KERNEL}"

if [ -d ${BUILD_DIR} -a  "${DO_CLEAN}" = "yes" ]; then
	echo "Cleaning ${BUILD_DIR}"
	rm -rf ${BUILD_DIR}
fi

if [ ! -d ${BUILD_DIR} ]; then
	KERNEL_SRC=../../kernel/linux-${KERNEL}.tar.bz2
	echo "Uncompressing ${KERNEL_SRC}"
	tar xfj ${KERNEL_SRC}
fi

cd "linux-${KERNEL}"

CONFIG=../config
if [ -f ${CONFIG} ]; then
	echo "Using config ${CONFIG} as config file"
	cp -i ${CONFIG} config
fi

if [ "${DO_PATCH}" = "yes" ]; then
	PATCHES_FILE=../list-patches
	if [ -f ${PATCHES_FILE} ]; then
		echo "Examining ${PATCHES_FILE} file..."
		PATCHES_DIR=../../../patches/${KERNEL}
		for i in `cat ${PATCHES_FILE}`; do
			PATCH="${PATCHES_DIR}/$i"
			echo "  Testing Patching with ${PATCH} file"
			RES=`patch --dry-run -p1 < ${PATCH}`
			[ $? -ne 0 ] && echo "  ERROR: ${RES}" && exit 1
			echo "  Patching with ${PATCH} file"
			RES=`patch -p1 < ${PATCH}`
			[ $? -ne 0 ] && echo "  ERROR: ${RES}" && exit 1
		done
	fi
fi

MODULES_FILE=../list-modules
ADDED_MODULES=""
if [ -f ${MODULES_FILE} ]; then
	echo "Examining ${MODULES_FILE} file..."
	MODULES_DIR=../../../modules
	MODULE_LOC=${DIR}
	if [ -d "${MODULE_LOC}/modules" ]; then
		echo "Cleaning ${MODULE_LOC}/modules directory"
		rm -rf "${MODULE_LOC}/modules"
	fi
	for i in `cat ${MODULES_FILE}`; do
		MODULE="${MODULES_DIR}/$i.tar.gz"
		echo "  Uncompressing ${MODULE} in ${MODULE_LOC}"
		tar xz -C ${MODULE_LOC} --file ${MODULE}
		if [ -z "${ADDED_MODULES}" ]; then
			ADDED_MODULES="--added-modules "
		else
			ADDED_MODULES="${ADDED_MODULES},"
		fi
		ADDED_MODULES="${ADDED_MODULES}$i"
	done
	TARGET="${TARGET} modules_image"
	export MODULE_LOC="${MODULE_LOC}/modules"
fi


echo "TARGET  = ${TARGET}"
echo "MODULES = ${ADDED_MODULES}"

echo
echo "Press a key to continue or interrupt with CTRL+C"
read

export LANG=C
export LC_ALL=C

fakeroot make-kpkg \
	--config menuconfig -us -uc \
	--rootcmd fakeroot \
	--revision ${VERSION} --append_to_version "-${VERSION}" \
	${ADDED_MODULES} \
	${ARCH} \
	${TARGET}


