summaryrefslogtreecommitdiffhomepage
path: root/libtomcrypt/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libtomcrypt/build.sh')
-rwxr-xr-x[-rw-r--r--]libtomcrypt/build.sh51
1 files changed, 45 insertions, 6 deletions
diff --git a/libtomcrypt/build.sh b/libtomcrypt/build.sh
index a048670..62d09c5 100644..100755
--- a/libtomcrypt/build.sh
+++ b/libtomcrypt/build.sh
@@ -1,20 +1,59 @@
#!/bin/bash
echo "$1 ($2, $3)..."
+
make clean 1>/dev/null 2>/dev/null
+
echo -n "building..."
-CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -j4 -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)
+
+if [ -f /proc/cpuinfo ]
+then
+ MAKE_JOBS=$(( ($(cat /proc/cpuinfo | grep -E '^processor[[:space:]]*:' | tail -n -1 | cut -d':' -f2) + 1) * 2 + 1 ))
+else
+ MAKE_JOBS=8
+fi
+
+CFLAGS="$2 $CFLAGS $4" EXTRALIBS="$5" make -j$MAKE_JOBS -f $3 all_test 1>gcc_1.txt 2>gcc_2.txt
+mret=$?
+cnt=$(wc -l < gcc_2.txt)
+# ignore 1 line since ar prints to stderr instead of stdout and ar is called for
+# $(LIBNAME)
+if [[ $mret -ne 0 ]] || [[ $cnt -gt 1 ]]; 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" && cat test_err.txt && exit 1)
+ ((./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 or tv.txt" && exit 1)
if find *_tv.txt -type f 1>/dev/null 2>/dev/null ; then
- for f in *_tv.txt; do if (diff --ignore-case $f notes/$f) then true; else (echo "tv_gen $f failed" && rm -f testok.txt && exit 1); fi; done
+ for f in *_tv.txt; do
+ # check for lines starting with '<' ($f might be a subset of notes/$f)
+ difftroubles=$(diff -i -w -B $f notes/$f | grep '^<')
+ if [ -n "$difftroubles" ]; then
+ echo "FAILURE: $f"
+ diff -i -w -B $f notes/$f
+ echo "tv_gen $f failed" && rm -f testok.txt && exit 1
+ else
+ true
+ fi
+ done
fi
fi
+
+
if [ -a testok.txt ] && [ -f testok.txt ]; then
+ if [ "$LTC_COVERAGE" != "" ]; then
+ ./coverage_more.sh > test_coverage_more.txt || exit 1
+ lcov_opts="--capture --no-external --directory src -q"
+ lcov_out=$(echo coverage_$1_$2_$3 | tr ' -=+' '_')".info"
+ lcov $lcov_opts --output-file $lcov_out
+ fi
exit 0
fi
exit 1
-# $Source: /cvs/libtom/libtomcrypt/build.sh,v $
-# $Revision: 1.9 $
-# $Date: 2006/03/18 14:10:55 $
+# ref: $Format:%D$
+# git commit: $Format:%H$
+# commit time: $Format:%ai$