lod plugins for scepclient
[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 DIR=`dirname $0`
18
19 source $DIR/function.sh
20
21 [ -f $DIR/../testing.conf ] || die "configuration file 'testing.conf' not found"
22
23 source $DIR/../testing.conf
24
25 cecho-n " * Looking for kernel at '$KERNEL'.."
26 if [ -f "${KERNEL}" ]
27 then
28     cecho "found it"
29     KERNELVERSION=`basename $KERNEL .tar.bz2 | sed -e 's/linux-//'`
30     cecho " * Kernel version is $KERNELVERSION"
31 else
32     cecho "none"
33     exit
34 fi
35
36 if [ ${UMLPATCH} ]
37 then
38     cecho-n " * Looking for uml patch at '$UMLPATCH'.."
39     if [ -f "${UMLPATCH}" ]
40     then
41         cecho "found it"
42     else
43         cecho "none"
44         exit
45     fi
46 fi
47
48 cecho-n " * Looking for kernel config at '$KERNELCONFIG'.."
49 if [ -f "${KERNEL}" ]
50 then
51     cecho "found it"
52 else
53     cecho "none"
54     exit
55 fi
56
57 #######################################################
58 # unpack kernel and create symlink
59 #
60
61 if [ ! -d $BUILDDIR ]
62 then
63     cecho " * Creating directory '$BUILDDIR'"
64     mkdir $BUILDDIR
65 fi
66
67 cecho " * Changing to directory '$BUILDDIR'"
68 cd $BUILDDIR
69
70 LOGFILE=${BUILDDIR}/testing.log
71
72 if [ ! -f $LOGFILE ]
73 then
74     cecho-n " * Logfile '$LOGFILE' does not exist..creating.."
75     touch $LOGFILE
76     cgecho "done"
77 fi
78
79 cecho-n " * Unpacking kernel.."
80 tar xjf $KERNEL >> $LOGFILE 2>&1
81 cgecho "done"
82
83 KERNELDIR=${BUILDDIR}/linux-${KERNELVERSION}
84
85 if [ -d $KERNELDIR ]
86 then
87     cecho " * Kernel directory is '$KERNELDIR'"
88     cecho " * Creating symlink 'linux'"
89     if [ -d linux ]
90     then
91         rm linux
92     fi
93     ln -s linux-${KERNELVERSION} linux
94 else
95     cecho "!! Kernel directory '$KERNELDIR' can not be found"
96     exit
97 fi
98
99 #######################################################
100 # patch kernel
101 #
102
103 cecho " * Changing to directory '$KERNELDIR'"
104 cd $KERNELDIR
105
106 if [ $UMLPATCH ]
107 then
108     cecho-n " * Applying uml patch.."
109     bzcat $UMLPATCH | patch -p1 >> $LOGFILE 2>&1
110     cgecho  "done"
111 fi
112
113 #######################################################
114 # copy our default .config to linux and build kernel
115 #
116
117 cp $KERNELCONFIG .config
118
119 cecho "!!"
120 cecho "!! Making .config for kernel. You might be prompted for new parameters!"
121 cecho "!!"
122 make oldconfig ARCH=um >> $LOGFILE 2>&1
123
124 cecho-n " * Now compiling uml kernel.."
125 make linux ARCH=um  >> $LOGFILE 2>&1
126 cgecho "done"
127
128 cecho-n " * Copying uml kernel to '${BUILDDIR}/linux-uml-${KERNELVERSION}'.."
129 mv linux ${BUILDDIR}/linux-uml-${KERNELVERSION}
130 cgecho "done"