3966e30902
#if OMPI_WANT_MPI2_ONE_SIDED and some automake conditionals. Also had to add some AC_SUBSTs to eliminate part of mpif.h (otherwise the "external" statements would have made undefined symbols). All the MPI-2 one-sided functionality (including the skeleton top-level MPI API functions that only invoke an MPI exception) can be re-enabled with --enable-mpi2-one-sided. This commit was SVN r3802.
343 строки
10 KiB
Bash
343 строки
10 KiB
Bash
dnl -*- shell-script -*-
|
|
dnl
|
|
dnl Copyright (c) 2004-2005 The Trustees of Indiana University.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
|
dnl University of Stuttgart. All rights reserved.
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
AC_DEFUN([OMPI_CONFIGURE_OPTIONS],[
|
|
ompi_show_subtitle "Configuration options"
|
|
|
|
#
|
|
# Memory debugging
|
|
#
|
|
|
|
AC_MSG_CHECKING([whether 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_zero" -a -d .svn; then
|
|
WANT_MEM_DEBUG=1
|
|
echo "--> developer override: enable mem profiling by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
AC_DEFINE_UNQUOTED(OMPI_ENABLE_MEM_DEBUG, $WANT_MEM_DEBUG,
|
|
[Whether we want the memory profiling or not])
|
|
|
|
#
|
|
# Memory profiling
|
|
#
|
|
|
|
AC_MSG_CHECKING([whether 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_zero" -a -d .svn; then
|
|
WANT_MEM_PROFILE=1
|
|
echo "--> developer override: enable mem profiling by default"
|
|
fi
|
|
#################### Early development override ####################
|
|
AC_DEFINE_UNQUOTED(OMPI_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 -d .svn; 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 -d .svn; 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 $CFLAGS"
|
|
fi
|
|
AC_DEFINE_UNQUOTED(OMPI_ENABLE_DEBUG, $WANT_DEBUG,
|
|
[Whether we want developer-level debugging code or not])
|
|
|
|
|
|
#
|
|
# Fortran 77
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want Fortran 77 bindings])
|
|
AC_ARG_ENABLE(f77,
|
|
AC_HELP_STRING([--enable-f77],
|
|
[enable f77 MPI bindings (default: enabled)]))
|
|
if test "$enable_f77" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
OMPI_WANT_F77_BINDINGS=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
OMPI_WANT_F77_BINDINGS=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Fortran 90
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want Fortran 90 bindings])
|
|
AC_ARG_ENABLE(f90,
|
|
AC_HELP_STRING([--enable-f90],
|
|
[enable f90 MPI bindings (default: enabled)]))
|
|
if test "$enable_f90" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
OMPI_WANT_F90_BINDINGS=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
OMPI_WANT_F90_BINDINGS=0
|
|
fi
|
|
|
|
|
|
#
|
|
# MPI profiling
|
|
#
|
|
|
|
AC_MSG_CHECKING([whether to enable PMPI])
|
|
AC_ARG_ENABLE(mpi-profile,
|
|
AC_HELP_STRING([--enable-mpi-profile],
|
|
[enable MPI profiling (default: enabled)]))
|
|
if test "$enable_mpi_profile" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_MPI_PROFILING=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_MPI_PROFILING=0
|
|
fi
|
|
|
|
|
|
#
|
|
# C++
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want C++ bindings])
|
|
AC_ARG_ENABLE(cxx,
|
|
AC_HELP_STRING([--enable-cxx],
|
|
[enable C++ MPI bindings (default: enabled)]))
|
|
if test "$enable_cxx" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_MPI_CXX_SUPPORT=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_MPI_CXX_SUPPORT=0
|
|
fi
|
|
|
|
|
|
#
|
|
# Do we want to disable weak symbols for some reason?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to enable 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 disable MPI parameter checking at run-time?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want run-time MPI parameter checking])
|
|
AC_ARG_WITH(mpi-param-check,
|
|
AC_HELP_STRING([--with-mpi-param-check(=VALUE)],
|
|
[behavior of MPI function parameter checking. Valid values are: always, never, runtime. No VALUE specified is equivalent to "always"; --without is equivalent to "never" (default: runtime).]))
|
|
mpi_param_check=ompi_mpi_param_check
|
|
if test "$with_mpi_param_check" = "no" -o \
|
|
"$with_mpi_param_check" = "never"; then
|
|
mpi_param_check=0
|
|
AC_MSG_RESULT([never])
|
|
elif test "$with_mpi_param_check" = "yes" -o \
|
|
"$with_mpi_param_check" = "always"; then
|
|
mpi_param_check=1
|
|
AC_MSG_RESULT([always])
|
|
elif test "$with_mpi_param_check" = "runtime" -o \
|
|
-z "$with_mpi_params_check"; then
|
|
AC_MSG_RESULT([runtime])
|
|
else
|
|
AC_MSG_RESULT([unknown])
|
|
AC_MSG_WARN([*** Unrecognized --with-mpi-param-check value])
|
|
AC_MSG_WARN([*** See "configure --help" output])
|
|
AC_MSG_WARN([*** Defaulting to "runtime"])
|
|
fi
|
|
AC_DEFINE_UNQUOTED(MPI_PARAM_CHECK, $mpi_param_check,
|
|
[Whether we want to check MPI parameters always, never, or decide at run-time])
|
|
|
|
|
|
#
|
|
# Do we want to install all of OMPI's header files?
|
|
#
|
|
|
|
AC_MSG_CHECKING([if want to install OMPI 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)
|
|
|
|
# --enable-dist
|
|
# ...?
|
|
|
|
# amorphous, seem-to-be-good-idea options
|
|
# --with-ompi=maintainer_options
|
|
# --with-mca-*
|
|
# ...?
|
|
|
|
#
|
|
# Do we want deprecated executable names ?
|
|
#
|
|
AC_MSG_CHECKING(if want deprecated executable names)
|
|
AC_ARG_ENABLE(deprecated-executable-names,
|
|
AC_HELP_STRING([--enable-deprecated-executable-names], [make sym links to deprecated OMPI executables (e.g., hcc, hcp, hf77, wipe) (default: disabled)]))
|
|
if test "$enable_deprecated_executable_names" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
WANT_DEN=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
WANT_DEN=0
|
|
fi
|
|
|
|
AM_CONDITIONAL(WANT_DEPRECATED_EXECUTABLE_NAMES, test "$WANT_DEN" = "1")
|
|
|
|
|
|
#
|
|
# Do we want to build MPI-2 one-sided functions? Currently, they are
|
|
# empty shell functions that simply invoke an MPI exception (i.e., a
|
|
# run-time error vs. a compile/link-time error).
|
|
#
|
|
AC_MSG_CHECKING([if want MPI-2 one-sided empty shell functions])
|
|
AC_ARG_ENABLE(mpi2-one-sided,
|
|
AC_HELP_STRING([--enable-mpi2-one-sided],
|
|
[Do we want to build empty shell functions for the MPI-2 one-sided functionality? (these functions are currently unimplemented -- all they do is invoke a run-time MPI exception)]))
|
|
if test "$enable_mpi2_one_sided" = "yes"; then
|
|
mpi2_one_sided=yes
|
|
value=1
|
|
|
|
# Need to set values that will be in mpif.h
|
|
|
|
OMPI_F77_WIN_ATTR_KEYS="integer MPI_WIN_BASE, MPI_WIN_SIZE, MPI_WIN_DISP_UNIT"
|
|
OMPI_F77_WIN_ATTR_BASE_VALUE="parameter (MPI_WIN_BASE=6)"
|
|
OMPI_F77_WIN_ATTR_SIZE_VALUE="parameter (MPI_WIN_SIZE=7)"
|
|
OMPI_F77_WIN_ATTR_DISP_VALUE="parameter (MPI_WIN_DISP_UNIT=8)"
|
|
OMPI_F77_WIN_NULL_COPY_FN="external MPI_WIN_NULL_COPY_FN"
|
|
OMPI_F77_WIN_NULL_DELETE_FN="external MPI_WIN_NULL_DELETE_FN"
|
|
OMPI_F77_WIN_DUP_FN="external MPI_WIN_DUP_FN"
|
|
else
|
|
mpi2_one_sided=no
|
|
value=0
|
|
|
|
# Many values in mpif.h are now blank
|
|
|
|
OMPI_F77_WIN_ATTR_KEYS=
|
|
OMPI_F77_WIN_ATTR_BASE_VALUE=
|
|
OMPI_F77_WIN_ATTR_SIZE_VALUE=
|
|
OMPI_F77_WIN_ATTR_DISP_VALUE=
|
|
OMPI_F77_WIN_NULL_COPY_FN=
|
|
OMPI_F77_WIN_NULL_DELETE_FN=
|
|
OMPI_F77_WIN_DUP_FN=
|
|
fi
|
|
AC_MSG_RESULT([$mpi2_one_sided])
|
|
AC_DEFINE_UNQUOTED(OMPI_WANT_MPI2_ONE_SIDED, $value,
|
|
[Do we want the MPI-2 one-sided functions to be compiled in or left out altogether (i.e., unlinkable)?])
|
|
AM_CONDITIONAL(WANT_MPI2_ONE_SIDED, test "$mpi2_one_sided" = "yes")
|
|
AC_SUBST(OMPI_F77_WIN_ATTR_KEYS)
|
|
AC_SUBST(OMPI_F77_WIN_ATTR_BASE_VALUE)
|
|
AC_SUBST(OMPI_F77_WIN_ATTR_SIZE_VALUE)
|
|
AC_SUBST(OMPI_F77_WIN_ATTR_DISP_VALUE)
|
|
AC_SUBST(OMPI_F77_WIN_NULL_COPY_FN)
|
|
AC_SUBST(OMPI_F77_WIN_NULL_DELETE_FN)
|
|
AC_SUBST(OMPI_F77_WIN_DUP_FN)
|
|
|
|
#
|
|
# Do we want event signal handlers
|
|
# BWB - this needs to be removed before release - XXX
|
|
#
|
|
AC_MSG_CHECKING([if want event library signal handling])
|
|
AC_ARG_ENABLE(event-signals,
|
|
AC_HELP_STRING([--enable-event-signals],
|
|
[Do we want to use the event library signal handlers (default: enabled)]))
|
|
if test "$enable_event_signals" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
use_event_signals=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
use_event_signals=0
|
|
fi
|
|
AC_DEFINE_UNQUOTED(OMPI_EVENT_USE_SIGNALS, $use_event_signals,
|
|
[Do we want to use the event library signal handlers])
|
|
|
|
|
|
#
|
|
])
|