coreboot-kgpe-d16/util/kbuildall/kbuildall
Patrick Georgi b106f9bdbd Add the compareboard utility which is useful for porting
to kconfig.
Hook it up to kbuildall, too

Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de>
Acked-by: Myles Watson <mylesgw@gmail.com>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4761 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
2009-10-12 18:43:26 +00:00

68 lines
2 KiB
Bash
Executable file

#!/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
BOARD=$1
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
}
ALLTARGETS=`(cd src/mainboard; ls */*/Config.lb | sed s,/Config.lb,,)`
TARGETCOUNT=`echo $ALLTARGETS | wc -w`
if [ -n "$BOARD" ]; then
TARGETCOUNT=1
ALLTARGETS=$BOARD
else
rm -rf $TARGETDIR
fi
mkdir -p $TARGETDIR
i=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."
if [ "$result" = "ok" ]; then
util/abuild/abuild -t $dir
sh util/compareboard/compareboard $dir | tee $TARGETDIR/$name.variables.txt
fi
echo "$dir $result" >> $TARGETDIR/_overview.txt
done