1
1
openmpi/config/opal_check_portals4.m4
2014-08-01 17:03:34 +00:00

99 строки
5.0 KiB
Bash

# -*- shell-script -*-
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2006 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2006 QLogic Corp. All rights reserved.
# Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# OPAL_CHECK_PORTALS4(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if PORTALS4 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_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.*])
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" -a "$with_portals4" != "yes"],
[ompi_check_portals4_dir="$with_portals4"])
AS_IF([test ! -z "$with_portals4_libdir" -a "$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"])
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" -o "$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" -o "$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 -a $max_va_size -ne 0 \) -o \( $max_md_size -ne 0 -a $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 -a $max_va_size -ne 0],
[AC_MSG_NOTICE([Portals 4 address space size: $max_md_size, $max_va_size])])
AS_IF([test "$ompi_check_portals4_happy" = "yes"],
[$2],
[AS_IF([test ! -z "$with_portals4" -a "$with_portals4" != "no"],
[AC_MSG_ERROR([Portals4 support requested but not found. Aborting])])
$3])
])