#! /bin/bash

# URLs and versions
LINUX_VERS='2.6.35.4'
LINUX_VERS_SHORT="$(echo "${LINUX_VERS}" | cut -f 1-2 -d '.')"
LINUX_URL="http://www.kernel.org/pub/linux/kernel/v${LINUX_VERS_SHORT}/linux-${LINUX_VERS}.tar.bz2"
LINUX_TARBALL="src/linux-${LINUX_VERS}.tar.bz2"
LINUX_TARBALL_SHA256="1f2c0ef718398fe04d925d6c513ff82c763a3dbaf53e8cd4cb6ea52a199765d6"
LINUX_DIR="linux-${LINUX_VERS}"

# Main script
CCNAME="$1"
CCDIR="$2"
PREFIX="$3"
STAGE="$4"

# Clean
if [ "$1" = "distclean" ]; then
	rm -f "${LINUX_TARBALL}"

	set -- clean
fi

if [ "$1" = "clean" ]; then
	rm -rf "${LINUX_DIR}"

	exit 0
fi

# Only build Linux headers for Linux platforms
if ! echo "${CCNAME}" | grep -- '-linux' >/dev/null; then
	exit 0
fi

# Kernel headers are only needed for Stage 1
if [ "${STAGE}" != "stage1" ]; then
	exit 0
fi

if [ -d "${PREFIX}/include/linux" ]; then
	exit 0
fi

# Download source
. 'scripts/common'

# Inform the user of what we are doing
echo " * Building Linux kernel headers for ${arch}"

if [ ! -d "${LINUX_DIR}" ]; then
	download "${LINUX_URL}" "${LINUX_TARBALL}" "${LINUX_TARBALL_SHA256}" || exit 1

	bzip2 -dc "${LINUX_TARBALL}" | tar -xf -
fi

cp -rp "${LINUX_DIR}" "${LINUX_DIR}-${CCNAME}"

(
	cd "${LINUX_DIR}-${CCNAME}" || exit 1

	${MAKE} ${BUILD_CC_MAKE_FLAGS_SINGLE} CROSS_COMPILE="${CCNAME}-" ARCH="${arch}" defconfig || exit 1

	${MAKE} ${BUILD_CC_MAKE_FLAGS_SINGLE} CROSS_COMPILE="${CCNAME}-" ARCH="${arch}" INSTALL_HDR_PATH="${PREFIX}" headers_install || exit 1
) || exit 1

rm -rf "${LINUX_DIR}-${CCNAME}"

exit 0
