Author: oxygene Date: 2009-09-16 22:18:03 +0200 (Wed, 16 Sep 2009) New Revision: 4638
Added: trunk/coreboot-v2/util/kbuildall/ trunk/coreboot-v2/util/kbuildall/kbuildall Log: kbuildall is a utility that generates default configs for all boards, builds them, and keeps the config and build logs around and creates a roster of all boards and their build status.
abuild does this for the newconfig based buildsystem, kbuildall does this for kconfig/kbuild.
It's supposed to be put in the tree as util/kbuildall/kbuildall, and called like that (ie. from the top level directory).
The results can be found in kbuildall.results/ in the toplevel directory, the roster is called _overview.txt ("_" to make sure it's sorted before or after all the board files)
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de Acked-by: Stefan Reinauer stepan@coresystems.de
Added: trunk/coreboot-v2/util/kbuildall/kbuildall =================================================================== --- trunk/coreboot-v2/util/kbuildall/kbuildall (rev 0) +++ trunk/coreboot-v2/util/kbuildall/kbuildall 2009-09-16 20:18:03 UTC (rev 4638) @@ -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
Property changes on: trunk/coreboot-v2/util/kbuildall/kbuildall ___________________________________________________________________ Added: svn:executable + *