da5d093fdc
executable that can be run and returns a false exit status (which, amusingly, in this case is 1, not 0). This commit was SVN r27998.
578 строки
21 KiB
Bash
578 строки
21 KiB
Bash
dnl -*- shell-script -*-
|
|
dnl
|
|
dnl Copyright (c) 2004-2010 The Trustees of Indiana University and Indiana
|
|
dnl University Research and Technology
|
|
dnl Corporation. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
dnl of Tennessee Research Foundation. All rights
|
|
dnl reserved.
|
|
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
dnl University of Stuttgart. All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The Regents of the University of California.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2006-2010 Cisco Systems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2007 Sun Microsystems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2009 IBM Corporation. All rights reserved.
|
|
dnl Copyright (c) 2009 Los Alamos National Security, LLC. All rights
|
|
dnl reserved.
|
|
dnl Copyright (c) 2009-2011 Oak Ridge National Labs. All rights reserved.
|
|
dnl Copyright (c) 2011-2013 NVIDIA Corporation. All rights reserved.
|
|
dnl
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
AC_DEFUN([OPAL_CONFIGURE_OPTIONS],[
|
|
ompi_show_subtitle "OPAL Configuration options"
|
|
|
|
|
|
#
|
|
# Is this a developer copy?
|
|
#
|
|
|
|
if test -d .svn -o -d .hg; then
|
|
OMPI_DEVEL=1
|
|
else
|
|
OMPI_DEVEL=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Code coverage options
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to run code coverage])
|
|
AC_ARG_ENABLE(coverage,
|
|
AC_HELP_STRING([--enable-coverage],
|
|
[enable code coverage files to be generated]))
|
|
if test "$enable_coverage" = "yes"; then
|
|
if test "$enable_shared" = "yes"; then
|
|
AC_MSG_WARN([Code coverage can run only with static libraries. Please
|
|
run configure with --enable-static --disable-shared if
|
|
you want code coverage. Also ensure that you execute
|
|
make clean too ensure removal of all leftover shared
|
|
mpi libraries])
|
|
AC_MSG_ERROR([Cannot continue processing])
|
|
fi
|
|
AC_MSG_RESULT([yes])
|
|
WANT_COVERAGE=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_COVERAGE=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Branch Probabilities options
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to compile with branch probabilities])
|
|
AC_ARG_ENABLE(branch-probabilities,
|
|
AC_HELP_STRING([--enable-branch-probabilities],
|
|
[enable profile arcs and branch probability optimization]))
|
|
if test "$enable_branch_probabilities" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_BRANCH_PROBABILITIES=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_BRANCH_PROBABILITIES=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Memory debugging
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to debug memory usage])
|
|
AC_ARG_ENABLE(mem-debug,
|
|
AC_HELP_STRING([--enable-mem-debug],
|
|
[enable memory debugging (debugging only) (default: disabled)]))
|
|
if test "$enable_mem_debug" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_MEM_DEBUG=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_MEM_DEBUG=0
|
|
fi
|
|
#################### Early development override ####################
|
|
if test "$WANT_MEM_DEBUG" = "0" -a -z "$enable_mem_debug" -a "$OMPI_DEVEL" = 1; then
|
|
WANT_MEM_DEBUG=1
|
|
echo "--> developer override: enable mem profiling by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
AC_DEFINE_UNQUOTED(OPAL_ENABLE_MEM_DEBUG, $WANT_MEM_DEBUG,
|
|
[Whether we want the memory profiling or not])
|
|
|
|
#
|
|
# Memory profiling
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to profile memory usage])
|
|
AC_ARG_ENABLE(mem-profile,
|
|
AC_HELP_STRING([--enable-mem-profile],
|
|
[enable memory profiling (debugging only) (default: disabled)]))
|
|
if test "$enable_mem_profile" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_MEM_PROFILE=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_MEM_PROFILE=0
|
|
fi
|
|
#################### Early development override ####################
|
|
if test "$WANT_MEM_PROFILE" = "0" -a -z "$enable_mem_profile" -a "$OMPI_DEVEL" = 1; then
|
|
WANT_MEM_PROFILE=1
|
|
echo "--> developer override: enable mem profiling by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
AC_DEFINE_UNQUOTED(OPAL_ENABLE_MEM_PROFILE, $WANT_MEM_PROFILE,
|
|
[Whether we want the memory profiling or not])
|
|
|
|
#
|
|
# Developer picky compiler options
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want developer-level compiler pickyness])
|
|
AC_ARG_ENABLE(picky,
|
|
AC_HELP_STRING([--enable-picky],
|
|
[enable developer-level compiler pickyness when building Open MPI (default: disabled)]))
|
|
if test "$enable_picky" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_PICKY_COMPILER=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_PICKY_COMPILER=0
|
|
fi
|
|
#################### Early development override ####################
|
|
if test "$WANT_PICKY_COMPILER" = "0" -a -z "$enable_picky" -a "$OMPI_DEVEL" = 1; then
|
|
WANT_PICKY_COMPILER=1
|
|
echo "--> developer override: enable picky compiler by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
|
|
#
|
|
# Developer debugging
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want developer-level debugging code])
|
|
AC_ARG_ENABLE(debug,
|
|
AC_HELP_STRING([--enable-debug],
|
|
[enable developer-level debugging code (not for general MPI users!) (default: disabled)]))
|
|
if test "$enable_debug" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_DEBUG=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_DEBUG=0
|
|
fi
|
|
#################### Early development override ####################
|
|
if test "$WANT_DEBUG" = "0" -a -z "$enable_debug" -a "$OMPI_DEVEL" = 1; then
|
|
WANT_DEBUG=1
|
|
echo "--> developer override: enable debugging code by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
if test "$WANT_DEBUG" = "0"; then
|
|
CFLAGS="-DNDEBUG $CFLAGS"
|
|
CXXFLAGS="-DNDEBUG $CXXFLAGS"
|
|
fi
|
|
AC_DEFINE_UNQUOTED(OPAL_ENABLE_DEBUG, $WANT_DEBUG,
|
|
[Whether we want developer-level debugging code or not])
|
|
|
|
AC_ARG_ENABLE(debug-symbols,
|
|
AC_HELP_STRING([--disable-debug-symbols],
|
|
[Disable adding compiler flags to enable debugging symbols if --enable-debug is specified. For non-debugging builds, this flag has no effect.]))
|
|
|
|
#
|
|
# Do we want to install all of OPAL/ORTE and OMPI's header files?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to install project-internal header files])
|
|
AC_ARG_WITH(devel-headers,
|
|
AC_HELP_STRING([--with-devel-headers],
|
|
[normal MPI users/applications do not need this (mpi.h and mpif.h are ALWAYS installed). Developer headers are only necessary for MCA module authors (default: disabled).]))
|
|
if test "$with_devel_headers" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_INSTALL_HEADERS=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_INSTALL_HEADERS=0
|
|
fi
|
|
AM_CONDITIONAL(WANT_INSTALL_HEADERS, test "$WANT_INSTALL_HEADERS" = 1)
|
|
|
|
|
|
#
|
|
# Do we want the pretty-print stack trace feature?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want pretty-print stacktrace])
|
|
AC_ARG_ENABLE([pretty-print-stacktrace],
|
|
[AC_HELP_STRING([--enable-pretty-print-stacktrace],
|
|
[Pretty print stacktrace on process signal (default: enabled)])])
|
|
if test "$enable_pretty_print_stacktrace" = "no" ; then
|
|
AC_MSG_RESULT([no])
|
|
WANT_PRETTY_PRINT_STACKTRACE=0
|
|
else
|
|
AC_MSG_RESULT([yes])
|
|
WANT_PRETTY_PRINT_STACKTRACE=1
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_WANT_PRETTY_PRINT_STACKTRACE],
|
|
[$WANT_PRETTY_PRINT_STACKTRACE],
|
|
[if want pretty-print stack trace feature])
|
|
|
|
|
|
#
|
|
# Do we want PTY support?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want pty support])
|
|
AC_ARG_ENABLE(pty-support,
|
|
AC_HELP_STRING([--enable-pty-support],
|
|
[Enable/disable PTY support for STDIO forwarding. (default: enabled)]))
|
|
if test "$enable_pty_support" = "no" ; then
|
|
AC_MSG_RESULT([no])
|
|
OPAL_ENABLE_PTY_SUPPORT=0
|
|
else
|
|
AC_MSG_RESULT([yes])
|
|
OPAL_ENABLE_PTY_SUPPORT=1
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_PTY_SUPPORT], [$OPAL_ENABLE_PTY_SUPPORT],
|
|
[Whether user wants PTY support or not])
|
|
|
|
|
|
#
|
|
# Do we want to disable weak symbols for some reason?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want weak symbol support])
|
|
AC_ARG_ENABLE(weak-symbols,
|
|
AC_HELP_STRING([--enable-weak-symbols],
|
|
[use weak symbols, if available (default: enabled)]))
|
|
if test "$enable_weak_symbols" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_WEAK_SYMBOLS=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_WEAK_SYMBOLS=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Do we want to allow DLOPEN?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want dlopen support])
|
|
AC_ARG_ENABLE([dlopen],
|
|
[AC_HELP_STRING([--enable-dlopen],
|
|
[Whether build should attempt to use dlopen (or
|
|
similar) to dynamically load components.
|
|
Disabling dlopen implies --disable-mca-dso.
|
|
(default: enabled)])])
|
|
if test "$enable_dlopen" = "no" ; then
|
|
enable_mca_dso="no"
|
|
enable_mca_static="yes"
|
|
OPAL_ENABLE_DLOPEN_SUPPORT=0
|
|
AC_MSG_RESULT([no])
|
|
else
|
|
OPAL_ENABLE_DLOPEN_SUPPORT=1
|
|
AC_MSG_RESULT([yes])
|
|
fi
|
|
|
|
|
|
#
|
|
# Heterogeneous support
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want heterogeneous support])
|
|
AC_ARG_ENABLE([heterogeneous],
|
|
[AC_HELP_STRING([--enable-heterogeneous],
|
|
[Enable features required for heterogeneous
|
|
platform support (default: disabled)])])
|
|
if test "$enable_heterogeneous" = "yes" ; then
|
|
AC_MSG_RESULT([yes])
|
|
ompi_want_heterogeneous=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
ompi_want_heterogeneous=0
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_HETEROGENEOUS_SUPPORT],
|
|
[$ompi_want_heterogeneous],
|
|
[Enable features required for heterogeneous support])
|
|
|
|
|
|
#
|
|
# Internal trace file logging (debugging)
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want trace file debugging])
|
|
AC_ARG_ENABLE([trace],
|
|
[AC_HELP_STRING([--enable-trace],
|
|
[Enable internal tracing of OMPI/ORTE/OPAL calls -- used only for developer debugging, not tracing of MPI applications (default: disabled)])])
|
|
if test "$enable_trace" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
opal_want_trace=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
opal_want_trace=0
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_TRACE], [$opal_want_trace],
|
|
[Enable run-time tracing of internal functions])
|
|
|
|
|
|
|
|
#
|
|
# Cross-compile data
|
|
#
|
|
AC_ARG_WITH([cross],
|
|
[AC_HELP_STRING([--with-cross=FILE],
|
|
[Specify configure values that can not be determined in a cross-compilation environment. See the Open MPI FAQ.])])
|
|
if test "$with_cross" = "yes" ; then
|
|
AC_MSG_ERROR([--with-cross argument must include FILE option])
|
|
elif test "$with_cross" = "no" ; then
|
|
AC_MSG_ERROR([--without-cross is not a valid argument])
|
|
elif test "$with_cross" != "" ; then
|
|
if test ! -r $with_cross ; then
|
|
AC_MSG_ERROR([could not find cross-compile data file $with_cross])
|
|
fi
|
|
|
|
# eval into environment
|
|
OPAL_LOG_MSG([Loading cross-compile file $with_cross, with contents below])
|
|
OPAL_LOG_FILE([$with_cross])
|
|
. "$with_cross"
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT], [0],
|
|
[Enable fault tolerance general components and logic])
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_FT_CR], [0],
|
|
[Enable fault tolerance checkpoint/restart components and logic])
|
|
AM_CONDITIONAL(WANT_FT, /bin/false)
|
|
AM_CONDITIONAL(WANT_FT_CR, /bin/false)
|
|
|
|
#
|
|
# Do we want to install binaries?
|
|
#
|
|
AC_ARG_ENABLE([binaries],
|
|
[AC_HELP_STRING([--enable-binaries],
|
|
[Build and install binaries required for Open MPI, such as the wrapper compilers. Useful for multi-lib installations. (default: enabled)])])
|
|
AM_CONDITIONAL([OMPI_INSTALL_BINARIES], [test "$enable_binaries" != "no"])
|
|
|
|
AC_ARG_ENABLE([script-wrapper-compilers],
|
|
[AC_HELP_STRING([--enable-script-wrapper-compilers],
|
|
[Use less featured script-based wrapper compilers instead of the standard C-based wrapper compilers. This option ignores the --disable-binaries option and is mainly useful in cross-compile environments])])
|
|
if test "$enable_script_wrapper_compilers" = "yes"; then
|
|
WANT_SCRIPT_WRAPPER_COMPILERS=1
|
|
else
|
|
WANT_SCRIPT_WRAPPER_COMPILERS=0
|
|
fi
|
|
AM_CONDITIONAL([OPAL_WANT_SCRIPT_WRAPPER_COMPILERS], [test "$enable_script_wrapper_compilers" = "yes"])
|
|
|
|
#
|
|
# Support per-user config files?
|
|
#
|
|
AC_ARG_ENABLE([per-user-config-files],
|
|
[AC_HELP_STRING([--enable-per-user-config-files],
|
|
[Disable per-user configuration files, to save disk accesses during job start-up. This is likely desirable for large jobs. Note that this can also be acheived by environment variables at run-time. (default: enabled)])])
|
|
if test "$enable_per_user_config_files" = "no" ; then
|
|
result=0
|
|
else
|
|
result=1
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_WANT_HOME_CONFIG_FILES], [$result],
|
|
[Enable per-user config files])
|
|
|
|
#
|
|
# Do we want to enable IPv6 support?
|
|
#
|
|
AC_MSG_CHECKING([if want IPv6 support])
|
|
AC_ARG_ENABLE([ipv6],
|
|
[AC_HELP_STRING([--enable-ipv6],
|
|
[Enable IPv6 support, but only if the underlying system supports it (default: disabled)])])
|
|
if test "$enable_ipv6" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
opal_want_ipv6=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
opal_want_ipv6=0
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_IPV6], [$opal_want_ipv6],
|
|
[Enable IPv6 support, but only if the underlying system supports it])
|
|
|
|
|
|
#
|
|
# Package/brand string
|
|
#
|
|
AC_MSG_CHECKING([if want package/brand string])
|
|
AC_ARG_WITH([package-string],
|
|
[AC_HELP_STRING([--with-package-string=STRING],
|
|
[Use a branding string throughout Open MPI])])
|
|
if test "$with_package_string" = "" -o "$with_package_string" = "no"; then
|
|
with_package_string="Open MPI $OPAL_CONFIGURE_USER@$OPAL_CONFIGURE_HOST Distribution"
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OPAL_PACKAGE_STRING], ["$with_package_string"],
|
|
[package/branding string for Open MPI])
|
|
AC_MSG_RESULT([$with_package_string])
|
|
|
|
#
|
|
# Ident string
|
|
#
|
|
AC_MSG_CHECKING([if want ident string])
|
|
AC_ARG_WITH([ident-string],
|
|
[AC_HELP_STRING([--with-ident-string=STRING],
|
|
[Embed an ident string into Open MPI object files])])
|
|
if test "$with_ident_string" = "" -o "$with_ident_string" = "no"; then
|
|
with_ident_string="%VERSION%"
|
|
fi
|
|
# This is complicated, because $OMPI_VERSION may have spaces in it.
|
|
# So put the whole sed expr in single quotes -- i.e., directly
|
|
# substitute %VERSION% for (not expanded) $OMPI_VERSION.
|
|
with_ident_string="`echo $with_ident_string | sed -e 's/%VERSION%/$OMPI_VERSION/'`"
|
|
|
|
# Now eval an echo of that so that the "$OMPI_VERSION" token is
|
|
# replaced with its value. Enclose the whole thing in "" so that it
|
|
# ends up as 1 token.
|
|
with_ident_string="`eval echo $with_ident_string`"
|
|
|
|
AC_DEFINE_UNQUOTED([OPAL_IDENT_STRING], ["$with_ident_string"],
|
|
[ident string for Open MPI])
|
|
AC_MSG_RESULT([$with_ident_string])
|
|
|
|
|
|
#
|
|
# Use alternative checksum algorithm
|
|
#
|
|
AC_MSG_CHECKING([if want to use an alternative checksum algo for messages])
|
|
AC_ARG_WITH([dst-checksum],
|
|
[AC_HELP_STRING([--with-dst-checksum],
|
|
[Use an alternative checksum algorithm for messages])])
|
|
if test "$with_dst_checksum" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
CFLAGS="-DOPAL_CSUM_DST $CFLAGS"
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
|
|
#
|
|
# User level (mpi.h.in) visible maximum lengths of strings.
|
|
# These may be required in lower-level libraries to set up matching
|
|
# data-structures (e.g. OPAL_MAX_OBJECT_NAME).
|
|
#
|
|
# Default values (as of OMPI-1.3), and some sane minimum and maximum values
|
|
#
|
|
|
|
# No lower and upper bound required or enforced
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(processor_name, 256, 16, 1024)
|
|
|
|
# Min length according to information passed in ompi/errhandler/errcode.c
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(error_string, 256, 64, 1024)
|
|
|
|
# Min length according to MPI-2.1, p. 236 (information passed in ompi/communicator/comm.c: min only 48)
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(object_name, 64, 64, 256)
|
|
|
|
# Min and Max length according to MPI-2.1, p. 287 is 32; longest key in ROMIO however 33
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(info_key, 36, 34, 255)
|
|
|
|
# No lower and upper bound required or enforced!
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(info_val, 256, 32, 1024)
|
|
|
|
# Min length according to _POSIX_HOST_NAME_MAX=255 (4*HOST_NAME_MAX)
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(port_name, 1024, 255, 2048)
|
|
|
|
# Min length accroding to MPI-2.1, p. 418
|
|
OPAL_WITH_OPTION_MIN_MAX_VALUE(datarep_string, 128, 64, 256)
|
|
|
|
# How to build libltdl
|
|
AC_ARG_WITH([libltdl],
|
|
[AC_HELP_STRING([--with-libltdl(=DIR)],
|
|
[Where to find libltdl (this option is ignored if --disable-dlopen is used). DIR can take one of three values: "internal", "external", or a valid directory name. "internal" (or no DIR value) forces Open MPI to use its internal copy of libltdl. "external" forces Open MPI to use an external installation of libltdl. Supplying a valid directory name also forces Open MPI to use an external installation of libltdl, and adds DIR/include, DIR/lib, and DIR/lib64 to the search path for headers and libraries.])])
|
|
|
|
AC_DEFINE_UNQUOTED([OPAL_ENABLE_CRDEBUG], [0],
|
|
[Whether we want checkpoint/restart enabled debugging functionality or not])
|
|
|
|
#
|
|
# Check to see if user wants CUDA support in datatype and convertor code.
|
|
#
|
|
AC_ARG_WITH([cuda],
|
|
[AC_HELP_STRING([--with-cuda(=DIR)],
|
|
[Build cuda support, optionally adding DIR/include, DIR/lib, and DIR/lib64])])
|
|
AC_MSG_CHECKING([if --with-cuda is set])
|
|
|
|
# CUDA support is off by default. User has to request it.
|
|
AS_IF([test "$with_cuda" = "no" -o "x$with_cuda" = "x"],
|
|
[opal_check_cuda_happy="no"
|
|
AC_MSG_RESULT([not set (--with-cuda=$with_cuda)])],
|
|
[AS_IF([test "$with_cuda" = "yes"],
|
|
[AS_IF([test "x`ls /usr/local/cuda/include/cuda.h 2> /dev/null`" = "x"],
|
|
[AC_MSG_RESULT([not found in standard location])
|
|
AC_MSG_WARN([Expected file /usr/local/cuda/include/cuda.h not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[AC_MSG_RESULT([found])
|
|
opal_check_cuda_happy="yes"
|
|
with_cuda="/usr/local/cuda"])],
|
|
[AS_IF([test ! -d "$with_cuda"],
|
|
[AC_MSG_RESULT([not found])
|
|
AC_MSG_WARN([Directory $with_cuda not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[AS_IF([test "x`ls $with_cuda/include/cuda.h 2> /dev/null`" = "x"],
|
|
[AC_MSG_RESULT([not found])
|
|
AC_MSG_WARN([Expected file $with_cuda/include/cuda.h not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[opal_check_cuda_happy="yes"
|
|
AC_MSG_RESULT([found ($with_cuda/include/cuda.h)])])])])])
|
|
|
|
# Check for optional libdir setting
|
|
AC_ARG_WITH([cuda-libdir],
|
|
[AC_HELP_STRING([--with-cuda-libdir=DIR],
|
|
[Search for cuda libraries in DIR])])
|
|
AC_MSG_CHECKING([if --with-cuda-libdir is set])
|
|
|
|
# Only check for the extra cuda libdir if we have passed the --with-cuda tests.
|
|
AS_IF([test "$opal_check_cuda_happy" = "yes"],
|
|
[AS_IF([test "$with_cuda_libdir" != "yes" -a "$with_cuda_libdir" != "no" -a "x$with_cuda_libdir" != "x"],
|
|
[AS_IF([test ! -d "$with_cuda_libdir"],
|
|
[AC_MSG_RESULT([not found])
|
|
AC_MSG_WARN([Directory $with_cuda_libdir not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[AS_IF([test "x`ls $with_cuda_libdir/libcuda.* 2> /dev/null`" = "x"],
|
|
[AC_MSG_RESULT([not found])
|
|
AC_MSG_WARN([Expected file $with_cuda_libdir/libcuda.* not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[AC_MSG_RESULT([ok - found directory ($with_cuda_libdir)])])])],
|
|
[with_cuda_libdir=/usr/lib64
|
|
AS_IF([test "x`ls $with_cuda_libdir/libcuda.* 2> /dev/null`" = "x"],
|
|
[AC_MSG_RESULT([not found])
|
|
AC_MSG_WARN([Expected file $with_cuda_libdir/libcuda.* not found])
|
|
AC_MSG_ERROR([Cannot continue])],
|
|
[AC_MSG_RESULT([ok - found directory ($with_cuda_libdir)])])])],
|
|
[AC_MSG_RESULT([not applicable since --with-cuda is not set])])
|
|
|
|
# If we have CUDA support, check to see if we have CUDA 4.1 support
|
|
AS_IF([test "$opal_check_cuda_happy"="yes"],
|
|
AC_CHECK_MEMBER([struct CUipcMemHandle_st.reserved], [CUDA_SUPPORT_41=1], [CUDA_SUPPORT_41=0],
|
|
[#include <$with_cuda/include/cuda.h>]),
|
|
[])
|
|
|
|
AC_MSG_CHECKING([if have cuda support])
|
|
if test "$opal_check_cuda_happy" = "yes"; then
|
|
AC_MSG_RESULT([yes (-I$with_cuda/include -L$with_cuda_libdir -lcuda)])
|
|
CUDA_SUPPORT=1
|
|
opal_datatype_cuda_CPPFLAGS="-I$with_cuda/include"
|
|
opal_datatype_cuda_LIBS="-L$with_cuda_libdir -lcuda"
|
|
AC_SUBST([opal_datatype_cuda_CPPFLAGS])
|
|
AC_SUBST([opal_datatype_cuda_LIBS])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
CUDA_SUPPORT=0
|
|
fi
|
|
|
|
AM_CONDITIONAL([OPAL_cuda_support], [test "x$CUDA_SUPPORT" = "x1"])
|
|
AC_DEFINE_UNQUOTED([OPAL_CUDA_SUPPORT],$CUDA_SUPPORT,
|
|
[Whether we want cuda device pointer support])
|
|
|
|
AM_CONDITIONAL([OPAL_cuda_support_41], [test "x$CUDA_SUPPORT_41" = "x1"])
|
|
AC_DEFINE_UNQUOTED([OPAL_CUDA_SUPPORT_41],$CUDA_SUPPORT_41,
|
|
[Whether we have CUDA 4.1 support available])
|
|
|
|
])dnl
|