Use do_on_exit() in build scripts for cleanup
[strongswan.git] / testing / scripts / build-umlkernel
index 7a98fc6..6e17af4 100755 (executable)
 # or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 # for more details.
 
-DIR=`dirname $0`
+. $PWD/scripts/function.sh
 
-source $DIR/function.sh
+echo "Building guest kernel version $KERNELVERSION"
 
-[ -f $DIR/../testing.conf ] || die "configuration file 'testing.conf' not found"
+[ -f "$KERNEL" ] || die "Kernel $KERNEL not found"
+[ -f "$KERNELCONFIG" ] || die "Kernel config $KERNELCONFIG 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
+if [ $UMLPATCH ]; then
+       [ -f "$UMLPATCH" ] || die "Patch $UMLPATCH not found"
 fi
 
-#######################################################
-# unpack kernel and create symlink
-#
-
-if [ ! -d $BUILDDIR ]
-then
-    cecho " * Creating directory '$BUILDDIR'"
-    mkdir $BUILDDIR
-fi
-
-cecho " * Changing to directory '$BUILDDIR'"
+mkdir -p $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"
+log_action "Unpacking kernel"
+execute "tar xjf $KERNEL"
 
 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'"
+ln -fs linux-${KERNELVERSION} linux
 cd $KERNELDIR
 
-if [ $UMLPATCH ]
-then
-    cecho-n " * Applying uml patch.."
-    bzcat $UMLPATCH | patch -p1 >> $LOGFILE 2>&1
-    cgecho  "done"
+if [ $UMLPATCH ]; then
+       log_action "Applying uml patch"
+       bzcat $UMLPATCH | patch -p1 >> $LOGFILE 2>&1
+       log_status $?
 fi
 
-#######################################################
-# copy our default .config to linux and build kernel
-#
-
-cp $KERNELCONFIG .config
+execute "cp $KERNELCONFIG .config" 0
 
-cecho "!!"
-cecho "!! Making .config for kernel. You might be prompted for new parameters!"
-cecho "!!"
-make oldconfig ARCH=um >> $LOGFILE 2>&1
+echo "!!"
+echo "!! Creating kernel configuration, you might get prompted for new parameters!"
+echo "!!"
+make oldconfig ARCH=um 2>&1 | tee -a $LOGFILE
 
-cecho-n " * Now compiling uml kernel.."
-make linux ARCH=um  >> $LOGFILE 2>&1
-cgecho "done"
+log_action "Compiling the kernel"
+execute "make -j5 linux ARCH=um"
 
-cecho-n " * Copying uml kernel to '${BUILDDIR}/linux-uml-${KERNELVERSION}'.."
-mv linux ${BUILDDIR}/linux-uml-${KERNELVERSION}
-cgecho "done"
+log_action "Copying kernel to '${BUILDDIR}/linux-uml-${KERNELVERSION}'"
+execute "mv linux ${BUILDDIR}/linux-uml-${KERNELVERSION}"