92 lines
2.6 KiB
Bash
Executable File
92 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Do some checking before 'git push'.
|
|
|
|
# Set a stricter bash mode
|
|
set -e
|
|
set -u
|
|
|
|
CORES=$(nproc)
|
|
|
|
echo "Running: make distclean"
|
|
make distclean > /dev/null || true
|
|
|
|
# We define _GNU_SOURCE to avoid warnings with missing prototypes.
|
|
# C89 does not know snprintf, strdup, strndup, popen, pclose
|
|
CFLAGS="-std=gnu89 -pedantic -g -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wwrite-strings -Wshadow -Wformat -Wformat-security -Wunreachable-code -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition"
|
|
|
|
CACHEFILE=$PWD/config_check.cache
|
|
|
|
# measure time consumed and print it at the end of the script
|
|
START=$(date +%s.%N)
|
|
|
|
# avoid annoying ar warning
|
|
export ARFLAGS="cr"
|
|
export AR_FLAGS="cr"
|
|
|
|
echo "Running: ./autogen.sh"
|
|
./autogen.sh > /dev/null
|
|
echo
|
|
|
|
for CC in gcc clang; do
|
|
export CC
|
|
echo
|
|
echo "*** Testing with CC=$CC"
|
|
|
|
# the compiler changed, so we have to remove the cache file here
|
|
rm -f $CACHEFILE
|
|
|
|
for options in \
|
|
"--enable-runtime=libicu" \
|
|
"--enable-runtime=libidn2" \
|
|
"--enable-runtime=libidn" \
|
|
"--disable-runtime"; do
|
|
export DISTCHECK_CONFIGURE_FLAGS="-q -C --cache-file=$CACHEFILE $options"
|
|
if test "$CC" = "clang"; then
|
|
echo
|
|
echo " *** CC=$CC ./configure $DISTCHECK_CONFIGURE_FLAGS --enable-cfi"
|
|
./configure $DISTCHECK_CONFIGURE_FLAGS --enable-cfi CFLAGS="$CFLAGS"
|
|
for xLCALL in C tr_TR.utf8; do
|
|
make -s clean
|
|
make -s check -j$CORES
|
|
done
|
|
fi
|
|
|
|
for flags in --enable-ubsan --enable-asan; do
|
|
# case "$flags" in *-asan) case $options in *libicu*) continue;; esac;; esac
|
|
echo
|
|
echo " *** CC=$CC ./configure $DISTCHECK_CONFIGURE_FLAGS $flags"
|
|
./configure $DISTCHECK_CONFIGURE_FLAGS $flags CFLAGS="$CFLAGS"
|
|
for xLCALL in C tr_TR.utf8; do
|
|
make -s clean
|
|
make -s check -j$CORES
|
|
done
|
|
done
|
|
|
|
echo
|
|
echo " *** CC=$CC ./configure $DISTCHECK_CONFIGURE_FLAGS"
|
|
./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS="$CFLAGS"
|
|
for xVALGRIND in 0 1; do
|
|
for xLCALL in C tr_TR.utf8; do
|
|
export TESTS_ENVIRONMENT="LC_ALL=$xLCALL VALGRIND_TESTS=$xVALGRIND"
|
|
echo " *** TESTS_ENVIRONMENT=\"$TESTS_ENVIRONMENT\"" make check -j$CORES
|
|
make -s clean
|
|
make -s check -j$CORES
|
|
done
|
|
done
|
|
|
|
unset TESTS_ENVIRONMENT
|
|
export TESTS_ENVIRONMENT
|
|
echo
|
|
echo " *** $CC: make distcheck CFLAGS=$CFLAGS -j$CORES"
|
|
./configure $DISTCHECK_CONFIGURE_FLAGS CFLAGS="$CFLAGS"
|
|
make -s clean
|
|
make -s check -j$CORES
|
|
make -s distcheck CFLAGS="$CFLAGS" -j$CORES
|
|
done
|
|
done
|
|
|
|
END=$(date +%s.%N)
|
|
echo
|
|
echo "Duration: "$(echo "$END - $START" | bc)
|