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