-
Tobias Malkmus authoredTobias Malkmus authored
fullcheck.sh 3.00 KiB
#!/bin/bash
# check for parameter pointing to DUNE base directory
# ---------------------------------------------------
DUNECONTROL="dune-common/bin/dunecontrol"
if test \( $# -lt 1 \) -o ! -e $1/$DUNECONTROL ; then
echo "Usage: $0 <dune-base-dir>"
exit 1
fi
echo "Full Check of dune-fem-dg"
echo "-------------------------"
echo
echo "Host Name: $HOSTNAME"
echo "Host Type: $HOSTTYPE"
# set up some variables
# ---------------------
WORKINGDIR=`pwd`
cd $1
DUNEDIR=`pwd`
FEMDIR="$DUNEDIR/dune-fem-dg"
SCRIPTSDIR="$FEMDIR/scripts"
OPTSDIR="$SCRIPTSDIR/opts"
# search for all existing dune modules
# ------------------------------------
MODULES=""
for modctrl in $(find -name dune.module -print); do
MODULES+="$(dirname $modctrl | sed -e 's@^[.]/@@g') "
done
errors=0
# check headers in Makefile.am in each MODULE
# -------------------------------------------
echo
echo "Checking Makefile.am's *_HEADERS variables..."
cd $FEMDIR
if ! $SCRIPTSDIR/check-headers.sh fast ; then
errors=$((errors+1))
fi
# configure with minimal options
# ------------------------------
MINIMALOPTS="$OPTSDIR/minimal.opts"
if test ! -e $MINIMALOPTS ; then
echo "Error: $MINIMALOPTS not found."
exit 1
fi
minimal_configure()
{
local check=`mktemp -p $WORKINGDIR check.XXXXXX`
{
$DUNECONTROL --opts=$MINIMALOPTS all
echo $? > $check
} 2>&1 | dd conv=notrunc > $WORKINGDIR/minimal-svn-conf.out 2>/dev/null
local return_value=`cat $check`
rm $check
return $return_value
}
echo
echo "Configuring with minimal options..."
cd $DUNEDIR
if ! minimal_configure ; then
echo "Fatal: Cannot configure with minimal options (see $WORKINGDIR/minimal-svn-conf.out)."
exit 1
fi
# check headers
# -------------
for module in $MODULES;
do
echo
echo "Checking headers in $module ..."
cd $DUNEDIR/$module
if ! $SCRIPTSDIR/check-headers.sh ; then
if test "x$module" == "xdune-fem"; then
errors=$((errors+1))
fi
fi
done
# perform make check
# ------------------
CHECKLOG="$WORKINGDIR/minimal-check.out"
MAKE_CHECK_FLAGS=""
MAKE_CHECK_FLAGS="$(source $OPTSDIR/$OPTS; echo $MAKE_CHECK_FLAGS)"
if ! $SCRIPTSDIR/check-tests.sh $TESTDIR/dune-fem "$MAKE_CHECK_FLAGS"; then
echo "Error: Check failed with minimal options (see $CHECKLOG)"
errors=$((errors+1))
fi
mv $WORKINGDIR/check-tests.out $CHECKLOG
## build tarballs
## --------------
#
#for MODULE in $MODULES ; do
# # ignore missing modules since istl may be missing
# if ! test -d $DUNEDIR/$MODULE ; then
# continue;
# fi
#
# echo
# echo "Making tarball in $MODULE..."
#
# cd $DUNEDIR/$MODULE
# find -maxdepth 1 -name "*.tar.gz" -delete
# if ! make dist &> $WORKINGDIR/$MODULE-dist.out ; then
# echo "Error: Cannot make tarball for $MODULE (see $WORKINGDIR/$MODULE-dist.out)"
# if test $MODULE == dune-fem ; then
# errors=$((errors+1))
# fi
# fi
#done
#
## check distributions
## -------------------
#
#cd $WORKINGDIR
#if ! $SCRIPTSDIR/check-dist.sh $DUNEDIR ; then
# errors=$((errors+1))
#fi
if test $errors -gt 0 ; then
exit 1
else
exit 0
fi