]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Patch by Christophe Trophime: allow using --with-XX-include and --with-XX-lib for...
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Oct 2008 02:21:10 +0000 (02:21 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Sun, 19 Oct 2008 02:21:10 +0000 (02:21 +0000)
git-svn-id: https://svn.dealii.org/trunk@17277 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/aclocal.m4
deal.II/common/Make.global_options.in
deal.II/configure
deal.II/configure.in
deal.II/doc/readme-petsc-trilinos.html
deal.II/doc/readme.html

index df5be0a90ad0aa865d610088d9934d47d64e7d1a..a2a79f1bdce15b04973a901dc7ebb1296eb12142 100644 (file)
@@ -5136,38 +5136,74 @@ AC_DEFUN(DEAL_II_CONFIGURE_NETCDF, dnl
         fi
      ])
   
+   AC_ARG_WITH(netcdf-include,
+   [  --with-netcdf-include=/path/to/netcdf  Specify the path to the NetCDF headers file; 
+                          use this if you want to override the
+                          NETCDF_INCLUDE_DIR environment variable.],
+      [
+        NETCDF_INCLUDE_DIR=$withval
+      ])
+
+   AC_ARG_WITH(netcdf-libs,
+   [  --with-netcdf-libs=/path/to/netcdf  Specify the path to the NetCDF libraries; 
+                          use this if you want to override the
+                          NETCDF_LIBDIR environment variable.],
+      [
+        NETCDF_LIBDIR=$withval
+      ])
+
   if test "x$DEAL_II_NETCDF_DIR" != "x" ; then
-    CPPFLAGS="-I$DEAL_II_NETCDF_DIR/include $CPPFLAGS"
-    CXXFLAGS="-I$DEAL_II_NETCDF_DIR/include $CXXFLAGS"
-    LDFLAGS="-L$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
-    if test "$LD_PATH_OPTION" != "no" ; then
-      LDFLAGS="$LD_PATH_OPTION$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+    if test "x$NETCDF_INCLUDE_DIR" != "x" ; then
+      CPPFLAGS="-I$NETCDF_INCLUDE_DIR $CPPFLAGS"
+      CXXFLAGS="-I$NETCDF_INCLUDE_DIR $CXXFLAGS"
+    else
+      CPPFLAGS="-I$DEAL_II_NETCDF_DIR/include $CPPFLAGS"
+      CXXFLAGS="-I$DEAL_II_NETCDF_DIR/include $CXXFLAGS"
+    fi
+    if test "x$NETCDF_LIBDIR" != "x" ; then
+      LDFLAGS="$LDFLAGS -L$NETCDF_LIBDIR"
+    else
+      LDFLAGS="-L$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+      if test "$LD_PATH_OPTION" != "no" ; then
+       LDFLAGS="$LD_PATH_OPTION$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+      fi
+    fi 
+  else
+    if test "x$NETCDF_INCLUDE_DIR" != "x" ; then
+      CPPFLAGS="-I$NETCDF_INCLUDE_DIR $CPPFLAGS"
+      CXXFLAGS="-I$NETCDF_INCLUDE_DIR $CXXFLAGS"
+    fi
+    if test "x$NETCDF_LIBDIR" != "x" ; then
+      LDFLAGS="$LDFLAGS -L$NETCDF_LIBDIR"
     fi
   fi
   
   dnl Check for header, if found check for C library,
   dnl if found check for C++ library,
   dnl if successful, HAVE_LIBNETCDF will be set
