strongswan/testing/scripts/build-umlkernel

131 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
# build an UML kernel based on a vanilla kernel and UML patch
#
# Copyright (C) 2004 Eric Marchionni, Patrik Rayo
# Zuercher Hochschule Winterthur
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# for more details.
DIR=`dirname $0`
source $DIR/function.sh
[ -f $DIR/../testing.conf ] || die "configuration file 'testing.conf' not found"
source $DIR/../testing.conf
cecho-n " * Looking for kernel at '$KERNEL'.."
if [ -f "${KERNEL}" ]
then
cecho "found it"
KERNELVERSION=`basename $KERNEL .tar.bz2 | sed -e 's/linux-//'`
cecho " * Kernel version is $KERNELVERSION"
else
cecho "none"
exit
fi
if [ ${UMLPATCH} ]
then
cecho-n " * Looking for uml patch at '$UMLPATCH'.."
if [ -f "${UMLPATCH}" ]
then
cecho "found it"
else
cecho "none"
exit
fi
fi
cecho-n " * Looking for kernel config at '$KERNELCONFIG'.."
if [ -f "${KERNEL}" ]
then
cecho "found it"
else
cecho "none"
exit
fi
#######################################################
# unpack kernel and create symlink
#
if [ ! -d $BUILDDIR ]
then
cecho " * Creating directory '$BUILDDIR'"
mkdir $BUILDDIR
fi
cecho " * Changing to directory '$BUILDDIR'"
cd $BUILDDIR
LOGFILE=${BUILDDIR}/testing.log
if [ ! -f $LOGFILE ]
then
cecho-n " * Logfile '$LOGFILE' does not exist..creating.."
touch $LOGFILE
cgecho "done"
fi
cecho-n " * Unpacking kernel.."
tar xjf $KERNEL >> $LOGFILE 2>&1
cgecho "done"
KERNELDIR=${BUILDDIR}/linux-${KERNELVERSION}
if [ -d $KERNELDIR ]
then
cecho " * Kernel directory is '$KERNELDIR'"
cecho " * Creating symlink 'linux'"
if [ -d linux ]
then
rm linux
fi
ln -s linux-${KERNELVERSION} linux
else
cecho "!! Kernel directory '$KERNELDIR' can not be found"
exit
fi
#######################################################
# patch kernel
#
cecho " * Changing to directory '$KERNELDIR'"
cd $KERNELDIR
if [ $UMLPATCH ]
then
cecho-n " * Applying uml patch.."
bzcat $UMLPATCH | patch -p1 >> $LOGFILE 2>&1
cgecho "done"
fi
#######################################################
# copy our default .config to linux and build kernel
#
cp $KERNELCONFIG .config
cecho "!!"
cecho "!! Making .config for kernel. You might be prompted for new parameters!"
cecho "!!"
make oldconfig ARCH=um SUBARCH=i386 2>&1 | tee -a $LOGFILE
cecho-n " * Now compiling uml kernel.."
make linux ARCH=um SUBARCH=i386 >> $LOGFILE 2>&1
cgecho "done"
cecho-n " * Copying uml kernel to '${BUILDDIR}/linux-uml-${KERNELVERSION}'.."
mv linux ${BUILDDIR}/linux-uml-${KERNELVERSION}
cgecho "done"