[coreboot] [v2] r4638 - in trunk/coreboot-v2/util: . kbuildall

svn at coreboot.org svn at coreboot.org
Wed Sep 16 22:18:03 CEST 2009


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 at coresystems.de>
Acked-by: Stefan Reinauer <stepan at 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 at 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
   + *





More information about the coreboot mailing list