35c5e28a8e
This commit was SVN r20384. The following SVN revision numbers were found above: r20383 --> open-mpi/ompi@e0638c84c8
119 строки
5.1 KiB
Bash
119 строки
5.1 KiB
Bash
# -*- shell-script -*-
|
|
#
|
|
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
# University Research and Technology
|
|
# Corporation. All rights reserved.
|
|
# Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
# of Tennessee Research Foundation. All rights
|
|
# reserved.
|
|
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
# University of Stuttgart. All rights reserved.
|
|
# Copyright (c) 2004-2005 The Regents of the University of California.
|
|
# All rights reserved.
|
|
# Copyright (c) 2007-2009 Cisco Systems, Inc. All rights reserved.
|
|
# $COPYRIGHT$
|
|
#
|
|
# Additional copyrights may follow
|
|
#
|
|
# $HEADER$
|
|
#
|
|
|
|
# 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, searching for libraries in DIR])])
|
|
OMPI_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])])
|
|
OMPI_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" -a "$with_udapl" != "yes"],
|
|
[ompi_check_udapl_dir="$with_udapl"])
|
|
AS_IF([test ! -z "$with_udapl_libdir" -a "$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"],
|
|
[_OMPI_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"],
|
|
[_OMPI_CHECK_PACKAGE_LIB([$1],
|
|
[dat],
|
|
[dat_registry_list_providers],
|
|
[],
|
|
[$ompi_check_udapl_dir],
|
|
[$ompi_check_udapl_libdir],
|
|
[ompi_check_udapl_happy="yes"],
|
|
[_OMPI_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" -a "$with_udapl" != "no"],
|
|
[AC_MSG_ERROR([uDAPL support requested but not found. Aborting])])
|
|
$3])
|
|
])
|
|
|