From acb45d847f0fdce04b13b69a4d535d47f8c39dd1 Mon Sep 17 00:00:00 2001
From: Tobias Malkmus <tomalk@mathematik.uni-freiburg.de>
Date: Fri, 10 Jan 2014 12:05:01 +0100
Subject: [PATCH] make check scripts work as in dune-fem

---
 scripts/check-dist.sh           | 28 +++++++++++++++++++++++-----
 scripts/opts/config_all.opts    |  1 +
 scripts/opts/config_alu.opts    |  1 +
 scripts/opts/config_spgrid.opts |  1 +
 4 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/scripts/check-dist.sh b/scripts/check-dist.sh
index bacc725a..29e0433b 100755
--- a/scripts/check-dist.sh
+++ b/scripts/check-dist.sh
@@ -20,7 +20,8 @@ FEMDIR="$DUNEDIR/dune-fem"
 SCRIPTSDIR="$FEMDIR/scripts"
 OPTSDIR="$SCRIPTSDIR/opts"
 
-MODULES="dune-common dune-geometry dune-grid dune-istl dune-spgrid dune-fem dune-alugrid"
+MODULES="dune-common dune-geometry dune-grid dune-istl dune-localfunctions dune-spgrid dune-fem dune-alugrid dune-fem-dg"
+EXISTINGMODULES=""
 
 # fetch missing tarballs from website
 # -----------------------------------
@@ -49,6 +50,8 @@ for MODULE in $MODULES ; do
     echo "Fatal: No tarball available for $MODULE"
     exit 1
   fi
+
+  EXISTINGMODULES+=" $MODULE"
 done
 
 # perform tests
@@ -95,11 +98,26 @@ for OPTS in `cd $OPTSDIR ; ls *.opts` ; do
   CHECKLOG="$WORKINGDIR/${OPTS%.opts}-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 $OPTS (see $CHECKLOG)"
-    errors=$((errors+1))
+
+  # check for dependencies
+  MAKE_CHECK_DEPS="$(source $OPTSDIR/$OPTS; echo $MAKE_CHECK_DEPS)"
+
+  MISSINGDEPS=""
+  for dep in $MAKE_CHECK_DEPS ; do
+    if ! echo $EXISTINGMODULES | grep $dep; then
+      MISSINGDEPS+=" $dep"
+    fi
+  done
+ 
+  if test -z "$MISSINGDEPS" ; then 
+    if ! $SCRIPTSDIR/check-tests.sh $TESTDIR/dune-fem "$MAKE_CHECK_FLAGS"; then
+      echo "Error: Check failed with $OPTS (see $CHECKLOG)"
+      errors=$((errors+1))
+    fi
+    mv $WORKINGDIR/check-tests.out $CHECKLOG
+  else
+    echo "Skipping $OPTS due to missing dependencies:$MISSINGDEPS"
   fi
-  mv $WORKINGDIR/check-tests.out $CHECKLOG
 done
 
 # clean up
diff --git a/scripts/opts/config_all.opts b/scripts/opts/config_all.opts
index fd30de5b..9885be79 100644
--- a/scripts/opts/config_all.opts
+++ b/scripts/opts/config_all.opts
@@ -20,5 +20,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=ALUGRID_SIMPLEX GRIDDIM=3"
+MAKE_CHECK_DEPS="dune-alugrid"
 
 MAKE_FLAGS=-j8
diff --git a/scripts/opts/config_alu.opts b/scripts/opts/config_alu.opts
index 59eb91da..c74df042 100644
--- a/scripts/opts/config_alu.opts
+++ b/scripts/opts/config_alu.opts
@@ -15,5 +15,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=ALUGRID_SIMPLEX GRIDDIM=2"
+MAKE_CHECK_DEPS="dune-alugrid"
 
 MAKE_FLAGS=-j8
diff --git a/scripts/opts/config_spgrid.opts b/scripts/opts/config_spgrid.opts
index 473d3127..78606729 100644
--- a/scripts/opts/config_spgrid.opts
+++ b/scripts/opts/config_spgrid.opts
@@ -9,5 +9,6 @@ MAKE_FLAGS=
 
 # These flags are necessary to perform grid specific checks!
 MAKE_CHECK_FLAGS="GRIDTYPE=SPGRID GRIDDIM=2"
+MAKE_CHECK_DEPS="dune-spgrid"
 
 MAKE_FLAGS=-j8
-- 
GitLab