diff --git a/build.sh b/build.sh index 44ef0bd..5790122 100755 --- a/build.sh +++ b/build.sh @@ -1,9 +1,23 @@ #!/bin/bash echo "$1 ($2, $3)..." + make clean 1>/dev/null 2>/dev/null + echo -n "building..." -CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -f $3 test tv_gen 1>gcc_1.txt 2>gcc_2.txt || (echo "build $1 failed see gcc_2.txt for more information" && cat gcc_2.txt && exit 1) + +CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -f $3 test tv_gen 1>gcc_1.txt 2>gcc_2.txt +mret=$? +cnt=$(wc -l < gcc_2.txt) +# ignore 2 lines since ar prints to stderr instead of stdout and ar is called for +# $(LIBNAME) and testprof/$(LIBTEST_S) +if [[ $mret -ne 0 ]] || [[ $cnt -gt 2 ]]; then + echo "build $1 failed! printing gcc_2.txt now for convenience" + cat gcc_2.txt + exit 1 +fi + echo -n "testing..." + if [ -a test ] && [ -f test ] && [ -x test ]; then ((./test >test_std.txt 2>test_err.txt && ./tv_gen > tv.txt) && echo "$1 test passed." && echo "y" > testok.txt) || (echo "$1 test failed, look at test_err.txt" && exit 1) if find *_tv.txt -type f 1>/dev/null 2>/dev/null ; then