From: Wolfgang Bangerth Date: Fri, 16 Dec 2005 04:22:11 +0000 (+0000) Subject: When using PETSc, link with libmpiuni.a if available. X-Git-Tag: v8.0.0~12778 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=95ebadca12d69026dd7908b27a32f36c5e5d6906;p=dealii.git When using PETSc, link with libmpiuni.a if available. git-svn-id: https://svn.dealii.org/trunk@11868 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/aclocal.m4 b/deal.II/aclocal.m4 index 42800414b1..b5675625ab 100644 --- a/deal.II/aclocal.m4 +++ b/deal.II/aclocal.m4 @@ -4708,6 +4708,7 @@ AC_DEFUN(DEAL_II_CONFIGURE_PETSC, dnl if test "$USE_CONTRIB_PETSC" = "yes" ; then DEAL_II_CONFIGURE_PETSC_VERSION DEAL_II_CONFIGURE_PETSC_ARCH + DEAL_II_CONFIGURE_PETSC_MPIUNI_LIB dnl Finally set with_petsc if this hasn't happened yet if test "x$with_petsc" = "x" ; then @@ -4815,6 +4816,33 @@ AC_DEFUN(DEAL_II_CONFIGURE_PETSC_VERSION, dnl + +dnl ------------------------------------------------------------ +dnl See if there is a library libmpiuni.a/so available. We need +dnl to link with it on some systems. +dnl +dnl Usage: DEAL_II_CONFIGURE_PETSC_MPIUNI_LIB +dnl +dnl ------------------------------------------------------------ +AC_DEFUN(DEAL_II_CONFIGURE_PETSC_MPIUNI_LIB, dnl +[ + AC_MSG_CHECKING(for PETSc libmpiuni library) + + if test -f $DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.a ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.a ; + else if test -f $DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.a ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.a ; + else if test -f $DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.so ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.so ; + else if test -f $DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.so ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.so ; + fi fi fi fi + + AC_MSG_RESULT($DEAL_II_PETSC_MPIUNI_LIB) +]) + + + dnl ------------------------------------------------------------ dnl Check whether Metis is installed, and if so store the dnl respective links diff --git a/deal.II/common/Make.global_options.in b/deal.II/common/Make.global_options.in index bf672e6118..47892c6fa1 100644 --- a/deal.II/common/Make.global_options.in +++ b/deal.II/common/Make.global_options.in @@ -53,6 +53,7 @@ DEAL_II_PETSC_ARCH = @DEAL_II_PETSC_ARCH@ DEAL_II_PETSC_VERSION_MAJOR = @DEAL_II_PETSC_VERSION_MAJOR@ DEAL_II_PETSC_VERSION_MINOR = @DEAL_II_PETSC_VERSION_MINOR@ DEAL_II_PETSC_VERSION_SUBMINOR = @DEAL_II_PETSC_VERSION_SUBMINOR@ +DEAL_II_PETSC_MPIUNI_LIB = @DEAL_II_PETSC_MPIUNI_LIB@ USE_CONTRIB_METIS = @USE_CONTRIB_METIS@ DEAL_II_METIS_DIR = @DEAL_II_METIS_DIR@ @@ -133,6 +134,7 @@ lib-contrib-metis = $(DEAL_II_METIS_DIR)/libmetis.a ifeq ($(USE_CONTRIB_PETSC),yes) lib-lac.g += $(lib-contrib-petsc.g) lib-lac.o += $(lib-contrib-petsc.o) + LIBS += $(DEAL_II_PETSC_MPIUNI_LIB) endif diff --git a/deal.II/configure b/deal.II/configure index a7210c739f..5ef54b72e8 100755 --- a/deal.II/configure +++ b/deal.II/configure @@ -276,7 +276,7 @@ PACKAGE_BUGREPORT='dealii@dealii.org' ac_default_prefix=`pwd` ac_subdirs_all="$ac_subdirs_all contrib tests" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS DEAL_II_MAJOR DEAL_II_MINOR DEAL_II_PATH DEAL2_DIR build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GXX_VERSION GXX_VERSION_DETAILED CXXFLAGSG CXXFLAGSO CXXFLAGSPIC SHLIBLD SHLIBFLAGS CC_VERSION CFLAGSPIC enablemultithreading withmultithreading F77 F77_VERSION F77FLAGSO F77FLAGSG F77FLAGSPIC F77LIBS enableshared static_lib_suffix shared_lib_suffix AR RANLIB ac_ct_RANLIB enableparser DEAL_II_DISABLE_PARSER USE_CONTRIB_PETSC DEAL_II_PETSC_DIR DEAL_II_PETSC_ARCH DEAL_II_PETSC_VERSION_MAJOR DEAL_II_PETSC_VERSION_MINOR DEAL_II_PETSC_VERSION_SUBMINOR DEAL_II_DEFINE_DEAL_II_USE_PETSC NEEDS_F77LIBS HSL_INCLUDE_DIR USE_CONTRIB_HSL TECPLOT_INCLUDE_DIR NETCDF_INCLUDE_DIR USE_CONTRIB_METIS DEAL_II_METIS_DIR UMFPACK_LIB UMFPACK_INCLUDE_DIR USE_CONTRIB_UMFPACK DOXYGEN DOT DEAL_II_HAVE_DOT PERL subdirs LDFLAGSPIC LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS DEAL_II_MAJOR DEAL_II_MINOR DEAL_II_PATH DEAL2_DIR build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GXX_VERSION GXX_VERSION_DETAILED CXXFLAGSG CXXFLAGSO CXXFLAGSPIC SHLIBLD SHLIBFLAGS CC_VERSION CFLAGSPIC enablemultithreading withmultithreading F77 F77_VERSION F77FLAGSO F77FLAGSG F77FLAGSPIC F77LIBS enableshared static_lib_suffix shared_lib_suffix AR RANLIB ac_ct_RANLIB enableparser DEAL_II_DISABLE_PARSER USE_CONTRIB_PETSC DEAL_II_PETSC_DIR DEAL_II_PETSC_ARCH DEAL_II_PETSC_VERSION_MAJOR DEAL_II_PETSC_VERSION_MINOR DEAL_II_PETSC_VERSION_SUBMINOR DEAL_II_PETSC_MPIUNI_LIB DEAL_II_DEFINE_DEAL_II_USE_PETSC NEEDS_F77LIBS HSL_INCLUDE_DIR USE_CONTRIB_HSL TECPLOT_INCLUDE_DIR NETCDF_INCLUDE_DIR USE_CONTRIB_METIS DEAL_II_METIS_DIR UMFPACK_LIB UMFPACK_INCLUDE_DIR USE_CONTRIB_UMFPACK DOXYGEN DOT DEAL_II_HAVE_DOT PERL subdirs LDFLAGSPIC LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -9468,6 +9468,23 @@ echo "$as_me: error: Unknown PETSc version" >&2;} fi + echo "$as_me:$LINENO: checking for PETSc libmpiuni library" >&5 +echo $ECHO_N "checking for PETSc libmpiuni library... $ECHO_C" >&6 + + if test -f $DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.a ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.a ; + else if test -f $DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.a ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.a ; + else if test -f $DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.so ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/libg_c++/$DEAL_II_PETSC_ARCH/libmpiuni.so ; + else if test -f $DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.so ; then + DEAL_II_PETSC_MPIUNI_LIB=$DEAL_II_PETSC_DIR/lib/$DEAL_II_PETSC_ARCH/libmpiuni.so ; + fi fi fi fi + + echo "$as_me:$LINENO: result: $DEAL_II_PETSC_MPIUNI_LIB" >&5 +echo "${ECHO_T}$DEAL_II_PETSC_MPIUNI_LIB" >&6 + + if test "x$with_petsc" = "x" ; then with_petsc="yes" fi @@ -9484,6 +9501,7 @@ echo "$as_me: error: Unknown PETSc version" >&2;} + if test "x$with_umfpack" != "x" ; then if test "x$with_blas" = "x" ; then with_blas="yes" @@ -11313,6 +11331,7 @@ s,@DEAL_II_PETSC_ARCH@,$DEAL_II_PETSC_ARCH,;t t s,@DEAL_II_PETSC_VERSION_MAJOR@,$DEAL_II_PETSC_VERSION_MAJOR,;t t s,@DEAL_II_PETSC_VERSION_MINOR@,$DEAL_II_PETSC_VERSION_MINOR,;t t s,@DEAL_II_PETSC_VERSION_SUBMINOR@,$DEAL_II_PETSC_VERSION_SUBMINOR,;t t +s,@DEAL_II_PETSC_MPIUNI_LIB@,$DEAL_II_PETSC_MPIUNI_LIB,;t t s,@DEAL_II_DEFINE_DEAL_II_USE_PETSC@,$DEAL_II_DEFINE_DEAL_II_USE_PETSC,;t t s,@NEEDS_F77LIBS@,$NEEDS_F77LIBS,;t t s,@HSL_INCLUDE_DIR@,$HSL_INCLUDE_DIR,;t t diff --git a/deal.II/configure.in b/deal.II/configure.in index 7a510ec68d..93cde18e48 100644 --- a/deal.II/configure.in +++ b/deal.II/configure.in @@ -398,6 +398,7 @@ AC_SUBST(DEAL_II_PETSC_ARCH) AC_SUBST(DEAL_II_PETSC_VERSION_MAJOR) AC_SUBST(DEAL_II_PETSC_VERSION_MINOR) AC_SUBST(DEAL_II_PETSC_VERSION_SUBMINOR) +AC_SUBST(DEAL_II_PETSC_MPIUNI_LIB) AC_SUBST(DEAL_II_DEFINE_DEAL_II_USE_PETSC)