configure: add a summary section at the end of configure output
This commit adds two m4 macros: OPAL_SUMMARY_ADD, OPAL_SUMMARY_PRINT. OPAL_SUMMARY_ADD adds an item to a section in the summary. For example OPAL_SUMMARY_ADD([[Transports]],[[Foo]],...,[yes]) will add the following to the summary: Transports ----------------------- Foo: yes With this commit two sections are added: Transports, Resource Managers. The OPAL_SUMMARY_PRINT macro is called after AC_OUTPUT and prints out some information about the build (version, projects, etc) and then the summarys sections. It will additionally print a warning if internal debugging is enabled. Example output: Open MPI configuration: ----------------------- Version: 3.0.0 a1 Build Open Platform Abstration project: yes Build Open Runtime project: yes Build Open MPI project: yes Build Open SHMEM project: no MPI C++ bindings (deprecated): no MPI Fortran bindings: mpif.h, use mpi, use mpi_f08 Debug build: yes Transports ----------------------- Cray uGNI (Gemini/Aries): no Intel Omnipath (PSM2): no KNEM Shared Memory: no Linux CMA IPC: no Mellanox MXM: no Open UCX: no OpenFabrics libfabric: no OpenFabrics Verbs: no portals4: no QLogic Infinipath (PSM): no tcp: yes XPMEM Shared Memory: no Resource Managers ----------------------- Cray Alps: no Grid Engine: no LSF: no Slurm: yes Torque: yes INTERNAL DEBUGGING IS ENABLED. DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS! Signed-off-by: Nathan Hjelm <hjelmn@me.com>
Этот коммит содержится в:
родитель
d6fb56af29
Коммит
d2f5fca82a
@ -3,6 +3,8 @@ dnl
|
||||
dnl Copyright (c) 2001-2011 Mellanox Technologies Ltd. ALL RIGHTS RESERVED.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -16,51 +18,50 @@ dnl
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OMPI_CHECK_MXM],[
|
||||
AC_ARG_WITH([mxm],
|
||||
[AC_HELP_STRING([--with-mxm(=DIR)],
|
||||
[Build Mellanox Messaging support, optionally adding
|
||||
DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries])])
|
||||
AC_ARG_WITH([mxm-libdir],
|
||||
[AC_HELP_STRING([--with-mxm-libdir=DIR],
|
||||
[Search for Mellanox MXM libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([mxm-libdir], [$with_mxm_libdir], [libmxm.*])
|
||||
if test -z "$ompi_check_mxm_happy" ; then
|
||||
AC_ARG_WITH([mxm],
|
||||
[AC_HELP_STRING([--with-mxm(=DIR)],
|
||||
[Build Mellanox Messaging support, optionally adding
|
||||
DIR/include and DIR/lib or DIR/lib64 to the search path for headers and libraries])])
|
||||
AC_ARG_WITH([mxm-libdir],
|
||||
[AC_HELP_STRING([--with-mxm-libdir=DIR],
|
||||
[Search for Mellanox MXM libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([mxm-libdir], [$with_mxm_libdir], [libmxm.*])
|
||||
|
||||
ompi_check_mxm_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_mxm_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_mxm_$1_save_LIBS="$LIBS"
|
||||
ompi_check_mxm_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_mxm_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_mxm_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$with_mxm" != "no"],
|
||||
[AS_IF([test ! -z "$with_mxm" && test "$with_mxm" != "yes"],
|
||||
[
|
||||
AS_IF([test "$with_mxm" != "no"],
|
||||
[AS_IF([test ! -z "$with_mxm" && test "$with_mxm" != "yes"],
|
||||
[
|
||||
ompi_check_mxm_dir="$with_mxm"
|
||||
])
|
||||
AS_IF([test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"],
|
||||
[ompi_check_mxm_libdir="$with_mxm_libdir"])
|
||||
])
|
||||
AS_IF([test ! -z "$with_mxm_libdir" && test "$with_mxm_libdir" != "yes"],
|
||||
[ompi_check_mxm_libdir="$with_mxm_libdir"])
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[mxm/api/mxm_api.h],
|
||||
[mxm],
|
||||
[mxm_cleanup],
|
||||
[],
|
||||
[$ompi_check_mxm_dir],
|
||||
[$ompi_check_mxm_libdir],
|
||||
[ompi_check_mxm_happy="yes"],
|
||||
[ompi_check_mxm_happy="no"])],
|
||||
[ompi_check_mxm_happy="no"])
|
||||
OPAL_CHECK_PACKAGE([ompi_check_mxm],
|
||||
[mxm/api/mxm_api.h],
|
||||
[mxm],
|
||||
[mxm_cleanup],
|
||||
[],
|
||||
[$ompi_check_mxm_dir],
|
||||
[$ompi_check_mxm_libdir],
|
||||
[ompi_check_mxm_happy="yes"],
|
||||
[ompi_check_mxm_happy="no"])],
|
||||
[ompi_check_mxm_happy="no"])
|
||||
|
||||
CPPFLAGS="$ompi_check_mxm_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_mxm_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_mxm_$1_save_LIBS"
|
||||
|
||||
|
||||
CPPFLAGS="$ompi_check_mxm_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_mxm_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_mxm_$1_save_LIBS"
|
||||
|
||||
AC_MSG_CHECKING(for MXM version compatibility)
|
||||
AC_REQUIRE_CPP
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include"
|
||||
AC_COMPILE_IFELSE(
|
||||
AC_MSG_CHECKING(for MXM version compatibility)
|
||||
AC_REQUIRE_CPP
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -I$ompi_check_mxm_dir/include"
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <mxm/api/mxm_version.h>]],
|
||||
[[
|
||||
[[
|
||||
#ifndef MXM_VERSION
|
||||
#error "MXM Version is less than 2.1, please upgrade"
|
||||
#endif
|
||||
@ -72,13 +73,19 @@ AC_DEFUN([OMPI_CHECK_MXM],[
|
||||
[ompi_mxm_version_ok="yes"],
|
||||
[ompi_mxm_version_ok="no"])
|
||||
|
||||
AC_MSG_RESULT([$ompi_mxm_version_ok])
|
||||
CFLAGS=$old_CFLAGS
|
||||
AC_MSG_RESULT([$ompi_mxm_version_ok])
|
||||
CFLAGS=$old_CFLAGS
|
||||
|
||||
AS_IF([test "$ompi_mxm_version_ok" = "no"], [ompi_check_mxm_happy="no"])
|
||||
AS_IF([test "$ompi_mxm_version_ok" = "no"], [ompi_check_mxm_happy="no"])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[Mellanox MXM]],[$1],[$ompi_check_mxm_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_check_mxm_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_LDFLAGS="[$]$_LDFLAGS $ompi_check_mxm_LDFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $ompi_check_mxm_LIBS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_mxm_CPPFLAGS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_mxm" && test "$with_mxm" != "no"],
|
||||
[AC_MSG_ERROR([MXM support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
@ -14,6 +14,8 @@ dnl Copyright (c) 2006 QLogic Corp. All rights reserved.
|
||||
dnl Copyright (c) 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 (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -27,46 +29,53 @@ dnl
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OMPI_CHECK_PSM],[
|
||||
AC_ARG_WITH([psm],
|
||||
[AC_HELP_STRING([--with-psm(=DIR)],
|
||||
[Build PSM (Qlogic InfiniPath) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([psm], [$with_psm], [include/psm.h])
|
||||
AC_ARG_WITH([psm-libdir],
|
||||
[AC_HELP_STRING([--with-psm-libdir=DIR],
|
||||
[Search for PSM (QLogic InfiniPath PSM) libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([psm-libdir], [$with_psm_libdir], [libpsm_infinipath.*])
|
||||
if test -z "$ompi_check_psm_happy" ; then
|
||||
AC_ARG_WITH([psm],
|
||||
[AC_HELP_STRING([--with-psm(=DIR)],
|
||||
[Build PSM (Qlogic InfiniPath) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([psm], [$with_psm], [include/psm.h])
|
||||
AC_ARG_WITH([psm-libdir],
|
||||
[AC_HELP_STRING([--with-psm-libdir=DIR],
|
||||
[Search for PSM (QLogic InfiniPath PSM) libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([psm-libdir], [$with_psm_libdir], [libpsm_infinipath.*])
|
||||
|
||||
ompi_check_psm_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_psm_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_psm_$1_save_LIBS="$LIBS"
|
||||
ompi_check_psm_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_psm_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_psm_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$with_psm" != "no"],
|
||||
[AS_IF([test ! -z "$with_psm" && test "$with_psm" != "yes"],
|
||||
[ompi_check_psm_dir="$with_psm"])
|
||||
AS_IF([test ! -z "$with_psm_libdir" && test "$with_psm_libdir" != "yes"],
|
||||
[ompi_check_psm_libdir="$with_psm_libdir"])
|
||||
AS_IF([test "$with_psm" != "no"],
|
||||
[AS_IF([test ! -z "$with_psm" && test "$with_psm" != "yes"],
|
||||
[ompi_check_psm_dir="$with_psm"])
|
||||
AS_IF([test ! -z "$with_psm_libdir" && test "$with_psm_libdir" != "yes"],
|
||||
[ompi_check_psm_libdir="$with_psm_libdir"])
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[psm.h],
|
||||
[psm_infinipath],
|
||||
[psm_finalize],
|
||||
[],
|
||||
[$ompi_check_psm_dir],
|
||||
[$ompi_check_psm_libdir],
|
||||
[ompi_check_psm_happy="yes"],
|
||||
[ompi_check_psm_happy="no"])],
|
||||
[ompi_check_psm_happy="no"])
|
||||
OPAL_CHECK_PACKAGE([ompi_check_psm],
|
||||
[psm.h],
|
||||
[psm_infinipath],
|
||||
[psm_finalize],
|
||||
[],
|
||||
[$ompi_check_psm_dir],
|
||||
[$ompi_check_psm_libdir],
|
||||
[ompi_check_psm_happy="yes"],
|
||||
[ompi_check_psm_happy="no"])],
|
||||
[ompi_check_psm_happy="no"])
|
||||
|
||||
CPPFLAGS="$ompi_check_psm_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_psm_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_psm_$1_save_LIBS"
|
||||
CPPFLAGS="$ompi_check_psm_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_psm_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_psm_$1_save_LIBS"
|
||||
|
||||
AS_IF([test "$ompi_check_psm_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([PSM driver does not currently support progress threads. Disabling BTL.])
|
||||
ompi_check_psm_happy="no"])
|
||||
AS_IF([test "$ompi_check_psm_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([PSM driver does not currently support progress threads. Disabling BTL.])
|
||||
ompi_check_psm_happy="no"])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[QLogic Infinipath (PSM)]],[$1],[$ompi_check_psm_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_check_psm_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_psm_LDFLAGS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_psm_CPPFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $ompi_check_psm_LIBS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_psm" && test "$with_psm" != "no"],
|
||||
[AC_MSG_ERROR([PSM support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
@ -15,6 +15,8 @@
|
||||
# Copyright (c) 2014 Intel Corporation. All rights reserved.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -28,46 +30,53 @@
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OMPI_CHECK_PSM2],[
|
||||
AC_ARG_WITH([psm2],
|
||||
[AC_HELP_STRING([--with-psm2(=DIR)],
|
||||
[Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([psm2], [$with_psm2], [include/psm2.h])
|
||||
AC_ARG_WITH([psm2-libdir],
|
||||
[AC_HELP_STRING([--with-psm2-libdir=DIR],
|
||||
[Search for PSM (Intel PSM2) libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([psm2-libdir], [$with_psm2_libdir], [libpsm2.*])
|
||||
if test -z "$ompi_check_psm2_happy" ; then
|
||||
AC_ARG_WITH([psm2],
|
||||
[AC_HELP_STRING([--with-psm2(=DIR)],
|
||||
[Build PSM2 (Intel PSM2) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([psm2], [$with_psm2], [include/psm2.h])
|
||||
AC_ARG_WITH([psm2-libdir],
|
||||
[AC_HELP_STRING([--with-psm2-libdir=DIR],
|
||||
[Search for PSM (Intel PSM2) libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([psm2-libdir], [$with_psm2_libdir], [libpsm2.*])
|
||||
|
||||
ompi_check_psm2_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_psm2_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_psm2_$1_save_LIBS="$LIBS"
|
||||
ompi_check_psm2_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_psm2_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_psm2_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$with_psm2" != "no"],
|
||||
[AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "yes"],
|
||||
[ompi_check_psm2_dir="$with_psm2"])
|
||||
AS_IF([test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"],
|
||||
[ompi_check_psm2_libdir="$with_psm2_libdir"])
|
||||
AS_IF([test "$with_psm2" != "no"],
|
||||
[AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "yes"],
|
||||
[ompi_check_psm2_dir="$with_psm2"])
|
||||
AS_IF([test ! -z "$with_psm2_libdir" && test "$with_psm2_libdir" != "yes"],
|
||||
[ompi_check_psm2_libdir="$with_psm2_libdir"])
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[psm2.h],
|
||||
[psm2],
|
||||
[psm2_mq_irecv2],
|
||||
[],
|
||||
[$ompi_check_psm2_dir],
|
||||
[$ompi_check_psm2_libdir],
|
||||
[ompi_check_psm2_happy="yes"],
|
||||
[ompi_check_psm2_happy="no"])],
|
||||
[ompi_check_psm2_happy="no"])
|
||||
OPAL_CHECK_PACKAGE([ompi_check_psm2],
|
||||
[psm2.h],
|
||||
[psm2],
|
||||
[psm2_mq_irecv2],
|
||||
[],
|
||||
[$ompi_check_psm2_dir],
|
||||
[$ompi_check_psm2_libdir],
|
||||
[ompi_check_psm2_happy="yes"],
|
||||
[ompi_check_psm2_happy="no"])],
|
||||
[ompi_check_psm2_happy="no"])
|
||||
|
||||
CPPFLAGS="$ompi_check_psm2_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_psm2_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_psm2_$1_save_LIBS"
|
||||
CPPFLAGS="$ompi_check_psm2_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_psm2_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_psm2_$1_save_LIBS"
|
||||
|
||||
AS_IF([test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([PSM2 driver does not currently support progress threads. Disabling MTL.])
|
||||
ompi_check_psm2_happy="no"])
|
||||
AS_IF([test "$ompi_check_psm2_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([PSM2 driver does not currently support progress threads. Disabling MTL.])
|
||||
ompi_check_psm2_happy="no"])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[Intel Omnipath (PSM2)]],[$1],[$ompi_check_psm2_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_check_psm2_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_psm2_LDFLAGS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_psm2_CPPFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $ompi_check_psm2_LIBS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_psm2" && test "$with_psm2" != "no"],
|
||||
[AC_MSG_ERROR([PSM2 support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
@ -3,6 +3,8 @@
|
||||
# Copyright (C) 2015 Mellanox Technologies Ltd. ALL RIGHTS RESERVED.
|
||||
# Copyright (c) 2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -16,65 +18,73 @@
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OMPI_CHECK_UCX],[
|
||||
AC_ARG_WITH([ucx],
|
||||
[AC_HELP_STRING([--with-ucx(=DIR)],
|
||||
[Build with Unified Communication X library support])])
|
||||
OPAL_CHECK_WITHDIR([ucx], [$with_ucx], [include/ucp/api/ucp.h])
|
||||
AC_ARG_WITH([ucx-libdir],
|
||||
[AC_HELP_STRING([--with-ucx-libdir=DIR],
|
||||
[Search for Unified Communication X libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([ucx-libdir], [$with_ucx_libdir], [libucp.*])
|
||||
if test -z "$ompi_check_ucx_happy" ; then
|
||||
AC_ARG_WITH([ucx],
|
||||
[AC_HELP_STRING([--with-ucx(=DIR)],
|
||||
[Build with Unified Communication X library support])])
|
||||
OPAL_CHECK_WITHDIR([ucx], [$with_ucx], [include/ucp/api/ucp.h])
|
||||
AC_ARG_WITH([ucx-libdir],
|
||||
[AC_HELP_STRING([--with-ucx-libdir=DIR],
|
||||
[Search for Unified Communication X libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([ucx-libdir], [$with_ucx_libdir], [libucp.*])
|
||||
|
||||
ompi_check_ucx_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_ucx_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_ucx_$1_save_LIBS="$LIBS"
|
||||
ompi_check_ucx_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_ucx_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_ucx_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$with_ucx" != "no"],
|
||||
[AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "yes"],
|
||||
[
|
||||
ompi_check_ucx_dir="$with_ucx"
|
||||
ompi_check_ucx_libdir="$with_ucx/lib"
|
||||
])
|
||||
AS_IF([test ! -z "$with_ucx_libdir" && test "$with_ucx_libdir" != "yes"],
|
||||
[ompi_check_ucx_libdir="$with_ucx_libdir"])
|
||||
AS_IF([test "$with_ucx" != "no"],
|
||||
[AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "yes"],
|
||||
[
|
||||
ompi_check_ucx_dir="$with_ucx"
|
||||
ompi_check_ucx_libdir="$with_ucx/lib"
|
||||
])
|
||||
AS_IF([test ! -z "$with_ucx_libdir" && test "$with_ucx_libdir" != "yes"],
|
||||
[ompi_check_ucx_libdir="$with_ucx_libdir"])
|
||||
|
||||
ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir"
|
||||
ompi_check_ucx_extra_libs="-L$ompi_check_ucx_libdir"
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[ucp/api/ucp.h],
|
||||
[ucp],
|
||||
[ucp_cleanup],
|
||||
[$ompi_check_ucx_extra_libs],
|
||||
[$ompi_check_ucx_dir],
|
||||
[$ompi_check_ucx_libdir],
|
||||
[ompi_check_ucx_happy="yes"],
|
||||
[ompi_check_ucx_happy="no"])],
|
||||
[ompi_check_ucx_happy="no"])
|
||||
OPAL_CHECK_PACKAGE([ompi_check_ucx],
|
||||
[ucp/api/ucp.h],
|
||||
[ucp],
|
||||
[ucp_cleanup],
|
||||
[$ompi_check_ucx_extra_libs],
|
||||
[$ompi_check_ucx_dir],
|
||||
[$ompi_check_ucx_libdir],
|
||||
[ompi_check_ucx_happy="yes"],
|
||||
[ompi_check_ucx_happy="no"])],
|
||||
[ompi_check_ucx_happy="no"])
|
||||
|
||||
|
||||
|
||||
CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_ucx_$1_save_LIBS"
|
||||
CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_ucx_$1_save_LIBS"
|
||||
|
||||
AC_MSG_CHECKING(for UCX version compatibility)
|
||||
AC_REQUIRE_CPP
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -I$ompi_check_ucx_dir/include"
|
||||
AC_COMPILE_IFELSE(
|
||||
AC_MSG_CHECKING(for UCX version compatibility)
|
||||
AC_REQUIRE_CPP
|
||||
old_CFLAGS="$CFLAGS"
|
||||
CFLAGS="$CFLAGS -I$ompi_check_ucx_dir/include"
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[#include <uct/api/version.h>]],
|
||||
[[
|
||||
]])],
|
||||
[[
|
||||
]])],
|
||||
[ompi_ucx_version_ok="yes"],
|
||||
[ompi_ucx_version_ok="no"])
|
||||
|
||||
AC_MSG_RESULT([$ompi_ucx_version_ok])
|
||||
CFLAGS=$old_CFLAGS
|
||||
AC_MSG_RESULT([$ompi_ucx_version_ok])
|
||||
CFLAGS=$old_CFLAGS
|
||||
|
||||
AS_IF([test "$ompi_ucx_version_ok" = "no"], [ompi_check_ucx_happy="no"])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[Open UCX]],[$1],[$ompi_check_ucx_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_ucx_version_ok" = "no"], [ompi_check_ucx_happy="no"])
|
||||
|
||||
AS_IF([test "$ompi_check_ucx_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_CFLAGS="[$]$1_CFLAGS $ompi_check_ucx_CFLAGS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $ompi_check_ucx_LDFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $ompi_check_ucx_LIBS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_ucx" && test "$with_ucx" != "no"],
|
||||
[AC_MSG_ERROR([UCX support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
@ -5,7 +5,7 @@
|
||||
# reserved.
|
||||
# Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2010-2012 IBM Corporation. All rights reserved.
|
||||
# Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
|
||||
# Copyright (c) 2013-2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
@ -18,29 +18,31 @@
|
||||
# --------------------------------------------------------
|
||||
# check if cma support is wanted.
|
||||
AC_DEFUN([OPAL_CHECK_CMA],[
|
||||
OPAL_VAR_SCOPE_PUSH([ompi_check_cma_happy ompi_check_cma_need_defs])
|
||||
if test -z "$ompi_check_cma_happy" ; then
|
||||
OPAL_VAR_SCOPE_PUSH([ompi_check_cma_need_defs ompi_check_cma_kernel_version])
|
||||
|
||||
ompi_check_cma_happy="no"
|
||||
AC_ARG_WITH([cma],
|
||||
[AC_HELP_STRING([--with-cma],
|
||||
[Build Cross Memory Attach support (default: no)])])
|
||||
ompi_check_cma_happy="no"
|
||||
AC_ARG_WITH([cma],
|
||||
[AC_HELP_STRING([--with-cma],
|
||||
[Build Cross Memory Attach support (default: no)])])
|
||||
|
||||
AC_MSG_CHECKING([if user requested CMA build])
|
||||
if test "$with_cma" = "yes" ; then
|
||||
# Enable CMA support by default if process_vm_readv is defined in glibc
|
||||
AC_CHECK_FUNC(process_vm_readv, [ompi_check_cma_need_defs=0],
|
||||
[ompi_check_cma_need_defs=1])
|
||||
# If the user specifically requests CMA go ahead and enable it even
|
||||
# if the glibc version does not support process_vm_readv
|
||||
if test $ompi_check_cma_need_defs = 0 || test "x$with_cma" = "xyes" ; then
|
||||
ompi_check_cma_happy="yes"
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_CHECK_FUNC(process_vm_readv, [ompi_check_cma_need_defs=0],
|
||||
[ompi_check_cma_need_defs=1])
|
||||
AC_DEFINE_UNQUOTED([OPAL_CMA_NEED_SYSCALL_DEFS],
|
||||
[$ompi_check_cma_need_defs],
|
||||
[Need CMA syscalls defined])
|
||||
AC_CHECK_HEADERS([sys/prctl.h])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AS_IF([test "$ompi_check_cma_happy" = "yes"],
|
||||
[$2],
|
||||
[$3])
|
||||
fi
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])dnl
|
||||
OPAL_VAR_SCOPE_POP
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[Linux CMA IPC]],[$1],[$ompi_check_cma_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_check_cma_happy" = "yes"], [$2], [$3])
|
||||
])
|
||||
|
@ -1,64 +0,0 @@
|
||||
# -*- shell-script ; indent-tabs-mode:nil -*-
|
||||
#
|
||||
# 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) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2011-2014 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
#
|
||||
# special check for cray xpmem, uses macro(s) from pkg.m4
|
||||
#
|
||||
# OPAL_CHECK_CRAY_XPMEM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([OPAL_CHECK_CRAY_XPMEM],[
|
||||
AC_ARG_WITH([cray_xpmem],
|
||||
[AC_HELP_STRING([--with-cray-xpmem(=yes/no)],
|
||||
[Build Cray XPMEM support(default: auto)])],
|
||||
[], with_cray_xpmem=auto)
|
||||
|
||||
AC_MSG_CHECKING([for Cray XPMEM support])
|
||||
AS_IF([test "$with_cray_xpmem" = "no"],
|
||||
[AC_MSG_RESULT([no])
|
||||
$3],
|
||||
[AS_IF([test "$with_cray_xpmem" = "auto" || test "$with_cray_xpmem" = "yes"],
|
||||
[PKG_CHECK_MODULES_STATIC([CRAY_XPMEM], [cray-xpmem],
|
||||
[opal_check_cray_xpmem_happy="yes"],
|
||||
[opal_check_cray_xpmem_happy="no"]
|
||||
[AS_IF([test "$with_cray_xpmem" = "yes"],
|
||||
[AC_MSG_WARN([Cray XPMEM support requested but pkg-config failed.])
|
||||
AC_MSG_ERROR([Aborting])],[])]
|
||||
)],
|
||||
[])
|
||||
])
|
||||
|
||||
AS_IF([test "$opal_check_cray_xpmem_happy" = "yes" && test "$enable_static" = "yes"],
|
||||
[CRAY_XPMEM_LIBS = $CRAY_XPMEM_STATIC_LIBS],[])
|
||||
|
||||
AS_IF([test "$opal_check_cray_xpmem_happy" = "yes"],
|
||||
[$1_LDFLAGS="$CRAY_XPMEM_LIBS"
|
||||
$1_CPPFLAGS="$CRAY_XPMEM_CFLAGS"
|
||||
$1_LIBS="$CRAY_XPMEM_LIBS"
|
||||
AC_DEFINE_UNQUOTED([HAVE_XPMEM_H], [1],[is xpmem.h available])
|
||||
$2], [$3])
|
||||
])
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@ dnl of Tennessee Research Foundation. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2010-2012 IBM Corporation. All rights reserved.
|
||||
dnl Copyright (c) 2014 Los Alamos National Security, LLC. All rights
|
||||
dnl Copyright (c) 2014-2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
@ -22,48 +22,53 @@ dnl
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OPAL_CHECK_KNEM],[
|
||||
OPAL_VAR_SCOPE_PUSH([opal_check_knem_happy opal_check_knem_$1_save_CPPFLAGS opal_check_knem_dir])
|
||||
AC_ARG_WITH([knem],
|
||||
[AC_HELP_STRING([--with-knem(=DIR)],
|
||||
[Build knem Linux kernel module support, searching for headers in DIR/include])])
|
||||
if test -z "$opal_check_knem_happy" ; then
|
||||
OPAL_VAR_SCOPE_PUSH([opal_check_knem_$1_save_CPPFLAGS opal_check_knem_dir])
|
||||
AC_ARG_WITH([knem],
|
||||
[AC_HELP_STRING([--with-knem(=DIR)],
|
||||
[Build knem Linux kernel module support, searching for headers in DIR/include])])
|
||||
|
||||
OPAL_CHECK_WITHDIR([knem], [$with_knem], [include/knem_io.h])
|
||||
opal_check_knem_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
OPAL_CHECK_WITHDIR([knem], [$with_knem], [include/knem_io.h])
|
||||
opal_check_knem_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
|
||||
AS_IF([test "$with_knem" != "no"],
|
||||
[AS_IF([test ! -z "$with_knem" && test "$with_knem" != "yes"],
|
||||
[opal_check_knem_dir="$with_knem"])
|
||||
opal_check_knem_happy=no
|
||||
|
||||
_OPAL_CHECK_PACKAGE_HEADER([$1],
|
||||
[knem_io.h],
|
||||
[$opal_check_knem_dir],
|
||||
[opal_check_knem_happy="yes"],
|
||||
[opal_check_knem_happy="no"])],
|
||||
[opal_check_knem_happy="no"])
|
||||
AS_IF([test "$with_knem" != "no"],
|
||||
[AS_IF([test ! -z "$with_knem" && test "$with_knem" != "yes"],
|
||||
[opal_check_knem_dir="$with_knem"])
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS"
|
||||
_OPAL_CHECK_PACKAGE_HEADER([ompi_check_knem],
|
||||
[knem_io.h],
|
||||
[$opal_check_knem_dir],
|
||||
[opal_check_knem_happy="yes"],
|
||||
[])],
|
||||
[])
|
||||
|
||||
# need at least version 0x0000000b
|
||||
AS_IF([test "$opal_check_knem_happy" = "yes"],
|
||||
[AC_CACHE_CHECK([for knem ABI version 0xb or later],
|
||||
[opal_cv_knem_version_ok],
|
||||
[AC_PREPROC_IFELSE(
|
||||
[AC_LANG_PROGRAM([
|
||||
CPPFLAGS="$CPPFLAGS $ompi_check_knem_CPPFLAGS"
|
||||
|
||||
# need at least version 0x0000000b
|
||||
if test "$opal_check_knem_happy" = "yes" ; then
|
||||
AC_PREPROC_IFELSE([AC_LANG_PROGRAM([
|
||||
#include <knem_io.h>
|
||||
],[
|
||||
],[
|
||||
#if KNEM_ABI_VERSION < 0xc
|
||||
#error "Version less than 0xc"
|
||||
#endif
|
||||
])],
|
||||
[opal_cv_knem_version_ok=yes],
|
||||
[opal_cv_knem_version_ok=no])])])
|
||||
])],
|
||||
[opal_check_knem_happy=yes],
|
||||
[opal_check_knem_happy=no])
|
||||
fi
|
||||
|
||||
CPPFLAGS="$opal_check_knem_$1_save_CPPFLAGS"
|
||||
CPPFLAGS="$opal_check_knem_$1_save_CPPFLAGS"
|
||||
|
||||
AS_IF([test "$opal_check_knem_happy" = "yes" && test "$opal_cv_knem_version_ok" = "yes"],
|
||||
[$2],
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[KNEM Shared Memory]],[$1],[$opal_check_knem_happy])
|
||||
OPAL_VAR_SCOPE_POP
|
||||
fi
|
||||
|
||||
AS_IF([test "$opal_check_knem_happy" = "yes"],
|
||||
[$1_CPPFLAGS="[$]$1_CPPFLAGS $ompi_check_knem_CPPFLAGS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_knem" && test "$with_knem" != "no"],
|
||||
[AC_MSG_ERROR([KNEM support requested but not found. Aborting])])
|
||||
$3])
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])dnl
|
||||
|
@ -1,6 +1,8 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2015 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -18,66 +20,76 @@ dnl
|
||||
# action-if-not-found.
|
||||
#
|
||||
AC_DEFUN([OPAL_CHECK_LIBFABRIC],[
|
||||
OPAL_VAR_SCOPE_PUSH([opal_check_libfabric_$1_save_CPPFLAGS opal_check_libfabric_$1_save_LDFLAGS opal_check_libfabric_$1_save_LIBS])
|
||||
if test -z "$opal_check_libfabric_happy" ; then
|
||||
OPAL_VAR_SCOPE_PUSH([opal_check_libfabric_$1_save_CPPFLAGS opal_check_libfabric_$1_save_LDFLAGS opal_check_libfabric_$1_save_LIBS])
|
||||
|
||||
# Add --with options
|
||||
AC_ARG_WITH([libfabric],
|
||||
[AC_HELP_STRING([--with-libfabric=DIR],
|
||||
[Specify location of 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([libfabric-libdir],
|
||||
[AC_HELP_STRING([--with-libfabric-libdir=DIR],
|
||||
[Search for libfabric libraries in DIR])])
|
||||
# Add --with options
|
||||
AC_ARG_WITH([libfabric],
|
||||
[AC_HELP_STRING([--with-libfabric=DIR],
|
||||
[Specify location of 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([libfabric-libdir],
|
||||
[AC_HELP_STRING([--with-libfabric-libdir=DIR],
|
||||
[Search for libfabric libraries in DIR])])
|
||||
|
||||
# Sanity check the --with values
|
||||
OPAL_CHECK_WITHDIR([libfabric], [$with_libfabric],
|
||||
[include/rdma/fabric.h])
|
||||
OPAL_CHECK_WITHDIR([libfabric-libdir], [$with_libfabric_libdir],
|
||||
[libfabric.*])
|
||||
# Sanity check the --with values
|
||||
OPAL_CHECK_WITHDIR([libfabric], [$with_libfabric],
|
||||
[include/rdma/fabric.h])
|
||||
OPAL_CHECK_WITHDIR([libfabric-libdir], [$with_libfabric_libdir],
|
||||
[libfabric.*])
|
||||
|
||||
opal_check_libfabric_$1_save_CPPFLAGS=$CPPFLAGS
|
||||
opal_check_libfabric_$1_save_LDFLAGS=$LDFLAGS
|
||||
opal_check_libfabric_$1_save_LIBS=$LIBS
|
||||
opal_check_libfabric_$1_save_CPPFLAGS=$CPPFLAGS
|
||||
opal_check_libfabric_$1_save_LDFLAGS=$LDFLAGS
|
||||
opal_check_libfabric_$1_save_LIBS=$LIBS
|
||||
|
||||
opal_check_libfabric_happy=1
|
||||
AS_IF([test "$with_libfabric" = "no"],
|
||||
[opal_check_libfabric_happy=0])
|
||||
opal_check_libfabric_happy=yes
|
||||
AS_IF([test "$with_libfabric" = "no"],
|
||||
[opal_check_libfabric_happy=no])
|
||||
|
||||
AS_IF([test $opal_check_libfabric_happy -eq 1],
|
||||
[AC_MSG_CHECKING([looking for libfabric in])
|
||||
AS_IF([test "$with_libfabric" != "yes"],
|
||||
[opal_libfabric_dir=$with_libfabric
|
||||
AC_MSG_RESULT([($opal_libfabric_dir)])],
|
||||
[AC_MSG_RESULT([(default search paths)])])
|
||||
AS_IF([test ! -z "$with_libfabric_libdir" && \
|
||||
test "$with_libfabric_libdir" != "yes"],
|
||||
[opal_libfabric_libdir=$with_libfabric_libdir])
|
||||
])
|
||||
AS_IF([test $opal_check_libfabric_happy = yes],
|
||||
[AC_MSG_CHECKING([looking for libfabric in])
|
||||
AS_IF([test "$with_libfabric" != "yes"],
|
||||
[opal_libfabric_dir=$with_libfabric
|
||||
AC_MSG_RESULT([($opal_libfabric_dir)])],
|
||||
[AC_MSG_RESULT([(default search paths)])])
|
||||
AS_IF([test ! -z "$with_libfabric_libdir" && \
|
||||
test "$with_libfabric_libdir" != "yes"],
|
||||
[opal_libfabric_libdir=$with_libfabric_libdir])
|
||||
])
|
||||
|
||||
AS_IF([test $opal_check_libfabric_happy -eq 1],
|
||||
[OPAL_CHECK_PACKAGE([$1],
|
||||
[rdma/fabric.h],
|
||||
[fabric],
|
||||
[fi_getinfo],
|
||||
[],
|
||||
[$opal_libfabric_dir],
|
||||
[$opal_libfabric_libdir],
|
||||
[opal_check_libfabric_happy=1],
|
||||
[opal_check_libfabric_happy=0])])
|
||||
AS_IF([test $opal_check_libfabric_happy = yes],
|
||||
[OPAL_CHECK_PACKAGE([opal_check_libfabric],
|
||||
[rdma/fabric.h],
|
||||
[fabric],
|
||||
[fi_getinfo],
|
||||
[],
|
||||
[$opal_libfabric_dir],
|
||||
[$opal_libfabric_libdir],
|
||||
[],
|
||||
[opal_check_libfabric_happy=no])])
|
||||
|
||||
CPPFLAGS=$opal_check_libfabric_$1_save_CPPFLAGS
|
||||
LDFLAGS=$opal_check_libfabric_$1_save_LDFLAGS
|
||||
LIBS=$opal_check_libfabric_$1_save_LIBS
|
||||
CPPFLAGS=$opal_check_libfabric_$1_save_CPPFLAGS
|
||||
LDFLAGS=$opal_check_libfabric_$1_save_LDFLAGS
|
||||
LIBS=$opal_check_libfabric_$1_save_LIBS
|
||||
|
||||
AC_SUBST($1_CPPFLAGS)
|
||||
AC_SUBST($1_LDFLAGS)
|
||||
AC_SUBST($1_LIBS)
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[OpenFabrics libfabric]],[$1],[$opal_check_libfabric_happy])
|
||||
|
||||
AS_IF([test $opal_check_libfabric_happy -eq 1],
|
||||
OPAL_VAR_SCOPE_POP
|
||||
fi
|
||||
|
||||
if test $opal_check_libfabric_happy = yes ; then
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_libfabric_CPPFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $opal_check_libfabric_LIBS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $opal_check_libfabric_LDFLAGS"
|
||||
|
||||
AC_SUBST($1_CPPFLAGS)
|
||||
AC_SUBST($1_LDFLAGS)
|
||||
AC_SUBST($1_LIBS)
|
||||
fi
|
||||
|
||||
AS_IF([test $opal_check_libfabric_happy = yes],
|
||||
[$2],
|
||||
[AS_IF([test "$opal_want_libfabric" = "yes"],
|
||||
[AC_MSG_WARN([libfabric support requested (via --with-libfabric), but not found.])
|
||||
AC_MSG_ERROR([Cannot continue.])])
|
||||
$3])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])dnl
|
||||
|
@ -11,7 +11,7 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2015 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2006-2015 Los Alamos National Security, LLC. All rights
|
||||
# Copyright (c) 2006-2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2006-2009 Mellanox Technologies. All rights reserved.
|
||||
# Copyright (c) 2010-2012 Oracle and/or its affiliates. All rights reserved.
|
||||
@ -38,253 +38,265 @@ AC_DEFUN([OPAL_CHECK_OPENFABRICS],[
|
||||
# verbs stuff lives.
|
||||
AC_REQUIRE([OPAL_CHECK_VERBS_DIR])
|
||||
|
||||
#
|
||||
# Add padding to OpenIB header
|
||||
#
|
||||
AC_ARG_ENABLE([openib-control-hdr-padding],
|
||||
[AC_HELP_STRING([--enable-openib-control-hdr-padding],
|
||||
[Add padding bytes to the openib BTL control header (default:disabled)])])
|
||||
AC_MSG_CHECKING([if want to add padding to the openib BTL control header])
|
||||
if test "$enable_openib_control_hdr_padding" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
ompi_openib_pad_hdr=1
|
||||
elif test "$enable_openib_control_hdr_padding" = "no"; then
|
||||
AC_MSG_RESULT([no])
|
||||
ompi_openib_pad_hdr=0
|
||||
else
|
||||
#
|
||||
# Enable padding for SPARC platforms by default because the
|
||||
# btl will segv otherwise. Keep padding disabled for other
|
||||
# platforms since there are some performance implications with
|
||||
# padding on for those plaforms.
|
||||
#
|
||||
case "${host}" in
|
||||
sparc*)
|
||||
AC_MSG_RESULT([yes (enabled by default on SPARC)])
|
||||
if test -z "$opal_check_openib_happy" ; then
|
||||
#
|
||||
# Add padding to OpenIB header
|
||||
#
|
||||
AC_ARG_ENABLE([openib-control-hdr-padding],
|
||||
[AC_HELP_STRING([--enable-openib-control-hdr-padding],
|
||||
[Add padding bytes to the openib BTL control header (default:disabled)])])
|
||||
AC_MSG_CHECKING([if want to add padding to the openib BTL control header])
|
||||
if test "$enable_openib_control_hdr_padding" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
ompi_openib_pad_hdr=1
|
||||
;;
|
||||
*)
|
||||
elif test "$enable_openib_control_hdr_padding" = "no"; then
|
||||
AC_MSG_RESULT([no])
|
||||
ompi_openib_pad_hdr=0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([OPAL_OPENIB_PAD_HDR], [$ompi_openib_pad_hdr],
|
||||
[Add padding bytes to the openib BTL control header])
|
||||
else
|
||||
#
|
||||
# Enable padding for SPARC platforms by default because the
|
||||
# btl will segv otherwise. Keep padding disabled for other
|
||||
# platforms since there are some performance implications with
|
||||
# padding on for those plaforms.
|
||||
#
|
||||
case "${host}" in
|
||||
sparc*)
|
||||
AC_MSG_RESULT([yes (enabled by default on SPARC)])
|
||||
ompi_openib_pad_hdr=1
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT([no])
|
||||
ompi_openib_pad_hdr=0
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
AC_DEFINE_UNQUOTED([OPAL_OPENIB_PAD_HDR], [$ompi_openib_pad_hdr],
|
||||
[Add padding bytes to the openib BTL control header])
|
||||
|
||||
AS_IF([test "$opal_want_verbs" = "no"],
|
||||
[opal_check_openib_happy="no"],
|
||||
[opal_check_openib_happy="yes"])
|
||||
AS_IF([test "$opal_want_verbs" = "no"],
|
||||
[opal_check_openib_happy="no"],
|
||||
[opal_check_openib_happy="yes"])
|
||||
|
||||
ompi_check_openib_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_openib_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_openib_$1_save_LIBS="$LIBS"
|
||||
ompi_check_openib_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_openib_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_openib_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_HEADERS(
|
||||
fcntl.h sys/poll.h,
|
||||
[],
|
||||
[AC_MSG_WARN([fcntl.h sys/poll.h not found. Can not build component.])
|
||||
opal_check_openib_happy="no"])])
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_HEADERS(
|
||||
fcntl.h sys/poll.h,
|
||||
[],
|
||||
[AC_MSG_WARN([fcntl.h sys/poll.h not found. Can not build component.])
|
||||
opal_check_openib_happy="no"])])
|
||||
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[OPAL_CHECK_PACKAGE([$1],
|
||||
[infiniband/verbs.h],
|
||||
[ibverbs],
|
||||
[ibv_open_device],
|
||||
[],
|
||||
[$opal_verbs_dir],
|
||||
[$opal_verbs_libdir],
|
||||
[opal_check_openib_happy="yes"],
|
||||
[opal_check_openib_happy="no"])])
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[OPAL_CHECK_PACKAGE([opal_check_openib],
|
||||
[infiniband/verbs.h],
|
||||
[ibverbs],
|
||||
[ibv_open_device],
|
||||
[],
|
||||
[$opal_verbs_dir],
|
||||
[$opal_verbs_libdir],
|
||||
[opal_check_openib_happy="yes"],
|
||||
[opal_check_openib_happy="no"])])
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS"
|
||||
LDFLAGS="$LDFLAGS $$1_LDFLAGS"
|
||||
LIBS="$LIBS $$1_LIBS"
|
||||
CPPFLAGS="$CPPFLAGS $opal_check_openib_CPPFLAGS"
|
||||
LDFLAGS="$LDFLAGS $opal_check_openib_LDFLAGS"
|
||||
LIBS="$LIBS $opal_check_openib_LIBS"
|
||||
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CACHE_CHECK(
|
||||
[number of arguments to ibv_create_cq],
|
||||
[ompi_cv_func_ibv_create_cq_args],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <infiniband/verbs.h> ]],
|
||||
[[ibv_create_cq(NULL, 0, NULL, NULL, 0);]])],
|
||||
[ompi_cv_func_ibv_create_cq_args=5],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <infiniband/verbs.h> ]],
|
||||
[[ibv_create_cq(NULL, 0, NULL);]])],
|
||||
[ompi_cv_func_ibv_create_cq_args=3],
|
||||
[ompi_cv_func_ibv_create_cq_args="unknown"])])])
|
||||
AS_IF([test "$ompi_cv_func_ibv_create_cq_args" = "unknown"],
|
||||
[AC_MSG_WARN([Can not determine number of args to ibv_create_cq.])
|
||||
AC_MSG_WARN([Not building component.])
|
||||
opal_check_openib_happy="no"],
|
||||
[AC_DEFINE_UNQUOTED([OPAL_IBV_CREATE_CQ_ARGS],
|
||||
[$ompi_cv_func_ibv_create_cq_args],
|
||||
[Number of arguments to ibv_create_cq])])])
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CACHE_CHECK(
|
||||
[number of arguments to ibv_create_cq],
|
||||
[ompi_cv_func_ibv_create_cq_args],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <infiniband/verbs.h> ]],
|
||||
[[ibv_create_cq(NULL, 0, NULL, NULL, 0);]])],
|
||||
[ompi_cv_func_ibv_create_cq_args=5],
|
||||
[AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[#include <infiniband/verbs.h> ]],
|
||||
[[ibv_create_cq(NULL, 0, NULL);]])],
|
||||
[ompi_cv_func_ibv_create_cq_args=3],
|
||||
[ompi_cv_func_ibv_create_cq_args="unknown"])])])
|
||||
AS_IF([test "$ompi_cv_func_ibv_create_cq_args" = "unknown"],
|
||||
[AC_MSG_WARN([Can not determine number of args to ibv_create_cq.])
|
||||
AC_MSG_WARN([Not building component.])
|
||||
opal_check_openib_happy="no"],
|
||||
[AC_DEFINE_UNQUOTED([OPAL_IBV_CREATE_CQ_ARGS],
|
||||
[$ompi_cv_func_ibv_create_cq_args],
|
||||
[Number of arguments to ibv_create_cq])])])
|
||||
|
||||
#
|
||||
# OpenIB dynamic SL
|
||||
#
|
||||
AC_ARG_ENABLE([openib-dynamic-sl],
|
||||
[AC_HELP_STRING([--enable-openib-dynamic-sl],
|
||||
[Enable openib BTL to query Subnet Manager for IB SL (default: enabled)])])
|
||||
#
|
||||
# OpenIB dynamic SL
|
||||
#
|
||||
AC_ARG_ENABLE([openib-dynamic-sl],
|
||||
[AC_HELP_STRING([--enable-openib-dynamic-sl],
|
||||
[Enable openib BTL to query Subnet Manager for IB SL (default: enabled)])])
|
||||
|
||||
# Set these up so that we can do an AC_DEFINE below
|
||||
# (unconditionally)
|
||||
$1_have_xrc=0
|
||||
$1_have_xrc_domains=0
|
||||
$1_have_opensm_devel=0
|
||||
# Set these up so that we can do an AC_DEFINE below
|
||||
# (unconditionally)
|
||||
opal_check_openib_have_xrc=0
|
||||
opal_check_openib_have_xrc_domains=0
|
||||
opal_check_openib_have_opensm_devel=0
|
||||
|
||||
# If we have the openib stuff available, find out what we've got
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_DECLS([IBV_EVENT_CLIENT_REREGISTER, IBV_ACCESS_SO, IBV_ATOMIC_HCA], [], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
AC_CHECK_FUNCS([ibv_get_device_list ibv_resize_cq])
|
||||
|
||||
# struct ibv_device.transport_type was added in OFED v1.2
|
||||
AC_CHECK_MEMBERS([struct ibv_device.transport_type], [], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
|
||||
# We have to check functions both exits *and* are declared
|
||||
# since some distro ship broken ibverbs devel headers
|
||||
# IBV_DEVICE_XRC is common to all OFED versions
|
||||
# ibv_create_xrc_rcv_qp was added in OFED 1.3
|
||||
# ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12
|
||||
if test "$enable_connectx_xrc" = "yes"; then
|
||||
AC_CHECK_DECLS([IBV_DEVICE_XRC],
|
||||
[$1_have_xrc=1
|
||||
$1_have_xrc_domains=1],
|
||||
[],
|
||||
# If we have the openib stuff available, find out what we've got
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_DECLS([IBV_EVENT_CLIENT_REREGISTER, IBV_ACCESS_SO, IBV_ATOMIC_HCA], [], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
fi
|
||||
if test "$enable_connectx_xrc" = "yes" \
|
||||
&& test $$1_have_xrc -eq 1; then
|
||||
AC_CHECK_DECLS([ibv_create_xrc_rcv_qp],
|
||||
[AC_CHECK_FUNCS([ibv_create_xrc_rcv_qp],
|
||||
[], [$1_have_xrc=0])],
|
||||
[$1_have_xrc=0],
|
||||
[#include <infiniband/driver.h>])
|
||||
fi
|
||||
if test "$enable_connectx_xrc" = "yes" \
|
||||
&& test $$1_have_xrc_domains -eq 1; then
|
||||
AC_CHECK_DECLS([ibv_cmd_open_xrcd],
|
||||
[AC_CHECK_DECLS([IBV_SRQT_XRC],
|
||||
[AC_CHECK_FUNCS([ibv_cmd_open_xrcd],
|
||||
[], [$1_have_xrc_domains=0])],
|
||||
[$1_have_xrc_domains=0],
|
||||
[#include <infiniband/verbs.h>])],
|
||||
[$1_have_xrc_domains=0],
|
||||
[#include <infiniband/driver.h>])
|
||||
# XRC and XRC Domains should be considered as exclusive
|
||||
if test "$$1_have_xrc" -eq 1 && \
|
||||
test "$$1_have_xrc_domains" -eq 1; then
|
||||
$1_have_xrc=0
|
||||
AC_CHECK_FUNCS([ibv_get_device_list ibv_resize_cq])
|
||||
|
||||
# struct ibv_device.transport_type was added in OFED v1.2
|
||||
AC_CHECK_MEMBERS([struct ibv_device.transport_type], [], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
|
||||
# We have to check functions both exits *and* are declared
|
||||
# since some distro ship broken ibverbs devel headers
|
||||
# IBV_DEVICE_XRC is common to all OFED versions
|
||||
# ibv_create_xrc_rcv_qp was added in OFED 1.3
|
||||
# ibv_cmd_open_xrcd (aka XRC Domains) was added in OFED 3.12
|
||||
if test "$enable_connectx_xrc" = "yes"; then
|
||||
AC_CHECK_DECLS([IBV_DEVICE_XRC],
|
||||
[opal_check_openib_have_xrc=1
|
||||
opal_check_openib_have_xrc_domains=1],
|
||||
[],
|
||||
[#include <infiniband/verbs.h>])
|
||||
fi
|
||||
if test "$enable_connectx_xrc" = "yes" \
|
||||
&& test $opal_check_openib_have_xrc -eq 1; then
|
||||
AC_CHECK_DECLS([ibv_create_xrc_rcv_qp],
|
||||
[AC_CHECK_FUNCS([ibv_create_xrc_rcv_qp],
|
||||
[], [opal_check_openib_have_xrc=0])],
|
||||
[opal_check_openib_have_xrc=0],
|
||||
[#include <infiniband/driver.h>])
|
||||
fi
|
||||
if test "$enable_connectx_xrc" = "yes" \
|
||||
&& test $opal_check_openib_have_xrc_domains -eq 1; then
|
||||
AC_CHECK_DECLS([ibv_cmd_open_xrcd],
|
||||
[AC_CHECK_DECLS([IBV_SRQT_XRC],
|
||||
[AC_CHECK_FUNCS([ibv_cmd_open_xrcd],
|
||||
[], [opal_check_openib_have_xrc_domains=0])],
|
||||
[opal_check_openib_have_xrc_domains=0],
|
||||
[#include <infiniband/verbs.h>])],
|
||||
[opal_check_openib_have_xrc_domains=0],
|
||||
[#include <infiniband/driver.h>])
|
||||
# XRC and XRC Domains should be considered as exclusive
|
||||
if test "$opal_check_openib_have_xrc" -eq 1 && \
|
||||
test "$opal_check_openib_have_xrc_domains" -eq 1; then
|
||||
opal_check_openib_have_xrc=0
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "no" != "$enable_openib_dynamic_sl"; then
|
||||
# We need ib_types.h file, which is installed with opensm-devel
|
||||
# package. However, ib_types.h has a bad include directive,
|
||||
# which will cause AC_CHECK_HEADER to fail.
|
||||
# So instead, we will look for another file that is also
|
||||
# installed as part of opensm-devel package and included in
|
||||
# ib_types.h, but it doesn't include any other IB-related files.
|
||||
AC_CHECK_HEADER([infiniband/complib/cl_types_osd.h],
|
||||
[AC_CHECK_LIB([osmcomp], [cl_map_init],
|
||||
[$1_have_opensm_devel=1],[])],
|
||||
[],
|
||||
[])
|
||||
# Abort if dynamic SL support was explicitly requested but opensm-devel
|
||||
# package wasn't found. Otherwise, OMPI will be built w/o dynamic SL.
|
||||
AC_MSG_CHECKING([if can use dynamic SL support])
|
||||
AS_IF([test "$$1_have_opensm_devel" = "1"],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AS_IF([test "$enable_openib_dynamic_sl" = "yes"],
|
||||
[AC_MSG_WARN([--enable-openib-dynamic-sl was specified but the])
|
||||
AC_MSG_WARN([appropriate header/library files could not be found])
|
||||
AC_MSG_WARN([Please install opensm-devel if you need dynamic SL support])
|
||||
AC_MSG_ERROR([Cannot continue])])])
|
||||
fi
|
||||
if test "no" != "$enable_openib_dynamic_sl"; then
|
||||
# We need ib_types.h file, which is installed with opensm-devel
|
||||
# package. However, ib_types.h has a bad include directive,
|
||||
# which will cause AC_CHECK_HEADER to fail.
|
||||
# So instead, we will look for another file that is also
|
||||
# installed as part of opensm-devel package and included in
|
||||
# ib_types.h, but it doesn't include any other IB-related files.
|
||||
AC_CHECK_HEADER([infiniband/complib/cl_types_osd.h],
|
||||
[AC_CHECK_LIB([osmcomp], [cl_map_init],
|
||||
[opal_check_openib_have_opensm_devel=1],[])],
|
||||
[],
|
||||
[])
|
||||
# Abort if dynamic SL support was explicitly requested but opensm-devel
|
||||
# package wasn't found. Otherwise, OMPI will be built w/o dynamic SL.
|
||||
AC_MSG_CHECKING([if can use dynamic SL support])
|
||||
AS_IF([test "$opal_check_openib_have_opensm_devel" = "1"],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[AC_MSG_RESULT([no])
|
||||
AS_IF([test "$enable_openib_dynamic_sl" = "yes"],
|
||||
[AC_MSG_WARN([--enable-openib-dynamic-sl was specified but the])
|
||||
AC_MSG_WARN([appropriate header/library files could not be found])
|
||||
AC_MSG_WARN([Please install opensm-devel if you need dynamic SL support])
|
||||
AC_MSG_ERROR([Cannot continue])])])
|
||||
fi
|
||||
|
||||
|
||||
# Check support for RDMAoE devices
|
||||
$1_have_rdmaoe=0
|
||||
AC_CHECK_DECLS([IBV_LINK_LAYER_ETHERNET],
|
||||
[$1_have_rdmaoe=1], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
# Check support for RDMAoE devices
|
||||
$1_have_rdmaoe=0
|
||||
AC_CHECK_DECLS([IBV_LINK_LAYER_ETHERNET],
|
||||
[$1_have_rdmaoe=1], [],
|
||||
[#include <infiniband/verbs.h>])
|
||||
|
||||
AC_MSG_CHECKING([if RDMAoE support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_RDMAOE], [$$1_have_rdmaoe], [Enable RDMAoE support])
|
||||
if test "1" = "$$1_have_rdmaoe"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
AC_MSG_CHECKING([if RDMAoE support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_RDMAOE], [$$1_have_rdmaoe], [Enable RDMAoE support])
|
||||
if test "1" = "$$1_have_rdmaoe"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
])
|
||||
])
|
||||
|
||||
# Check to see if <infiniband/driver.h> works. It is known to
|
||||
# create problems on some platforms with some compilers (e.g.,
|
||||
# RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC
|
||||
# 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in
|
||||
# AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test
|
||||
# will fail if the header is present but not compilable, *but it
|
||||
# will not print the big scary warning*. See
|
||||
# http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html.
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_HEADERS([infiniband/driver.h], [], [],
|
||||
[AC_INCLUDES_DEFAULT])])
|
||||
# Check to see if <infiniband/driver.h> works. It is known to
|
||||
# create problems on some platforms with some compilers (e.g.,
|
||||
# RHEL4U3 with the PGI 32 bit compiler). Use undocumented (in AC
|
||||
# 2.63) feature of AC_CHECK_HEADERS: if you explicitly pass in
|
||||
# AC_INCLUDES_DEFAULT as the 4th arg to AC_CHECK_HEADERS, the test
|
||||
# will fail if the header is present but not compilable, *but it
|
||||
# will not print the big scary warning*. See
|
||||
# http://lists.gnu.org/archive/html/autoconf/2008-10/msg00143.html.
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[AC_CHECK_HEADERS([infiniband/driver.h], [], [],
|
||||
[AC_INCLUDES_DEFAULT])])
|
||||
|
||||
AC_MSG_CHECKING([if ConnectX XRC support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC], [$$1_have_xrc],
|
||||
[Enable features required for ConnectX XRC support])
|
||||
if test "1" = "$$1_have_xrc"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
AC_MSG_CHECKING([if ConnectX XRC support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC], [$opal_check_openib_have_xrc],
|
||||
[Enable features required for ConnectX XRC support])
|
||||
if test "1" = "$opal_check_openib_have_xrc"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if ConnectIB XRC support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC_DOMAINS], [$opal_check_openib_have_xrc_domains],
|
||||
[Enable features required for XRC domains support])
|
||||
if test "1" = "$opal_check_openib_have_xrc_domains"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if dynamic SL is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_DYNAMIC_SL], [$opal_check_openib_have_opensm_devel],
|
||||
[Enable features required for dynamic SL support])
|
||||
if test "1" = "$opal_check_openib_have_opensm_devel"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
$1_LIBS="-losmcomp $$1_LIBS"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AS_IF([test -z "$opal_verbs_dir"],
|
||||
[openib_include_dir="/usr/include"],
|
||||
[openib_include_dir="$opal_verbs_dir/include"])
|
||||
opal_check_openib_CPPFLAGS="$opal_check_openib_CPPFLAGS -I$openib_include_dir/infiniband"
|
||||
|
||||
CPPFLAGS="$ompi_check_openib_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_openib_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_openib_$1_save_LIBS"
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[OpenFabrics Verbs]],[$1],[$opal_check_openib_happy])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if ConnectIB XRC support is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_HAVE_CONNECTX_XRC_DOMAINS], [$$1_have_xrc_domains],
|
||||
[Enable features required for XRC domains support])
|
||||
if test "1" = "$$1_have_xrc_domains"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AC_MSG_CHECKING([if dynamic SL is enabled])
|
||||
AC_DEFINE_UNQUOTED([OPAL_ENABLE_DYNAMIC_SL], [$$1_have_opensm_devel],
|
||||
[Enable features required for dynamic SL support])
|
||||
if test "1" = "$$1_have_opensm_devel"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
$1_LIBS="-losmcomp $$1_LIBS"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
AS_IF([test -z "$opal_verbs_dir"],
|
||||
[openib_include_dir="/usr/include"],
|
||||
[openib_include_dir="$opal_verbs_dir/include"])
|
||||
$1_CPPFLAGS="$$1_CPPFLAGS -I$openib_include_dir/infiniband"
|
||||
|
||||
CPPFLAGS="$ompi_check_openib_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_openib_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_openib_$1_save_LIBS"
|
||||
$1_have_xrc=$opal_check_openib_have_xrc
|
||||
$1_have_xrc_domains=$opal_check_openib_have_xrc_domains
|
||||
$1_have_opensm_devel=$opal_check_openib_have_opensm_devel
|
||||
|
||||
AS_IF([test "$opal_check_openib_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_openib_CPPFLAGS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $opal_check_openib_LDFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $opal_check_openib_LIBS"
|
||||
$2],
|
||||
[AS_IF([test "$opal_want_verbs" = "yes"],
|
||||
[AC_MSG_WARN([Verbs support requested (via --with-verbs) but not found.])
|
||||
AC_MSG_WARN([If you are using libibverbs v1.0 (i.e., OFED v1.0 or v1.1), you *MUST* have both the libsysfs headers and libraries installed. Later versions of libibverbs do not require libsysfs.])
|
||||
AC_MSG_ERROR([Aborting.])])
|
||||
$3])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])
|
||||
|
||||
AC_DEFUN([OPAL_CHECK_OPENFABRICS_CM_ARGS],[
|
||||
|
@ -14,6 +14,8 @@ dnl Copyright (c) 2006 QLogic Corp. All rights reserved.
|
||||
dnl Copyright (c) 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 (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -27,72 +29,79 @@ dnl
|
||||
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
|
||||
# support, otherwise executes action-if-not-found
|
||||
AC_DEFUN([OPAL_CHECK_PORTALS4],[
|
||||
AC_ARG_WITH([portals4],
|
||||
[AC_HELP_STRING([--with-portals4(=DIR)],
|
||||
[Build Portals4 support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([portals4], [$with_portals4], [include/portals4.h])
|
||||
AC_ARG_WITH([portals4-libdir],
|
||||
[AC_HELP_STRING([--with-portals4-libdir=DIR],
|
||||
[Search for Portals4 libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([portals4-libdir], [$with_portals4_libdir], [libportals.*])
|
||||
if test -z "$ompi_check_portals4_happy" ; then
|
||||
AC_ARG_WITH([portals4],
|
||||
[AC_HELP_STRING([--with-portals4(=DIR)],
|
||||
[Build Portals4 support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([portals4], [$with_portals4], [include/portals4.h])
|
||||
AC_ARG_WITH([portals4-libdir],
|
||||
[AC_HELP_STRING([--with-portals4-libdir=DIR],
|
||||
[Search for Portals4 libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([portals4-libdir], [$with_portals4_libdir], [libportals.*])
|
||||
|
||||
ompi_check_portals4_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_portals4_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_portals4_$1_save_LIBS="$LIBS"
|
||||
ompi_check_portals4_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
ompi_check_portals4_$1_save_LDFLAGS="$LDFLAGS"
|
||||
ompi_check_portals4_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$with_portals4" != "no"],
|
||||
[AS_IF([test ! -z "$with_portals4" && test "$with_portals4" != "yes"],
|
||||
[ompi_check_portals4_dir="$with_portals4"])
|
||||
AS_IF([test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"],
|
||||
[ompi_check_portals4_libdir="$with_portals4_libdir"])
|
||||
AS_IF([test "$with_portals4" != "no"],
|
||||
[AS_IF([test ! -z "$with_portals4" && test "$with_portals4" != "yes"],
|
||||
[ompi_check_portals4_dir="$with_portals4"])
|
||||
AS_IF([test ! -z "$with_portals4_libdir" && test "$with_portals4_libdir" != "yes"],
|
||||
[ompi_check_portals4_libdir="$with_portals4_libdir"])
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[portals4.h],
|
||||
[portals],
|
||||
[PtlLEAppend],
|
||||
[],
|
||||
[$ompi_check_portals4_dir],
|
||||
[$ompi_check_portals4_libdir],
|
||||
[ompi_check_portals4_happy="yes"],
|
||||
[ompi_check_portals4_happy="no"])],
|
||||
[ompi_check_portals4_happy="no"])
|
||||
OPAL_CHECK_PACKAGE([opal_check_portals4],
|
||||
[portals4.h],
|
||||
[portals],
|
||||
[PtlLEAppend],
|
||||
[],
|
||||
[$ompi_check_portals4_dir],
|
||||
[$ompi_check_portals4_libdir],
|
||||
[ompi_check_portals4_happy="yes"],
|
||||
[ompi_check_portals4_happy="no"])],
|
||||
[ompi_check_portals4_happy="no"])
|
||||
|
||||
CPPFLAGS="$ompi_check_portals4_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_portals4_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_portals4_$1_save_LIBS"
|
||||
CPPFLAGS="$ompi_check_portals4_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$ompi_check_portals4_$1_save_LDFLAGS"
|
||||
LIBS="$ompi_check_portals4_$1_save_LIBS"
|
||||
|
||||
max_md_size=0
|
||||
AC_ARG_WITH([portals4-max-md-size],
|
||||
[AC_HELP_STRING([--with-portals4-max-md-size=SIZE],
|
||||
[Log base 2 of the maximum size in bytes of a memory descriptor. Should only be set for implementations which do not support binding all of virtual address space.])])
|
||||
AS_IF([test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"],
|
||||
[AC_MSG_ERROR([--with-portals4-max-md-size requires an integer argument])],
|
||||
[AS_IF([test -n "$with_portals4_max_md_size"],
|
||||
[max_md_size="$with_portals4_max_md_size"])])
|
||||
AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_MD_SIZE], [$max_md_size],
|
||||
[Log base 2 of the maximum size in bytes of a memory descriptor. Set to 0 if MD can bind all of memory.])
|
||||
max_md_size=0
|
||||
AC_ARG_WITH([portals4-max-md-size],
|
||||
[AC_HELP_STRING([--with-portals4-max-md-size=SIZE],
|
||||
[Log base 2 of the maximum size in bytes of a memory descriptor. Should only be set for implementations which do not support binding all of virtual address space.])])
|
||||
AS_IF([test "$with_portals4_max_md_size" = "yes" || test "$with_portals4_max_md_size" = "no"],
|
||||
[AC_MSG_ERROR([--with-portals4-max-md-size requires an integer argument])],
|
||||
[AS_IF([test -n "$with_portals4_max_md_size"],
|
||||
[max_md_size="$with_portals4_max_md_size"])])
|
||||
AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_MD_SIZE], [$max_md_size],
|
||||
[Log base 2 of the maximum size in bytes of a memory descriptor. Set to 0 if MD can bind all of memory.])
|
||||
|
||||
max_va_size=0
|
||||
AC_ARG_WITH([portals4-max-va-size],
|
||||
[AC_HELP_STRING([--with-portals4-max-va-size=SIZE],
|
||||
[Log base 2 of the maximum size in bytes of the user virtual address space. Should only be set for implementations which do not support binding all of virtual address space.])])
|
||||
AS_IF([test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"],
|
||||
[AC_MSG_ERROR([--with-portals4-max-va-size requires an integer argument])],
|
||||
[AS_IF([test -n "$with_portals4_max_va_size"],
|
||||
[max_va_size="$with_portals4_max_va_size"])])
|
||||
AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_VA_SIZE], [$max_va_size],
|
||||
[Log base 2 of the maximum size in bytes of the user virtual address space. Set to 0 if MD can bind all of memory.])
|
||||
max_va_size=0
|
||||
AC_ARG_WITH([portals4-max-va-size],
|
||||
[AC_HELP_STRING([--with-portals4-max-va-size=SIZE],
|
||||
[Log base 2 of the maximum size in bytes of the user virtual address space. Should only be set for implementations which do not support binding all of virtual address space.])])
|
||||
AS_IF([test "$with_portals4_max_va_size" = "yes" || test "$with_portals4_max_va_size" = "no"],
|
||||
[AC_MSG_ERROR([--with-portals4-max-va-size requires an integer argument])],
|
||||
[AS_IF([test -n "$with_portals4_max_va_size"],
|
||||
[max_va_size="$with_portals4_max_va_size"])])
|
||||
AC_DEFINE_UNQUOTED([OPAL_PORTALS4_MAX_VA_SIZE], [$max_va_size],
|
||||
[Log base 2 of the maximum size in bytes of the user virtual address space. Set to 0 if MD can bind all of memory.])
|
||||
|
||||
AS_IF([(test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 )],
|
||||
AS_IF([(test $max_md_size -eq 0 && test $max_va_size -ne 0 ) || (test $max_md_size -ne 0 && test $max_va_size -eq 0 )],
|
||||
[AC_ERROR([If either --with-portals4-max-md-size or --with-portals4-max-va-size is set, both must be set.])])
|
||||
AS_IF([test $max_md_size -ge $max_va_size],
|
||||
[max_md_size=0
|
||||
max_va_size=0])
|
||||
AS_IF([test $max_md_size -ne 0 && test $max_va_size -ne 0],
|
||||
[AC_MSG_NOTICE([Portals 4 address space size: $max_md_size, $max_va_size])])
|
||||
AS_IF([test $max_md_size -ge $max_va_size],
|
||||
[max_md_size=0
|
||||
max_va_size=0])
|
||||
AS_IF([test $max_md_size -ne 0 && test $max_va_size -ne 0],
|
||||
[AC_MSG_NOTICE([Portals 4 address space size: $max_md_size, $max_va_size])])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[portals4]],[$1],[$ompi_check_portals4_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$ompi_check_portals4_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_LDFLAGS="[$]$1_LDFLAGS $opal_check_portals4_LDFLAGS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_portals4_CPPFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $opal_check_portals4_LIBS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_portals4" && test "$with_portals4" != "no"],
|
||||
[AC_MSG_ERROR([Portals4 support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
@ -1,4 +1,4 @@
|
||||
dnl -*- Mode: Shell ; indent-tabs-mode:nil -*-
|
||||
dnl -*- Mode: Shell-script ; indent-tabs-mode:nil -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
||||
dnl University Research and Technology
|
||||
@ -12,8 +12,8 @@ dnl Copyright (c) 2004-2006 The Regents of the University of California.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2006 QLogic Corp. All rights reserved.
|
||||
dnl Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2011-2014 Los Alamos National Security, LLC.
|
||||
dnl All rights reserved.
|
||||
dnl Copyright (c) 2011-2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl Copyright (c) 2014 Intel, Inc. All rights reserved
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
@ -32,25 +32,24 @@ dnl
|
||||
#
|
||||
|
||||
AC_DEFUN([OPAL_CHECK_UGNI], [
|
||||
AC_ARG_WITH([ugni], [AC_HELP_STRING([--with-ugni],
|
||||
[Build support for Cray GNI. Set PKG_CONFIG_PATH env. variable to specify alternate path.])])
|
||||
if test -z "$opal_check_ugni_happy" ; then
|
||||
AC_ARG_WITH([ugni], [AC_HELP_STRING([--with-ugni],
|
||||
[Build support for Cray GNI. Set PKG_CONFIG_PATH env. variable to specify alternate path.])])
|
||||
|
||||
opal_check_ugni_happy="no"
|
||||
opal_check_ugni_happy="no"
|
||||
|
||||
AS_IF([test "$with_ugni" = "no"],
|
||||
[opal_check_ugni_happy="no"],
|
||||
[PKG_CHECK_MODULES([CRAY_UGNI], [cray-ugni],
|
||||
[$1_LDFLAGS="$CRAY_UGNI_LIBS"
|
||||
$1_CPPFLAGS="$CRAY_UGNI_CFLAGS"
|
||||
opal_check_ugni_happy="yes"],
|
||||
[ opal_check_ugni_happy="no"])])
|
||||
AS_IF([test "$with_ugni" = "no"],
|
||||
[opal_check_ugni_happy="no"],
|
||||
[PKG_CHECK_MODULES([CRAY_UGNI], [cray-ugni],
|
||||
[opal_check_ugni_happy="yes"],
|
||||
[opal_check_ugni_happy="no"])])
|
||||
|
||||
opal_check_ugni_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
opal_check_ugni_$1_save_LDFLAGS="$LDFLAGS"
|
||||
opal_check_ugni_$1_save_LIBS="$LIBS"
|
||||
opal_check_ugni_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
opal_check_ugni_$1_save_LIBS="$LIBS"
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS"
|
||||
LDFLAGS="$LDFLAGS $$1_LDFLAGS"
|
||||
if test "$opal_check_ugni_happy" = "yes" ; then
|
||||
CPPFLAGS="$CPPFLAGS $CRAY_UGNI_CFLAGS"
|
||||
LIBS="$LIBS $CRAY_UGNI_LIBS"
|
||||
# echo "+++++++++++++++++++++++CPPFLAGS",$CPPFLAGS
|
||||
# echo "+++++++++++++++++++++++LDFLAGSS",$LDFLAGS
|
||||
# echo "+++++++++++++++++++++++1_CPPFLAGS",$$1_CPPFLAGS
|
||||
@ -58,23 +57,24 @@ AC_DEFUN([OPAL_CHECK_UGNI], [
|
||||
|
||||
# sanity checks
|
||||
|
||||
AS_IF([test "$opal_check_ugni_happy" = "yes"],
|
||||
[AC_CHECK_HEADER([gni_pub.h],[],AC_MSG_ERROR(['gni_pub.h not found.']))
|
||||
AC_CHECK_FUNCS([GNI_GetJobResInfo])])
|
||||
AC_CHECK_HEADER([gni_pub.h],[],AC_MSG_ERROR(['gni_pub.h not found.']))
|
||||
AC_CHECK_FUNCS([GNI_GetJobResInfo])
|
||||
|
||||
# AS_IF([test "$opal_check_ugni_happy" = "yes"],
|
||||
# [AC_CHECK_FUNCS([GNI_GetJobResInfo])])
|
||||
CPPFLAGS="$opal_check_ugni_$1_save_CPPFLAGS"
|
||||
LIBS="$opal_check_ugni_$1_save_LIBS"
|
||||
fi
|
||||
|
||||
CPPFLAGS="$opal_check_ugni_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$opal_check_ugni_$1_save_LDFLAGS"
|
||||
LIBS="$opal_check_ugni_$1_save_LIBS"
|
||||
AS_IF([test "$opal_check_ugni_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([GNI driver does not currently support progress threads. Disabling.])
|
||||
opal_check_ugni_happy="no"])
|
||||
|
||||
AS_IF([test "$opal_check_ugni_happy" = "yes" && test "$enable_progress_threads" = "yes"],
|
||||
[AC_MSG_WARN([GNI driver does not currently support progress threads. Disabling.])
|
||||
opal_check_ugni_happy="no"])
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[Cray uGNI (Gemini/Aries)]],[$1],[$opal_check_ugni_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$opal_check_ugni_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_CPPFLAGS="[$]$1_CPPFLAGS $CRAY_UGNI_CFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $CRAY_UGNI_LIBS"
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_ugni" && test "$with_ugni" != "no"],
|
||||
[AC_MSG_ERROR([GNI support requested but not found. Cannot continue.])])
|
||||
$3])
|
||||
|
112
config/opal_check_xpmem.m4
Обычный файл
112
config/opal_check_xpmem.m4
Обычный файл
@ -0,0 +1,112 @@
|
||||
# -*- shell-script ; indent-tabs-mode:nil -*-
|
||||
#
|
||||
# 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) 2009-2011 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2011-2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# Copyright (c) 2014 Intel, Inc. All rights reserved.
|
||||
# Copyright (c) 2014-2015 Research Organization for Information Science
|
||||
# and Technology (RIST). All rights reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
#
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
#
|
||||
# special check for cray xpmem, uses macro(s) from pkg.m4
|
||||
#
|
||||
# OPAL_CHECK_CRAY_XPMEM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([OPAL_CHECK_CRAY_XPMEM],[
|
||||
if test -z "$opal_check_cray_xpmem_happy" ; then
|
||||
AC_ARG_WITH([cray_xpmem],
|
||||
[AC_HELP_STRING([--with-cray-xpmem(=yes/no)],
|
||||
[Build Cray XPMEM support(default: auto)])],
|
||||
[], with_cray_xpmem=auto)
|
||||
|
||||
AC_MSG_CHECKING([for Cray XPMEM support])
|
||||
AS_IF([test "$with_cray_xpmem" = "no"],
|
||||
[AC_MSG_RESULT([no])
|
||||
$3],
|
||||
[AS_IF([test "$with_cray_xpmem" = "auto" || test "$with_cray_xpmem" = "yes"],
|
||||
[PKG_CHECK_MODULES_STATIC([CRAY_XPMEM], [cray-xpmem],
|
||||
[opal_check_cray_xpmem_happy="yes"],
|
||||
[opal_check_cray_xpmem_happy="no"]
|
||||
[AS_IF([test "$with_cray_xpmem" = "yes"],
|
||||
[AC_MSG_WARN([Cray XPMEM support requested but pkg-config failed.])
|
||||
AC_MSG_ERROR([Aborting])],[])]
|
||||
)],
|
||||
[])
|
||||
])
|
||||
|
||||
AS_IF([test "$opal_check_cray_xpmem_happy" = "yes" && test "$enable_static" = "yes"],
|
||||
[CRAY_XPMEM_LIBS = $CRAY_XPMEM_STATIC_LIBS],[])
|
||||
fi
|
||||
|
||||
AS_IF([test "$opal_check_cray_xpmem_happy" = "yes"],
|
||||
[$1_LDFLAGS="[$]$1_LDFLAGS $CRAY_XPMEM_LIBS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $CRAY_XPMEM_CFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $CRAY_XPMEM_LIBS"
|
||||
AC_DEFINE_UNQUOTED([HAVE_XPMEM_H], [1],[is xpmem.h available])
|
||||
$2], [$3])
|
||||
])
|
||||
|
||||
# OPAL_CHECK_XPMEM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
# check if XPMEM 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([OPAL_CHECK_XPMEM], [
|
||||
if test -z "$opal_check_xpmem_happy" ; then
|
||||
# check for a cray installed xpmem first
|
||||
OPAL_CHECK_CRAY_XPMEM([opal_check_xpmem],[opal_check_xpmem_happy=yes],[opal_check_xpmem_happy=no])
|
||||
|
||||
if test "$opal_check_xpmem_happy" = no ; then
|
||||
AC_ARG_WITH([xpmem],
|
||||
[AC_HELP_STRING([--with-xpmem(=DIR)],
|
||||
[Build with XPMEM kernel module support, searching for headers in DIR])])
|
||||
OPAL_CHECK_WITHDIR([xpmem], [$with_xpmem], [include/xpmem.h])
|
||||
|
||||
AC_ARG_WITH([xpmem-libdir],
|
||||
[AC_HELP_STRING([--with-xpmem-libdir=DIR],
|
||||
[Search for XPMEM library in DIR])])
|
||||
OPAL_CHECK_WITHDIR([xpmem-libdir], [$with_xpmem_libdir], [libxpmem.*])
|
||||
|
||||
if test ! "$with_xpmem" = "no" ; then
|
||||
if test ! -z "$with_xpmem" && test "$with_xpmem" != "yes" ; then
|
||||
opal_check_xpmem_dir="$with_xpmem"
|
||||
fi
|
||||
|
||||
if test ! -z "$with_xpmem_libdir" && test "$with_xpmem_libdir" != "yes" ; then
|
||||
opal_check_xpmem_libdir="$with_xpmem_libdir"
|
||||
fi
|
||||
|
||||
OPAL_CHECK_PACKAGE([opal_check_xpmem],[xpmem.h],[xpmem],[xpmem_make],[],
|
||||
[$opal_check_xpmem_dir],[$opal_check_xpmem_libdir], [opal_check_xpmem_happy="yes"], [])
|
||||
|
||||
if test "$opal_check_xpmem_happy" = "no" && test -n "$with_xpmem" && test "$with_xpmem" != "yes" ; then
|
||||
AC_MSG_ERROR([XPMEM support requested but not found. Aborting])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[XPMEM Shared Memory]],[$1],[$opal_check_cray_xpmem_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$opal_check_xpmem_happy" = "yes"], [
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $opal_check_xpmem_CPPFLAGS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $opal_check_xpmem_LDFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $opal_check_xpmem_LIBS"
|
||||
$2], [$3])
|
||||
])dnl
|
110
config/opal_summary.m4
Обычный файл
110
config/opal_summary.m4
Обычный файл
@ -0,0 +1,110 @@
|
||||
dnl -*- shell-script -*-
|
||||
dnl
|
||||
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
dnl
|
||||
dnl $HEADER$
|
||||
dnl
|
||||
AC_DEFUN([OMPI_SUMMARY_ADD],[
|
||||
OPAL_VAR_SCOPE_PUSH([ompi_summary_section ompi_summary_line ompi_summary_section_current])
|
||||
|
||||
dnl need to replace spaces in the section name with somethis else. _ seems like a reasonable
|
||||
dnl choice. if this changes remember to change OMPI_PRINT_SUMMARY as well.
|
||||
ompi_summary_section=$(echo $1 | tr ' ' '_')
|
||||
ompi_summary_line="$2: $4"
|
||||
ompi_summary_section_current=$(eval echo \$ompi_summary_values_$ompi_summary_section)
|
||||
|
||||
if test -z "$ompi_summary_section_current" ; then
|
||||
if test -z "$ompi_summary_sections" ; then
|
||||
ompi_summary_sections=$ompi_summary_section
|
||||
else
|
||||
ompi_summary_sections="$ompi_summary_sections $ompi_summary_section"
|
||||
fi
|
||||
eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_line\"
|
||||
else
|
||||
eval ompi_summary_values_$ompi_summary_section=\"$ompi_summary_section_current,$ompi_summary_line\"
|
||||
fi
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])
|
||||
|
||||
AC_DEFUN([OMPI_SUMMARY_PRINT],[
|
||||
OPAL_VAR_SCOPE_PUSH([ompi_summary_section ompi_summary_section_name])
|
||||
echo "\nOpen MPI configuration:"
|
||||
echo "-----------------------"
|
||||
echo "Version: $OMPI_MAJOR_VERSION.$OMPI_MINOR_VERSION.$OMPI_RELEASE_VERSION $OMPI_GREEK_VERSION"
|
||||
|
||||
dnl Print out which projects will be built
|
||||
echo "Build Open Platform Abstration project: yes"
|
||||
if test "$project_orte_amc" = "true" ; then
|
||||
echo "Build Open Runtime project: yes"
|
||||
else
|
||||
echo "Build Open Runtime project: no"
|
||||
fi
|
||||
|
||||
if test "$project_ompi_amc" = "true" ; then
|
||||
echo "Build Open MPI project: yes"
|
||||
else
|
||||
echo "Build Open MPI project: no"
|
||||
fi
|
||||
|
||||
if test "$project_shmem_amc" = "true" ; then
|
||||
echo "Build Open SHMEM project: yes"
|
||||
else
|
||||
echo "Build Open SHMEM project: no"
|
||||
fi
|
||||
|
||||
dnl Print out the bindings if we are building OMPI
|
||||
if test "$project_ompi_amc" = "true" ; then
|
||||
if test x$enable_mpi_cxx = xyes ; then
|
||||
echo "MPI C++ bindings (deprecated): yes"
|
||||
else
|
||||
echo "MPI C++ bindings (deprecated): no"
|
||||
fi
|
||||
|
||||
if test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_MPIFH_BINDINGS ; then
|
||||
echo "MPI Fortran bindings: mpif.h"
|
||||
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPI_BINDINGS ; then
|
||||
echo "MPI Fortran bindings: mpif.h, use mpi"
|
||||
elif test $OMPI_BUILD_FORTRAN_BINDINGS = $OMPI_FORTRAN_USEMPIF08_BINDINGS ; then
|
||||
echo "MPI Fortran bindings: mpif.h, use mpi, use mpi_f08"
|
||||
else
|
||||
echo "MPI Fortran bindings: no"
|
||||
fi
|
||||
|
||||
if test x$opal_java_happy = xyes ; then
|
||||
echo "MPI Java bindings (experimental): yes"
|
||||
else
|
||||
echo "MPI Java bindings (experimental): no"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test $WANT_DEBUG = 0 ; then
|
||||
echo "Debug build: no"
|
||||
else
|
||||
echo "Debug build: yes"
|
||||
fi
|
||||
|
||||
if test ! -z $with_platform ; then
|
||||
echo "Platform file: $with_platform"
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
for ompi_summary_section in $(echo $ompi_summary_sections) ; do
|
||||
ompi_summary_section_name=$(echo $ompi_summary_section | tr '_' ' ')
|
||||
echo "$ompi_summary_section_name"
|
||||
echo "-----------------------"
|
||||
echo "$(eval echo \$ompi_summary_values_$ompi_summary_section)" | tr ',' $'\n' | sort -f
|
||||
echo
|
||||
done
|
||||
|
||||
if test $WANT_DEBUG = 1 ; then
|
||||
echo "INTERNAL DEBUGGING IS ENABLED. DO NOT USE THIS BUILD FOR PERFORMANCE MEASUREMENTS!\n"
|
||||
fi
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])
|
@ -13,6 +13,8 @@ dnl All rights reserved.
|
||||
dnl Copyright (c) 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 (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -81,7 +83,7 @@ AC_DEFUN([ORTE_CHECK_ALPS_CLE4],[
|
||||
# ORTE_CHECK_ALPS(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([ORTE_CHECK_ALPS],[
|
||||
if test -z "$orte_check_alps_happy"; then
|
||||
if test -z "$orte_check_cray_alps_happy"; then
|
||||
|
||||
AC_ARG_WITH([alps],
|
||||
[AC_HELP_STRING([--with-alps(=DIR|yes|no)],
|
||||
@ -155,16 +157,15 @@ AC_DEFUN([ORTE_CHECK_ALPS],[
|
||||
CRAY_ALPSUTIL_LIBS = $CRAY_ALPSUTIL_STATIC_LIBS],
|
||||
[])
|
||||
|
||||
AS_IF([test "$orte_check_cray_alps_happy" = "yes"],
|
||||
[$1_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS"
|
||||
$1_CPPFLAGS="$CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS"
|
||||
$1_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"
|
||||
$1_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"
|
||||
$1_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"],
|
||||
[])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Resource Managers]],[[Cray Alps]],[$1],[$orte_check_cray_alps_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$orte_check_cray_alps_happy" = "yes"],
|
||||
[$2], [$3])
|
||||
[$1_LDFLAGS="[$]$1_LDFLAGS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $CRAY_ALPSLLI_CFLAGS $CRAY_ALPSUTIL_CFLAGS $CRAY_ALPS_CFLAGS $CRAY_WLM_DETECT_CFLAGS"
|
||||
$1_LIBS="[$]$1_LIBS $CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"
|
||||
$1_WRAPPER_EXTRA_LDFLAGS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"
|
||||
$1_WRAPPER_EXTRA_LIBS="$CRAY_ALPSLLI_LIBS $CRAY_ALPSUTIL_LIBS $CRAY_WLM_DETECT_LIBS"
|
||||
$2],
|
||||
[$3])
|
||||
])
|
||||
|
@ -13,6 +13,8 @@ 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 (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -24,111 +26,113 @@ dnl
|
||||
# ORTE_CHECK_LSF(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([ORTE_CHECK_LSF],[
|
||||
AC_ARG_WITH([lsf],
|
||||
[AC_HELP_STRING([--with-lsf(=DIR)],
|
||||
[Build LSF support])])
|
||||
OPAL_CHECK_WITHDIR([lsf], [$with_lsf], [include/lsf/lsbatch.h])
|
||||
AC_ARG_WITH([lsf-libdir],
|
||||
[AC_HELP_STRING([--with-lsf-libdir=DIR],
|
||||
[Search for LSF libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([lsf-libdir], [$with_lsf_libdir], [libbat.*])
|
||||
if test -z "$orte_check_lsf_happy" ; then
|
||||
AC_ARG_WITH([lsf],
|
||||
[AC_HELP_STRING([--with-lsf(=DIR)],
|
||||
[Build LSF support])])
|
||||
OPAL_CHECK_WITHDIR([lsf], [$with_lsf], [include/lsf/lsbatch.h])
|
||||
AC_ARG_WITH([lsf-libdir],
|
||||
[AC_HELP_STRING([--with-lsf-libdir=DIR],
|
||||
[Search for LSF libraries in DIR])])
|
||||
OPAL_CHECK_WITHDIR([lsf-libdir], [$with_lsf_libdir], [libbat.*])
|
||||
|
||||
# Defaults
|
||||
orte_check_lsf_dir_msg="compiler default"
|
||||
orte_check_lsf_libdir_msg="linker default"
|
||||
# Defaults
|
||||
orte_check_lsf_dir_msg="compiler default"
|
||||
orte_check_lsf_libdir_msg="linker default"
|
||||
|
||||
# Save directory names if supplied
|
||||
AS_IF([test ! -z "$with_lsf" && test "$with_lsf" != "yes"],
|
||||
[orte_check_lsf_dir="$with_lsf"
|
||||
orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)"])
|
||||
AS_IF([test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"],
|
||||
[orte_check_lsf_libdir="$with_lsf_libdir"
|
||||
orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)"])
|
||||
# Save directory names if supplied
|
||||
AS_IF([test ! -z "$with_lsf" && test "$with_lsf" != "yes"],
|
||||
[orte_check_lsf_dir="$with_lsf"
|
||||
orte_check_lsf_dir_msg="$orte_check_lsf_dir (from --with-lsf)"])
|
||||
AS_IF([test ! -z "$with_lsf_libdir" && test "$with_lsf_libdir" != "yes"],
|
||||
[orte_check_lsf_libdir="$with_lsf_libdir"
|
||||
orte_check_lsf_libdir_msg="$orte_check_lsf_libdir (from --with-lsf-libdir)"])
|
||||
|
||||
# If no directories were specified, look for LSF_LIBDIR,
|
||||
# LSF_INCLUDEDIR, and/or LSF_ENVDIR.
|
||||
AS_IF([test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"],
|
||||
[AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
|
||||
[LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
|
||||
AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
|
||||
[LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
|
||||
AS_IF([test ! -z "$LSF_LIBDIR"],
|
||||
[orte_check_lsf_libdir=$LSF_LIBDIR
|
||||
orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)"])
|
||||
AS_IF([test ! -z "$LSF_INCLUDEDIR"],
|
||||
[orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR`
|
||||
orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)"])])
|
||||
# If no directories were specified, look for LSF_LIBDIR,
|
||||
# LSF_INCLUDEDIR, and/or LSF_ENVDIR.
|
||||
AS_IF([test -z "$orte_check_lsf_dir" && test -z "$orte_check_lsf_libdir"],
|
||||
[AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_LIBDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
|
||||
[LSF_LIBDIR=`egrep ^LSF_LIBDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
|
||||
AS_IF([test ! -z "$LSF_ENVDIR" && test -z "$LSF_INCLUDEDIR" && test -f "$LSF_ENVDIR/lsf.conf"],
|
||||
[LSF_INCLUDEDIR=`egrep ^LSF_INCLUDEDIR= $LSF_ENVDIR/lsf.conf | cut -d= -f2-`])
|
||||
AS_IF([test ! -z "$LSF_LIBDIR"],
|
||||
[orte_check_lsf_libdir=$LSF_LIBDIR
|
||||
orte_check_lsf_libdir_msg="$LSF_LIBDIR (from \$LSF_LIBDIR)"])
|
||||
AS_IF([test ! -z "$LSF_INCLUDEDIR"],
|
||||
[orte_check_lsf_dir=`dirname $LSF_INCLUDEDIR`
|
||||
orte_check_lsf_dir_msg="$orte_check_lsf_dir (from \$LSF_INCLUDEDIR)"])])
|
||||
|
||||
AS_IF([test "$with_lsf" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
AS_IF([test "$with_lsf" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
|
||||
orte_check_lsf_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
orte_check_lsf_$1_save_LDFLAGS="$LDFLAGS"
|
||||
orte_check_lsf_$1_save_LIBS="$LIBS"
|
||||
orte_check_lsf_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
orte_check_lsf_$1_save_LDFLAGS="$LDFLAGS"
|
||||
orte_check_lsf_$1_save_LIBS="$LIBS"
|
||||
|
||||
# liblsf requires yp_all, yp_get_default_domain, and ypprot_err
|
||||
# on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl
|
||||
# on AIX it should be in libbsd
|
||||
# on HP-UX it should be in libBSD
|
||||
# on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc)
|
||||
OPAL_SEARCH_LIBS_COMPONENT([yp_all_nsl], [yp_all], [nsl bsd BSD sun],
|
||||
[yp_all_nsl_happy="yes"],
|
||||
[yp_all_nsl_happy="no"])
|
||||
# liblsf requires yp_all, yp_get_default_domain, and ypprot_err
|
||||
# on Linux, Solaris, NEC, and Sony NEWSs these are found in libnsl
|
||||
# on AIX it should be in libbsd
|
||||
# on HP-UX it should be in libBSD
|
||||
# on IRIX < 6 it should be in libsun (IRIX 6 and later it is in libc)
|
||||
OPAL_SEARCH_LIBS_COMPONENT([yp_all_nsl], [yp_all], [nsl bsd BSD sun],
|
||||
[yp_all_nsl_happy="yes"],
|
||||
[yp_all_nsl_happy="no"])
|
||||
|
||||
AS_IF([test "$yp_all_nsl_happy" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
AS_IF([test "$yp_all_nsl_happy" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
|
||||
# liblsb requires liblsf - using ls_info as a test for liblsf presence
|
||||
OPAL_CHECK_PACKAGE([ls_info_lsf],
|
||||
[lsf/lsf.h],
|
||||
[lsf],
|
||||
[ls_info],
|
||||
[$yp_all_nsl_LIBS],
|
||||
[$orte_check_lsf_dir],
|
||||
[$orte_check_lsf_libdir],
|
||||
[ls_info_lsf_happy="yes"],
|
||||
[ls_info_lsf_happy="no"])
|
||||
# liblsb requires liblsf - using ls_info as a test for liblsf presence
|
||||
OPAL_CHECK_PACKAGE([ls_info_lsf],
|
||||
[lsf/lsf.h],
|
||||
[lsf],
|
||||
[ls_info],
|
||||
[$yp_all_nsl_LIBS],
|
||||
[$orte_check_lsf_dir],
|
||||
[$orte_check_lsf_libdir],
|
||||
[ls_info_lsf_happy="yes"],
|
||||
[ls_info_lsf_happy="no"])
|
||||
|
||||
AS_IF([test "$ls_info_lsf_happy" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
AS_IF([test "$ls_info_lsf_happy" = "no"],
|
||||
[orte_check_lsf_happy="no"],
|
||||
[orte_check_lsf_happy="yes"])
|
||||
|
||||
# test function of liblsb LSF package
|
||||
AS_IF([test "$orte_check_lsf_happy" = "yes"],
|
||||
[AC_MSG_CHECKING([for LSF dir])
|
||||
AC_MSG_RESULT([$orte_check_lsf_dir_msg])
|
||||
AC_MSG_CHECKING([for LSF library dir])
|
||||
AC_MSG_RESULT([$orte_check_lsf_libdir_msg])
|
||||
AC_MSG_CHECKING([for liblsf function])
|
||||
AC_MSG_RESULT([$ls_info_lsf_happy])
|
||||
AC_MSG_CHECKING([for liblsf yp requirements])
|
||||
AC_MSG_RESULT([$yp_all_nsl_happy])
|
||||
OPAL_CHECK_PACKAGE([$1],
|
||||
[lsf/lsbatch.h],
|
||||
[bat],
|
||||
[lsb_launch],
|
||||
[$ls_info_lsf_LIBS $yp_all_nsl_LIBS],
|
||||
[$orte_check_lsf_dir],
|
||||
[$orte_check_lsf_libdir],
|
||||
[orte_check_lsf_happy="yes"],
|
||||
[orte_check_lsf_happy="no"])])
|
||||
# test function of liblsb LSF package
|
||||
AS_IF([test "$orte_check_lsf_happy" = "yes"],
|
||||
[AC_MSG_CHECKING([for LSF dir])
|
||||
AC_MSG_RESULT([$orte_check_lsf_dir_msg])
|
||||
AC_MSG_CHECKING([for LSF library dir])
|
||||
AC_MSG_RESULT([$orte_check_lsf_libdir_msg])
|
||||
AC_MSG_CHECKING([for liblsf function])
|
||||
AC_MSG_RESULT([$ls_info_lsf_happy])
|
||||
AC_MSG_CHECKING([for liblsf yp requirements])
|
||||
AC_MSG_RESULT([$yp_all_nsl_happy])
|
||||
OPAL_CHECK_PACKAGE([orte_check_lsf],
|
||||
[lsf/lsbatch.h],
|
||||
[bat],
|
||||
[lsb_launch],
|
||||
[$ls_info_lsf_LIBS $yp_all_nsl_LIBS],
|
||||
[$orte_check_lsf_dir],
|
||||
[$orte_check_lsf_libdir],
|
||||
[orte_check_lsf_happy="yes"],
|
||||
[orte_check_lsf_happy="no"])])
|
||||
|
||||
CPPFLAGS="$orte_check_lsf_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$orte_check_lsf_$1_save_LDFLAGS"
|
||||
LIBS="$orte_check_lsf_$1_save_LIBS"
|
||||
CPPFLAGS="$orte_check_lsf_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$orte_check_lsf_$1_save_LDFLAGS"
|
||||
LIBS="$orte_check_lsf_$1_save_LIBS"
|
||||
|
||||
# add the LSF libraries to static builds as they are required
|
||||
$1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS
|
||||
$1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS
|
||||
|
||||
# Reset for the next time we're called
|
||||
orte_check_lsf_dir=
|
||||
orte_check_lsf_libdir=
|
||||
OMPI_SUMMARY_ADD([[Resource Managers]],[[LSF]],[$1],[$orte_check_lsf_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$orte_check_lsf_happy" = "yes"],
|
||||
[$2],
|
||||
[$1_LIBS="[$]$1_LIBS $orte_check_lsf_LIBS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $orte_check_lsf_LDFLAGS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $orte_check_lsf_CPPFLAGS"
|
||||
# add the LSF libraries to static builds as they are required
|
||||
$1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS
|
||||
$1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_lsf" && test "$with_lsf" != "no"],
|
||||
[AC_MSG_WARN([LSF support requested (via --with-lsf) but not found.])
|
||||
AC_MSG_ERROR([Aborting.])])
|
||||
|
@ -11,6 +11,8 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2006-2009 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -26,26 +28,30 @@
|
||||
# ORTE_CHECK_GRIDENGINE(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([ORTE_CHECK_GRIDENGINE],[
|
||||
AC_ARG_WITH([sge],
|
||||
[AC_HELP_STRING([--with-sge],
|
||||
[Build SGE or Grid Engine support (default: no)])])
|
||||
if test -z "$orte_gridengine_build" ; then
|
||||
AC_ARG_WITH([sge],
|
||||
[AC_HELP_STRING([--with-sge],
|
||||
[Build SGE or Grid Engine support (default: no)])])
|
||||
|
||||
AC_MSG_CHECKING([if user requested SGE build])
|
||||
orte_gridengine_build=
|
||||
AS_IF([test "$with_sge" = "yes"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
orte_gridengine_build=yes],
|
||||
[AS_IF([test "$with_sge" = "no"],
|
||||
[AC_MSG_RESULT([no])],
|
||||
[AC_MSG_RESULT([not specified; checking environment])
|
||||
AC_CHECK_PROG([QRSH], [qrsh], [qrsh])
|
||||
AS_IF([test "$QRSH" != ""],
|
||||
[orte_gridengine_build=yes],
|
||||
[AC_MSG_CHECKING([for SGE_ROOT environment variable])
|
||||
AS_IF([test "$SGE_ROOT" != ""],
|
||||
[AC_MSG_RESULT([found])
|
||||
orte_gridengine_build=yes],
|
||||
[AC_MSG_RESULT([not found])])])])])
|
||||
AC_MSG_CHECKING([if user requested SGE build])
|
||||
orte_gridengine_build="no"
|
||||
AS_IF([test "$with_sge" = "yes"],
|
||||
[AC_MSG_RESULT([yes])
|
||||
orte_gridengine_build=yes],
|
||||
[AS_IF([test "$with_sge" = "no"],
|
||||
[AC_MSG_RESULT([no])],
|
||||
[AC_MSG_RESULT([not specified; checking environment])
|
||||
AC_CHECK_PROG([QRSH], [qrsh], [qrsh])
|
||||
AS_IF([test "$QRSH" != ""],
|
||||
[orte_gridengine_build=yes],
|
||||
[AC_MSG_CHECKING([for SGE_ROOT environment variable])
|
||||
AS_IF([test "$SGE_ROOT" != ""],
|
||||
[AC_MSG_RESULT([found])
|
||||
orte_gridengine_build=yes],
|
||||
[AC_MSG_RESULT([not found])])])])])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Resource Managers]],[[Grid Engine]],[$1],[$orte_gridengine_build])
|
||||
fi
|
||||
|
||||
AS_IF([test "$orte_gridengine_build" = "yes"],
|
||||
[$2],
|
||||
|
@ -11,6 +11,8 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -21,50 +23,54 @@
|
||||
# ORTE_CHECK_SLURM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([ORTE_CHECK_SLURM],[
|
||||
AC_ARG_WITH([slurm],
|
||||
[AC_HELP_STRING([--with-slurm],
|
||||
[Build SLURM scheduler component (default: yes)])])
|
||||
if test -z "$orte_check_slurm_happy" ; then
|
||||
AC_ARG_WITH([slurm],
|
||||
[AC_HELP_STRING([--with-slurm],
|
||||
[Build SLURM scheduler component (default: yes)])])
|
||||
|
||||
if test "$with_slurm" = "no" ; then
|
||||
orte_check_slurm_happy="no"
|
||||
elif test "$with_slurm" = "" ; then
|
||||
# unless user asked, only build slurm component on linux, AIX,
|
||||
# and OS X systems (these are the platforms that SLURM
|
||||
# supports)
|
||||
case $host in
|
||||
*-linux*|*-aix*|*-apple-darwin*)
|
||||
orte_check_slurm_happy="yes"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_CHECKING([for SLURM srun in PATH])
|
||||
OPAL_WHICH([srun], [ORTE_CHECK_SLURM_SRUN])
|
||||
if test "$ORTE_CHECK_SLURM_SRUN" = ""; then
|
||||
orte_check_slurm_happy="no"
|
||||
else
|
||||
if test "$with_slurm" = "no" ; then
|
||||
orte_check_slurm_happy="no"
|
||||
elif test "$with_slurm" = "" ; then
|
||||
# unless user asked, only build slurm component on linux, AIX,
|
||||
# and OS X systems (these are the platforms that SLURM
|
||||
# supports)
|
||||
case $host in
|
||||
*-linux*|*-aix*|*-apple-darwin*)
|
||||
orte_check_slurm_happy="yes"
|
||||
fi
|
||||
AC_MSG_RESULT([$orte_check_slurm_happy])
|
||||
;;
|
||||
esac
|
||||
else
|
||||
orte_check_slurm_happy="yes"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_CHECKING([for SLURM srun in PATH])
|
||||
OPAL_WHICH([srun], [ORTE_CHECK_SLURM_SRUN])
|
||||
if test "$ORTE_CHECK_SLURM_SRUN" = ""; then
|
||||
orte_check_slurm_happy="no"
|
||||
else
|
||||
orte_check_slurm_happy="yes"
|
||||
fi
|
||||
AC_MSG_RESULT([$orte_check_slurm_happy])
|
||||
;;
|
||||
esac
|
||||
else
|
||||
orte_check_slurm_happy="yes"
|
||||
fi
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([fork],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([execve],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([setpgid],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
OMPI_SUMMARY_ADD([[Resource Managers]],[[Slurm]],[$1],[$orte_check_slurm_happy])
|
||||
fi
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([fork],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([execve],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[AC_CHECK_FUNC([setpgid],
|
||||
[orte_check_slurm_happy="yes"],
|
||||
[orte_check_slurm_happy="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_slurm_happy" = "yes"],
|
||||
[$2],
|
||||
[$3])
|
||||
|
@ -13,6 +13,8 @@ dnl All rights reserved.
|
||||
dnl Copyright (c) 2006-2014 Cisco Systems, Inc. All rights reserved.
|
||||
dnl Copyright (c) 2015 Research Organization for Information Science
|
||||
dnl and Technology (RIST). All rights reserved.
|
||||
dnl Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
dnl reserved.
|
||||
dnl $COPYRIGHT$
|
||||
dnl
|
||||
dnl Additional copyrights may follow
|
||||
@ -43,114 +45,122 @@ AC_DEFUN([ORTE_CHECK_TM_LIBS_FLAGS],[
|
||||
# ORTE_CHECK_TM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
AC_DEFUN([ORTE_CHECK_TM],[
|
||||
OPAL_VAR_SCOPE_PUSH([orte_check_tm_found orte_check_tm_happy orte_check_tm_dir orte_check_tm_pbs_config LDFLAGS_save CPPFLAGS_save LIBS_save])
|
||||
AC_ARG_WITH([tm],
|
||||
[AC_HELP_STRING([--with-tm(=DIR)],
|
||||
[Build TM (Torque, PBSPro, and compatible) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([tm], [$with_tm], [include/tm.h])
|
||||
if test -z $orte_check_tm_happy ; then
|
||||
OPAL_VAR_SCOPE_PUSH([orte_check_tm_found orte_check_tm_dir orte_check_tm_pbs_config orte_check_tm_LDFLAGS_save orte_check_tm_CPPFLAGS_save orte_check_tm_LIBS_save])
|
||||
|
||||
orte_check_tm_found=no
|
||||
AS_IF([test "$with_tm" = "no"],
|
||||
[orte_check_tm_happy="no"],
|
||||
[orte_check_tm_happy="yes"
|
||||
AS_IF([test ! -z "$with_tm" && test "$with_tm" != "yes"],
|
||||
[orte_check_tm_dir="$with_tm"],
|
||||
[orte_check_tm_dir=""])])
|
||||
AC_ARG_WITH([tm],
|
||||
[AC_HELP_STRING([--with-tm(=DIR)],
|
||||
[Build TM (Torque, PBSPro, and compatible) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
|
||||
OPAL_CHECK_WITHDIR([tm], [$with_tm], [include/tm.h])
|
||||
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes"],
|
||||
[AC_MSG_CHECKING([for pbs-config])
|
||||
orte_check_tm_pbs_config="not found"
|
||||
AS_IF([test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"],
|
||||
[orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config"],
|
||||
[AS_IF([pbs-config --prefix >/dev/null 2>&1],
|
||||
[orte_check_tm_pbs_config="pbs-config"])])
|
||||
AC_MSG_RESULT([$orte_check_tm_pbs_config])])
|
||||
orte_check_tm_found=no
|
||||
AS_IF([test "$with_tm" = "no"],
|
||||
[orte_check_tm_happy="no"],
|
||||
[orte_check_tm_happy="yes"
|
||||
AS_IF([test ! -z "$with_tm" && test "$with_tm" != "yes"],
|
||||
[orte_check_tm_dir="$with_tm"],
|
||||
[orte_check_tm_dir=""])])
|
||||
|
||||
# If we have pbs-config, get the flags we need from there and then
|
||||
# do simplistic tests looking for the tm headers and symbols
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes"],
|
||||
[AC_MSG_CHECKING([for pbs-config])
|
||||
orte_check_tm_pbs_config="not found"
|
||||
AS_IF([test "$orte_check_tm_dir" != "" && test -d "$orte_check_tm_dir" && test -x "$orte_check_tm_dir/bin/pbs-config"],
|
||||
[orte_check_tm_pbs_config="$orte_check_tm_dir/bin/pbs-config"],
|
||||
[AS_IF([pbs-config --prefix >/dev/null 2>&1],
|
||||
[orte_check_tm_pbs_config="pbs-config"])])
|
||||
AC_MSG_RESULT([$orte_check_tm_pbs_config])])
|
||||
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"],
|
||||
[$1_CPPFLAGS=`$orte_check_tm_pbs_config --cflags`
|
||||
OPAL_LOG_MSG([$1_CPPFLAGS from pbs-config: $$1_CPPFLAGS], 1)
|
||||
# If we have pbs-config, get the flags we need from there and then
|
||||
# do simplistic tests looking for the tm headers and symbols
|
||||
|
||||
ORTE_CHECK_TM_LIBS_FLAGS([$1], [LDFLAGS])
|
||||
OPAL_LOG_MSG([$1_LDFLAGS from pbs-config: $$1_LDFLAGS], 1)
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_pbs_config" != "not found"],
|
||||
[orte_check_tm_CPPFLAGS=`$orte_check_tm_pbs_config --cflags`
|
||||
OPAL_LOG_MSG([orte_check_tm_CPPFLAGS from pbs-config: $orte_check_tm_CPPFLAGS], 1)
|
||||
|
||||
ORTE_CHECK_TM_LIBS_FLAGS([$1], [LIBS])
|
||||
OPAL_LOG_MSG([$1_LIBS from pbs-config: $$1_LIBS], 1)
|
||||
ORTE_CHECK_TM_LIBS_FLAGS([orte_check_tm], [LDFLAGS])
|
||||
OPAL_LOG_MSG([orte_check_tm_LDFLAGS from pbs-config: $orte_check_tm_LDFLAGS], 1)
|
||||
|
||||
# Now that we supposedly have the right flags, try them out.
|
||||
ORTE_CHECK_TM_LIBS_FLAGS([orte_check_tm], [LIBS])
|
||||
OPAL_LOG_MSG([orte_check_tm_LIBS from pbs-config: $orte_check_tm_LIBS], 1)
|
||||
|
||||
CPPFLAGS_save="$CPPFLAGS"
|
||||
LDFLAGS_save="$LDFLAGS"
|
||||
LIBS_save="$LIBS"
|
||||
# Now that we supposedly have the right flags, try them out.
|
||||
|
||||
CPPFLAGS="$CPPFLAGS $$1_CPPFLAGS"
|
||||
LIBS="$LIBS $$1_LIBS"
|
||||
LDFLAGS="$LDFLAGS $$1_LDFLAGS"
|
||||
orte_check_tm_CPPFLAGS_save="$CPPFLAGS"
|
||||
orte_check_tm_LDFLAGS_save="$LDFLAGS"
|
||||
orte_check_tm_LIBS_save="$LIBS"
|
||||
|
||||
AC_CHECK_HEADER([tm.h],
|
||||
[AC_CHECK_FUNC([tm_finalize],
|
||||
[orte_check_tm_found="yes"])])
|
||||
CPPFLAGS="$CPPFLAGS $orte_check_tm_CPPFLAGS"
|
||||
LIBS="$LIBS $orte_check_tm_LIBS"
|
||||
LDFLAGS="$LDFLAGS $orte_check_tm_LDFLAGS"
|
||||
|
||||
CPPFLAGS="$CPPFLAGS_save"
|
||||
LDFLAGS="$LDFLAGS_save"
|
||||
LIBS="$LIBS_save"])
|
||||
AC_CHECK_HEADER([tm.h],
|
||||
[AC_CHECK_FUNC([tm_finalize],
|
||||
[orte_check_tm_found="yes"])])
|
||||
|
||||
# If we don't have pbs-config, then we have to look around
|
||||
# manually.
|
||||
CPPFLAGS="$orte_check_tm_CPPFLAGS_save"
|
||||
LDFLAGS="$orte_check_tm_LDFLAGS_save"
|
||||
LIBS="$orte_check_tm_LIBS_save"])
|
||||
|
||||
# Note that Torque 2.1.0 changed the name of their back-end
|
||||
# library to "libtorque". So we have to check for both libpbs and
|
||||
# libtorque. First, check for libpbs.
|
||||
# If we don't have pbs-config, then we have to look around
|
||||
# manually.
|
||||
|
||||
orte_check_package_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
orte_check_package_$1_save_LDFLAGS="$LDFLAGS"
|
||||
orte_check_package_$1_save_LIBS="$LIBS"
|
||||
# Note that Torque 2.1.0 changed the name of their back-end
|
||||
# library to "libtorque". So we have to check for both libpbs and
|
||||
# libtorque. First, check for libpbs.
|
||||
|
||||
orte_check_package_$1_orig_CPPFLAGS="$$1_CPPFLAGS"
|
||||
orte_check_package_$1_orig_LDFLAGS="$$1_LDFLAGS"
|
||||
orte_check_package_$1_orig_LIBS="$$1_LIBS"
|
||||
orte_check_package_$1_save_CPPFLAGS="$CPPFLAGS"
|
||||
orte_check_package_$1_save_LDFLAGS="$LDFLAGS"
|
||||
orte_check_package_$1_save_LIBS="$LIBS"
|
||||
|
||||
AS_IF([test "$orte_check_tm_found" = "no"],
|
||||
[AS_IF([test "$orte_check_tm_happy" = "yes"],
|
||||
[_OPAL_CHECK_PACKAGE_HEADER([$1],
|
||||
[tm.h],
|
||||
[$orte_check_tm_dir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[orte_check_tm_found="no"])])
|
||||
AS_IF([test "$orte_check_tm_found" = "no"],
|
||||
[AS_IF([test "$orte_check_tm_happy" = "yes"],
|
||||
[_OPAL_CHECK_PACKAGE_HEADER([orte_check_tm],
|
||||
[tm.h],
|
||||
[$orte_check_tm_dir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[orte_check_tm_found="no"])])
|
||||
|
||||
AS_IF([test "$orte_check_tm_found" = "yes"],
|
||||
[_OPAL_CHECK_PACKAGE_LIB([$1],
|
||||
[pbs],
|
||||
[tm_init],
|
||||
[],
|
||||
[$orte_check_tm_dir],
|
||||
[$orte_check_tm_libdir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[_OPAL_CHECK_PACKAGE_LIB([$1],
|
||||
[torque],
|
||||
[tm_init],
|
||||
[],
|
||||
[$orte_check_tm_dir],
|
||||
[$orte_check_tm_libdir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[orte_check_tm_found="no"])])])])
|
||||
AS_IF([test "$orte_check_tm_found" = "yes"],
|
||||
[_OPAL_CHECK_PACKAGE_LIB([orte_check_tm],
|
||||
[pbs],
|
||||
[tm_init],
|
||||
[],
|
||||
[$orte_check_tm_dir],
|
||||
[$orte_check_tm_libdir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[_OPAL_CHECK_PACKAGE_LIB([orte_check_tm],
|
||||
[torque],
|
||||
[tm_init],
|
||||
[],
|
||||
[$orte_check_tm_dir],
|
||||
[$orte_check_tm_libdir],
|
||||
[orte_check_tm_found="yes"],
|
||||
[orte_check_tm_found="no"])])])])
|
||||
|
||||
CPPFLAGS="$orte_check_package_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$orte_check_package_$1_save_LDFLAGS"
|
||||
LIBS="$orte_check_package_$1_save_LIBS"
|
||||
CPPFLAGS="$orte_check_package_$1_save_CPPFLAGS"
|
||||
LDFLAGS="$orte_check_package_$1_save_LDFLAGS"
|
||||
LIBS="$orte_check_package_$1_save_LIBS"
|
||||
|
||||
# add the TM libraries to static builds as they are required
|
||||
$1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS
|
||||
$1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS
|
||||
if test "$orte_check_tm_found" = "no" ; then
|
||||
orte_check_tm_happy=no
|
||||
fi
|
||||
|
||||
OMPI_SUMMARY_ADD([[Resource Managers]],[[Torque]],[$1],[$orte_check_tm_happy])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
fi
|
||||
|
||||
# Did we find the right stuff?
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes" && test "$orte_check_tm_found" = "yes"],
|
||||
[$2],
|
||||
AS_IF([test "$orte_check_tm_happy" = "yes"],
|
||||
[$1_LIBS="[$]$1_LIBS $orte_check_tm_LIBS"
|
||||
$1_LDFLAGS="[$]$1_LDFLAGS $orte_check_tm_LDFLAGS"
|
||||
$1_CPPFLAGS="[$]$1_CPPFLAGS $orte_check_tm_CPPFLAGS"
|
||||
# add the TM libraries to static builds as they are required
|
||||
$1_WRAPPER_EXTRA_LDFLAGS=[$]$1_LDFLAGS
|
||||
$1_WRAPPER_EXTRA_LIBS=[$]$1_LIBS
|
||||
$2],
|
||||
[AS_IF([test ! -z "$with_tm" && test "$with_tm" != "no"],
|
||||
[AC_MSG_ERROR([TM support requested but not found. Aborting])])
|
||||
$3])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
orte_check_tm_happy="no"
|
||||
$3])
|
||||
])
|
||||
|
@ -1391,3 +1391,5 @@ m4_ifdef([project_ompi], [OMPI_CONFIG_FILES])
|
||||
m4_ifdef([project_oshmem], [OSHMEM_CONFIG_FILES])
|
||||
|
||||
AC_OUTPUT
|
||||
|
||||
OMPI_SUMMARY_PRINT
|
||||
|
@ -39,7 +39,7 @@ AC_DEFUN([MCA_opal_btl_openib_POST_CONFIG], [
|
||||
AC_DEFUN([MCA_opal_btl_openib_CONFIG],[
|
||||
AC_CONFIG_FILES([opal/mca/btl/openib/Makefile])
|
||||
|
||||
OPAL_VAR_SCOPE_PUSH([cpcs LDFLAGS_save LIBS_save])
|
||||
OPAL_VAR_SCOPE_PUSH([cpcs btl_openib_LDFLAGS_save btl_openib_LIBS_save])
|
||||
cpcs="oob"
|
||||
|
||||
OPAL_CHECK_OPENFABRICS([btl_openib],
|
||||
@ -50,13 +50,13 @@ AC_DEFUN([MCA_opal_btl_openib_CONFIG],[
|
||||
|
||||
AS_IF([test "$btl_openib_happy" = "yes"],
|
||||
[# With the new openib flags, look for ibv_fork_init
|
||||
LDFLAGS_save="$LDFLAGS"
|
||||
LIBS_save="$LIBS"
|
||||
btl_openib_LDFLAGS_save="$LDFLAGS"
|
||||
btl_openib_LIBS_save="$LIBS"
|
||||
LDFLAGS="$LDFLAGS $btl_openib_LDFLAGS"
|
||||
LIBS="$LIBS $btl_openib_LIBS"
|
||||
AC_CHECK_FUNCS([ibv_fork_init])
|
||||
LDFLAGS="$LDFLAGS_save"
|
||||
LIBS="$LIBS_save"
|
||||
LDFLAGS="$btl_openib_LDFLAGS_save"
|
||||
LIBS="$btl_openib_LIBS_save"
|
||||
$1],
|
||||
[$2])
|
||||
|
||||
|
@ -11,6 +11,8 @@
|
||||
# Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
# All rights reserved.
|
||||
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
|
||||
# Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||
# reserved.
|
||||
# $COPYRIGHT$
|
||||
#
|
||||
# Additional copyrights may follow
|
||||
@ -25,10 +27,14 @@ AC_DEFUN([MCA_opal_btl_tcp_CONFIG],[
|
||||
|
||||
# check for sockaddr_in (a good sign we have TCP)
|
||||
AC_CHECK_TYPES([struct sockaddr_in],
|
||||
[$1],
|
||||
[$2],
|
||||
[opal_btl_tcp_happy=yes
|
||||
$1],
|
||||
[opal_btl_tcp_happy=no
|
||||
$2],
|
||||
[AC_INCLUDES_DEFAULT
|
||||
#ifdef HAVE_NETINET_IN_H
|
||||
#include <netinet/in.h>
|
||||
#endif])
|
||||
#endif
|
||||
])
|
||||
OMPI_SUMMARY_ADD([[Transports]],[[tcp]],[[btl_tcp]],[$opal_btl_tcp_happy])
|
||||
])dnl
|
||||
|
@ -15,47 +15,6 @@
|
||||
# $HEADER$
|
||||
#
|
||||
|
||||
# OPAL_CHECK_XPMEM(prefix, [action-if-found], [action-if-not-found])
|
||||
# --------------------------------------------------------
|
||||
# check if XPMEM 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([OPAL_CHECK_XPMEM], [
|
||||
OPAL_VAR_SCOPE_PUSH([opal_check_xpmem_happy])
|
||||
AC_ARG_WITH([xpmem],
|
||||
[AC_HELP_STRING([--with-xpmem(=DIR)],
|
||||
[Build with XPMEM kernel module support, searching for headers in DIR])])
|
||||
OPAL_CHECK_WITHDIR([xpmem], [$with_xpmem], [include/xpmem.h])
|
||||
|
||||
AC_ARG_WITH([xpmem-libdir],
|
||||
[AC_HELP_STRING([--with-xpmem-libdir=DIR],
|
||||
[Search for XPMEM library in DIR])])
|
||||
OPAL_CHECK_WITHDIR([xpmem-libdir], [$with_xpmem_libdir], [libxpmem.*])
|
||||
|
||||
opal_check_xpmem_happy="no"
|
||||
|
||||
if test ! "$with_xpmem" = "no" ; then
|
||||
if test ! -z "$with_xpmem" && test "$with_xpmem" != "yes" ; then
|
||||
opal_check_xpmem_dir="$with_xpmem"
|
||||
fi
|
||||
|
||||
if test ! -z "$with_xpmem_libdir" && test "$with_xpmem_libdir" != "yes" ; then
|
||||
opal_check_xpmem_libdir="$with_xpmem_libdir"
|
||||
fi
|
||||
|
||||
OPAL_CHECK_PACKAGE([$1],[xpmem.h],[xpmem],[xpmem_make],[],
|
||||
[$opal_check_xpmem_dir],[$opal_check_xpmem_libdir], [opal_check_xpmem_happy="yes"], [])
|
||||
|
||||
if test "$opal_check_xpmem_happy" = "no" && test -n "$with_xpmem" && test "$with_xpmem" != "yes" ; then
|
||||
AC_MSG_ERROR([XPMEM support requested but not found. Aborting])
|
||||
fi
|
||||
fi
|
||||
|
||||
AS_IF([test "$opal_check_xpmem_happy" = "yes"], [$2], [$3])
|
||||
|
||||
OPAL_VAR_SCOPE_POP
|
||||
])dnl
|
||||
|
||||
# MCA_btl_vader_CONFIG([action-if-can-compile],
|
||||
# [action-if-cant-compile])
|
||||
# ------------------------------------------------
|
||||
@ -66,11 +25,7 @@ AC_DEFUN([MCA_opal_btl_vader_CONFIG],[
|
||||
|
||||
# Check for single-copy APIs
|
||||
|
||||
OPAL_CHECK_CRAY_XPMEM([btl_vader], [btl_vader_xpmem_happy=1], [btl_vader_xpmem_happy=0])
|
||||
|
||||
AS_IF([test "$btl_vader_xpmem_happy" -eq 0],
|
||||
[OPAL_CHECK_XPMEM([btl_vader], [btl_vader_xpmem_happy=1], [btl_vader_xpmem_happy=0])],[])
|
||||
|
||||
OPAL_CHECK_XPMEM([btl_vader], [btl_vader_xpmem_happy=1], [btl_vader_xpmem_happy=0])
|
||||
OPAL_CHECK_KNEM([btl_vader], [btl_vader_knem_happy=1],[btl_vader_knem_happy=0])
|
||||
OPAL_CHECK_CMA([btl_vader], [AC_CHECK_HEADER([sys/prctl.h]) btl_vader_cma_happy=1], [btl_vader_cma_happy=0])
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user