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> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4638 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
ab13458c34
commit
8e9910e5c9
|
@ -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
|
Loading…
Reference in New Issue