1
1
openmpi/config/ompi_check_udapl.m4
Jeff Squyres 1030ddcd58 Per http://www.open-mpi.org/community/lists/devel/2007/08/2152.php,
disable the building of the udapl BTL on Linux by default.  On every
other OS, the udapl configury will attempt to find udapl's
header/library files, etc. by default.  

You can specify --with-udapl on the configure command line (on any OS)
to force OMPI to try to configure/build udapl (i.e., look for udapl's
header/library files, etc.).

This commit was SVN r15894.
2007-08-16 22:01:06 +00:00

118 строки
5.0 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 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])])
AC_ARG_WITH([udapl-libdir],
[AC_HELP_STRING([--with-udapl-libdir=DIR],
[Search for uDAPL libraries in DIR])])
# 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])
])