-find contrib/ \( -name '*.fasl' -o \
- -name '*.FASL' -o \
- -name 'foo.c' -o \
- -name 'FOO.C' -o \
- -name 'a.out' -o \
- -name 'A.OUT' -o \
- -name 'alien.so' -o \
- -name 'ALIEN.SO' -o \
- -name '*.o' -o \
- -name '*.O' \) \
- -print | xargs rm -f
-
-for i in contrib/*; do
- test -d $i && test -f $i/Makefile || continue;
- # export INSTALL_DIR=$SBCL_HOME/`basename $i `
- test -f $i/test-passed && rm $i/test-passed
- $GNUMAKE -C $i test && touch $i/test-passed
+for i in $contribs_to_build; do
+ test -d contrib/$i && test -f contrib/$i/Makefile || continue;
+ test -f contrib/$i/test-passed && rm contrib/$i/test-passed # remove old convention
+ test -f obj/asdf-cache/$i/test-passed.test-report && rm obj/asdf-cache/$i/test-passed.test-report
+ mkdir -p obj/asdf-cache/$i/
+ # hack to get exit codes right.
+ if $GNUMAKE -C contrib/$i test < /dev/null 2>&1 && touch obj/asdf-cache/$i/test-passed.test-report ; then
+ :
+ else
+ exit $?
+ fi | tee output/building-contrib.`basename $i`
+done
+
+# Otherwise report expected failures:
+HEADER_HAS_BEEN_PRINTED=false
+for dir in `cd obj/asdf-cache/ ; echo *`; do
+ f="obj/asdf-cache/$dir/test-passed.test-report"
+ if test -f "$f" && grep -i fail "$f" >/dev/null; then
+ if ! $HEADER_HAS_BEEN_PRINTED; then
+ cat <<EOF
+
+Note: Test suite failures which are expected for this combination of
+platform and features have been ignored:
+EOF
+ HEADER_HAS_BEEN_PRINTED=true
+ fi
+ echo " contrib/$dir"
+ (unset IFS; while read line; do echo " $line"; done <"$f")
+ fi