diff options
-rwxr-xr-x | util/kbuildall/kbuildall | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/util/kbuildall/kbuildall b/util/kbuildall/kbuildall new file mode 100755 index 0000000000..8495cd35f1 --- /dev/null +++ b/util/kbuildall/kbuildall @@ -0,0 +1,57 @@ +#!/bin/sh +# +# coreboot autobuilder for kconfig +# +# This script builds coreboot images for all available targets. +# +# (C) 2009 coresystems GmbH +# written by Patrick Georgi <patrick.georgi@coresystems.de> +# +# This file is subject to the terms and conditions of the GNU General +# Public License, version 2. See the file COPYING in the main directory +# of this archive for more details. + +TARGETDIR=kbuildall.results + +if [ ! -f util/kbuildall/kbuildall ]; then + echo "This application must be run from the" + echo "toplevel directory of a coreboot checkout." + exit 1 +fi + +for make in make gmake gnumake; do + if [ "`$make --version 2>/dev/null | grep -c GNU`" -gt 0 ]; then + MAKE=$make + break + fi +done + +builddefconfig() { +# $1: mainboarddir + $MAKE distclean + grep "depends[\t ]on[\t ]*VENDOR" src/mainboard/$1/../Kconfig | sed "s,^.*\(VENDOR_.*\)[^A-Z0-9_]*,CONFIG_\1=y," > .config + grep "config[\t ]*BOARD" src/mainboard/$1/Kconfig | sed "s,^.*\(BOARD_.*\)[^A-Z0-9_]*,CONFIG_\1=y," >> .config + grep "select[\t ]*ARCH" src/mainboard/$1/Kconfig | sed "s,^.*\(ARCH_.*\)[^A-Z0-9_]*,CONFIG_\1=y," >> .config + echo "CONFIG_MAINBOARD_DIR=$1" >> .config + yes "" | $MAKE oldconfig +} + +rm -rf $TARGETDIR +mkdir -p $TARGETDIR +ALLTARGETS=`(cd src/mainboard; ls */*/Config.lb | sed s,/Config.lb,,)` +TARGETCOUNT=`echo $ALLTARGETS | wc -w` +CURRENTARGET=0 +for dir in $ALLTARGETS; do + i=`expr $i + 1` + if [ ! -f src/mainboard/$dir/Kconfig ]; then + echo "[$i/$TARGETCOUNT] ($dir) no Kconfig" + echo "$dir nokconfig" >> $TARGETDIR/_overview.txt + continue + fi + name=`echo $dir | sed s,/,_,g` + printf "[$i/$TARGETCOUNT] $dir " + builddefconfig $dir > $TARGETDIR/$name.buildconfig.log 2>&1 + result=`$MAKE > $TARGETDIR/$name.buildcoreboot.log 2>&1 && echo ok || echo fail` + echo "$result." + echo "$dir $result" >> $TARGETDIR/_overview.txt +done |