-  AC_CHECK_HEADER(netcdfcpp.h, AC_CHECK_LIB(netcdf, nc_open,
-    [ DEAL_II_EXTERNAL_LIBS_SAVE_VAL()
-      DEAL_II_ADD_EXTERNAL_LIBS_AT_FRONT(-lnetcdf_c++ -lnetcdf)
-      AC_MSG_CHECKING([for NcFile::NcFile in -lnetcdf_c++])
-      AC_LINK_IFELSE(
-      [  AC_LANG_PROGRAM([[#include <netcdfcpp.h>
-                      ]],
-                       [[NcFile test("test")]])
-      ],
-      [ AC_MSG_RESULT(yes)
-        AC_DEFINE(HAVE_LIBNETCDF,1,[Define to 1 if you have the `NetCDF' library (-lnetcdf).])
-      ],
-      [ AC_MSG_RESULT(no)
-       DEAL_II_EXTERNAL_LIBS_RESTORE_VAL()
-      ])
-    ]))
+  AC_CHECK_HEADER(netcdfcpp.h)
+      
+  AC_CHECK_LIB(netcdf, nc_open,
+  [ DEAL_II_EXTERNAL_LIBS_SAVE_VAL()
+    DEAL_II_ADD_EXTERNAL_LIBS_AT_FRONT(-lnetcdf_c++ -lnetcdf)
+    AC_MSG_CHECKING([for NcFile::NcFile in -lnetcdf_c++])
+    AC_LINK_IFELSE(
+    [  AC_LANG_PROGRAM([[#include <netcdfcpp.h>
+                    ]],
+                     [[NcFile test("test")]])
+    ],
+    [ AC_MSG_RESULT(yes)
+      AC_DEFINE(HAVE_LIBNETCDF,1,[Define to 1 if you have the `NetCDF' library (-lnetcdf).])
+    ],
+    [ AC_MSG_RESULT(no)
+      DEAL_II_EXTERNAL_LIBS_RESTORE_VAL()
+    ])   
+  ])
+  
 ])
 
 
-
 dnl ------------------------------------------------------------
 dnl Check whether PETSc is installed, and if so store the 
 dnl respective links
@@ -5403,9 +5439,8 @@ dnl
 dnl ------------------------------------------------------------
 AC_DEFUN(DEAL_II_CONFIGURE_TRILINOS, dnl
 [
-  AC_MSG_CHECKING(for Trilinos library directory)
-
-  AC_ARG_WITH(trilinos,
+ AC_MSG_CHECKING(for Trilinos directory)
+ AC_ARG_WITH(trilinos,
   [  --with-trilinos=/path/to/trilinos  Specify the path to the Trilinos installation,
                           of which the include and lib directories
                           are subdirs; use this if you want to override
@@ -5426,6 +5461,9 @@ AC_DEFUN(DEAL_II_CONFIGURE_TRILINOS, dnl
             AC_MSG_ERROR([Path to Trilinos specified with --with-trilinos does not
                          point to a complete Trilinos installation])
          fi
+         
+         DEAL_II_TRILINOS_INCDIR="$DEAL_II_TRILINOS_DIR/include"
+         DEAL_II_TRILINOS_LIBDIR="$DEAL_II_TRILINOS_DIR/lib"
         fi
      ],
      [
@@ -5442,6 +5480,8 @@ AC_DEFUN(DEAL_II_CONFIGURE_TRILINOS, dnl
                          environment variable does not
                          point to a complete Trilinos installation])
          fi
+         DEAL_II_TRILINOS_INCDIR="$DEAL_II_TRILINOS_DIR/include"
+         DEAL_II_TRILINOS_LIBDIR="$DEAL_II_TRILINOS_DIR/lib"
         else
          USE_CONTRIB_TRILINOS=no
           DEAL_II_TRILINOS_DIR=""
@@ -5449,6 +5489,103 @@ AC_DEFUN(DEAL_II_CONFIGURE_TRILINOS, dnl
         fi
      ])
 
+  AC_MSG_CHECKING(for Trilinos header directory)
+  AC_ARG_WITH(trilinos-include,
+  [  --with-trilinos-include=/path/to/trilinos  Specify the path to the Trilinos include; 
+                          use this if you want to override
+                          the TRILINOS_INCDIR environment variable.],
+     [
+        dnl Special case when someone does --with-petsc=no
+        if test "x$withval" = "xno" ; then
+          AC_MSG_RESULT([explicitly disabled])
+          USE_CONTRIB_TRILINOS=no
+        else
+         USE_CONTRIB_TRILINOS=yes
+          DEAL_II_TRILINOS_INCDIR=$withval
+         AC_MSG_RESULT($DEAL_II_TRILINOS_INCDIR)
+
+          dnl Make sure that what was specified is actually correct
+          if test ! -d $DEAL_II_TRILINOS_INCDIR ; then
+            AC_MSG_ERROR([Path to Trilinos specified with --with-trilinos-include does not
+                         point to a complete Trilinos installation])
+         fi
+        fi
+     ],
+     [
+        dnl Take something from the environment variables, if it is there
+        if test "x$TRILINOS_INCDIR" != "x" ; then
+         USE_CONTRIB_TRILINOS=yes
+         DEAL_II_TRILINOS_INCDIR="$TRILINOS_INCDIR"
+         AC_MSG_RESULT($DEAL_II_TRILINOS_INCDIR)
+
+          dnl Make sure that what this is actually correct
+          if test ! -d $DEAL_II_TRILINOS_INCDIR ; then
+            AC_MSG_ERROR([The path to Trilinos includes specified in the TRILINOS_INCDIR
+                         environment variable does not point to a valid directory])
+         fi
+        else
+          dnl --with-trilinos-include not explicitly specified. do
+         dnl nothing if --with-trilinos has previously been specified,
+         dnl otherwise say no to trilinos
+          if test "x${USE_CONTRIB_TRILINOS}" != "xyes" ; then
+           USE_CONTRIB_TRILINOS=no
+            DEAL_II_TRILINOS_INCDIR=""
+            AC_MSG_RESULT(not found)
+          else
+            AC_MSG_RESULT(not explicitly specified)
+          fi
+        fi
+     ])
+
+  AC_MSG_CHECKING(for Trilinos library directory)
+  AC_ARG_WITH(trilinos-libs,
+  [  --with-trilinos-libs=/path/to/trilinos  Specify the path to the Trilinos libraries; 
+                          use this if you want to override
+                          the TRILINOS_LIBDIR environment variable.],
+     [
+        dnl Special case when someone does --with-petsc=no
+        if test "x$withval" = "xno" ; then
+          AC_MSG_RESULT([explicitly disabled])
+          USE_CONTRIB_TRILINOS=no
+        else
+         USE_CONTRIB_TRILINOS=yes
+          DEAL_II_TRILINOS_LIBDIR=$withval
+         AC_MSG_RESULT($DEAL_II_TRILINOS_LIBDIR)
+
+          dnl Make sure that what was specified is actually correct
+          if test ! -d $DEAL_II_TRILINOS_LIBDIR ; then
+            AC_MSG_ERROR([Path to Trilinos libraries with --with-trilinos-libs does not
+                         point to a valid directory])
+         fi
+        fi
+     ],
+     [
+        dnl Take something from the environment variables, if it is there
+        if test "x$TRILINOS_DIR" != "x" ; then
+         USE_CONTRIB_TRILINOS=yes
+         DEAL_II_TRILINOS_LIBDIR="$TRILINOS_DIR"
+         AC_MSG_RESULT($DEAL_II_TRILINOS_LIBDIR)
+
+          dnl Make sure that what this is actually correct
+          if test ! -d $DEAL_II_TRILINOS_LIBDIR ; then
+            AC_MSG_ERROR([The path to Trilinos specified in the TRILINOS_LIBDIR
+                         environment variable does not
+                         point to a complete Trilinos installation])
+         fi
+        else
+          dnl --with-trilinos-include not explicitly specified. do
+         dnl nothing if --with-trilinos has previously been specified,
+         dnl otherwise say no to trilinos
+          if test "x${USE_CONTRIB_TRILINOS}" != "xyes" ; then
+           USE_CONTRIB_TRILINOS=no
+            DEAL_II_TRILINOS_LIBDIR=""
+            AC_MSG_RESULT(not found)
+          else
+            AC_MSG_RESULT(not explicitly specified)
+          fi
+        fi
+     ])
+     
   dnl If we have found Trilinos, determine and set additional pieces of data
   if test "$USE_CONTRIB_TRILINOS" = "yes" ; then
     AC_DEFINE(DEAL_II_USE_TRILINOS, 1,
@@ -5500,7 +5637,7 @@ AC_DEFUN(DEAL_II_CHECK_TRILINOS_SHARED_STATIC, dnl
   dnl Check using the epetra library since that should always be there
 
   AC_MSG_CHECKING(whether Trilinos uses shared libraries)
-  if test -f $DEAL_II_TRILINOS_DIR/lib/libepetra${shared_lib_suffix} ; then
+  if test -f $DEAL_II_TRILINOS_LIBDIR/libepetra${shared_lib_suffix} ; then
     AC_MSG_RESULT(yes)
     DEAL_II_TRILINOS_SHARED=yes
   else
@@ -5508,7 +5645,7 @@ AC_DEFUN(DEAL_II_CHECK_TRILINOS_SHARED_STATIC, dnl
   fi
 
   AC_MSG_CHECKING(whether Trilinos uses static libraries)
-  if test -f $DEAL_II_TRILINOS_DIR/lib/libepetra${static_lib_suffix} ; then
+  if test -f $DEAL_II_TRILINOS_LIBDIR/libepetra${static_lib_suffix} ; then
     AC_MSG_RESULT(yes)
     DEAL_II_TRILINOS_STATIC=yes
   else
@@ -5612,8 +5749,9 @@ AC_DEFUN(DEAL_II_CHECK_TRILINOS_HEADER_FILES, dnl
   OLD_CXXFLAGS="$CXXFLAGS"
   OLD_CPPFLAGS="$CPPFLAGS"
 
-  CPPFLAGS="-I$DEAL_II_TRILINOS_DIR/include $CPPFLAGS"
-  CXXFLAGS="-I$DEAL_II_TRILINOS_DIR/include $CXXFLAGS"
+echo $DEAL_II_TRILINOS_INCDIR
+  CPPFLAGS="-I$DEAL_II_TRILINOS_INCDIR $CPPFLAGS"
+  CXXFLAGS="-I$DEAL_II_TRILINOS_INCDIR $CXXFLAGS"
   AC_CHECK_HEADERS([Amesos.h \
                     AztecOO.h \
                     AztecOO_Operator.h \
@@ -5672,7 +5810,6 @@ dnl ------------------------------------------------------------
 AC_DEFUN(DEAL_II_CONFIGURE_METIS, dnl
 [
   dnl First check for the Metis directory
-  AC_MSG_CHECKING(for Metis library directory)
 
   AC_ARG_WITH(metis,
   [  --with-metis=/path/to/metis  Specify the path to the Metis installation,
@@ -5689,6 +5826,9 @@ AC_DEFUN(DEAL_II_CONFIGURE_METIS, dnl
           AC_MSG_ERROR([Path to Metis specified with --with-metis does not
                        point to a complete Metis installation])
        fi
+       
+       DEAL_II_METIS_LIBDIR="$DEAL_II_METIS_DIR/Lib"
+       DEAL_II_METIS_INCDIR="$DEAL_II_METIS_DIR/include"
      ],
      [
         dnl Take something from the environment variables, if it is there
@@ -5703,21 +5843,70 @@ AC_DEFUN(DEAL_II_CONFIGURE_METIS, dnl
                          environment variable does not
                          point to a complete Metis installation])
          fi
+         DEAL_II_METIS_LIBDIR="$DEAL_II_METIS_DIR/Lib"
+         DEAL_II_METIS_INCDIR="$DEAL_II_METIS_DIR/include"
         else
          USE_CONTRIB_METIS=no
           DEAL_II_METIS_DIR=""
-          AC_MSG_RESULT(not found)
         fi
      ])
+
+  AC_ARG_WITH(metis-include,
+  [  --with-metis-include=/path/to/metis  Specify the path to the METIS headers file; 
+                          use this if you want to override the
+                          METIS_INCLUDE_DIR environment variable.],
+     [
+        METIS_INCLUDE_DIR=$withval
+       DEAL_II_METIS_INCDIR="$METIS_INCLUDE_DIR"
+     ])
+     
+  AC_ARG_WITH(metis-libs,
+  [  --with-metis-libs=/path/to/metis  Specify the path to the METIS libraries; 
+                          use this if you want to override the
+                          METIS_LIBDIR environment variable.],
+     [
+       USE_CONTRIB_METIS=yes
+        DEAL_II_METIS_LIBDIR=$withval
+       AC_MSG_RESULT($DEAL_II_METIS_LIBDIR)
+
+        dnl Make sure that what was specified is actually correct
+        if test ! -d $DEAL_II_METIS_LIBDIR ; then
+          AC_MSG_ERROR([Path to Metis specified with --with-metis does not
+                       point to a complete Metis installation])
+       fi
+     ],
+     [
+        dnl Take something from the environment variables, if it is there
+        if test "x$METIS_LIBDIR" != "x" ; then
+         USE_CONTRIB_METIS=yes
+          DEAL_II_METIS_LIBDIR="$METIS_LIBDIR"
+         AC_MSG_RESULT($DEAL_II_METIS_LIBDIR)
+
+          dnl Make sure that what this is actually correct
+          if test ! -d $DEAL_II_METIS_LIBDIR ; then
+            AC_MSG_ERROR([The path to Metis specified in the METIS_DIR
+                         environment variable does not
+                         point to a complete Metis installation])
+         fi
+        else
+          dnl Unless --with-metis has been set before, declare that METIS
+         dnl is not desired.
+          if test "x$USE_CONTRIB_METIS" != "xyes" ; then
+           USE_CONTRIB_METIS=no
+            DEAL_II_METIS_LIBDIR=""
+          fi
+        fi
+     ])
+     
   if test "x$USE_CONTRIB_METIS" = "xyes" ; then
     AC_DEFINE(DEAL_II_USE_METIS, 1,
               [Defined if a Metis installation was found and is going
                to be used])
-    LDFLAGS="$LDFLAGS -L$DEAL_II_METIS_DIR -lmetis"
+    LDFLAGS="$LDFLAGS -L$DEAL_II_METIS_LIBDIR -lmetis"
 
-    AC_MSG_CHECKING(for Metis version)
-    DEAL_II_METIS_VERSION=`cat $DEAL_II_METIS_DIR/VERSION`
-    AC_MSG_RESULT($DEAL_II_METIS_VERSION)
+    dnl AC_MSG_CHECKING(for Metis version)
+    dnl DEAL_II_METIS_VERSION=`cat $DEAL_II_METIS_DIR/VERSION`
+    dnl AC_MSG_RESULT($DEAL_II_METIS_VERSION)
   fi
 ])
 
@@ -5727,9 +5916,38 @@ dnl What to do if UMFPack is selected
 dnl --------------------------------------------------
 AC_DEFUN(DEAL_II_WITH_UMFPACK, dnl
 [
-  if test "x$1" != "xyes" ; then
+  acx_umfpack=no
+
+  AC_ARG_WITH(umfpack,
+  [  --with-umfpack=umfpack-root-directory  Use installed UMFPack version.
+                          'umfpack-root-directory' should be the directory
+                          containing directories AMD and UMFPACK. The
+                          contributed UMFPack library is used if no argument
+                          is given. Default is not to use UMFPack.],
+     [
+        UMFPACK_DIR=$withval
+    ])
+
+  AC_ARG_WITH(umfpack-include,
+  [  --with-umfpack-include=/path/to/UMFPACK  Specify the path to the UMFPACK headers file; 
+                         use this if you want to override the
+                         UMFPACK_INCDIR environment variable.],
+     [
+       UMFPACK_INCDIR=$withval
+        acx_umfpack=yes
+     ])
+  
+  AC_ARG_WITH(umfpack-libs,
+  [  --with-umfpack-libs=/path/to/UMFPACK  Specify the path to the UMFPACK libraries; 
+                         use this if you want to override the
+                         UMFPACK_LIBDIR environment variable.],
+     [
+       UMFPACK_LIBDIR=$withval
+        acx_umfpack=yes
+     ])
+
+  if test "x$UMFPACK_DIR" != "x" -a "x$acs_umfpack" == "xno" ; then
     dnl A pathname has been given to --with-umfpack
-    UMFPACK_DIR=$1
 
     dnl Try old naming scheme for umfpack/amd libraries (before 
     dnl Tim Davis incorporated everything into SuiteSparse)
@@ -5847,11 +6065,69 @@ AC_DEFUN(DEAL_II_WITH_UMFPACK, dnl
 
   else
 
-    dnl Use the umfpack version we package with deal.II
-    AC_MSG_CHECKING(UmfPack library)
-    UMFPACK_INCLUDE_DIR='-I$D/contrib/umfpack/UMFPACK/Include'
-    USE_CONTRIB_UMFPACK='yes'
-    AC_MSG_RESULT(using included version)
+    if test "x$UMFPACK_INCDIR" != "x" ; then  
+       UMFPACK_INCLUDE_DIR="-I${UMFPACK_INCDIR}"
+       OLD_CXXFLAGS="$CXXFLAGS"
+       OLD_CPPFLAGS="$CPPFLAGS"
+       CXXFLAGS="-I$UMFPACK_INCDIR $CXXFLAGS"
+       CPPFLAGS="-I$UMFPACK_INCDIR $CPPFLAGS"
+       AC_CHECK_HEADER(
+               [umfpack.h], 
+               [], 
+               [AC_MSG_ERROR(installation of UMFPACK could not be determined)]
+       )
+       AC_CHECK_HEADER([amd.h], [], [AC_MSG_ERROR(installation of UMFPACK could not be determined)])
+       AC_CHECK_HEADER([UFconfig.h], [], [AC_MSG_ERROR(installation of UMFPACK could not be determined)])
+
+       if test "x$UMFPACK_LIBDIR" != "x" ; then  
+          AC_CHECK_LIB(
+               [amd], 
+               [amd_info],
+               [
+                    DEAL_II_ADD_EXTERNAL_LIBS_AT_TAIL(-lamd)
+                    if test "$LD_PATH_OPTION" != "no"; then
+                        LDFLAGS="$LD_PATH_OPTION${UMFPACK_LIBDIR} $LDFLAGS"
+                    fi
+               ],
+               [AC_MSG_ERROR(installation of AMD could not be determined)]
+          )
+          AC_CHECK_LIB(
+               [umfpack], 
+               [umfpack_di_defaults],
+               [
+                    DEAL_II_ADD_EXTERNAL_LIBS_AT_TAIL(-lumfpack)
+                    if test "$LD_PATH_OPTION" != "no"; then
+                        LDFLAGS="$LD_PATH_OPTION${UMFPACK_LIBDIR} $LDFLAGS"
+                    fi
+               ],
+               [AC_MSG_ERROR(installation of UMFPACK could not be determined)]
+          )
+       else
+          AC_CHECK_LIB(
+               [amd], 
+               [amd_info],
+               [
+                    DEAL_II_ADD_EXTERNAL_LIBS_AT_TAIL(-lamd)
+               ],
+               [AC_MSG_ERROR(installation of AMD could not be determined)]
+          )
+          AC_CHECK_LIB(
+               [umfpack], 
+               [umfpack_di_defaults],
+               [
+                    DEAL_II_ADD_EXTERNAL_LIBS_AT_TAIL(-lumfpack)
+               ],
+               [AC_MSG_ERROR(installation of UMFPACK could not be determined)]
+          )
+       fi
+    
+    else
+       dnl Use the umfpack version we package with deal.II
+       AC_MSG_CHECKING(UmfPack library)
+       UMFPACK_INCLUDE_DIR='-I$D/contrib/umfpack/UMFPACK/Include'
+       USE_CONTRIB_UMFPACK='yes'
+       AC_MSG_RESULT(using included version)
+    fi 
   fi
 
   AC_DEFINE(HAVE_LIBUMFPACK,1,[UMFPACK is $1])
index 14a560f88cd9440e23fe08f86d5ac098ae09f395..968eb95a7b805831930db88c14d4b79bb841aeb1 100644 (file)
@@ -55,12 +55,14 @@ DEAL_II_PETSC_VERSION_SUBMINOR = @DEAL_II_PETSC_VERSION_SUBMINOR@
 DEAL_II_PETSC_MPIUNI_LIB = @DEAL_II_PETSC_MPIUNI_LIB@
 
 USE_CONTRIB_TRILINOS = @USE_CONTRIB_TRILINOS@
-DEAL_II_TRILINOS_DIR = @DEAL_II_TRILINOS_DIR@
+DEAL_II_TRILINOS_INCDIR = @DEAL_II_TRILINOS_INCDIR@
+DEAL_II_TRILINOS_LIBDIR = @DEAL_II_TRILINOS_LIBDIR@
 DEAL_II_TRILINOS_SHARED = @DEAL_II_TRILINOS_SHARED@
 DEAL_II_TRILINOS_STATIC = @DEAL_II_TRILINOS_STATIC@
 
 USE_CONTRIB_METIS    = @USE_CONTRIB_METIS@
-DEAL_II_METIS_DIR    = @DEAL_II_METIS_DIR@
+DEAL_II_METIS_INCDIR    = @DEAL_II_METIS_INCDIR@
+DEAL_II_METIS_LIBDIR    = @DEAL_II_METIS_LIBDIR@
 
 USE_CONTRIB_HSL      = @USE_CONTRIB_HSL@
 USE_CONTRIB_UMFPACK  = @USE_CONTRIB_UMFPACK@
@@ -184,7 +186,7 @@ endif
 
 include-path-petsc           = $(DEAL_II_PETSC_DIR)/include
 include-path-petsc-bmake     = $(DEAL_II_PETSC_DIR)/bmake/$(DEAL_II_PETSC_ARCH)
-include-path-trilinos        = $(DEAL_II_TRILINOS_DIR)/include
+include-path-trilinos        = $(DEAL_II_TRILINOS_INCDIR)
 include-path-metis           = $(DEAL_II_METIS_DIR)/Lib
 
 # include paths as command line flags. while compilers allow a space between
@@ -214,13 +216,46 @@ ifeq ($(USE_CONTRIB_TRILINOS),yes)
   INCLUDE += -I$(include-path-trilinos)
 
   ifeq ($(enable-shared),yes)
-    lib-contrib-trilinos = $(shell echo $(DEAL_II_TRILINOS_DIR)/lib/*$(shared-lib-suffix))
+    lib-contrib-trilinos = \
+                -laztecoo \
+               -lbelos \
+               -lepetra \
+               -lepetraext \
+               -lifpack \
+               -lml \
+               -lrtop \
+               -lsacado \
+               -lstratimikos \
+               -lstratimikosaztecoo \
+               -lstratimikosifpack \
+               -lstratimikosml \
+               -lteuchos \
+               -lthyra \
+               -lthyraepetra \
+               -lthyraepetraext \
+               -ltriutils  
   else
-    lib-contrib-trilinos = $(shell echo $(DEAL_II_TRILINOS_DIR)/lib/*$(static-lib-suffix))
+    lib-contrib-trilinos =  \
+               $(DEAL_II_TRILINOS_LIBDIR)/libaztecoo.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libbelos.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libepetra.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libepetraext.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libifpack.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libml.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/librtop.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libsacado.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libstratimikos.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libstratimikosaztecoo.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libstratimikosifpack.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libstratimikosml.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libteuchos.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libthyra.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libthyraepetra.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libthyraepetraext.a \
+               $(DEAL_II_TRILINOS_LIBDIR)/libtriutils.a
   endif
 
-  lib-lac.g += $(lib-contrib-trilinos)
-  lib-lac.o += $(lib-contrib-trilinos)
+  LDFLAGS += $(lib-contrib-trilinos)
 endif
 
 ifeq ($(USE_CONTRIB_METIS),yes)
index 4348c1e48fe20e891ebf38239e5523d3187a4589..427d716f6d3822bf1fd193febfc11ed35598795d 100755 (executable)
@@ -727,7 +727,8 @@ DEAL_II_EXPAND_TRILINOS_MPI_VECTOR
 DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR
 DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR
 USE_CONTRIB_TRILINOS
-DEAL_II_TRILINOS_DIR
+DEAL_II_TRILINOS_INCDIR
+DEAL_II_TRILINOS_LIBDIR
 DEAL_II_TRILINOS_SHARED
 DEAL_II_TRILINOS_STATIC
 NEEDS_F77LIBS
@@ -735,7 +736,8 @@ HSL_INCLUDE_DIR
 USE_CONTRIB_HSL
 TECPLOT_INCLUDE_DIR
 USE_CONTRIB_METIS
-DEAL_II_METIS_DIR
+DEAL_II_METIS_INCDIR
+DEAL_II_METIS_LIBDIR
 UMFPACK_LIB
 UMFPACK_INCLUDE_DIR
 USE_CONTRIB_UMFPACK
@@ -1364,6 +1366,12 @@ Optional Packages:
                           of which the include and lib directories
                           are subdirs; use this if you want to override
                           the TRILINOS_DIR environment variable.
+  --with-trilinos-include=/path/to/trilinos  Specify the path to the Trilinos include;
+                          use this if you want to override
+                          the TRILINOS_INCDIR environment variable.
+  --with-trilinos-libs=/path/to/trilinos  Specify the path to the Trilinos libraries;
+                          use this if you want to override
+                          the TRILINOS_LIBDIR environment variable.
   --with-blas=blaslib     use the blas library blaslib. Make sure
                           the path to the libary is searched by ld, since
                           it is included by the argument -lblaslib. If no
@@ -1376,15 +1384,33 @@ Optional Packages:
                           of which the include and library directories are
                           subdirs; use this if you want to override the
                           NETCDF_DIR environment variable.
+  --with-netcdf-include=/path/to/netcdf  Specify the path to the NetCDF headers file;
+                          use this if you want to override the
+                          NETCDF_INCLUDE_DIR environment variable.
+  --with-netcdf-libs=/path/to/netcdf  Specify the path to the NetCDF libraries;
+                          use this if you want to override the
+                          NETCDF_LIBDIR environment variable.
   --with-metis=/path/to/metis  Specify the path to the Metis installation,
                           of which the include and library directories
                           are subdirs; use this if you want to override
                           the METIS_DIR environment variable.
+  --with-metis-include=/path/to/metis  Specify the path to the METIS headers file;
+                          use this if you want to override the
+                          METIS_INCLUDE_DIR environment variable.
+  --with-metis-libs=/path/to/metis  Specify the path to the METIS libraries;
+                          use this if you want to override the
+                          METIS_LIBDIR environment variable.
   --with-umfpack=umfpack-root-directory  Use installed UMFPack version.
                           'umfpack-root-directory' should be the directory
                           containing directories AMD and UMFPACK. The
                           contributed UMFPack library is used if no argument
                           is given. Default is not to use UMFPack.
+  --with-umfpack-include=/path/to/UMFPACK  Specify the path to the UMFPACK headers file;
+                         use this if you want to override the
+                         UMFPACK_INCDIR environment variable.
+  --with-umfpack-libs=/path/to/UMFPACK  Specify the path to the UMFPACK libraries;
+                         use this if you want to override the
+                         UMFPACK_LIBDIR environment variable.
   --with-lapack=lapacklib  use the lapack library lapacklib. Make sure
                           the path to the libary is searched by ld, since it
                           is included by the argument -llapacklib. If no
@@ -12106,9 +12132,8 @@ echo "${ECHO_T}$DEAL_II_PETSC_MPIUNI_LIB" >&6; }
 
 
 
-  { echo "$as_me:$LINENO: checking for Trilinos library directory" >&5
-echo $ECHO_N "checking for Trilinos library directory... $ECHO_C" >&6; }
-
+ { echo "$as_me:$LINENO: checking for Trilinos directory" >&5
+echo $ECHO_N "checking for Trilinos directory... $ECHO_C" >&6; }
 
 # Check whether --with-trilinos was given.
 if test "${with_trilinos+set}" = set; then
@@ -12131,6 +12156,9 @@ echo "$as_me: error: Path to Trilinos specified with --with-trilinos does not
                          point to a complete Trilinos installation" >&2;}
    { (exit 1); exit 1; }; }
          fi
+
+         DEAL_II_TRILINOS_INCDIR="$DEAL_II_TRILINOS_DIR/include"
+         DEAL_II_TRILINOS_LIBDIR="$DEAL_II_TRILINOS_DIR/lib"
         fi
 
 else
@@ -12151,6 +12179,8 @@ echo "$as_me: error: The path to Trilinos specified in the TRILINOS_DIR
                          point to a complete Trilinos installation" >&2;}
    { (exit 1); exit 1; }; }
          fi
+         DEAL_II_TRILINOS_INCDIR="$DEAL_II_TRILINOS_DIR/include"
+         DEAL_II_TRILINOS_LIBDIR="$DEAL_II_TRILINOS_DIR/lib"
         else
          USE_CONTRIB_TRILINOS=no
           DEAL_II_TRILINOS_DIR=""
@@ -12161,6 +12191,118 @@ echo "${ECHO_T}not found" >&6; }
 fi
 
 
+  { echo "$as_me:$LINENO: checking for Trilinos header directory" >&5
+echo $ECHO_N "checking for Trilinos header directory... $ECHO_C" >&6; }
+
+# Check whether --with-trilinos-include was given.
+if test "${with_trilinos_include+set}" = set; then
+  withval=$with_trilinos_include;
+                if test "x$withval" = "xno" ; then
+          { echo "$as_me:$LINENO: result: explicitly disabled" >&5
+echo "${ECHO_T}explicitly disabled" >&6; }
+          USE_CONTRIB_TRILINOS=no
+        else
+         USE_CONTRIB_TRILINOS=yes
+          DEAL_II_TRILINOS_INCDIR=$withval
+         { echo "$as_me:$LINENO: result: $DEAL_II_TRILINOS_INCDIR" >&5
+echo "${ECHO_T}$DEAL_II_TRILINOS_INCDIR" >&6; }
+
+                    if test ! -d $DEAL_II_TRILINOS_INCDIR ; then
+            { { echo "$as_me:$LINENO: error: Path to Trilinos specified with --with-trilinos-include does not
+                         point to a complete Trilinos installation" >&5
+echo "$as_me: error: Path to Trilinos specified with --with-trilinos-include does not
+                         point to a complete Trilinos installation" >&2;}
+   { (exit 1); exit 1; }; }
+         fi
+        fi
+
+else
+
+                if test "x$TRILINOS_INCDIR" != "x" ; then
+         USE_CONTRIB_TRILINOS=yes
+         DEAL_II_TRILINOS_INCDIR="$TRILINOS_INCDIR"
+         { echo "$as_me:$LINENO: result: $DEAL_II_TRILINOS_INCDIR" >&5
+echo "${ECHO_T}$DEAL_II_TRILINOS_INCDIR" >&6; }
+
+                    if test ! -d $DEAL_II_TRILINOS_INCDIR ; then
+            { { echo "$as_me:$LINENO: error: The path to Trilinos includes specified in the TRILINOS_INCDIR
+                         environment variable does not point to a valid directory" >&5
+echo "$as_me: error: The path to Trilinos includes specified in the TRILINOS_INCDIR
+                         environment variable does not point to a valid directory" >&2;}
+   { (exit 1); exit 1; }; }
+         fi
+        else
+                                   if test "x${USE_CONTRIB_TRILINOS}" != "xyes" ; then
+           USE_CONTRIB_TRILINOS=no
+            DEAL_II_TRILINOS_INCDIR=""
+            { echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6; }
+          else
+            { echo "$as_me:$LINENO: result: not explicitly specified" >&5
+echo "${ECHO_T}not explicitly specified" >&6; }
+          fi
+        fi
+
+fi
+
+
+  { echo "$as_me:$LINENO: checking for Trilinos library directory" >&5
+echo $ECHO_N "checking for Trilinos library directory... $ECHO_C" >&6; }
+
+# Check whether --with-trilinos-libs was given.
+if test "${with_trilinos_libs+set}" = set; then
+  withval=$with_trilinos_libs;
+                if test "x$withval" = "xno" ; then
+          { echo "$as_me:$LINENO: result: explicitly disabled" >&5
+echo "${ECHO_T}explicitly disabled" >&6; }
+          USE_CONTRIB_TRILINOS=no
+        else
+         USE_CONTRIB_TRILINOS=yes
+          DEAL_II_TRILINOS_LIBDIR=$withval
+         { echo "$as_me:$LINENO: result: $DEAL_II_TRILINOS_LIBDIR" >&5
+echo "${ECHO_T}$DEAL_II_TRILINOS_LIBDIR" >&6; }
+
+                    if test ! -d $DEAL_II_TRILINOS_LIBDIR ; then
+            { { echo "$as_me:$LINENO: error: Path to Trilinos libraries with --with-trilinos-libs does not
+                         point to a valid directory" >&5
+echo "$as_me: error: Path to Trilinos libraries with --with-trilinos-libs does not
+                         point to a valid directory" >&2;}
+   { (exit 1); exit 1; }; }
+         fi
+        fi
+
+else
+
+                if test "x$TRILINOS_DIR" != "x" ; then
+         USE_CONTRIB_TRILINOS=yes
+         DEAL_II_TRILINOS_LIBDIR="$TRILINOS_DIR"
+         { echo "$as_me:$LINENO: result: $DEAL_II_TRILINOS_LIBDIR" >&5
+echo "${ECHO_T}$DEAL_II_TRILINOS_LIBDIR" >&6; }
+
+                    if test ! -d $DEAL_II_TRILINOS_LIBDIR ; then
+            { { echo "$as_me:$LINENO: error: The path to Trilinos specified in the TRILINOS_LIBDIR
+                         environment variable does not
+                         point to a complete Trilinos installation" >&5
+echo "$as_me: error: The path to Trilinos specified in the TRILINOS_LIBDIR
+                         environment variable does not
+                         point to a complete Trilinos installation" >&2;}
+   { (exit 1); exit 1; }; }
+         fi
+        else
+                                   if test "x${USE_CONTRIB_TRILINOS}" != "xyes" ; then
+           USE_CONTRIB_TRILINOS=no
+            DEAL_II_TRILINOS_LIBDIR=""
+            { echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6; }
+          else
+            { echo "$as_me:$LINENO: result: not explicitly specified" >&5
+echo "${ECHO_T}not explicitly specified" >&6; }
+          fi
+        fi
+
+fi
+
+
     if test "$USE_CONTRIB_TRILINOS" = "yes" ; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -12174,7 +12316,7 @@ _ACEOF
 
   { echo "$as_me:$LINENO: checking whether Trilinos uses shared libraries" >&5
 echo $ECHO_N "checking whether Trilinos uses shared libraries... $ECHO_C" >&6; }
-  if test -f $DEAL_II_TRILINOS_DIR/lib/libepetra${shared_lib_suffix} ; then
+  if test -f $DEAL_II_TRILINOS_LIBDIR/libepetra${shared_lib_suffix} ; then
     { echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6; }
     DEAL_II_TRILINOS_SHARED=yes
@@ -12185,7 +12327,7 @@ echo "${ECHO_T}no" >&6; }
 
   { echo "$as_me:$LINENO: checking whether Trilinos uses static libraries" >&5
 echo $ECHO_N "checking whether Trilinos uses static libraries... $ECHO_C" >&6; }
-  if test -f $DEAL_II_TRILINOS_DIR/lib/libepetra${static_lib_suffix} ; then
+  if test -f $DEAL_II_TRILINOS_LIBDIR/libepetra${static_lib_suffix} ; then
     { echo "$as_me:$LINENO: result: yes" >&5
 echo "${ECHO_T}yes" >&6; }
     DEAL_II_TRILINOS_STATIC=yes
@@ -12391,8 +12533,9 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
   OLD_CXXFLAGS="$CXXFLAGS"
   OLD_CPPFLAGS="$CPPFLAGS"
 
-  CPPFLAGS="-I$DEAL_II_TRILINOS_DIR/include $CPPFLAGS"
-  CXXFLAGS="-I$DEAL_II_TRILINOS_DIR/include $CXXFLAGS"
+echo $DEAL_II_TRILINOS_INCDIR
+  CPPFLAGS="-I$DEAL_II_TRILINOS_INCDIR $CPPFLAGS"
+  CXXFLAGS="-I$DEAL_II_TRILINOS_INCDIR $CXXFLAGS"
 
 
 
@@ -12641,6 +12784,7 @@ done
 
 
 
+
 if test "x$with_umfpack" != "x" -a "x$with_umfpack" != "xno" ; then
   if test "x$with_blas" = "x" -o "x$with_blas" = "xno"; then
     with_blas="yes"
@@ -13279,12 +13423,48 @@ else
 fi
 
 
+
+# Check whether --with-netcdf-include was given.
+if test "${with_netcdf_include+set}" = set; then
+  withval=$with_netcdf_include;
+        NETCDF_INCLUDE_DIR=$withval
+
+fi
+
+
+
+# Check whether --with-netcdf-libs was given.
+if test "${with_netcdf_libs+set}" = set; then
+  withval=$with_netcdf_libs;
+        NETCDF_LIBDIR=$withval
+
+fi
+
+
+
   if test "x$DEAL_II_NETCDF_DIR" != "x" ; then
-    CPPFLAGS="-I$DEAL_II_NETCDF_DIR/include $CPPFLAGS"
-    CXXFLAGS="-I$DEAL_II_NETCDF_DIR/include $CXXFLAGS"
-    LDFLAGS="-L$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
-    if test "$LD_PATH_OPTION" != "no" ; then
-      LDFLAGS="$LD_PATH_OPTION$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+    if test "x$NETCDF_INCLUDE_DIR" != "x" ; then
+      CPPFLAGS="-I$NETCDF_INCLUDE_DIR $CPPFLAGS"
+      CXXFLAGS="-I$NETCDF_INCLUDE_DIR $CXXFLAGS"
+    else
+      CPPFLAGS="-I$DEAL_II_NETCDF_DIR/include $CPPFLAGS"
+      CXXFLAGS="-I$DEAL_II_NETCDF_DIR/include $CXXFLAGS"
+    fi
+    if test "x$NETCDF_LIBDIR" != "x" ; then
+      LDFLAGS="$LDFLAGS -L$NETCDF_LIBDIR"
+    else
+      LDFLAGS="-L$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+      if test "$LD_PATH_OPTION" != "no" ; then
+       LDFLAGS="$LD_PATH_OPTION$DEAL_II_NETCDF_DIR/lib $LDFLAGS"
+      fi
+    fi
+  else
+    if test "x$NETCDF_INCLUDE_DIR" != "x" ; then
+      CPPFLAGS="-I$NETCDF_INCLUDE_DIR $CPPFLAGS"
+      CXXFLAGS="-I$NETCDF_INCLUDE_DIR $CXXFLAGS"
+    fi
+    if test "x$NETCDF_LIBDIR" != "x" ; then
+      LDFLAGS="$LDFLAGS -L$NETCDF_LIBDIR"
     fi
   fi
 
@@ -13418,7 +13598,9 @@ fi
 echo "${ECHO_T}$ac_cv_header_netcdfcpp_h" >&6; }
 
 fi
-if test $ac_cv_header_netcdfcpp_h = yes; then
+
+
+
   { echo "$as_me:$LINENO: checking for nc_open in -lnetcdf" >&5
 echo $ECHO_N "checking for nc_open in -lnetcdf... $ECHO_C" >&6; }
 if test "${ac_cv_lib_netcdf_nc_open+set}" = set; then
@@ -13487,9 +13669,9 @@ if test $ac_cv_lib_netcdf_nc_open = yes; then
 
   LIBS="-lnetcdf_c++ -lnetcdf $LIBS"
 
-      { echo "$as_me:$LINENO: checking for NcFile::NcFile in -lnetcdf_c++" >&5
+    { echo "$as_me:$LINENO: checking for NcFile::NcFile in -lnetcdf_c++" >&5
 echo $ECHO_N "checking for NcFile::NcFile in -lnetcdf_c++... $ECHO_C" >&6; }
-      cat >conftest.$ac_ext <<_ACEOF
+    cat >conftest.$ac_ext <<_ACEOF
   /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -13549,14 +13731,10 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 
 fi
 
-fi
-
 
 
 
 
-    { echo "$as_me:$LINENO: checking for Metis library directory" >&5
-echo $ECHO_N "checking for Metis library directory... $ECHO_C" >&6; }
 
 
 # Check whether --with-metis was given.
@@ -13575,6 +13753,9 @@ echo "$as_me: error: Path to Metis specified with --with-metis does not
    { (exit 1); exit 1; }; }
        fi
 
+       DEAL_II_METIS_LIBDIR="$DEAL_II_METIS_DIR/Lib"
+       DEAL_II_METIS_INCDIR="$DEAL_II_METIS_DIR/include"
+
 else
 
                 if test "x$METIS_DIR" != "x" ; then
@@ -13592,40 +13773,118 @@ echo "$as_me: error: The path to Metis specified in the METIS_DIR
                          point to a complete Metis installation" >&2;}
    { (exit 1); exit 1; }; }
          fi
+         DEAL_II_METIS_LIBDIR="$DEAL_II_METIS_DIR/Lib"
+         DEAL_II_METIS_INCDIR="$DEAL_II_METIS_DIR/include"
         else
          USE_CONTRIB_METIS=no
           DEAL_II_METIS_DIR=""
-          { echo "$as_me:$LINENO: result: not found" >&5
-echo "${ECHO_T}not found" >&6; }
         fi
 
 fi
 
+
+
+# Check whether --with-metis-include was given.
+if test "${with_metis_include+set}" = set; then
+  withval=$with_metis_include;
+        METIS_INCLUDE_DIR=$withval
+       DEAL_II_METIS_INCDIR="$METIS_INCLUDE_DIR"
+
+fi
+
+
+
+# Check whether --with-metis-libs was given.
+if test "${with_metis_libs+set}" = set; then
+  withval=$with_metis_libs;
+       USE_CONTRIB_METIS=yes
+        DEAL_II_METIS_LIBDIR=$withval
+       { echo "$as_me:$LINENO: result: $DEAL_II_METIS_LIBDIR" >&5
+echo "${ECHO_T}$DEAL_II_METIS_LIBDIR" >&6; }
+
+                if test ! -d $DEAL_II_METIS_LIBDIR ; then
+          { { echo "$as_me:$LINENO: error: Path to Metis specified with --with-metis does not
+                       point to a complete Metis installation" >&5
+echo "$as_me: error: Path to Metis specified with --with-metis does not
+                       point to a complete Metis installation" >&2;}
+   { (exit 1); exit 1; }; }
+       fi
+
+else
+
+                if test "x$METIS_LIBDIR" != "x" ; then
+         USE_CONTRIB_METIS=yes
+          DEAL_II_METIS_LIBDIR="$METIS_LIBDIR"
+         { echo "$as_me:$LINENO: result: $DEAL_II_METIS_LIBDIR" >&5
+echo "${ECHO_T}$DEAL_II_METIS_LIBDIR" >&6; }
+
+                    if test ! -d $DEAL_II_METIS_LIBDIR ; then
+            { { echo "$as_me:$LINENO: error: The path to Metis specified in the METIS_DIR
+                         environment variable does not
+                         point to a complete Metis installation" >&5
+echo "$as_me: error: The path to Metis specified in the METIS_DIR
+                         environment variable does not
+                         point to a complete Metis installation" >&2;}
+   { (exit 1); exit 1; }; }
+         fi
+        else
+                           if test "x$USE_CONTRIB_METIS" != "xyes" ; then
+           USE_CONTRIB_METIS=no
+            DEAL_II_METIS_LIBDIR=""
+          fi
+        fi
+
+fi
+
+
   if test "x$USE_CONTRIB_METIS" = "xyes" ; then
 
 cat >>confdefs.h <<\_ACEOF
 #define DEAL_II_USE_METIS 1
 _ACEOF
 
-    LDFLAGS="$LDFLAGS -L$DEAL_II_METIS_DIR -lmetis"
+    LDFLAGS="$LDFLAGS -L$DEAL_II_METIS_LIBDIR -lmetis"
 
-    { echo "$as_me:$LINENO: checking for Metis version" >&5
-echo $ECHO_N "checking for Metis version... $ECHO_C" >&6; }
-    DEAL_II_METIS_VERSION=`cat $DEAL_II_METIS_DIR/VERSION`
-    { echo "$as_me:$LINENO: result: $DEAL_II_METIS_VERSION" >&5
-echo "${ECHO_T}$DEAL_II_METIS_VERSION" >&6; }
-  fi
+              fi
 
 
 
 
 
+
+  acx_umfpack=no
+
+
 # Check whether --with-umfpack was given.
 if test "${with_umfpack+set}" = set; then
   withval=$with_umfpack;
-  if test "x$withval" != "xyes" ; then
         UMFPACK_DIR=$withval
 
+fi
+
+
+
+# Check whether --with-umfpack-include was given.
+if test "${with_umfpack_include+set}" = set; then
+  withval=$with_umfpack_include;
+       UMFPACK_INCDIR=$withval
+        acx_umfpack=yes
+
+fi
+
+
+
+# Check whether --with-umfpack-libs was given.
+if test "${with_umfpack_libs+set}" = set; then
+  withval=$with_umfpack_libs;
+       UMFPACK_LIBDIR=$withval
+        acx_umfpack=yes
+
+fi
+
+
+  if test "x$UMFPACK_DIR" != "x" -a "x$acs_umfpack" == "xno" ; then
+
             OLD_LDFLAGS="$LDFLAGS"
     LDFLAGS="-L${UMFPACK_DIR}/UMFPACK/Lib $LDFLAGS"
     { echo "$as_me:$LINENO: checking for umfpack_di_defaults in -lumfpack" >&5
 
   else
 
-        { echo "$as_me:$LINENO: checking UmfPack library" >&5
-echo $ECHO_N "checking UmfPack library... $ECHO_C" >&6; }
-    UMFPACK_INCLUDE_DIR='-I$D/contrib/umfpack/UMFPACK/Include'
-    USE_CONTRIB_UMFPACK='yes'
-    { echo "$as_me:$LINENO: result: using included version" >&5
-echo "${ECHO_T}using included version" >&6; }
-  fi
+    if test "x$UMFPACK_INCDIR" != "x" ; then
+       UMFPACK_INCLUDE_DIR="-I${UMFPACK_INCDIR}"
+       OLD_CXXFLAGS="$CXXFLAGS"
+       OLD_CPPFLAGS="$CPPFLAGS"
+       CXXFLAGS="-I$UMFPACK_INCDIR $CXXFLAGS"
+       CPPFLAGS="-I$UMFPACK_INCDIR $CPPFLAGS"
+       if test "${ac_cv_header_umfpack_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for umfpack.h" >&5
+echo $ECHO_N "checking for umfpack.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_umfpack_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5
+echo "${ECHO_T}$ac_cv_header_umfpack_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking umfpack.h usability" >&5
+echo $ECHO_N "checking umfpack.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <umfpack.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+       ac_header_compiler=no
+fi
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBUMFPACK 1
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking umfpack.h presence" >&5
+echo $ECHO_N "checking umfpack.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <umfpack.h>
 _ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: umfpack.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: umfpack.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: umfpack.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: umfpack.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: umfpack.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: umfpack.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: umfpack.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: umfpack.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: umfpack.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to dealii@dealii.org ##
+## -------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for umfpack.h" >&5
+echo $ECHO_N "checking for umfpack.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_umfpack_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_umfpack_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_umfpack_h" >&5
+echo "${ECHO_T}$ac_cv_header_umfpack_h" >&6; }
+
+fi
+if test $ac_cv_header_umfpack_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: installation of UMFPACK could not be determined" >&5
+echo "$as_me: error: installation of UMFPACK could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
 
 
+       if test "${ac_cv_header_amd_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for amd.h" >&5
+echo $ECHO_N "checking for amd.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_amd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5
+echo "${ECHO_T}$ac_cv_header_amd_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking amd.h usability" >&5
+echo $ECHO_N "checking amd.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <amd.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking amd.h presence" >&5
+echo $ECHO_N "checking amd.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <amd.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: amd.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: amd.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: amd.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: amd.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: amd.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: amd.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: amd.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: amd.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: amd.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: amd.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to dealii@dealii.org ##
+## -------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for amd.h" >&5
+echo $ECHO_N "checking for amd.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_amd_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_amd_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_amd_h" >&5
+echo "${ECHO_T}$ac_cv_header_amd_h" >&6; }
+
+fi
+if test $ac_cv_header_amd_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: installation of UMFPACK could not be determined" >&5
+echo "$as_me: error: installation of UMFPACK could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+       if test "${ac_cv_header_UFconfig_h+set}" = set; then
+  { echo "$as_me:$LINENO: checking for UFconfig.h" >&5
+echo $ECHO_N "checking for UFconfig.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_UFconfig_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_UFconfig_h" >&5
+echo "${ECHO_T}$ac_cv_header_UFconfig_h" >&6; }
+else
+  # Is the header compilable?
+{ echo "$as_me:$LINENO: checking UFconfig.h usability" >&5
+echo $ECHO_N "checking UFconfig.h usability... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <UFconfig.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ echo "$as_me:$LINENO: checking UFconfig.h presence" >&5
+echo $ECHO_N "checking UFconfig.h presence... $ECHO_C" >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <UFconfig.h>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null && {
+        test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       }; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: UFconfig.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: UFconfig.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: UFconfig.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: UFconfig.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: UFconfig.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: UFconfig.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: UFconfig.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: UFconfig.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: UFconfig.h: in the future, the compiler will take precedence" >&2;}
+    ( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to dealii@dealii.org ##
+## -------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+{ echo "$as_me:$LINENO: checking for UFconfig.h" >&5
+echo $ECHO_N "checking for UFconfig.h... $ECHO_C" >&6; }
+if test "${ac_cv_header_UFconfig_h+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_UFconfig_h=$ac_header_preproc
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_header_UFconfig_h" >&5
+echo "${ECHO_T}$ac_cv_header_UFconfig_h" >&6; }
+
+fi
+if test $ac_cv_header_UFconfig_h = yes; then
+  :
+else
+  { { echo "$as_me:$LINENO: error: installation of UMFPACK could not be determined" >&5
+echo "$as_me: error: installation of UMFPACK could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+
+
+       if test "x$UMFPACK_LIBDIR" != "x" ; then
+          { echo "$as_me:$LINENO: checking for amd_info in -lamd" >&5
+echo $ECHO_N "checking for amd_info in -lamd... $ECHO_C" >&6; }
+if test "${ac_cv_lib_amd_amd_info+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lamd  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char amd_info ();
+int
+main ()
+{
+return amd_info ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_amd_amd_info=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_amd_amd_info=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_amd_amd_info" >&5
+echo "${ECHO_T}$ac_cv_lib_amd_amd_info" >&6; }
+if test $ac_cv_lib_amd_amd_info = yes; then
+
+
+  LIBS="$LIBS -lamd"
+
+                    if test "$LD_PATH_OPTION" != "no"; then
+                        LDFLAGS="$LD_PATH_OPTION${UMFPACK_LIBDIR} $LDFLAGS"
+                    fi
+
+else
+  { { echo "$as_me:$LINENO: error: installation of AMD could not be determined" >&5
+echo "$as_me: error: installation of AMD could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+
+          { echo "$as_me:$LINENO: checking for umfpack_di_defaults in -lumfpack" >&5
+echo $ECHO_N "checking for umfpack_di_defaults in -lumfpack... $ECHO_C" >&6; }
+if test "${ac_cv_lib_umfpack_umfpack_di_defaults+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lumfpack  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char umfpack_di_defaults ();
+int
+main ()
+{
+return umfpack_di_defaults ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_umfpack_umfpack_di_defaults=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_umfpack_umfpack_di_defaults=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_umfpack_umfpack_di_defaults" >&5
+echo "${ECHO_T}$ac_cv_lib_umfpack_umfpack_di_defaults" >&6; }
+if test $ac_cv_lib_umfpack_umfpack_di_defaults = yes; then
+
+
+  LIBS="$LIBS -lumfpack"
+
+                    if test "$LD_PATH_OPTION" != "no"; then
+                        LDFLAGS="$LD_PATH_OPTION${UMFPACK_LIBDIR} $LDFLAGS"
+                    fi
+
+else
+  { { echo "$as_me:$LINENO: error: installation of UMFPACK could not be determined" >&5
+echo "$as_me: error: installation of UMFPACK could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+
+       else
+          { echo "$as_me:$LINENO: checking for amd_info in -lamd" >&5
+echo $ECHO_N "checking for amd_info in -lamd... $ECHO_C" >&6; }
+if test "${ac_cv_lib_amd_amd_info+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lamd  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char amd_info ();
+int
+main ()
+{
+return amd_info ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_amd_amd_info=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_amd_amd_info=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_amd_amd_info" >&5
+echo "${ECHO_T}$ac_cv_lib_amd_amd_info" >&6; }
+if test $ac_cv_lib_amd_amd_info = yes; then
+
+
+  LIBS="$LIBS -lamd"
+
+
+else
+  { { echo "$as_me:$LINENO: error: installation of AMD could not be determined" >&5
+echo "$as_me: error: installation of AMD could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+
+          { echo "$as_me:$LINENO: checking for umfpack_di_defaults in -lumfpack" >&5
+echo $ECHO_N "checking for umfpack_di_defaults in -lumfpack... $ECHO_C" >&6; }
+if test "${ac_cv_lib_umfpack_umfpack_di_defaults+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lumfpack  $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char umfpack_di_defaults ();
+int
+main ()
+{
+return umfpack_di_defaults ();
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+        test -z "$ac_cxx_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext &&
+       $as_test_x conftest$ac_exeext; then
+  ac_cv_lib_umfpack_umfpack_di_defaults=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_cv_lib_umfpack_umfpack_di_defaults=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_umfpack_umfpack_di_defaults" >&5
+echo "${ECHO_T}$ac_cv_lib_umfpack_umfpack_di_defaults" >&6; }
+if test $ac_cv_lib_umfpack_umfpack_di_defaults = yes; then
+
+
+  LIBS="$LIBS -lumfpack"
+
+
+else
+  { { echo "$as_me:$LINENO: error: installation of UMFPACK could not be determined" >&5
+echo "$as_me: error: installation of UMFPACK could not be determined" >&2;}
+   { (exit 1); exit 1; }; }
+
+fi
+
+       fi
+
+    else
+              { echo "$as_me:$LINENO: checking UmfPack library" >&5
+echo $ECHO_N "checking UmfPack library... $ECHO_C" >&6; }
+       UMFPACK_INCLUDE_DIR='-I$D/contrib/umfpack/UMFPACK/Include'
+       USE_CONTRIB_UMFPACK='yes'
+       { echo "$as_me:$LINENO: result: using included version" >&5
+echo "${ECHO_T}using included version" >&6; }
+    fi
+  fi
+
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_LIBUMFPACK 1
+_ACEOF
+
 
 
 
@@ -15615,7 +16605,8 @@ DEAL_II_EXPAND_TRILINOS_MPI_VECTOR!$DEAL_II_EXPAND_TRILINOS_MPI_VECTOR$ac_delim
 DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR!$DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR$ac_delim
 DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR!$DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR$ac_delim
 USE_CONTRIB_TRILINOS!$USE_CONTRIB_TRILINOS$ac_delim
-DEAL_II_TRILINOS_DIR!$DEAL_II_TRILINOS_DIR$ac_delim
+DEAL_II_TRILINOS_INCDIR!$DEAL_II_TRILINOS_INCDIR$ac_delim
+DEAL_II_TRILINOS_LIBDIR!$DEAL_II_TRILINOS_LIBDIR$ac_delim
 DEAL_II_TRILINOS_SHARED!$DEAL_II_TRILINOS_SHARED$ac_delim
 DEAL_II_TRILINOS_STATIC!$DEAL_II_TRILINOS_STATIC$ac_delim
 NEEDS_F77LIBS!$NEEDS_F77LIBS$ac_delim
@@ -15623,7 +16614,8 @@ HSL_INCLUDE_DIR!$HSL_INCLUDE_DIR$ac_delim
 USE_CONTRIB_HSL!$USE_CONTRIB_HSL$ac_delim
 TECPLOT_INCLUDE_DIR!$TECPLOT_INCLUDE_DIR$ac_delim
 USE_CONTRIB_METIS!$USE_CONTRIB_METIS$ac_delim
-DEAL_II_METIS_DIR!$DEAL_II_METIS_DIR$ac_delim
+DEAL_II_METIS_INCDIR!$DEAL_II_METIS_INCDIR$ac_delim
+DEAL_II_METIS_LIBDIR!$DEAL_II_METIS_LIBDIR$ac_delim
 UMFPACK_LIB!$UMFPACK_LIB$ac_delim
 UMFPACK_INCLUDE_DIR!$UMFPACK_INCLUDE_DIR$ac_delim
 USE_CONTRIB_UMFPACK!$USE_CONTRIB_UMFPACK$ac_delim
@@ -15638,7 +16630,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 33; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 35; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
index 33d4ce21caf3f10013e67ec96026e590d3b31236..fe107e12919ab2854ba3fbb40809b5c493e7365f 100644 (file)
@@ -26,7 +26,7 @@ define([AC_CACHE_SAVE], )dnl
 AC_INIT(deal.II, 6.2.pre, dealii@dealii.org, deal.II)
 
 AC_REVISION($Revision$)
-AC_PREREQ(2.50)
+AC_PREREQ(2.61)
 
 
 dnl Where the output config file is located
@@ -66,7 +66,7 @@ DEAL2_DIR=$DEAL_II_PATH
 AC_SUBST(DEAL2_DIR)
 
 dnl    Check for machine type operating system
-AC_CANONICAL_SYSTEM
+AC_CANONICAL_TARGET
 AC_SUBST(target)
 
 dnl    Set the language for which subsequent tests shall be
@@ -317,7 +317,7 @@ if test "x$enableshared" = "xyes" ; then
 else
 dnl The gcc compiler needs -static for static linking. For the case
 dnl other compilers do not like this flag we should introduce a
-dnl LDFLAGSSTATIC variable and check -static through AC_TRY_LINK.
+dnl LDFLAGSSTATIC variable and check -static through AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]).
   LDFLAGSSTATIC="-static"
   case "$target" in
     *-apple-darwin* )
@@ -352,8 +352,7 @@ dnl                       Optional features
 dnl --------------------------------------------------------------
 
 AC_ARG_ENABLE(parser,
-              AC_HELP_STRING([--enable-parser],
-                             [While switched on by default, this option allows
+              AS_HELP_STRING([--enable-parser],[While switched on by default, this option allows
                               to switch off support for the function parser
                              in the contrib directory.]),
              [ enableparser=$enableval
@@ -407,7 +406,8 @@ AC_SUBST(DEAL_II_DEFINE_DEAL_II_USE_PETSC)
 
 DEAL_II_CONFIGURE_TRILINOS
 AC_SUBST(USE_CONTRIB_TRILINOS)
-AC_SUBST(DEAL_II_TRILINOS_DIR)
+AC_SUBST(DEAL_II_TRILINOS_INCDIR)
+AC_SUBST(DEAL_II_TRILINOS_LIBDIR)
 AC_SUBST(DEAL_II_TRILINOS_SHARED)
 AC_SUBST(DEAL_II_TRILINOS_STATIC)
 
@@ -521,17 +521,12 @@ DEAL_II_CONFIGURE_NETCDF
 
 DEAL_II_CONFIGURE_METIS
 AC_SUBST(USE_CONTRIB_METIS)
-AC_SUBST(DEAL_II_METIS_DIR)
+AC_SUBST(DEAL_II_METIS_INCDIR)
+AC_SUBST(DEAL_II_METIS_LIBDIR)
 
 dnl Check for UMFPack. This is more an enable for the contributed version,
 dnl but it should become a real --with-umfpack later
-AC_ARG_WITH(umfpack,
-  [  --with-umfpack=umfpack-root-directory  Use installed UMFPack version.
-                          'umfpack-root-directory' should be the directory
-                          containing directories AMD and UMFPACK. The
-                          contributed UMFPack library is used if no argument
-                          is given. Default is not to use UMFPack.],
-  DEAL_II_WITH_UMFPACK($withval))
+DEAL_II_WITH_UMFPACK
 AC_SUBST(UMFPACK_LIB)
 AC_SUBST(UMFPACK_INCLUDE_DIR)
 AC_SUBST(USE_CONTRIB_UMFPACK)
@@ -699,7 +694,8 @@ process_files="common/Make.global_options
               doc/doxygen/header.136
                doc/doxygen/header.tex
                common/template-arguments"
-AC_OUTPUT($process_files)
+AC_CONFIG_FILES([$process_files])
+AC_OUTPUT
 
 dnl    Autoconf has the annoying habit to simply define PACKAGE_NAME in
 dnl    AC_INIT and put this name into config.h, irrespective of the fact
index 613665c6fb7225cc6cb734e10e82a6042ace4a5e..9ac6fb1dca6b4bcd3c4fe6de5167b849199afce7 100644 (file)
       --with-cflags=-fPIC --with-cxxflags=-fPIC --with-fflags=-fPIC \
       --enable-thyra --enable-stratimikos --enable-rtop --enable-teuchos \
       --enable-sacado --enable-ml --enable-ifpack --enable-epetra \
-      --enable-belos --enable-aztecoo \
+      --enable-belos --enable-aztecoo --enable-amesos \
       --prefix=/home/bangerth/bin/trilinos-9.0.1
       </pre>
       </code>
       </p>
 
+
+      <h3>Configuring for installed Trilinos packages</h3>
+
+      <p>
+       The above scheme works if Trilinos is installed in its own directory
+       and header and library files are in subdirectories of the directory
+       given to <code>--with-trilinos</code>. This scheme doesn't work, 
+       however, if Trilinos has been installed as a regular package on a
+       system, for example into the <code>/usr</code> or <code>/opt</code>
+       directories. 
+      </p>
+
+      <p>
+       In that case, paths to include and library files may be specified
+       separately using the <code>--with-trilinos-include</code>
+       and <code>--with-trilinos-libs</code> switches 
+       to <code>./configure</code>. Alternatively, this information can also
+       be passed to the configuration script by setting the environment
+       variables <code>TRILINOS_INCDIR, TRILINOS_LIBDIR</code>.
+      </p>
+
     <hr>
     
     <address>
index 5054087213309984732a48e1e97a31f7b6ab05d9..dcdf918d76cdbcdb8bcedfe39dbc0357d056eaed 100644 (file)
     <dd>Enabled by <tt>--with-umfpack</tt>. If no argument is given,
     use the version of UMFPACK that comes bundled with deal.II. If you
     want a different version of UMFPACK, provide the path to that
-    version as an argument. Enabling
-    UMFPACK adds the class <tt>SparseDirectUMFPACK</tt> to the
-    library. The default is to not use UMFPACK.
+    version as an argument. Enabling UMFPACK adds the
+    class <tt>SparseDirectUMFPACK</tt> to the library. The default is to not
+    use UMFPACK. 
+
+    <p>
+    If you want to use an external installation of UMFPACK, but UMFPACK was
+    installed as 
+    part of <code>/usr</code> or <code>/opt</code>, instead of local
+    directories in a home directory for example, you can use configure
+    switches <code>--with-umfpack-include, --with-umfpack-libs</code>.
+    </p>
 
     <p>
     Note that UMFPACK has its own license; if
       <p>
       As with PETSc, the use of METIS is optional. If you wish to use it, you
       can do so by having a METIS installation around at the time of calling
-      <code>./configure</code>. You can let <code>./configure</code> know
-      about this by either setting a <code>METIS_DIR</code> environment
-      variable denoting the path to the METIS library, or by transmitting this
-      information to <code>./configure</code> using the
-      <code>--with-metis</code> flag. We have tested our interface code with
-      METIS version 4.0.1, and newer versions should presumably work as well.
+      <code>./configure</code> by either
+      setting the <code>METIS_DIR</code> environment
+      variable denoting the path to the METIS library, or using the
+      <code>--with-metis</code> flag. If METIS was installed as part
+      of <code>/usr</code> or <code>/opt</code>, instead of local directories
+      in a home directory for example, you can use configure
+      switches <code>--with-metis-include, --with-metis-libs</code>.
       </p>
       
       <p>
     href="http://www.unidata.ucar.edu/software/netcdf/">NetCDF</a>
     library. Can also be enabled by
     <tt>--with-netcdf=/path/to/netcdf</tt> which overrides the path in
-    <tt>$NETCDF_DIR</tt>. If enabled, allows grid input in NetCDF
-    format (GridIn::read_netcdf).
+    <tt>$NETCDF_DIR</tt>. If enabled, <acronym>deal.II</acronym> allows grid
+    input in NetCDF format (GridIn::read_netcdf). If NetCDF was installed as
+    part of <code>/usr</code> or <code>/opt</code>, instead of local
+    directories in a home directory for example, you can use configure
+    switches <code>--with-netcdf-include, --with-netcdf-libs</code>.
     </dd>
 
     <a name="hsl"></a>

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.