1
1
openmpi/config/ompi_check_libhcoll.m4
Jeff Squyres 3bd9c603ff Clean up variables used in configure with OPAL_VAR_SCOPE.
This is helpful in the work for #3694: ensure that many places that
eventually end up in configure don't overly-pollute the global shell
variable space (because debugging accidental shell variable pollution
can be a real pain).

Refs trac:3694

This commit was SVN r29830.

The following Trac tickets were found above:
  Ticket 3694 --> https://svn.open-mpi.org/trac/ompi/ticket/3694
2013-12-06 23:40:34 +00:00

73 строки
2.5 KiB
Bash

# -*- shell-script -*-
#
# Copyright (c) 2011 Mellanox Technologies. All rights reserved.
# Copyright (c) 2013 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# OMPI_CHECK_HCOLL(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if hcoll support can be found. sets prefix_{CPPFLAGS,
# LDFLAGS, LIBS} as needed and runs action-if-found if there is
# support, otherwise executes action-if-not-found
AC_DEFUN([OMPI_CHECK_HCOLL],[
OPAL_VAR_SCOPE_PUSH([ompi_check_hcoll_dir ompi_hcoll_libdir ompi_check_hcoll_incdir ompi_check_hcoll_libs ompi_check_hcoll_happy CPPFLAGS_save LDFLAGS_save LIBS_save])
AC_ARG_WITH([hcoll],
[AC_HELP_STRING([--with-hcoll(=DIR)],
[Build hcoll (Mellanox Hierarchical Collectives) support, searching for libraries in DIR])])
OMPI_CHECK_WITHDIR([hcoll], [$with_hcoll], [lib/libhcoll.so])
AS_IF([test "$with_hcoll" != "no"],
[AS_IF([test ! -z "$with_hcoll" -a "$with_hcoll" != "yes"],
[ompi_check_hcoll_dir=$with_hcoll
ompi_check_hcoll_libdir="$ompi_check_hcoll_dir/lib"
ompi_check_hcoll_incdir="$ompi_check_hcoll_dir/include"
ompi_check_hcoll_libs=hcoll
CPPFLAGS_save=$CPPFLAGS
LDFLAGS_save=$LDFLAGS
LIBS_save=$LIBS
CPPFLAGS="$CPPFLAGS -I$ompi_check_hcoll_dir/include -I$ompi_check_hcoll_dir/include/hcoll -I$ompi_check_hcoll_dir/include/hcoll/api"
OPAL_LOG_MSG([$1_CPPFLAGS : $$1_CPPFLAGS], 1)
OPAL_LOG_MSG([$1_LDFLAGS : $$1_LDFLAGS], 1)
OPAL_LOG_MSG([$1_LIBS : $$1_LIBS], 1)
OMPI_CHECK_PACKAGE([$1],
[hcoll_api.h],
[$ompi_check_hcoll_libs],
[hcoll_get_version],
[],
[$ompi_check_hcoll_dir],
[$ompi_check_hcoll_libdir],
[ompi_check_hcoll_happy="yes"],
[ompi_check_hcoll_happy="no"])
CPPFLAGS=$CPPFLAGS_save
LDFLAGS=$LDFLAGS_save
LIBS=$LIBS_save],
[ompi_check_hcoll_happy="no"])
])
AS_IF([test "$ompi_check_hcoll_happy" = "yes" -a "$enable_progress_threads" = "yes"],
[AC_MSG_WARN([hcoll driver does not currently support progress threads. Disabling HCOLL.])
ompi_check_hcoll_happy="no"])
AS_IF([test "$ompi_check_hcoll_happy" = "yes"],
[$2],
[AS_IF([test ! -z "$with_hcoll" -a "$with_hcoll" != "no"],
[AC_MSG_ERROR([HCOLL support requested but not found. Aborting])])
$3])
OPAL_VAR_SCOPE_POP
])