[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