Patrick Georgi (pgeorgi@google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/12278
-gerrit
commit 5ff121fae307e3e380c35b550db303fc8fe8b688 Author: Patrick Georgi pgeorgi@chromium.org Date: Sat Oct 31 00:42:50 2015 +0100
abuild: allow users to specify multiple boards
Specifying a directory with multiple boards (eg abuild -t google/veyron) makes abuild run through all of them.
Change-Id: Ifb60f3a1f0c4a727dc43c48671ea90711ffe5585 Signed-off-by: Patrick Georgi pgeorgi@chromium.org --- util/abuild/abuild | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/util/abuild/abuild b/util/abuild/abuild index 8a2520d..1157c81 100755 --- a/util/abuild/abuild +++ b/util/abuild/abuild @@ -541,25 +541,25 @@ if [ "$cpus" != "1" ]; then if [ "$cpus" = "max" ]; then cpus=32 fi - if [ "$target" = "" ]; then - # Test if xargs supports the non-standard -P flag - # FIXME: disabled until we managed to eliminate all the make(1) quirks - echo | xargs -P ${cpus:-0} -n 1 echo 2>/dev/null >/dev/null && USE_XARGS=1 - fi + # Test if xargs supports the non-standard -P flag + # FIXME: disabled until we managed to eliminate all the make(1) quirks + echo | xargs -P ${cpus:-0} -n 1 echo 2>/dev/null >/dev/null && USE_XARGS=1 fi
if [ "$USE_XARGS" = "0" ]; then test "$MAKEFLAGS" == "" && test "$cpus" != "" && export MAKEFLAGS="-j $cpus" -build_all_targets() +build_targets() { - for MAINBOARD in $( get_mainboards ); do - build_target $MAINBOARD + local targets=${*-$(get_mainboards)} + for MAINBOARD in $targets; do + build_target ${MAINBOARD} remove_target ${MAINBOARD} done } else -build_all_targets() +build_targets() { + local targets=${*-$(get_mainboards)} # seed shared utils TMPCFG=`mktemp` printf "$configoptions" > $TMPCFG @@ -603,7 +603,7 @@ build_all_targets() rmdir ${scanbuild_out}tmp fi rm -rf $TARGET/temp $TMPCFG - get_mainboards | xargs -P ${cpus:-0} -n 1 $0 $cmdline -t + echo $targets | xargs -P ${cpus:-0} -n 1 $0 $cmdline -t } fi
@@ -622,7 +622,9 @@ if [ "$target" != "" ]; then exit 1 fi build_srcdir=$(mainboard_directory ${MAINBOARD}) - if [ ! -r $ROOT/src/mainboard/${build_srcdir} ]; then + if [ "$(echo ${MAINBOARD} | wc -w)" -gt 1 ]; then + build_targets ${MAINBOARD} + elif [ ! -r $ROOT/src/mainboard/${build_srcdir} ]; then printf "No such target: ${MAINBOARD}\n" exit 1 else @@ -634,7 +636,7 @@ if [ "$target" != "" ]; then XMLFILE=$REAL_XMLFILE fi else - build_all_targets + build_targets rm -f $REAL_XMLFILE XMLFILE=$REAL_XMLFILE junit '<?xml version="1.0" encoding="utf-8"?>'