#!/bin/sh
# Copyright 2008, 2009 Patrick J. Volkerding, Sebeka, MN, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
KERNNAME=huge
VERSION=${VERSION:-2.6.37.6}
ARCH=${ARCH:-x86_64}
KARCH=${KARCH:-x86}
BUILD=${BUILD:-1}
TMP=${TMP:-/tmp}
CWD=$(pwd)
PKG=$TMP/package-kernel
rm -rf $PKG
mkdir -p $TMP $PKG
# First try to find the loot in the current dir, then look
# in /usr/src/linux-$VERSION:
if [ -r $CWD/bzImage ]; then
KERNEL=$CWD/bzImage
elif [ -r $CWD/vmlinuz ]; then
KERNEL=$CWD/vmlinuz
elif [ -r $CWD/vmlinuz* ]; then
KERNEL=$CWD/vmlinuz*
else
KERNEL=/usr/src/linux-$VERSION/arch/${KARCH}/boot/bzImage
fi
if [ -r $CWD/System.map.gz ]; then
gzip -d $CWD/System.map.gz
elif [ -r $CWD/System.map.bz2 ]; then
bzip2 -d $CWD/System.map.bz2
fi
if [ -r $CWD/System.map ]; then
SYSMAP=$CWD/System.map
elif [ -r $CWD/System.map* ]; then
SYSMAP=$CWD/System.map*
else
SYSMAP=/usr/src/linux-$VERSION/System.map
fi
if [ -r $CWD/config ]; then
CONFIG=$CWD/config
elif [ -r $CWD/config* ]; then
CONFIG=$CWD/config*
elif [ -r $CWD/.config ]; then
CONFIG=$CWD/.config
else
CONFIG=/usr/src/linux-$VERSION/.config
fi
cat << EOF
Building kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz
using these source files. Please check and then hit
enter to make the package.
KERNEL = $KERNEL
SYSMAP = $SYSMAP
CONFIG = $CONFIG
EOF
read junk;
rm -rf $PKG
mkdir -p $PKG
mkdir -p $PKG/boot
cp $KERNEL $PKG/boot/vmlinuz-$KERNNAME-${VERSION}
( cd $PKG/boot ; ln -sf vmlinuz-$KERNNAME-${VERSION} vmlinuz )
cp $SYSMAP $PKG/boot/System.map-$KERNNAME-${VERSION}
( cd $PKG/boot ; ln -sf System.map-$KERNNAME-${VERSION} System.map )
cp $CONFIG $PKG/boot/config-$KERNNAME-${VERSION}
( cd $PKG/boot ; ln -sf config-$KERNNAME-${VERSION} config )
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
# Build the package:
cd $PKG
/sbin/makepkg -l y -c n $TMP/kernel-$KERNNAME-${VERSION}-$ARCH-$BUILD.txz