0964152893
we are part of the source tree and not defined otherwise, we are going with an always defined if ompi_config.h is included policy. If ompi_config.h is included before mpi.h or before OMPI_BUILDING is set, it will set OMPI_BUILDING to 1 and enable all the internal code that is in ompi_config_bottom.h. Otherwise, it will only include the system configuration data (enough for defining the C and C++ interfaces to MPI, but not perturbing the user environment). This should fix the problems with bool and the like that the Eclipse folks were seeing. It also cleans up some build system hacks that we had along the way. Also, don't use int64_t as the default size of MPI_Offset, because it requires us including stdint.h in mpi.h, which is something we really shouldn't be doing. And finally, fix a ROMIO Makefile that didn't set -DOMPI_BUILDING=1, as ROMIO includes mpi.h, but not ompi_config.h This commit was SVN r5430.
184 строки
5.0 KiB
Bash
184 строки
5.0 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 (c) 2004-2005 The Regents of the University of California.
|
|
dnl All rights reserved.
|
|
dnl $COPYRIGHT$
|
|
dnl
|
|
dnl Additional copyrights may follow
|
|
dnl
|
|
dnl $HEADER$
|
|
dnl
|
|
|
|
AC_DEFUN([OMPI_SETUP_CC],[
|
|
|
|
# Modularize this setup so that sub-configure.in scripts can use this
|
|
# same setup code.
|
|
|
|
ompi_show_subtitle "C compiler and preprocessor"
|
|
|
|
# $%@#!@#% AIX!! This has to be called before anything invokes the C
|
|
# compiler.
|
|
|
|
dnl AC_AIX
|
|
|
|
#
|
|
# Check for the compiler
|
|
#
|
|
|
|
ompi_cflags_save="$CFLAGS"
|
|
AC_PROG_CC
|
|
BASECC="`basename $CC`"
|
|
CFLAGS="$ompi_cflags_save"
|
|
AC_DEFINE_UNQUOTED(OMPI_CC, "$CC", [OMPI underlying C compiler])
|
|
|
|
# Check for compilers that impersonate gcc
|
|
|
|
AC_MSG_CHECKING([for compilers that impersonate gcc])
|
|
msg=
|
|
TRULY_GCC=$GCC
|
|
if test "$GCC" = "yes"; then
|
|
AC_TRY_COMPILE([], [
|
|
int i = 3;
|
|
#if __INTEL_COMPILER
|
|
#error Yes, I am lying about being gcc.
|
|
#endif
|
|
], [], [msg=intel])
|
|
|
|
# If we made it through unscathed, then it really is gcc
|
|
if test -z "$msg"; then
|
|
TRULY_GCC=yes
|
|
else
|
|
TRULY_GCC=no
|
|
fi
|
|
else
|
|
# We never thought that this was gcc to begin with
|
|
msg="not applicable"
|
|
TRULY_GCC=no
|
|
fi
|
|
AC_MSG_RESULT([$msg])
|
|
|
|
# Do we want code coverage
|
|
if test "$WANT_COVERAGE" = "1"; then
|
|
if test "$TRULY_GCC" = "yes"; then
|
|
CLEANFILES="*.bb *.bbg *.da *.*.gcov ${CLEANFILES}"
|
|
AC_MSG_WARN([-fprofile-arcs -ftest-coverage has been added to CFLAGS (--enable-coverage)])
|
|
WANT_DEBUG=1
|
|
CFLAGS="-ftest-coverage -fprofile-arcs ${CFLAGS}"
|
|
WRAPPER_EXTRA_CFLAGS="-ftest-coverage -fprofile-arcs ${WRAPPER_EXTRA_CFLAGS}"
|
|
else
|
|
AC_MSG_WARN([Code coverage functionality is currently available only with GCC])
|
|
AC_MSG_ERROR([Configure: Cannot continue])
|
|
fi
|
|
fi
|
|
|
|
# Do we want debugging?
|
|
|
|
if test "$WANT_DEBUG" = "1"; then
|
|
CFLAGS="$CFLAGS -g"
|
|
OMPI_UNIQ(CFLAGS)
|
|
AC_MSG_WARN([-g has been added to CFLAGS (--enable-debug)])
|
|
fi
|
|
|
|
# These flags are generally gcc-specific; even the gcc-impersonating
|
|
# compilers won't accept them.
|
|
|
|
OMPI_CFLAGS_BEFORE_PICKY="$CFLAGS"
|
|
if test "$TRULY_GCC" = "yes" -a "$WANT_PICKY_COMPILER" = 1; then
|
|
add="-Wall -Wundef -Wno-long-long -Wsign-compare"
|
|
add="$add -Wmissing-prototypes -Wstrict-prototypes"
|
|
add="$add -Wcomment -pedantic"
|
|
|
|
# see if -Wno-long-double works...
|
|
CFLAGS_orig="$CFLAGS"
|
|
CFLAGS="$CFLAGS -Wno-long-double"
|
|
AC_TRY_COMPILE([], [], add="$add -Wno-long-double")
|
|
CFLAGS="$CFLAGS_orig"
|
|
|
|
add="$add -Werror-implicit-function-declaration "
|
|
|
|
CFLAGS="$CFLAGS $add"
|
|
OMPI_UNIQ(CFLAGS)
|
|
AC_MSG_WARN([$add has been added to CFLAGS (--enable-picky)])
|
|
unset add
|
|
fi
|
|
|
|
# See if this version of gcc allows -finline-functions and/or
|
|
# -fno-strict-aliasing. Even check the gcc-impersonating compilers.
|
|
if test "$GCC" = "yes"; then
|
|
CFLAGS_orig="$CFLAGS"
|
|
|
|
CFLAGS="$CFLAGS_orig -finline-functions"
|
|
add=
|
|
AC_TRY_COMPILE([], [], add=" -finline-functions")
|
|
CFLAGS="$CFLAGS_orig$add"
|
|
|
|
CFLAGS="$CFLAGS_orig -fno-strict-aliasing"
|
|
add=
|
|
AC_TRY_COMPILE([], [], add=" -fno-strict-aliasing")
|
|
CFLAGS="$CFLAGS_orig$add"
|
|
|
|
OMPI_UNIQ(CFLAGS)
|
|
AC_MSG_WARN([$add has been added to CFLAGS])
|
|
unset add
|
|
fi
|
|
|
|
# Try to enable restrict keyword
|
|
RESTRICT_CFLAGS=
|
|
case "${host}" in
|
|
ia64-unknown-linux*)
|
|
if test "$CC" = "ecc" ; then
|
|
RESTRICT_CFLAGS="-restrict"
|
|
fi
|
|
;;
|
|
mips-sgi-irix*)
|
|
if test "$CC" = "cc" ; then
|
|
RESTRICT_CFLAGS="-LANG:restrict=ON"
|
|
fi
|
|
;;
|
|
i?86-pc-linux*)
|
|
if test "$CC" = "icc" ; then
|
|
RESTRICT_CFLAGS="-restrict"
|
|
fi
|
|
;;
|
|
esac
|
|
if test ! -z "$RESTRICT_CFLAGS" ; then
|
|
CFLAGS_orig="$CFLAGS"
|
|
CFLAGS="$CFLAGS_orig $RESTRICT_CFLAGS"
|
|
add=
|
|
AC_TRY_COMPILE([], [], add=" $RESTRICT_CFLAGS")
|
|
CFLAGS="${CFLAGS_orig}${add}"
|
|
OMPI_UNIQ(CFLAGS)
|
|
AC_MSG_WARN([$add has been added to CFLAGS])
|
|
unset add
|
|
fi
|
|
|
|
# Preload the optflags for the case where the user didn't specify any.
|
|
# If we're using GNU compilers, use -O3 (since it GNU doesn't require
|
|
# all compilation units to be compiled with the same level of
|
|
# optimization -- selecting a high level of optimization is not
|
|
# prohibitive). If we're using anything else, be conservative and
|
|
# just use -O.
|
|
|
|
# Note: gcc-imperonating compilers accept -O3, so there's no need for
|
|
# $TRULY_GCC here.
|
|
|
|
if test "$GCC" = yes; then
|
|
OPTFLAGS="-O3"
|
|
else
|
|
OPTFLAGS="-O"
|
|
fi
|
|
|
|
OMPI_CHECK_OPTFLAGS("$OMPI_CFLAGS_BEFORE_PICKY")
|
|
OMPI_CFLAGS_BEFORE_PICKY="$co_result"
|
|
|
|
AC_MSG_CHECKING([for C optimization flags])
|
|
OMPI_CHECK_OPTFLAGS("$CFLAGS")
|
|
AC_MSG_RESULT([$co_result])
|
|
CFLAGS="$co_result"])
|