121 строка
5.3 KiB
Bash
121 строка
5.3 KiB
Bash
dnl -*- shell-script -*-
|
|
dnl
|
|
dnl Copyright (c) 2004-2005 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-2005 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) 2007-2009 Cisco Systems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2015 Research Organization for Information Science
|
|
dnl and Technology (RIST). All rights reserved.
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
# OMPI_CHECK_UDAPL(prefix, [action-if-found], [action-if-not-found])
|
|
# --------------------------------------------------------
|
|
# check if uDAPL support can be found. sets prefix_{CPPFLAGS,
|
|
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
|
# support, otherwise executes action-if-not-found
|
|
AC_DEFUN([OMPI_CHECK_UDAPL],[
|
|
AC_ARG_WITH([udapl],
|
|
[AC_HELP_STRING([--with-udapl(=DIR)],
|
|
[Build uDAPL support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
|
OPAL_CHECK_WITHDIR([udapl], [$with_udapl], [include/dat/udat.h])
|
|
AC_ARG_WITH([udapl-libdir],
|
|
[AC_HELP_STRING([--with-udapl-libdir=DIR],
|
|
[Search for uDAPL libraries in DIR])])
|
|
OPAL_CHECK_WITHDIR([udapl-libdir], [$with_udapl_libdir], [libdat.*])
|
|
|
|
# Special case for OFED/Linux: the default /etc/dat.conf that
|
|
# ships with OFED is broken in that it includes DAT providers that
|
|
# are not guarnateed to work (e.g., it includes providers for ib0,
|
|
# ib1, ib2, ib3, and bond0). Usually, a sysadmin will need to
|
|
# edit this file to configure it for the specific environment in
|
|
# which it will be used. Hence, if you run the udapl BTL on
|
|
# Linux/OFED, you'll get a bunch of warning messages about the
|
|
# providers that don't work. However, on Linux/OFED, you don't
|
|
# really want to use udapl anyway; you likely really want to use
|
|
# the openib BTL (i.e., native verbs, not udapl).
|
|
|
|
# So after exploring many different scenarios, the least evil
|
|
# solution seemed to be to disable building the udapl BTL on
|
|
# Linux/OFED *unless the user specifically asks for it.* To be
|
|
# specific: on Linux/OFED, if you do not specify
|
|
# --with-udapl(=DIR), the udapl BTL will not be built.
|
|
AS_IF([test -z "$with_udapl"],
|
|
[case $host in
|
|
*linux*)
|
|
AC_MSG_WARN([On Linux and --with-udapl was not specified])
|
|
AC_MSG_WARN([Not building the udapl BTL])
|
|
with_udapl=no
|
|
;;
|
|
esac])
|
|
|
|
AS_IF([test ! -z "$with_udapl" && test "$with_udapl" != "yes"],
|
|
[ompi_check_udapl_dir="$with_udapl"])
|
|
AS_IF([test ! -z "$with_udapl_libdir" && test "$with_udapl_libdir" != "yes"],
|
|
[ompi_check_udapl_libdir="$with_udapl_libdir"])
|
|
AS_IF([test "$with_udapl" = "no"],
|
|
[ompi_check_udapl_happy="no"],
|
|
[ompi_check_udapl_happy="yes"])
|
|
|
|
dnl Do not use ompi_check_package directly, because then we have
|
|
dnl to test for the header file twice, and caching is disabled
|
|
dnl for all ompi_check_package checks. Instead, do what
|
|
dnl ompi_check_package does, but only do the header check once.
|
|
dnl Still do the lib check twice, the second time if it turns
|
|
dnl out we need -ldapl to link (looks like udapl over GM).
|
|
|
|
ompi_check_package_$1_save_CPPFLAGS="$CPPFLAGS"
|
|
ompi_check_package_$1_save_LDFLAGS="$LDFLAGS"
|
|
ompi_check_package_$1_save_LIBS="$LIBS"
|
|
|
|
ompi_check_package_$1_orig_CPPFLAGS="$$1_CPPFLAGS"
|
|
ompi_check_package_$1_orig_LDFLAGS="$$1_LDFLAGS"
|
|
ompi_check_package_$1_orig_LIBS="$$1_LIBS"
|
|
|
|
AS_IF([test "$ompi_check_udapl_happy" = "yes"],
|
|
[_OPAL_CHECK_PACKAGE_HEADER([$1],
|
|
[dat/udat.h],
|
|
[$ompi_check_udapl_dir],
|
|
[ompi_check_udapl_happy="yes"],
|
|
[ompi_check_udapl_happy="no"])])
|
|
|
|
AS_IF([test "$ompi_check_udapl_happy" = "yes"],
|
|
[_OPAL_CHECK_PACKAGE_LIB([$1],
|
|
[dat],
|
|
[dat_registry_list_providers],
|
|
[],
|
|
[$ompi_check_udapl_dir],
|
|
[$ompi_check_udapl_libdir],
|
|
[ompi_check_udapl_happy="yes"],
|
|
[_OPAL_CHECK_PACKAGE_LIB([$1],
|
|
[dat],
|
|
[dat_registry_list_providers],
|
|
[-ldapl],
|
|
[$ompi_check_udapl_dir],
|
|
[$ompi_check_udapl_libdir],
|
|
[ompi_check_udapl_happy="yes"],
|
|
[ompi_check_udapl_happy="no"])])])
|
|
|
|
CPPFLAGS="$ompi_check_package_$1_save_CPPFLAGS"
|
|
LDFLAGS="$ompi_check_package_$1_save_LDFLAGS"
|
|
LIBS="$ompi_check_package_$1_save_LIBS"
|
|
|
|
AS_IF([test "$ompi_check_udapl_happy" = "yes"],
|
|
[$2],
|
|
[AS_IF([test ! -z "$with_udapl" && test "$with_udapl" != "no"],
|
|
[AC_MSG_ERROR([uDAPL support requested but not found. Aborting])])
|
|
$3])
|
|
])
|
|
|