1
1
openmpi/config/ompi_check_gni.m4
Jeff Squyres b29b852281 Consolidate all the opal/orte/ompi .m4 files back to the top-level
config/ directory.  We split them apart a while ago in the hopes that
it would simplify things, but it didn't really (e.g., because there
were still some ompi/opal .m4 files in the top-level config/
directory, resulting in developer confusion where any given m4 macro
was defined).

So this commit consolidates them back into the top-level directory for
simplicity.  

There's still (at least) two changes that would be nice to make:

 1. Split any generated .m4 file (e.g., autogen-generated .m4 files)
    into a separate directory somewhere so that a top-level -Iconfig/
    will only get our explicitly defined macros, not the autogen stuff
    (e.g., with libevent2019 needing to get the visibility macro, but
    NOT all the autogen-generated inclusion of component configure.m4
    files).
 1. Change configure to be of the form:
{{{
# ...a small amount of preamble/setup...
OPAL_SETUP
m4_ifdef([project_orte], [ORTE_SETUP])
m4_ifdef([project_ompi], [OMPI_SETUP])
# ...a small amount of finishing stuff...
}}}

I doubt we'll ever get anything as clean as that, but that would be
the goal to shoot for.

This commit was SVN r27704.
2012-12-19 00:00:36 +00:00

97 строки
3.9 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 (c) 2011 Los Alamos National Security, LLC.
# All rights reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#
# OMPI_CHECK_GNI(prefix, [action-if-found], [action-if-not-found])
# --------------------------------------------------------
# check if GNI 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
#
# NOTES
# on Cray XE6 systems, the GNI development header (gni_pub.h) is in a
# completely different place than the ugni library (libugni).
#
# EXAMPLE CONFIGURE USAGE:
# --with-gni=/base/path/to/libugni --with-gni-includedir=/path/to/gni_pub.h
#
# --with-gni=/opt/cray/ugni/default --with-gni-includedir=/opt/cray/gni-headers/default/include
AC_DEFUN([OMPI_CHECK_GNI], [
AC_ARG_WITH([gni], [
AC_HELP_STRING([--with-gni(=DIR)],
[Build GNI (Cray Gemini) support, optionally adding DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries])])
dnl does the path exist?
OMPI_CHECK_WITHDIR([gni], [$with_gni], [.])
AC_ARG_WITH([gni-libdir], [
AC_HELP_STRING([--with-gni-libdir=DIR], [
Search for GNI (Cray Gemini) libraries in DIR])])
OMPI_CHECK_WITHDIR([gni-libdir], [$with_gni_libdir], [libugni.*])
AC_ARG_WITH([gni-includedir], [
AC_HELP_STRING([--with-gni-includedir=DIR], [
Search for GNI (Cray Gemini) headers in DIR])])
OMPI_CHECK_WITHDIR([gni-includedir], [$with_gni_includedir], [gni_pub.h])
AS_IF([test "$with_gni_includedir" != "" -a "$with_gni_includedir" != "yes" -a "$with_gni_includedir" != "no"],
[$1_CPPFLAGS="$$1_CPPFLAGS -I$with_gni_includedir"])
ompi_check_gni_$1_save_CPPFLAGS="$CPPFLAGS"
ompi_check_gni_$1_save_LDFLAGS="$LDFLAGS"
ompi_check_gni_$1_save_LIBS="$LIBS"
AS_IF([test "$with_gni" != "no"], [
AS_IF([test ! -z "$with_gni" -a "$with_gni" != "yes"], [
ompi_check_gni_dir="$with_gni"])
AS_IF([test ! -z "$with_gni_libdir" -a "$with_gni_libdir" != "yes"], [
ompi_check_gni_libdir="$with_gni_libdir"])
OMPI_CHECK_PACKAGE([$1],
[ugni.h],
[ugni],
[GNI_CdmCreate],
[],
[$ompi_check_gni_dir],
[$ompi_check_gni_libdir],
[ompi_check_gni_happy="yes"],
[ompi_check_gni_happy="no"])],
[ompi_check_gni_happy="no"])
CPPFLAGS="$ompi_check_gni_$1_save_CPPFLAGS"
LDFLAGS="$ompi_check_gni_$1_save_LDFLAGS"
LIBS="$ompi_check_gni_$1_save_LIBS"
dnl XXX not sure if this is true, but will assume so...
AS_IF([test "$ompi_check_gni_happy" = "yes" -a "$enable_progress_threads" = "yes"],
[AC_MSG_WARN([GNI driver does not currently support progress threads. Disabling.])
ompi_check_gni_happy="no"])
AS_IF([test "$ompi_check_gni_happy" = "yes"],
[$2],
[AS_IF([test ! -z "$with_gni" -a "$with_gni" != "no"],
[AC_MSG_ERROR([GNI support requested but not found. Cannot continue.])])
$3])
])