1
1
openmpi/opal/mca/btl/usnic/configure.m4
2015-02-03 13:46:06 -08:00

155 строки
6.4 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) 2006 Sandia National Laboratories. All rights
# reserved.
# Copyright (c) 2010-2015 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# MCA_opal_btl_usnic_POST_CONFIG([should_build])
# ------------------------------------------
AC_DEFUN([MCA_opal_btl_usnic_POST_CONFIG], [
AM_CONDITIONAL([OPAL_BTL_USNIC_BUILD_UNIT_TESTS],
[test "$1" -eq 1 && test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"])
])
# MCA_btl_usnic_CONFIG([action-if-can-copalle],
# [action-if-cant-copalle])
# ------------------------------------------------
AC_DEFUN([MCA_opal_btl_usnic_CONFIG],[
AC_CONFIG_FILES([opal/mca/btl/usnic/Makefile])
AC_ARG_WITH([usnic],
[AS_HELP_STRING([--with-usnic],
[If specified, cause an error if usNIC
support cannot be built])])
# If --without-usnic was specified, then gracefully exit.
# Otherwise, do the rest of the config.
AS_IF([test "x$with_usnic" = "xno"],
[AC_MSG_WARN([--without-usnic specified; skipping usnic BTL])
$2],
[_OPAL_BTL_USNIC_DO_CONFIG($1, $2)])
])
AC_DEFUN([_OPAL_BTL_USNIC_DO_CONFIG],[
OPAL_VAR_SCOPE_PUSH([unit_tests opal_btl_usnic_CPPFLAGS_save])
# see README.test for information about this scheme
AC_ARG_ENABLE([opal-btl-usnic-unit-tests],
[AS_HELP_STRING([--enable-opal-btl-usnic-unit-tests],
[build unit tests for the usnic BTL,
including the test runner program,
opal_btl_usnic_run_tests])])
AS_IF([test "X$enable_opal_btl_usnic_unit_tests" = "Xyes"],
[unit_tests=1
AC_MSG_NOTICE([enabling usnic BTL unit tests])],
[unit_tests=0])
AC_DEFINE_UNQUOTED([OPAL_BTL_USNIC_UNIT_TESTS], [$unit_tests],
[define to 1 if usnic BTL unit tests are enabled, 0 otherwise])
unset unit_tests
# The current logic in btl_usnic_compat.h checks the OPAL version as a
# proxy for the top-level OPAL version. Unfortunately this does the wrong
# thing for other top-level projects that might use the usnic BTL, such as
# ORCM. ORCM's versioning is totally unrelated to OPAL's. As a short term
# workaround, just disqualify ourselves if the OPAL version seems too old.
# In the longer term we should be doing something else, like versioning
# OPAL and OPAL separately.
btl_usnic_happy=yes
AS_IF([test "$OPAL_MAJOR_VERSION" -eq "1" && \
test "$OPAL_MINOR_VERSION" -lt "7"],
[AC_MSG_NOTICE([OPAL version appears to be too old, disabling the usnic BTL])
btl_usnic_happy=no])
# We only want to build on 64 bit Linux.
AS_IF([test "$btl_usnic_happy" = "yes"],
[AC_CHECK_SIZEOF([void *])
AC_MSG_CHECKING([for 64 bit Linux])
case $host_os in
*linux*)
AS_IF([test $ac_cv_sizeof_void_p -eq 8],
[],
[btl_usnic_happy=no])
;;
*)
btl_usnic_happy=no
;;
esac
AC_MSG_RESULT([$btl_usnic_happy])
])
# The usnic BTL requires libfabric support. libfabric should
# already have been configured, so just see if it was happy.
AS_IF([test "$btl_usnic_happy" = "yes"],
[AC_MSG_CHECKING([if libfabric support is available])
AS_IF([test $opal_common_libfabric_happy -eq 1],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])
btl_usnic_happy=no])
])
# Are we building embedded or external libfabric? (this is really
# just for output / user info purposes)
AS_IF([test "$btl_usnic_happy" = "yes"],
[AC_MSG_CHECKING([if building embedded or external libfabric])
AS_IF([test $opal_common_libfabric_build_embedded -eq 1],
[AC_MSG_RESULT([embedded])],
[AC_MSG_RESULT([external])])
])
AH_TEMPLATE([OPAL_BTL_USNIC_FI_EXT_USNIC_H],
[Path by which to include fi_ext_usnic.h])
# If we're building the embedded libfabric, see if
# it contains usnic support.
AS_IF([test "$btl_usnic_happy" = "yes" && \
test $opal_common_libfabric_build_embedded -eq 1],
[AC_MSG_CHECKING([if embedded libfabric has usnic support])
AS_IF([test $opal_common_libfabric_usnic_happy -eq 1],
[AC_MSG_RESULT([yes])
AC_DEFINE([OPAL_BTL_USNIC_FI_EXT_USNIC_H],
["fi_ext_usnic.h"])],
[AC_MSG_RESULT([no])
btl_usnic_happy=no])
])
# If we're building external libfabric, see if it has fi_ext_usnic.h
AS_IF([test "$btl_usnic_happy" = "yes" && \
test $opal_common_libfabric_build_embedded -eq 0],
[opal_btl_usnic_CPPFLAGS_save=$CPPFLAGS
CPPFLAGS="$opal_common_libfabric_CPPFLAGS $CPPFLAGS"
AC_CHECK_HEADER([rdma/fi_ext_usnic.h],
[AC_DEFINE([OPAL_BTL_USNIC_FI_EXT_USNIC_H],
["rdma/fi_ext_usnic.h"])],
[btl_usnic_happy=no])
CPPFLAGS=$opal_btl_usnic_CPPFLAGS_save
])
# All done
AS_IF([test "$btl_usnic_happy" = "yes"],
[$1],
[AS_IF([test "$with_usnic" = "yes"],
[AC_MSG_WARN([--with-usnic was specified, but Cisco usNIC support cannot be built])
AC_MSG_ERROR([Cannot continue])],
[$2])
])
OPAL_VAR_SCOPE_POP
])dnl