[PATCH 1/5] MAKEALL: check the return code of "make" rather than "printf"

Masahiro Yamada yamada.m at jp.panasonic.com
Tue Feb 3 02:14:44 PST 2015


Currently, MAKEALL always reports "Configure: OK" and "Compile: OK"
regardless of the result of the configuration and compile.

$ LANG=C CROSS_COMPILE=arm-linux-gnueabi- ./MAKEALL -a arm foo_defconfig
Building arm foo_defconfig
make[2]: *** [foo_defconfig] Error 1
make[1]: *** [foo_defconfig] Error 2
make: *** [foo_defconfig] Error 2
Configure: OK
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[3]: *** [silentoldconfig] Error 1
make[2]: *** [silentoldconfig] Error 2
make[1]: *** No rule to make target `include/config/auto.conf',
needed by `include/config/kernel.release'.  Stop.
make[1]: *** Waiting for unfinished jobs....
make: *** [_all] Error 2
Compile: OK
arm-linux-gnueabi-size: 'makeall_builddir/barebox': No such file
Compiled in    2s

The check_pipe_status() function must be called right after "make"
command, not "printf" command.  ("printf" probably succeeds all
the time.)

Signed-off-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
---

 MAKEALL | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/MAKEALL b/MAKEALL
index 9bd7b2e..9a56ceb 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -113,17 +113,22 @@ do_build_target() {
 	MAKE="make -C ${here} CROSS_COMPILE=${cross_compile} ARCH=${arch} O=${BUILDDIR}"
 	${MAKE} -j${JOBS} ${target} 2>&1 > "${log_report}" | tee "${log_err}"
 
-	printf "Configure: " | tee -a "${log_report}"
 	check_pipe_status
-	if [ "$?" = "0" ]; then
+	result="$?"
+
+	printf "Configure: " | tee -a "${log_report}"
+
+	if [ "$result" = "0" ]; then
 		printf "OK     \n" | tee -a "${log_report}"
 
 		${MAKE} -j${JOBS} -s 2>&1 >> "${log_report}" | tee -a "${log_err}"
 
+		check_pipe_status
+		result="$?"
+
 		printf "Compile: " ${target} | tee -a "${log_report}"
 
-		check_pipe_status
-		if [ "$?" = "0" ]; then
+		if [ "$result" = "0" ]; then
 			printf "OK     \n" | tee -a "${log_report}"
 			${cross_compile}size ${BUILDDIR}/barebox | tee -a "${log_report}"
 		else
-- 
1.9.1




More information about the barebox mailing list