summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaymond Danks <ray.danks@se-eng.com>2012-05-30 16:03:48 -0600
committerPatrick Georgi <patrick@georgi-clan.de>2012-06-04 16:19:45 +0200
commitc95da25ac6993a4cbccb23e60576ce0c0f350af1 (patch)
treef9406eb0a638a4d0cae268c857c47bc9c72c5529
parentbdca15337bc9337f399b43290dc74cb598c5ec4d (diff)
downloadcoreboot-c95da25ac6993a4cbccb23e60576ce0c0f350af1.tar.xz
Improve parsing of --cpu parameter in abuild script.
* -c "" need never be tested if getopt params are handled; fail abuild script when getopt parsing fails * use expr to resolve numeric test fails with -c max * cpus variable may be being passed in the environment. Don't overwrite MAKEFLAGS if it is not. Change-Id: I96236ef719a1a9f942b8e15bfcf015d60068e58a Signed-off-by: Raymond Danks <ray.danks@se-eng.com> Reviewed-on: http://review.coreboot.org/1068 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rwxr-xr-xutil/abuild/abuild10
1 files changed, 5 insertions, 5 deletions
diff --git a/util/abuild/abuild b/util/abuild/abuild
index 65d9cea8fb..ecda5c3491 100755
--- a/util/abuild/abuild
+++ b/util/abuild/abuild
@@ -527,7 +527,7 @@ cmdline="$* -c 1"
getoptbrand="`getopt -V`"
if [ "${getoptbrand:0:6}" == "getopt" ]; then
# Detected GNU getopt that supports long options.
- args=`getopt -l version,verbose,help,all,target:,payloads:,test,cpus:,silent,junit,xml,config,loglevel:,remove,prefix:,update,nostackprotect,scan-build,ccache,blobs -o Vvhat:p:Tc:sJxCl:rP:uyB -- "$@"`
+ args=`getopt -l version,verbose,help,all,target:,payloads:,test,cpus:,silent,junit,xml,config,loglevel:,remove,prefix:,update,nostackprotect,scan-build,ccache,blobs -o Vvhat:p:Tc:sJxCl:rP:uyB -- "$@"` || exit 1
eval set -- $args
else
# Detected non-GNU getopt
@@ -556,10 +556,9 @@ while true ; do
-T|--test) shift; hwtest=true;;
-c|--cpus) shift
export MAKEFLAGS="-j $1"
- test "$MAKEFLAGS" == "-j max" && export MAKEFLAGS="-j"
- test "$1" == "" && cpuconfig="in parallel"
+ test "$MAKEFLAGS" == "-j max" && export MAKEFLAGS="-j" && cpuconfig="in parallel"
test "$1" == "1" && cpuconfig="on 1 cpu"
- test 0$1 -gt 1 && cpuconfig="on $1 cpus in parallel"
+ expr "$1" : '-\?[0-9]\+$' > /dev/null && test 0$1 -gt 1 && cpuconfig="on $1 cpus in parallel"
shift;;
-s|--silent) shift; silent="-s";;
-ns|--nostackprotect) shift; stackprotect=true;;
@@ -608,11 +607,12 @@ if [ "$cpus" != "1" ]; then
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 0$cpus -n 1 echo 2>/dev/null >/dev/null # && USE_XARGS=1
+ echo | xargs -P 0$cpus -n 1 echo 2>/dev/null >/dev/null # && USE_XARGS=1
fi
fi
if [ "$USE_XARGS" = "0" ]; then
+test "$MAKEFLAGS" == "" && test "$cpus" != "" && export MAKEFLAGS="-j $cpus"
build_all_targets()
{
for VENDOR in $( vendors ); do