1
1
openmpi/config/opal_check_ofi.m4

126 строки
4.6 KiB
Plaintext
Исходник Обычный вид История

dnl -*- shell-script -*-
dnl
dnl Copyright (c) 2015-2019 Cisco Systems, Inc. All rights reserved.
dnl Copyright (c) 2016-2017 Los Alamos National Security, LLC. All rights
dnl reserved.
dnl $COPYRIGHT$
dnl
dnl Additional copyrights may follow
dnl
dnl $HEADER$
dnl
dnl
dnl _OPAL_CHECK_OFI
dnl --------------------------------------------------------
dnl Do the real work of checking for OFI libfabric.
dnl Upon return:
dnl
dnl - opal_ofi_happy: will be "yes" or "no"
dnl - opal_ofi_{CPPFLAGS|LDFLAGS|LIBS} will be loaded (if relevant)
dnl
AC_DEFUN([_OPAL_CHECK_OFI],[
# Add --with options
AC_ARG_WITH([libfabric],
[AC_HELP_STRING([--with-libfabric=DIR],
[Deprecated synonym for --with-ofi])])
AC_ARG_WITH([libfabric-libdir],
[AC_HELP_STRING([--with-libfabric-libdir=DIR],
[Deprecated synonym for --with-ofi-libdir])])
AC_ARG_WITH([ofi],
[AC_HELP_STRING([--with-ofi=DIR],
[Specify location of OFI libfabric installation, adding DIR/include to the default search location for libfabric headers, and DIR/lib or DIR/lib64 to the default search location for libfabric libraries. Error if libfabric support cannot be found.])])
AC_ARG_WITH([ofi-libdir],
[AC_HELP_STRING([--with-ofi-libdir=DIR],
[Search for OFI libfabric libraries in DIR])])
if test "$with_ofi" = ""; then
with_ofi=$with_libfabric
fi
if test "$with_ofi_libdir" = ""; then
with_ofi_libdir=$with_libfabric_libdir
fi
# Sanity check the --with values
OPAL_CHECK_WITHDIR([ofi], [$with_ofi],
[include/rdma/fabric.h])
OPAL_CHECK_WITHDIR([ofi-libdir], [$with_ofi_libdir],
[libfabric.*])
OPAL_VAR_SCOPE_PUSH([opal_check_ofi_save_CPPFLAGS opal_check_ofi_save_LDFLAGS opal_check_ofi_save_LIBS])
opal_check_ofi_save_CPPFLAGS=$CPPFLAGS
opal_check_ofi_save_LDFLAGS=$LDFLAGS
opal_check_ofi_save_LIBS=$LIBS
opal_ofi_happy=yes
AS_IF([test "$with_ofi" = "no"],
[opal_ofi_happy=no])
AS_IF([test $opal_ofi_happy = yes],
[AC_MSG_CHECKING([looking for OFI libfabric in])
AS_IF([test "$with_ofi" != "yes"],
[opal_ofi_dir=$with_ofi
AC_MSG_RESULT([($opal_ofi_dir)])],
[AC_MSG_RESULT([(default search paths)])])
AS_IF([test ! -z "$with_ofi_libdir" && \
test "$with_ofi_libdir" != "yes"],
[opal_ofi_libdir=$with_ofi_libdir])
])
AS_IF([test $opal_ofi_happy = yes],
[OPAL_CHECK_PACKAGE([opal_ofi],
[rdma/fabric.h],
[fabric],
[fi_getinfo],
[],
[$opal_ofi_dir],
[$opal_ofi_libdir],
[],
[opal_ofi_happy=no])])
CPPFLAGS=$opal_check_ofi_save_CPPFLAGS
LDFLAGS=$opal_check_ofi_save_LDFLAGS
LIBS=$opal_check_ofi_save_LIBS
AC_SUBST([opal_ofi_CPPFLAGS])
AC_SUBST([opal_ofi_LDFLAGS])
AC_SUBST([opal_ofi_LIBS])
OPAL_SUMMARY_ADD([[Transports]],[[OpenFabrics OFI Libfabric]],[],[$opal_ofi_happy])
OPAL_VAR_SCOPE_POP
AS_IF([test $opal_ofi_happy = no],
[AS_IF([test -n "$with_ofi" && test "$with_ofi" != "no"],
[AC_MSG_WARN([OFI libfabric support requested (via --with-ofi or --with-libfabric), but not found.])
AC_MSG_ERROR([Cannot continue.])])
])
])dnl
dnl
dnl OPAL_CHECK_OFI
dnl --------------------------------------------------------
dnl Check to see if OFI libfabric is available.
dnl
dnl This is a simple wrapper around _OPAL_CHECK_OFI that just
dnl ensures to only run the checks once. We do not use AC_REQUIRE
dnl because that re-orders the texts and makes ordering in stdout
dnl quite confusing / difficult to grok.
dnl
AC_DEFUN([OPAL_CHECK_OFI],[
# Check for OFI libfabric. Note that $opal_ofi_happy is used in
# other configure.m4's to know if OFI/libfabric configured
# successfully. We only need to run the back-end checks once, but
# at least emit a "checking..." statement each subsequent time
# this macro is invoked so that configure's stdout has
# sensible/logical output.
AS_IF([test -z "$opal_ofi_happy"],
[_OPAL_CHECK_OFI],
[AC_MSG_CHECKING([if OFI libfabric is available])
AC_MSG_RESULT([$opal_ofi_happy])])
])