36b315db2d
Make the checks for macro weak symbols be equivalent to the checks for weak symbols. Also fix up several OSHMEM configure checks: * fix an errant AC_MSG_REQUEST * don't check for profiling ability during configure options checks. Instead, defer it to later, when we have weak symbol check results. * don't directly call _FOO macros from the top level * make setting up OSHMEM profiling similar to MPI profiling: create OSHMEM_SETUP_PROFILING macro * cache the results of checking for macro weak symbols (for parity with the weak symbol check -- although we should really revisit/audit the whole cache-checking scheme throughout all m4 code; it may well be inconsistently used) * add some more [] m4 quoting, even in the original C weak symbols test * style: fix some whitespace errors Refs trac:4868 This commit was SVN r32590. The following Trac tickets were found above: Ticket 4868 --> https://svn.open-mpi.org/trac/ompi/ticket/4868
154 строки
5.3 KiB
Bash
154 строки
5.3 KiB
Bash
dnl -*- shell-script -*-
|
|
dnl
|
|
dnl Copyright (c) 2013 Mellanox Technologies, Inc.
|
|
dnl All rights reserved.
|
|
dnl Copyright (c) 2013-2014 Cisco Systems, Inc. All rights reserved.
|
|
dnl Copyright (c) 2014 Intel, Inc. All rights reserved
|
|
dnl Copyright (c) 2014 Research Organization for Information Science
|
|
dnl and Technology (RIST). All rights reserved.
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
AC_DEFUN([OSHMEM_CONFIGURE_OPTIONS],[
|
|
opal_show_subtitle "OSHMEM Configuration options"
|
|
|
|
AC_SUBST(OSHMEM_LIBSHMEM_EXTRA_LIBS)
|
|
AC_SUBST(OSHMEM_LIBSHMEM_EXTRA_LDFLAGS)
|
|
|
|
#
|
|
# Disable Open SHMEM?
|
|
#
|
|
AC_MSG_CHECKING([if want oshmem])
|
|
AC_ARG_ENABLE([oshmem],
|
|
[AC_HELP_STRING([--enable-oshmem],
|
|
[Enable building the OpenSHMEM interface (available on Linux only, where it is enabled by default)])],
|
|
[oshmem_arg_given=yes],
|
|
[oshmem_arg_given=no])
|
|
if test "$oshmem_arg_given" = "yes"; then
|
|
if test "$enable_oshmem" = "yes"; then
|
|
AC_MSG_RESULT([yes])
|
|
if test "$opal_found_linux" != "yes"; then
|
|
AC_MSG_WARN([OpenSHMEM support was requested, but currently])
|
|
AC_MSG_WARN([only supports Linux.])
|
|
AC_MSG_ERROR([Cannot continue])
|
|
fi
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
else
|
|
if test "$opal_found_linux" = "yes"; then
|
|
enable_oshmem=yes
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
enable_oshmem=no
|
|
AC_MSG_RESULT([not supported on this platform])
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# Enable compatibility mode
|
|
#
|
|
AC_MSG_CHECKING([if want SGI/Quadrics compatibility mode])
|
|
AC_ARG_ENABLE(oshmem-compat,
|
|
AC_HELP_STRING([--enable-oshmem-compat],
|
|
[enable compatibility mode (default: enabled)]))
|
|
if test "$enable_oshmem" != "no" -a "$enable_oshmem_compat" != "no"; then
|
|
AC_MSG_RESULT([yes])
|
|
OSHMEM_SPEC_COMPAT=1
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
OSHMEM_SPEC_COMPAT=0
|
|
fi
|
|
AC_DEFINE_UNQUOTED([OSHMEM_SPEC_COMPAT], [$OSHMEM_SPEC_COMPAT],
|
|
[Whether user wants OSHMEM in compatibility mode or not])
|
|
|
|
|
|
|
|
#
|
|
# Do we want to disable OSHMEM parameter checking at run-time?
|
|
#
|
|
AC_MSG_CHECKING([if want OSHMEM API parameter checking])
|
|
AC_ARG_WITH(oshmem-param-check,
|
|
AC_HELP_STRING([--oshmem-param-check(=VALUE)],
|
|
[behavior of OSHMEM API function parameter checking. Valid values are: always, never. If --with-oshmem-param-check is specified with no VALUE argument, it is equivalent to a VALUE of "always"; --without-oshmem-param-check is equivalent to "never" (default: always).]))
|
|
if test "$enable_oshmem" != "no"; then
|
|
if test "$with_oshmem_param_check" = "no" -o \
|
|
"$with_oshmem_param_check" = "never"; then
|
|
shmem_param_check=0
|
|
AC_MSG_RESULT([never])
|
|
elif test "$with_oshmem_param_check" = "yes" -o \
|
|
"$with_oshmem_param_check" = "always" -o \
|
|
-z "$with_oshmem_param_check"; then
|
|
shmem_param_check=1
|
|
AC_MSG_RESULT([always])
|
|
else
|
|
AC_MSG_RESULT([unknown])
|
|
AC_MSG_WARN([*** Unrecognized --with-oshmem-param-check value])
|
|
AC_MSG_WARN([*** See "configure --help" output])
|
|
AC_MSG_WARN([*** Defaulting to "runtime"])
|
|
fi
|
|
else
|
|
shmem_param_check=0
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
AC_DEFINE_UNQUOTED(OSHMEM_PARAM_CHECK, $shmem_param_check,
|
|
[Whether we want to check OSHMEM parameters always or never])
|
|
|
|
|
|
#
|
|
# OSHMEM profiling support
|
|
#
|
|
AC_ARG_ENABLE(oshmem-profile,
|
|
AC_HELP_STRING([--enable-oshmem-profile],
|
|
[enable OSHMEM profiling (default: enabled)]))
|
|
AC_MSG_CHECKING([if want pshmem])
|
|
AS_IF([test "$enable_oshmem_profile" != "no"],
|
|
[AC_MSG_RESULT([yes])],
|
|
[AC_MSG_RESULT([no])])
|
|
|
|
# Bozo check
|
|
AS_IF([test "$enable_oshmem" = "no" && \
|
|
test "$enable_oshmem_profile" = "yes"],
|
|
[AC_MSG_WARN([OpenSHMEM profiling was requested, but OpenSHMEM has been explicitly disabled])
|
|
AC_MSG_ERROR([Cannot continue])])
|
|
|
|
# Cannot check if we can enable profiling because it is not yet
|
|
# known whether the compiler supports weak symbols.
|
|
|
|
|
|
#
|
|
# Fortran bindings
|
|
#
|
|
AC_MSG_CHECKING([if want to build OSHMEM fortran bindings])
|
|
AC_ARG_ENABLE(oshmem-fortran,
|
|
AC_HELP_STRING([--enable-oshmem-fortran],
|
|
[enable OSHMEM Fortran bindings (default: enabled if Fortran compiler found)]))
|
|
if test "$enable_oshmem" != "no" -a "$enable_oshmem_fortran" != "no"; then
|
|
# If no OMPI FORTRAN, bail
|
|
AS_IF([test $OMPI_WANT_FORTRAN_BINDINGS -eq 0 -a "$enable_oshmem_fortran" = "yes"],
|
|
[AC_MSG_RESULT([bad value OMPI_WANT_FORTRAN_BINDINGS: ($OMPI_WANT_FORTRAN_BINDINGS)])
|
|
AC_MSG_WARN([Your request to --enable-oshmem-fortran can only be satisfied if fortran support is enabled in OMPI.
|
|
You see this message because OMPI fortran support has been explicitly disabled via --disable-mpi-fortran and OSHMEM fortran support was explicitly enabled with --enable-oshmem-fortran.
|
|
Configure will abort because you, a human, have asked for something that cannot be provided.])
|
|
AC_MSG_ERROR([Cannot continue])])
|
|
if test $OMPI_WANT_FORTRAN_BINDINGS -eq 1; then
|
|
AC_MSG_RESULT([yes])
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
else
|
|
enable_oshmem_fortran=no
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
#
|
|
# We can't set am_conditional here since it's yet unknown if there is
|
|
# valid Fortran compiler avaliable
|
|
#
|
|
|
|
]) dnl
|