aboutsummaryrefslogtreecommitdiffstats
path: root/testing/scripts/build-guestkernel
blob: c8f0178ef3859336adb2a3a2c5da8383c19c20a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash

DIR=$(dirname `readlink -f $0`)
. $DIR/../testing.conf
. $DIR/function.sh

echo "Building guest kernel version $KERNELVERSION"

[ -f "$KERNELCONFIG" ] || die "Kernel config $KERNELCONFIG not found"

check_commands bunzip2 bzcat make wget

cd $BUILDDIR

if [ ! -f "$KERNELTARBALL" ]
then
	url=https://cdn.kernel.org/pub/linux/kernel/v${KERNELVERSION:0:1}.x/$KERNELTARBALL
	log_action "Downloading $url"
	execute "wget -q $url"
fi

if [[ $KERNELPATCH && ! -f "$KERNELPATCH" ]]
then
	url=http://download.strongswan.org/uml/$KERNELPATCH
	log_action "Downloading $url"
	execute "wget -q $url"
fi

KERNELDIR=$BUILDDIR/$KERNEL

if [ ! -d "$KERNELDIR" ]
then
	log_action "Unpacking kernel"
	execute "tar xJf $KERNELTARBALL"

	if [ $KERNELPATCH ]
	then
		log_action "Applying kernel patch"
		bzcat $KERNELPATCH | patch -d $KERNELDIR -p1 >>$LOGFILE 2>&1
		log_status $?
		[ $? -eq 0 ] || exit 1
	fi
fi
cd $KERNELDIR

if [ ! -f .config ]
then
	execute "cp $KERNELCONFIG .config" 0
fi

echo "Creating kernel configuration, you might get prompted for new parameters"
make oldconfig 2>&1 | tee -a $LOGFILE

log_action "Compiling the kernel"
execute "make -j5"