From 7ca05081aafa5b7bc08a01983f094b0c0b9217d1 Mon Sep 17 00:00:00 2001 From: bangerth Date: Sun, 19 Oct 2008 02:21:10 +0000 Subject: [PATCH] Patch by Christophe Trophime: allow using --with-XX-include and --with-XX-lib for XX={trilinos,metis,umfpack,netcdf} so that one can configure with libraries that have been installed in /usr or /opt. git-svn-id: https://svn.dealii.org/trunk@17277 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/aclocal.m4 | 360 +++++++- deal.II/common/Make.global_options.in | 49 +- deal.II/configure | 1078 +++++++++++++++++++++++- deal.II/configure.in | 26 +- deal.II/doc/readme-petsc-trilinos.html | 23 +- deal.II/doc/readme.html | 34 +- 6 files changed, 1451 insertions(+), 119 deletions(-) diff --git a/deal.II/aclocal.m4 b/deal.II/aclocal.m4 index df5be0a90a..a2a79f1bdc 100644 --- a/deal.II/aclocal.m4 +++ b/deal.II/aclocal.m4 @@ -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 - ]], - [[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 + ]], + [[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]) diff --git a/deal.II/common/Make.global_options.in b/deal.II/common/Make.global_options.in index 14a560f88c..968eb95a7b 100644 --- a/deal.II/common/Make.global_options.in +++ b/deal.II/common/Make.global_options.in @@ -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) diff --git a/deal.II/configure b/deal.II/configure index 4348c1e48f..427d716f6d 100755 --- a/deal.II/configure +++ b/deal.II/configure @@ -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 @@ -14104,21 +14363,752 @@ 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 + 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 +_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 _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 +_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 +_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 +_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 +_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 diff --git a/deal.II/configure.in b/deal.II/configure.in index 33d4ce21ca..fe107e1291 100644 --- a/deal.II/configure.in +++ b/deal.II/configure.in @@ -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 diff --git a/deal.II/doc/readme-petsc-trilinos.html b/deal.II/doc/readme-petsc-trilinos.html index 613665c6fb..9ac6fb1dca 100644 --- a/deal.II/doc/readme-petsc-trilinos.html +++ b/deal.II/doc/readme-petsc-trilinos.html @@ -124,12 +124,33 @@ --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

+ +

Configuring for installed Trilinos packages

+ +

+ 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 --with-trilinos. This scheme doesn't work, + however, if Trilinos has been installed as a regular package on a + system, for example into the /usr or /opt + directories. +

+ +

+ In that case, paths to include and library files may be specified + separately using the --with-trilinos-include + and --with-trilinos-libs switches + to ./configure. Alternatively, this information can also + be passed to the configuration script by setting the environment + variables TRILINOS_INCDIR, TRILINOS_LIBDIR. +

+
diff --git a/deal.II/doc/readme.html b/deal.II/doc/readme.html index 5054087213..dcdf918d76 100644 --- a/deal.II/doc/readme.html +++ b/deal.II/doc/readme.html @@ -534,9 +534,17 @@
Enabled by --with-umfpack. 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 SparseDirectUMFPACK to the - library. The default is to not use UMFPACK. + version as an argument. Enabling UMFPACK adds the + class SparseDirectUMFPACK to the library. The default is to not + use UMFPACK. + +

+ If you want to use an external installation of UMFPACK, but UMFPACK was + installed as + part of /usr or /opt, instead of local + directories in a home directory for example, you can use configure + switches --with-umfpack-include, --with-umfpack-libs. +

Note that UMFPACK has its own license; if @@ -594,12 +602,13 @@

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 - ./configure. You can let ./configure know - about this by either setting a METIS_DIR environment - variable denoting the path to the METIS library, or by transmitting this - information to ./configure using the - --with-metis flag. We have tested our interface code with - METIS version 4.0.1, and newer versions should presumably work as well. + ./configure by either + setting the METIS_DIR environment + variable denoting the path to the METIS library, or using the + --with-metis flag. If METIS was installed as part + of /usr or /opt, instead of local directories + in a home directory for example, you can use configure + switches --with-metis-include, --with-metis-libs.

@@ -673,8 +682,11 @@ href="http://www.unidata.ucar.edu/software/netcdf/">NetCDF library. Can also be enabled by --with-netcdf=/path/to/netcdf which overrides the path in - $NETCDF_DIR. If enabled, allows grid input in NetCDF - format (GridIn::read_netcdf). + $NETCDF_DIR. If enabled, deal.II allows grid + input in NetCDF format (GridIn::read_netcdf). If NetCDF was installed as + part of /usr or /opt, instead of local + directories in a home directory for example, you can use configure + switches --with-netcdf-include, --with-netcdf-libs.

-- 2.39.5