#!/bin/sh

NAMESRC=linux
NAME_KERNEL=kernel
VERSION=2.6.24.3
EXT=tar.bz2
BUILD=3
ARCH=i686
REPO=/media/hda6/testing


set -e -x

if [ ! -r $NAMESRC-$VERSION.$EXT ] ; then
   wget http://kernel.org/pub/linux/kernel/v2.6/$NAMESRC-$VERSION.$EXT
fi

#md5sum -c $NAMESRC-$VERSION.$EXT.md5

CWD=`pwd`
if [ "$TMP" = "" ]; then
  TMP=/kernel
fi

PKG=$TMP/package-$NAMESRC

if [ ! -d $TMP ]; then
  mkdir -p $TMP
fi

if [ ! -d $PKG ]; then
  mkdir -p $PKG
fi

if [ -r /boot/config ] ; then
   ECHO_OLDCONFIG="cat /boot/config"
fi

if [ $EXT == tar.bz2 ]; then
   NAME=`tar jft $NAMESRC-$VERSION.tar.bz2 | head -1 | awk -F/ '{ print $1 }'`
else
   NAME=`tar zft $NAMESRC-$VERSION.tar.gz | head -1 | awk -F/ '{ print $1 }'`
fi

cd $TMP
if [ $EXT == tar.bz2 ]; then
   tar xjf $CWD/$NAMESRC-$VERSION.$EXT
else
   tar xzf $CWD/$NAMESRC-$VERSION.$EXT
fi

cd $NAME
patch -p1 < $CWD/patch/bootsplash-3.1.6_for_2.6.24.diff
patch -p1 < $CWD/patch/squashfs3.3-patch
#patch -p1 < $CWD/patch/unionfs-2.2.2_for_2.6.24-rc7.diff


#Arch yamalari
patch -p1 < $CWD/patch/arch/acpi-buggy-bios.patch
patch -p1 < $CWD/patch/arch/acpi-dsdt-initrd-v0.8.4-2.6.21.patch
patch -p1 < $CWD/patch/arch/linux-phc-0.3.0-kernel-vanilla-2.6.23rc3.patch
patch -p1 < $CWD/patch/arch/mactel-linux-2.6.24.patch
patch -p1 < $CWD/patch/arch/sis671-intelgly-2.6.24.patch
patch -p1 < $CWD/patch/arch/keymap-2.6.24.patch
patch -p1 < $CWD/patch/arch/fuse-2.6.24.patch
patch -p2 < $CWD/patch/arch/ata-2.6.24.patch
patch -p1 < $CWD/patch/arch/toshiba-bluetooth.patch
patch -p1 < $CWD/patch/arch/usb-storage-unusual-devs.patch
patch -p0 < $CWD/patch/arch/winfast-2000.patch
patch -p1 < $CWD/patch/arch/sec_perm-2.6.24.patch
patch -p0 < $CWD/patch/arch/put_filp-2.6.24.patch
patch -p1 < $CWD/patch/arch/lhash-2.6.24.patch
patch -p0 < $CWD/patch/arch/splice-2.6.24.patch

#Gentoo yamalari
patch -p1 < $CWD/patch/gentoo/2000_no-if-addrlabel.patch
patch -p1 < $CWD/patch/gentoo/2100_sd-sr-medium-detection.patch
patch -p1 < $CWD/patch/gentoo/2101_sr-follow-tray-status.patch
patch -p1 < $CWD/patch/gentoo/2102_sr-test-unit-ready.patch
patch -p1 < $CWD/patch/gentoo/2300_pci-use-conf1.patch
patch -p1 < $CWD/patch/gentoo/2400_e1000e-crc-stripping.patch
patch -p1 < $CWD/patch/gentoo/2405_sis190-eeprom-mac.patch
patch -p1 < $CWD/patch/gentoo/2500_arcmsr-dma-coherent-warnings.patch
patch -p1 < $CWD/patch/gentoo/2700_alsa-hda-lifebook-e8410.patch


if [ ! -r $CWD/config-$VERSION ]
then
   ${ECHO_OLDCONFIG} > .config
   make menuconfig
   cat .config > ${CWD}/config-$VERSION
else
   cat $CWD/config-$VERSION > .config
   make oldconfig
   cat .config > $CWD/config-$VERSION
fi
make bzImage
make modules
make modules_install INSTALL_MOD_PATH=$PKG
mkdir -p $PKG/boot \
         $PKG/etc/rc.d
cat .config > $PKG/boot/config-$VERSION

cat arch/i386/boot/bzImage > $PKG/boot/vmlinuz-$VERSION

cat System.map > $PKG/boot/System.map-$VERSION

cat $CWD/rc.modules.new > $PKG/etc/rc.d/rc.modules-$VERSION

cd $PKG/boot
#ln -sf config-$VERSION config
#ln -sf vmlinuz-$VERSION vmlinuz
#ln -sf System.map-$VERSION System.map
rm -rf $PKG/lib/modules/$VERSION/build
rm -rf $PKG/lib/modules/$VERSION/source
ln -sf /usr/src/linux-$VERSION $PKG/lib/modules/$VERSION/build
ln -sf /usr/src/linux-$VERSION $PKG/lib/modules/$VERSION/source

splash -s -f $CWD/bootsplash/themes/current/config/bootsplash-1024x768.cfg > $PKG/boot/initrd.bs

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc

#cat $CWD/doinst.sh > $PKG/install/doinst.sh

#if [ -r $CWD/doinst.sh ] ; then
#   sed "s/TOKEN/${FULLVERSION}/" $CWD/doinst.sh > $PKG/install/doinst.sh
#fi

cd $PKG/lib/modules/$VERSION/kernel

#find . -name "*.ko" -exec gzip {} \;

cd $PKG
chown root:root . -R
if [ ! -d $REPO ]; then
	mkdir -p $REPO
fi
makepkg -l y -c n $REPO/$NAME_KERNEL-$VERSION-$ARCH-$BUILD.tgz

#if [ ! -f $TMP/$NAMESRC-$VERSION ]; then
#  rm -rf $TMP/$NAMESRC-$VERSION
#fi

if [ ! -f $PKG ]; then
  rm -rf $PKG
fi
