6d969db21b
for compilers that don't support it out of the box but can with the right flag This commit was SVN r3834.
140 строки
3.6 KiB
Bash
140 строки
3.6 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_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])
|
|
|
|
# When building OMPI, we need this everywhere
|
|
|
|
CPPFLAGS="$CPPFLAGS -DOMPI_BUILDING=1"
|
|
|
|
# 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
|
|
|
|
OMPI_CFLAGS_BEFORE_PICKY="$CFLAGS"
|
|
if test "$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
|
|
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.
|
|
|
|
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"])
|