X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2ef44ad1ef520a0d1ade150a0dfd1e8f6d60807f..ebad335f389796b72af10c2a52ee6db300980179:/acmacro/compiler-flags.m4 diff --git a/acmacro/compiler-flags.m4 b/acmacro/compiler-flags.m4 index 2189861f07..9910dfdf11 100644 --- a/acmacro/compiler-flags.m4 +++ b/acmacro/compiler-flags.m4 @@ -1,9 +1,15 @@ - - dnl SG_COMPILE_FLAGS dnl Turn on many useful compiler warnings dnl For now, only sets extra flags on GCC + +dnl Copyright (C) 2004, 2005, 2007. Martin Quinson. All rights reserved. + +dnl This file is part of the SimGrid project. This is free software: +dnl You can redistribute and/or modify it under the terms of the +dnl GNU LGPL (v2.1) licence. + + AC_DEFUN([SG_COMPILE_FLAGS],[ AC_ARG_ENABLE(compile-warnings, AS_HELP_STRING([--enable-compile-warnings], [use compiler warnings (default=no, unless in maintainer mode)]), @@ -13,25 +19,24 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ AS_HELP_STRING([--disable-compile-optimizations], [use compiler optimizations (default=yes, unless if CFLAGS is explicitly set)]), enable_compile_optimizations=$enableval,enable_compile_optimizations=auto) - if test "x$cflags_set" != "xyes" ; then - # if user didn't specify CFLAGS explicitely - # AC PROG CC tests whether -g is accepted. - # Cool, but it also tries to set -O2. I don't want it with gcc - saveCFLAGS="$CFLAGS" - CFLAGS= - case " $saveCFLAGS " in - *-g*) CFLAGS="-g" ;; - esac - case " $saveCFLAGS " in - *-O2*) test "x$CC" = xgcc || CFLAGS="$CFLAGS -O2" ;; + # Cool, but it also tries to set -O2 and -g. + # I don't want it with gcc, but -O3 and -g2, and optimization only when asked by user + case $CC in + *gcc) + if test "$CFLAGS" = "-g -O2" ; then + CFLAGS="-g3" + fi + if test "$CXXFLAGS" = "-g -O2" ; then + CXXFLAGS="-g3" + fi + if test "$GCJFLAGS" = "-g -O2" ; then + CXXFLAGS="-g3" + fi;; esac - - # damn AC PROG CC, why did you set -O?? - CFLAGS="-g" - fi - if test "x$enable_compile_warnings" = "xyes" ; then + if test "x$enable_compile_warnings" = "xyes" || + test "x$force_compile_warnings" = "xyes"; then AC_MSG_CHECKING(the warning flags for this compiler) warnCFLAGS= if test "x$CC" = "xgcc" || test "x$GCC" = "xyes" ; then @@ -45,14 +50,12 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ ## -Wformat=2 chokes on the snprintf replacement because the format is passed to real sprintf ## -Wshadow chokes on try{ try{} } constructs - if test "x$enable_compile_warnings" = "xyes"; then - warnCFLAGS=`echo $warnCFLAGS -Wmissing-prototypes -Wmissing-declarations \ + warnCFLAGS=`echo $warnCFLAGS -Wmissing-prototypes -Wmissing-declarations \ -Wpointer-arith -Wchar-subscripts -Wcomment -Wformat -Wwrite-strings \ - -Wno-unused-function \ + -Wno-unused-function -Wno-unused-parameter -Wno-strict-aliasing -Wno-format-nonliteral \ -Werror \ | sed 's/ +/ /g'` # -Wno-unused-variable -Wno-unused-label - fi fi AC_MSG_RESULT($warnCFLAGS) # placed before since gcc remembers the last one on conflict @@ -68,7 +71,8 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ *-O*) ;; *) optCFLAGS="$optCFLAGS -O3" ;; esac - optCFLAGS="$optCFLAGS -finline-functions -ffast-math -funroll-loops -fno-strict-aliasing" + optCFLAGS="$optCFLAGS -finline-functions -funroll-loops -fno-strict-aliasing" + # now that surf uses advanced maths in lagrangian, -ffast-math do break things GCC_VER=`gcc --version | head -n 1 | sed 's/^[^0-9]*\([^ ]*\).*$/\1/'` GCC_VER_MAJ=`echo $GCC_VER | sed 's/^\(.\).*$/\1/'` @@ -87,6 +91,8 @@ AC_DEFUN([SG_COMPILE_FLAGS],[ if test "x$cflags_set" != "xyes" ; then CFLAGS="$optCFLAGS $CFLAGS" fi + else + CFLAGS="$CFLAGS -O0" fi if test x$lt_cv_prog_gnu_ld = xyes ; then