#!/bin/sh
set -e
echo //entering make-target-contrib.sh
LANG=C
LC_ALL=C
if [ -z "$CC" ]; then
if [ -x "`command -v cc`" ]; then
CC=cc
else
CC=gcc
fi
fi
unset EXTRA_CFLAGS
export CC LANG LC_ALL
. output/build-config
SBCL_TOP="../../"
SBCL_HOME="$SBCL_TOP/obj/sbcl-home"
export SBCL_HOME SBCL_TOP
SBCL="$SBCL_TOP/src/runtime/sbcl --noinform --core $SBCL_TOP/output/sbcl.core \
--lose-on-corruption --disable-debugger --no-sysinit --no-userinit"
SBCL_BUILDING_CONTRIB=1
export SBCL SBCL_BUILDING_CONTRIB
if [ -z "$DONT_CLEAN_SBCL_CONTRIB" ] ; then
rm -fr obj/sbcl-home/contrib/
rm -fr obj/asdf-cache/
fi
find output -name 'building-contrib.*' -print | xargs rm -f
if [ -z "$*" ]; then
$GNUMAKE $SBCL_MAKE_JOBS -C contrib
else
for x in "$@"; do
$GNUMAKE -C contrib $x.fasl
done
fi
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
done
if [ -z "$*" ]; then
contribs_to_build="`cd ./contrib ; echo *`"
else
contribs_to_build="$*"
fi
HEADER_HAS_BEEN_PRINTED=false
for dir in $contribs_to_build
do
if [ -d "contrib/$dir" -a -f "contrib/$dir/Makefile" -a ! -f "obj/asdf-cache/$dir/test-passed.test-report" ]; then
if $HEADER_HAS_BEEN_PRINTED; then
echo > /dev/null
else
cat <<EOF
WARNING! Some of the contrib modules did not build successfully or pass
their self-tests. Failed contribs:"
EOF
HEADER_HAS_BEEN_PRINTED=true
fi
echo " $dir"
fi
done
if [ $HEADER_HAS_BEEN_PRINTED = true ]; then
exit 1
fi