From 0c65dccd3f2d2443459fc00d63f096a94cba2d13 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Sat, 31 Oct 2015 00:42:50 +0100 Subject: 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 Reviewed-on: http://review.coreboot.org/12278 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth --- util/abuild/abuild | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'util') diff --git a/util/abuild/abuild b/util/abuild/abuild index 0c78a8fc9e..daf53c663e 100755 --- a/util/abuild/abuild +++ b/util/abuild/abuild @@ -551,25 +551,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 @@ -613,7 +613,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 @@ -632,7 +632,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 @@ -644,7 +646,7 @@ if [ "$target" != "" ]; then XMLFILE=$REAL_XMLFILE fi else - build_all_targets + build_targets rm -f $REAL_XMLFILE XMLFILE=$REAL_XMLFILE junit '' -- cgit v1.2.3