]> www.ginac.de Git - cln.git/blobdiff - m4/cc.m4
* m4/cc.m4: Emit a warning if g++ is used and optimization turned off.
[cln.git] / m4 / cc.m4
index 0f071e57d08ca457feb780209c522fa1d7af309c..9a8326c5cb692254733cb11c30513771f8623e21 100644 (file)
--- a/m4/cc.m4
+++ b/m4/cc.m4
@@ -18,14 +18,25 @@ fi
 
 
 dnl Wrapper around AC_PROG_CXX setting CXXFLAGS to plain "-O" as opposed to
-dnl "-g -O2" for the GNU compiler (unless CXXFLAGS was set before).
+dnl "-g -O2" for the GNU compiler (unless CXXFLAGS was set before).  Also
+dnl emits a warning if G++ is used and optimization turned off.
 AC_DEFUN([CL_PROG_CXX],
 [cl_test_CXXFLAGS=${CXXFLAGS+set}
 # Make sure this macro does not come after AC_PROG_CXX.
 # Otherwise CXXFLAGS would already be set.
 AC_BEFORE([$0],[AC_PROG_CXX])dnl
 AC_PROG_CXX([$1])
-if test "$cl_test_CXXFLAGS" != set && test "$ac_compiler_gnu" = yes; then
+if test "$ac_compiler_gnu" = yes; then
+  if test "$cl_test_CXXFLAGS" != set; then
+    # User has not set CXXFLAGS.
     CXXFLAGS="-O"
+  else
+    # Warn if optimization has been turned off with GCC.
+    # Optimization is used for module ordering.
+    case $CXXFLAGS in
+      [ *\ -O | -O | -O\ * | *\ -O\ * | -O[!0]* | *\ -O[!0]*) ;; ]
+      *) AC_MSG_WARN([Optimization turned off. I recommend you unset CXXFLAGS.]);;
+    esac
+  fi
 fi
 ])