6e17af430dce328589f2190033cdcf06452b9ade
[strongswan.git] / testing / scripts / build-umlkernel
1 #!/bin/bash
2 # build an UML kernel based on a vanilla kernel and UML patch
3 #
4 # Copyright (C) 2004  Eric Marchionni, Patrik Rayo
5 # Zuercher Hochschule Winterthur
6 #
7 # This program is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by the
9 # Free Software Foundation; either version 2 of the License, or (at your
10 # option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
11 #
12 # This program is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 # for more details.
16
17 . $PWD/scripts/function.sh
18
19 echo "Building guest kernel version $KERNELVERSION"
20
21 [ -f "$KERNEL" ] || die "Kernel $KERNEL not found"
22 [ -f "$KERNELCONFIG" ] || die "Kernel config $KERNELCONFIG not found"
23
24 if [ $UMLPATCH ]; then
25         [ -f "$UMLPATCH" ] || die "Patch $UMLPATCH not found"
26 fi
27
28 mkdir -p $BUILDDIR
29 cd $BUILDDIR
30
31 log_action "Unpacking kernel"
32 execute "tar xjf $KERNEL"
33
34 KERNELDIR=${BUILDDIR}/linux-${KERNELVERSION}
35 ln -fs linux-${KERNELVERSION} linux
36 cd $KERNELDIR
37
38 if [ $UMLPATCH ]; then
39         log_action "Applying uml patch"
40         bzcat $UMLPATCH | patch -p1 >> $LOGFILE 2>&1
41         log_status $?
42 fi
43
44 execute "cp $KERNELCONFIG .config" 0
45
46 echo "!!"
47 echo "!! Creating kernel configuration, you might get prompted for new parameters!"
48 echo "!!"
49 make oldconfig ARCH=um 2>&1 | tee -a $LOGFILE
50
51 log_action "Compiling the kernel"
52 execute "make -j5 linux ARCH=um"
53
54 log_action "Copying kernel to '${BUILDDIR}/linux-uml-${KERNELVERSION}'"
55 execute "mv linux ${BUILDDIR}/linux-uml-${KERNELVERSION}"