2b7a3ae601
OMPI_CONFIG_SUBDIR -> OPAL_CONFIG_SUBDIR OMPI_CONFIG_SUBDIR_ARGS -> OPAL_CONFIG_SUBDIR_ARGS This commit was SVN r31647.
194 строки
7.9 KiB
Plaintext
194 строки
7.9 KiB
Plaintext
dnl
|
|
dnl Copyright (c) 2004-2009 The Trustees of Indiana University and Indiana
|
|
dnl University Research and Technology
|
|
dnl Corporation. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
dnl of Tennessee Research Foundation. All rights
|
|
dnl reserved.
|
|
dnl Copyright (c) 2004-2007 High Performance Computing Center Stuttgart,
|
|
dnl University of Stuttgart. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2006-2013 Cisco Systems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2006-2008 Sun Microsystems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights
|
|
dnl reserved.
|
|
dnl Copyright (c) 2009 Oak Ridge National Labs. All rights reserved.
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
AC_DEFUN([OPAL_SETUP_LIBLTDL],[
|
|
OPAL_VAR_SCOPE_PUSH([HAPPY])
|
|
|
|
opal_show_subtitle "GNU libltdl setup"
|
|
|
|
# AC_CONFIG_SUBDIRS appears to be broken for non-gcc compilers (i.e.,
|
|
# passing precious variables down to the sub-configure).
|
|
#
|
|
# Finally, make ltdl follow the same shared/static convention that was
|
|
# user for the main OMPI libraries. So manually examine
|
|
# $enable_shared and $enable_static and pass down the corresponding
|
|
# flags.
|
|
|
|
LIBLTDL_SUBDIR=
|
|
OPAL_HAVE_LTDL_ADVISE=0
|
|
OPAL_LIBLTDL_INTERNAL=0
|
|
|
|
AS_IF([test "$OPAL_ENABLE_DLOPEN_SUPPORT" = "0"],
|
|
[AC_MSG_WARN([libltdl support disabled (by --disable-dlopen)])
|
|
LIBLTDL=
|
|
LDTLINCL=
|
|
OPAL_WRAPPER_FLAGS_ADD(LIBS, "$LIBS")],
|
|
[
|
|
# Default to building the internal copy. After this,
|
|
# paffinity_hwloc_location is guaranteed to be set to one of:
|
|
# "internal", a directory name (i.e., whatever the user
|
|
# supplied), or "no".
|
|
libltdl_location=$with_libltdl
|
|
AS_IF([test -z "$libltdl_location" -o "$libltdl_location" = "yes"],
|
|
[libltdl_location=internal])
|
|
|
|
AC_MSG_CHECKING([location of libltdl])
|
|
case $libltdl_location in
|
|
no)
|
|
AC_MSG_WARN([--without-libltdl specified in conjunction with])
|
|
AC_MSG_WARN([--enable-dlopen (or --disable-dlopen was not specified)])
|
|
AC_MSG_WARN([Cannot have dlopen without libltdl])
|
|
AC_MSG_ERROR([Cannot continue])
|
|
;;
|
|
internal)
|
|
AC_MSG_RESULT([internal copy])
|
|
_OPAL_SETUP_LIBLTDL_INTERNAL
|
|
;;
|
|
external)
|
|
AC_MSG_RESULT([external copy (unspecified)])
|
|
# If we're using an extern libltdl, then reset the
|
|
# LTDLINCL that was set earlier (ie., there's no need to
|
|
# -I into our internal libltdl tree).
|
|
LIBLTDL=
|
|
LDTLINCL=
|
|
libltdl_location=
|
|
libltdl_need_external=1
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT([external copy ($libltdl_location)])
|
|
OPAL_CHECK_WITHDIR([libltdl], [$libltdl_location],
|
|
[include/ltdl.h])
|
|
# If we're using an extern libltdl, then reset the
|
|
# LTDLINCL that was set earlier (ie., there's no need to
|
|
# -I into our internal libltdl tree).
|
|
LIBLTDL=
|
|
LDTLINCL=
|
|
libltdl_need_external=1
|
|
;;
|
|
esac
|
|
|
|
AS_IF([test "$libltdl_need_external" = "1"],
|
|
[OPAL_CHECK_PACKAGE([libltdl],
|
|
[ltdl.h],
|
|
[ltdl],
|
|
[lt_dlopen],
|
|
[],
|
|
[$libltdl_location],
|
|
[],
|
|
[],
|
|
[AC_MSG_WARN([External libltdl installation not found])
|
|
AC_MSG_WARN([or not usable.])
|
|
AC_MSG_ERROR([Cannot continue.])])
|
|
CPPFLAGS="$CPPFLAGS $libltdl_CPPFLAGS"
|
|
LDFLAGS="$LDFLAGS $libltdl_LDFLAGS"
|
|
LIBS="$LIBS $libltdl_LIBS"
|
|
|
|
# Check for lt_dladvise_init; warn if we don't have
|
|
# it
|
|
AC_CHECK_FUNC([lt_dladvise_init],
|
|
[OPAL_HAVE_LTDL_ADVISE=1],
|
|
[AC_MSG_WARN([*********************************************])
|
|
AC_MSG_WARN([Could not find lt_dladvise_init in the])
|
|
AC_MSG_WARN([external libltdl installation.])
|
|
AC_MSG_WARN([This could mean that your libltdl version])
|
|
AC_MSG_WARN([is old. We recommend that you re-configure])
|
|
AC_MSG_WARN([Open MPI with --with-libltdl=internal to])
|
|
AC_MSG_WARN([use the internal libltdl copy in Open MPI.])
|
|
AC_MSG_WARN([])
|
|
AC_MSG_WARN([Sleeping 10 seconds to give you a])
|
|
AC_MSG_WARN([chance to read this message.])
|
|
AC_MSG_WARN([*********************************************])
|
|
sleep 10
|
|
])
|
|
])
|
|
])
|
|
|
|
AC_SUBST(LTDLINCL)
|
|
AC_SUBST(LIBLTDL)
|
|
AC_SUBST(LIBLTDL_SUBDIR)
|
|
|
|
AC_DEFINE_UNQUOTED(OPAL_HAVE_LTDL_ADVISE, $OPAL_HAVE_LTDL_ADVISE,
|
|
[Whether libltdl appears to have the lt_dladvise interface])
|
|
|
|
AC_DEFINE_UNQUOTED(OPAL_WANT_LIBLTDL, $OPAL_ENABLE_DLOPEN_SUPPORT,
|
|
[Whether to include support for libltdl or not])
|
|
AC_DEFINE_UNQUOTED(OPAL_LIBLTDL_INTERNAL, $OPAL_LIBLTDL_INTERNAL,
|
|
[Whether we are using the internal libltdl or not])
|
|
|
|
AM_CONDITIONAL(OPAL_HAVE_DLOPEN,
|
|
[test "$OPAL_ENABLE_DLOPEN_SUPPORT" = "1"])
|
|
OPAL_VAR_SCOPE_POP([HAPPY])
|
|
])dnl
|
|
|
|
|
|
#
|
|
# Setup to build the internal copy of libltdl
|
|
#
|
|
AC_DEFUN([_OPAL_SETUP_LIBLTDL_INTERNAL],[
|
|
OPAL_VAR_SCOPE_PUSH([CFLAGS_save CPPFLAGS_save])
|
|
|
|
ompi_subdir_args="$ompi_subdir_args --enable-ltdl-convenience --disable-ltdl-install"
|
|
if test "$enable_shared" = "yes"; then
|
|
ompi_subdir_args="$ompi_subdir_args --enable-shared"
|
|
else
|
|
ompi_subdir_args="$ompi_subdir_args --disable-shared"
|
|
fi
|
|
if test "$enable_static" = "yes"; then
|
|
ompi_subdir_args="$ompi_subdir_args --enable-static"
|
|
else
|
|
ompi_subdir_args="$ompi_subdir_args --disable-static"
|
|
fi
|
|
|
|
CFLAGS_save="$CFLAGS"
|
|
CFLAGS="$OPAL_CFLAGS_BEFORE_PICKY $OPAL_VISIBILITY_CFLAGS"
|
|
|
|
# VPATH support will be included by default in CONFIG_SUBDIR
|
|
OPAL_CONFIG_SUBDIR(opal/libltdl, [$ompi_subdir_args],
|
|
[HAPPY=1], [HAPPY=0])
|
|
if test "$HAPPY" = "1"; then
|
|
LIBLTDL_SUBDIR=libltdl
|
|
OPAL_LIBLTDL_INTERNAL=1
|
|
|
|
CPPFLAGS_save="$CPPFLAGS"
|
|
CPPFLAGS="-I."
|
|
# Must specifically mention $srcdir here for VPATH builds
|
|
# (this file is in the src tree).
|
|
AC_EGREP_HEADER([lt_dladvise_init], [$srcdir/opal/libltdl/ltdl.h],
|
|
[OPAL_HAVE_LTDL_ADVISE=1])
|
|
CPPFLAGS="$CPPFLAGS_save"
|
|
|
|
# --export-dynamic allows exported symbols to be resolved via
|
|
# --dlsym and friends.
|
|
LDFLAGS="-export-dynamic $LDFLAGS"
|
|
else
|
|
AC_MSG_WARN([Failed to build GNU libltdl. This usually means that something])
|
|
AC_MSG_WARN([is incorrectly setup with your environment. There may be useful information in])
|
|
AC_MSG_WARN([opal/libltdl/config.log. You can also disable GNU libltdl, which will disable])
|
|
AC_MSG_WARN([dynamic shared object loading, by configuring with --disable-dlopen.])
|
|
AC_MSG_ERROR([Cannot continue])
|
|
fi
|
|
CFLAGS="$CFLAGS_save"
|
|
|
|
OPAL_VAR_SCOPE_POP
|
|
])dnl
|