#!/bin/bash # Usage: nightly-test set -e GMP="$1" CC="$2" BRANCH="$3" DIR=mpfr-nightly echo "BRANCH=$BRANCH" echo "GMP=$GMP" echo "CC=$CC" cd /tmp /bin/rm -fr "$DIR" mkdir "$DIR" # The following test should be useless, but let's be paranoid. test ! -h "$DIR" svn checkout "svn://scm.gforge.inria.fr/svn/mpfr/${BRANCH:-trunk}" "$DIR" cd "$DIR" ./autogen.sh # -Wmissing-prototypes is not valid for C++ # add -Wno-sign-conversion because of a bug in g++ # -pedantic-errors (instead of just -pedantic) below allows us to # deactivate the support of C99 features in the configure (as they # will give an error) and to test that MPFR can be built with a # C90-only compiler. if [ "$CC" = "g++" ]; then ./configure --with-gmp="$GMP" --enable-assert=full --enable-decimal-float \ --enable-float128 \ --disable-shared --enable-thread-safe --enable-tests-timeout=60 \ CC="$CC" CFLAGS="-Wall -O2 -g -fstack-protector -Wno-sign-compare \ -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -ansi -pedantic-errors" else # removed -ansi since it is incompatible with --enable-decimal-float ./configure --with-gmp="$GMP" --enable-assert=full --enable-decimal-float \ --enable-float128 \ --disable-shared --enable-thread-safe --enable-tests-timeout=60 \ CC="$CC" CFLAGS="-Wall -Wmissing-prototypes -O2 -g -fstack-protector \ -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -pedantic -Wlogical-op" fi make export GMP_CHECK_RANDOMIZE=1 export MPFR_SUSPICIOUS_OVERFLOW=1 export MPFR_CHECK_LIBC_PRINTF=1 export MPFR_SKIP_EXTREME=1 # The VERBOSE=1 allows tests/test-suite.log to be output in case of failure. VERBOSE=1 make check # reconfigure for mpfrbench make distclean if [ "$CC" = "g++" ]; then ./configure --with-gmp="$GMP" --disable-shared CC="$CC" else # removed -ansi since it is incompatible with --enable-decimal-float ./configure --with-gmp="$GMP" --disable-shared fi make cd tools/bench make mpfrbench ./mpfrbench cd /tmp /bin/rm -fr "$DIR"