slackbuilds/a/linux/linux.SlackBuild
2011-04-07 10:25:31 +07:00

101 lines
3.1 KiB
Bash
Executable file

#!/bin/sh -x
CLEAN_SRC=${CLEAN_SRC:-NO}
PRGNAM=linux
VERSION=${VERSION:-$(echo linux-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
BUILD=${BUILD:-1}
ARCH=$(uname -m)
CWD=$(pwd)
SOURCES=/usr/src/
TAG=cyco
TMP=/tmp/$TAG
PKG=$TMP/pkg-$PRGNAM
OUTPUT=/tmp
NUMJOBS=${NUMJOBS:-" -j2 "}
SRC_URL="http://www.kernel.org/pub/linux/kernel/v2.6$(echo \"$VERSION\" | grep -q \"\-rc\" && echo \"/testing\" )"
rm -fr $PKG
if [ $CLEAN_SRC != "NO" ] ; then
rm -fr $SOURCES/$PRGNAM-$VERSION
fi
if [ $CLEAN_SRC != "NO" ]; then
[ ! -e $CWD/$PRGNAM-$VERSION.tar.?z* ] && wget -c "$SRC_URL/$PRGNAM-$VERSION.tar.bz2" -O $CWD/$PRGNAM-$VERSION.tar.bz2
[ ! -e $SOURCES ] && mkdir -p $SOURCES
tar xf $CWD/$PRGNAM-$VERSION.tar.?z* -C $SOURCES
fi
cd $SOURCES/$PRGNAM-$VERSION
if [ $CLEAN_SRC != "NO" ]; then
[ -e $CWD/patches/ ] && \
for p in $CWD/patches/*.{diff,patch} ; do
patch -p1 -i $p || exit 1 # if patching fail we want to know
done
[ -e $CWD/patches/$VERSION ] && \
for p in $CWD/patches/$VERSION/*.{diff,patch} ; do
patch -p1 -i $p || exit 1 # if patching fail we want to know
done
fi
if [ $CLEAN_SRC != "NO" ] || [ ! -e .config ] ; then
if [ -e $CWD/config-$VERSION ] ; then
cp $CWD/config-$VERSION .config
else
if [ -e $CWD/config ]; then
cp $CWD/config .config
else
zcat /proc/config.gz > .config
fi
fi
fi
make oldconfig $*
make $NUMJOBS
make modules_install INSTALL_MOD_PATH=$PKG
KERNEL_TAG=$(grep "CONFIG_LOCALVERSION=" .config | sed 's|CONFIG_LOCALVERSION=||' | tr -d \" )
KERNEL_VERSION=$(grep -o "2\.6\..*[0-9]" .config)$KERNEL_TAG
mkdir -p $PKG/boot/$KERNEL_VERSION
cp .config System.map arch/x86/boot/bzImage $PKG/boot/$KERNEL_VERSION
mv $PKG/boot/$KERNEL_VERSION/{.,}config
mkdir -p $PKG/install
cat <<EOF > $PKG/install/doinst.sh
cp /etc/lilo.conf /etc/lilo.conf.orig
grep -q "image = /boot/$KERNEL_VERSION/bzImage" /etc/lilo.conf || \
cat <<EOLILO >> /etc/lilo.conf
# Linux bootable partition config begins
image = /boot/$KERNEL_VERSION/bzImage
root = /dev/sda1
label = $KERNEL_VERSION
read-only
# Linux bootable partition config ends
EOLILO
sed -i "s|default=.*|default=$KERNEL_VERSION|" /etc/lilo.conf
lilo
EOF
cat <<EOF > $PKG/install/slack-desc
$PRGNAM-$(echo $VERSION | tr - _): $PRGNAM-$(echo $VERSION | tr - _) (kernel)
$PRGNAM-$(echo $VERSION | tr - _):
$PRGNAM-$(echo $VERSION | tr - _): Linux is a clone of the operating system Unix, written from scratch by
$PRGNAM-$(echo $VERSION | tr - _): Linus Torvalds with assistance from a loosely-knit team of hackers
$PRGNAM-$(echo $VERSION | tr - _): across the Net. It aims towards POSIX and Single UNIX Specification
$PRGNAM-$(echo $VERSION | tr - _): compliance.
$PRGNAM-$(echo $VERSION | tr - _):
$PRGNAM-$(echo $VERSION | tr - _): It has all the features you would expect in a modern fully-fledged Unix
$PRGNAM-$(echo $VERSION | tr - _):
$PRGNAM-$(echo $VERSION | tr - _): http://www.kernel.org
$PRGNAM-$(echo $VERSION | tr - _):
EOF
cd $PKG
makepkg -l y -c n $OUTPUT/$PRGNAM-$(echo $VERSION | tr - _)-$(echo $KERNEL_TAG | tr - _)-$ARCH-$BUILD$TAG.txz