DEAL_II_CONFIGURE_TRILINOS_VERSION
DEAL_II_CHECK_TRILINOS_MPI_CONSISTENCY
DEAL_II_CHECK_TRILINOS_SHARED_STATIC
+ DEAL_II_CHECK_TRILINOS_LIBS
DEAL_II_CHECK_TRILINOS_WARNINGS
DEAL_II_CHECK_TRILINOS_HEADER_FILES
| perl -pi -e 's/.*VERSION\s+\d?\d\d\d(\d\d)/\1/g;' \
| perl -pi -e 's/0(\d)/\1/g;'`
AC_MSG_RESULT([$DEAL_II_TRILINOS_VERSION_MAJOR.$DEAL_II_TRILINOS_VERSION_MINOR.$DEAL_II_TRILINOS_VERSION_SUBMINOR])
+
+ dnl Verify that we have at least Trilinos 10. This is the
+ dnl version where Trilinos started using cmake, which allow
+ dnl us to figure out which libraries Trilinos has built
+ dnl and in which order they need to be linked
+ if test "$DEAL_II_TRILINOS_VERSION_MAJOR" -lt 10 ; then
+ AC_MSG_ERROR([Trilinos versions prior to 10.0 are no longer supported with deal.II.])
+ fi
+
AC_SUBST(DEAL_II_TRILINOS_VERSION_MAJOR)
AC_SUBST(DEAL_II_TRILINOS_VERSION_MINOR)
AC_SUBST(DEAL_II_TRILINOS_VERSION_SUBMINOR)
+dnl ------------------------------------------------------------
+dnl Figure out which libraries Trilinos has built and that we
+dnl need to link against. Also make sure we know their order
+dnl
+dnl Usage: DEAL_II_CHECK_TRILINOS_LIBS
+dnl
+dnl ------------------------------------------------------------
+AC_DEFUN(DEAL_II_CHECK_TRILINOS_LIBS, dnl
+[
+ AC_MSG_CHECKING(for the set of Trilinos libraries)
+
+ dnl Trilinos' cmake invokation stores the set of libraries
+ dnl in a special file for consumption of cmake at a later
+ dnl time. We'll simply grep through it
+ DEAL_II_TRILINOS_LIBS="`grep Trilinos_LIBRARIES $DEAL_II_TRILINOS_INCDIR/TrilinosConfig.cmake \
+ | perl -pi -e 's/.*\"(.*)\".*/\1/g; s/;/ /g;'`"
+ AC_MSG_RESULT([$DEAL_II_TRILINOS_LIBS])
+ AC_SUBST(DEAL_II_TRILINOS_LIBS)
+])
+
+
+
dnl ------------------------------------------------------------
dnl Trilinos has headers that produce tons of warnings when
dnl used with -W -Wall (which includes -Wunused). Regrettable
endif
# List all trilinos libraries that we want to link with. These must be sorted
-# in dependency order to allow for static linking where the order on the
-# command line matters. Note that we check the availability of all these
-# libraries in aclocal.m4; the two lists should therefore be kept in
-# sync.
+# in dependency order for linking. Fortunately, we can get the set of
+# libraries from Trilinos's cmake files.
ifeq ($(USE_CONTRIB_TRILINOS),yes)
- DEAL_II_TRILINOS_LIBS = \
- $(DEAL_II_TRILINOS_LIBPREFIX)stratimikosamesos \
- $(DEAL_II_TRILINOS_LIBPREFIX)stratimikosaztecoo \
- $(DEAL_II_TRILINOS_LIBPREFIX)stratimikosifpack \
- $(DEAL_II_TRILINOS_LIBPREFIX)stratimikosml \
- $(DEAL_II_TRILINOS_LIBPREFIX)stratimikos \
- $(DEAL_II_TRILINOS_LIBPREFIX)ml \
- $(DEAL_II_TRILINOS_LIBPREFIX)amesos \
- $(DEAL_II_TRILINOS_LIBPREFIX)belos \
- $(DEAL_II_TRILINOS_LIBPREFIX)ifpack \
- $(DEAL_II_TRILINOS_LIBPREFIX)aztecoo \
- $(DEAL_II_TRILINOS_LIBPREFIX)rtop \
- $(DEAL_II_TRILINOS_LIBPREFIX)sacado \
- $(DEAL_II_TRILINOS_LIBPREFIX)thyra \
- $(DEAL_II_TRILINOS_LIBPREFIX)thyraepetra \
- $(DEAL_II_TRILINOS_LIBPREFIX)thyraepetraext \
- $(DEAL_II_TRILINOS_LIBPREFIX)epetraext \
- $(DEAL_II_TRILINOS_LIBPREFIX)epetra \
- $(DEAL_II_TRILINOS_LIBPREFIX)teuchos \
- $(DEAL_II_TRILINOS_LIBPREFIX)triutils
+ DEAL_II_TRILINOS_LIBS = $(addprefix $(DEAL_II_TRILINOS_LIBPREFIX), @DEAL_II_TRILINOS_LIBS@)
ifeq ($(enable-shared),yes)
lib-contrib-trilinos = \
DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR
DEAL_II_EXPAND_TRILINOS_MPI_VECTOR
DEAL_II_EXPAND_TRILINOS_VECTOR
+DEAL_II_TRILINOS_LIBS
DEAL_II_TRILINOS_LIBPREFIX
DEAL_II_TRILINOS_VERSION_SUBMINOR
DEAL_II_TRILINOS_VERSION_MINOR
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEAL_II_TRILINOS_VERSION_MAJOR.$DEAL_II_TRILINOS_VERSION_MINOR.$DEAL_II_TRILINOS_VERSION_SUBMINOR" >&5
$as_echo "$DEAL_II_TRILINOS_VERSION_MAJOR.$DEAL_II_TRILINOS_VERSION_MINOR.$DEAL_II_TRILINOS_VERSION_SUBMINOR" >&6; }
+ if test "$DEAL_II_TRILINOS_VERSION_MAJOR" -lt 10 ; then
+ as_fn_error $? "Trilinos versions prior to 10.0 are no longer supported with deal.II." "$LINENO" 5
+ fi
+
+
fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the set of Trilinos libraries" >&5
+$as_echo_n "checking for the set of Trilinos libraries... " >&6; }
+
+ DEAL_II_TRILINOS_LIBS="`grep Trilinos_LIBRARIES $DEAL_II_TRILINOS_INCDIR/TrilinosConfig.cmake \
+ | perl -pi -e 's/.*\"(.*)\".*/\1/g; s/;/ /g;'`"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEAL_II_TRILINOS_LIBS" >&5
+$as_echo "$DEAL_II_TRILINOS_LIBS" >&6; }
+
+
+
OLD_CXXFLAGS="$CXXFLAGS"
if test "$GXX" = yes ; then
</p>
<ol>
+<li> Removed: deal.II no longer supports Trilinos versions prior to 10.0.
+<br>
+(Wolfgang Bangerth, 2011/06/29)
+
<li> Changed: deal.II has a namespace std_cxx1x that was used to
import classes from BOOST that are part of the upcoming C++ 1x standard. On
the other hand, if your compiler supported a sufficiently large subset
<h3>General</h3>
<ol>
+<li> Fixed: deal.II can link with Trilinos but previously it required a
+very specific set of Trilinos sub-libraries; if Trilinos had been compiled
+with a larger set of sub-libraries, linking would sometimes fail. This
+has now been made more generic and deal.II obtains the proper set of
+libraries from Trilinos.
+<br>
+(Wolfgang Bangerth, 2011/06/29)
+
<li> Fixed: On Mac OS X, linking with some external libraries such as Trilinos
sometimes failed due to a misconfiguration of linker flags. This should now be
fixed.