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 <pty...@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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to