You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.6 KiB
65 lines
1.6 KiB
#!/bin/bash
|
|
# A script for testing compilability of different configurations
|
|
# (c) 2004--2010 Martin Mares <mj@ucw.cz>
|
|
|
|
set -e
|
|
|
|
TEST=0
|
|
ERR=
|
|
CC=${CC:-gcc}
|
|
MAKEOPTS=${MAKEOPTS:--j8}
|
|
|
|
function die
|
|
{
|
|
echo >&3 " $@"
|
|
exit 1
|
|
}
|
|
|
|
function try
|
|
{
|
|
TEST=$(($TEST+1))
|
|
TDIR=tests/$TEST
|
|
mkdir $TDIR
|
|
echo "### Test $TEST: $@ ###" | tee $TDIR/log
|
|
CONFIG="$1"
|
|
shift
|
|
ARGS="$@ CC=$CC"
|
|
|
|
(
|
|
cd $TDIR
|
|
exec 3>&2 >>log 2>&1
|
|
case $CONFIG in
|
|
*) ../../configure $CONFIG CONFIG_LOCAL $ARGS || die "CANNOT CONFIGURE"
|
|
;;
|
|
esac
|
|
make $MAKEOPTS || die FAILED
|
|
echo >&3 " COMPILATION PASSED"
|
|
if [ -z "$SKIP_TESTS" ] ; then
|
|
make -k -j1 tests || die "TESTS FAILED"
|
|
echo >&3 " TESTS PASSED"
|
|
fi
|
|
) || ERR=1
|
|
}
|
|
|
|
rm -rf tests
|
|
mkdir tests
|
|
if [ "$1" == DARWIN ] ; then
|
|
# All tests on Darwin need CONFIG_SHARED, due to libucw-charset collision
|
|
# only visible with static linking.
|
|
FLAGS="CONFIG_SHARED"
|
|
try debug/default.cfg $FLAGS CONFIG_UCW_PCRE # `make tests' does not work with non-local builds with shared libs
|
|
elif [ -n "$1" ] ; then
|
|
try "$@"
|
|
else
|
|
try default.cfg # default configuration
|
|
try default.cfg -CONFIG_DEBUG # with no debugging code
|
|
try debug/default.cfg # debugging configuration
|
|
try debug/default.cfg -CONFIG_SHARED # statically linked
|
|
try debug/default.cfg -CONFIG_UCW_THREADS # non-threaded configuration
|
|
try debug/default.cfg -CONFIG_UCW_TLS # threaded, but no TLS support in gcc
|
|
try debug/default.cfg -CONFIG_UCW_EPOLL -CONFIG_UCW_MONOTONIC_CLOCK # without epoll and monotonic clock
|
|
try debug/default.cfg CONFIG_UCW_POSIX_REGEX # different regex libs
|
|
try debug/default.cfg CONFIG_UCW_PCRE
|
|
fi
|
|
|
|
[ -z "$ERR" ]
|
|
|