[U-Boot] [PATCH v2] MAKEALL: Fix return value

Peter Tyser ptyser at xes-inc.com
Mon Dec 7 06:58:28 CET 2009


Previously MAKEALL would always return a value of 0, even if 1 or more
boards did not compile.  This change causes MAKEALL to return 0 if all
boards were able to build, otherwise 1.

This change also requires changing the script interpreter from sh to
bash to support bash's PIPESTATUS variable.

Signed-off-by: Peter Tyser <ptyser at xes-inc.com>
---
Changes since v1:
- Return only 0 or 1

Mike pointed out that if we want to maintain POSIX compliance we could
replace the PIPESTATUS usage with:
        # need to maintain exit value ourselves as pipes eat it
        fail=${LOG_DIR}/$target.failed
        rm -f ${fail}
        (${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
                || touch ${fail}) | tee ${LOG_DIR}/$target.ERR
        [ -e ${fail} ] && RC=1
        rm -f ${fail}

Let me know if others prefer POSIX compliance over the more straight-
forward PIPESATUS usage.

 MAKEALL |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/MAKEALL b/MAKEALL
index d63c5c2..f9caabd 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 # Print statistics when we exit
 trap exit 1 2 3 15
@@ -39,6 +39,7 @@ LIST=""
 ERR_CNT=0
 ERR_LIST=""
 TOTAL_CNT=0
+RC=0
 
 #########################################################################
 ## MPC5xx Systems
@@ -936,6 +937,12 @@ build_target() {
 
 	${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
 				| tee ${LOG_DIR}/$target.ERR
+
+	# Check for 'make' errors
+	if [ ${PIPESTATUS[0]} -ne 0 ] ; then
+		RC=1
+	fi
+
 	if [ -s ${LOG_DIR}/$target.ERR ] ; then
 		ERR_CNT=$((ERR_CNT + 1))
 		ERR_LIST="${ERR_LIST} $target"
@@ -959,6 +966,8 @@ print_stats() {
 		echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
 	fi
 	echo "----------------------------------------------------------"
+
+	exit $RC
 }
 
 #-----------------------------------------------------------------------
-- 
1.6.2.1



More information about the U-Boot mailing list