]> git.lyx.org Git - lyx.git/commitdiff
More tweaks to C++ compiler detection
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 13 Jan 2015 14:59:30 +0000 (15:59 +0100)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Tue, 13 Jan 2015 14:59:30 +0000 (15:59 +0100)
Now CXXFLAGS is left alone by autoconf: only the user can override it.

Properly set -g and -O options, which were overriden.

Try to put the arguments in a more reasonable ordering.

config/lyxinclude.m4
configure.ac

index b8ecda77562786445abfd395bdae8cdf70270254..22e10bc9afa9c6ef926f9401d97bac472c5965f1 100644 (file)
@@ -162,6 +162,7 @@ AC_DEFUN([LYX_LIB_STDCXX],
 AC_DEFUN([LYX_PROG_CXX],
 [AC_REQUIRE([AC_PROG_CXX])
 AC_REQUIRE([AC_PROG_CXXCPP])
+
 AC_LANG_PUSH(C++)
 LYX_PROG_CLANG
 LYX_LIB_STDCXX
@@ -260,8 +261,8 @@ if test x$GXX = xyes; then
       AM_CXXFLAGS="-g $AM_CXXFLAGS"
   fi
   if test $build_type = gprof ; then
-    AM_CXXFLAGS="-pg $AM_CXXFLAGS"
-    AM_LDFLAGS="-pg $AM_LDFLAGS"
+    AM_CXXFLAGS="$AM_CXXFLAGS -pg"
+    AM_LDFLAGS="$AM_LDFLAGS -pg"
   fi
   if test $build_type = profiling ; then
     AM_CXXFLAGS="$AM_CXXFLAGS -fno-omit-frame-pointer"
@@ -274,23 +275,20 @@ if test x$GXX = xyes; then
   if test x$enable_warnings = xyes ; then
       case $gxx_version in
           3.1*|3.2*|3.3*)
-              AM_CPPFLAGS="-W -Wall $AM_CPPFLAGS"
+              AM_CPPFLAGS="$AM_CPPFLAGS -Wall -W"
               ;;
           3.4*|4.0*|4.1*|4.2*|4.3*|4.4*|4.5*|4.6*|4.7*|4.8*|clang)
-              AM_CPPFLAGS="-Wextra -Wall $AM_CPPFLAGS"
+              AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra"
               ;;
           *)
-              AM_CPPFLAGS="-Wextra -Wall -Wfloat-conversion $AM_CPPFLAGS"
+              AM_CPPFLAGS="$AM_CPPFLAGS -Wall -Wextra -Wfloat-conversion"
               ;;
       esac
   fi
   case $gxx_version in
-      3.1*)    AM_CXXFLAGS="-finline-limit=500 ";;
-      3.2*|3.3*)    AM_CXXFLAGS="";;
-      3.4*|4.*)
-          AM_CXXFLAGS=""
-          test $enable_pch = yes && lyx_pch_comp=yes
-          ;;
+      3.1*)    AM_CXXFLAGS="$AM_CXXFLAGS -finline-limit=500";;
+      3.2*|3.3*) ;;
+      *)  test $enable_pch = yes && lyx_pch_comp=yes ;;
   esac
   if test x$enable_stdlib_debug = xyes ; then
     dnl FIXME: for clang/libc++, one should define _LIBCPP_DEBUG2=0
@@ -322,15 +320,15 @@ if test x$GXX = xyes; then
       3.*|4.0*|4.1*|4.2*) AC_ERROR([There is no C++11 support in gcc 3.x]);;
       4.3*|4.4*|4.5*|4.6*)
         lyx_flags="$lyx_flags c++11-mode"
-       AM_CXXFLAGS="-std=gnu++0x $AM_CXXFLAGS";;
+       AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++0x";;
       clang)
         dnl presumably all clang version support c++11.
         lyx_flags="$lyx_flags c++11-mode"
        dnl the deprecated-register warning is very annoying with Qt4.x right now.
-        AM_CXXFLAGS="-std=c++11 -Wno-deprecated-register $AM_CXXFLAGS";;
+        AM_CXXFLAGS="$AM_CXXFLAGS -std=c++11 -Wno-deprecated-register";;
       *)
        lyx_flags="$lyx_flags c++11-mode"
-       AM_CXXFLAGS="-std=gnu++11 $AM_CXXFLAGS"
+       AM_CXXFLAGS="$AM_CXXFLAGS -std=gnu++11"
        ;;
     esac
     if test x$CLANG = xno || test $lyx_cv_lib_stdcxx = yes; then
index b22dab092cc4a91b1fc6ff85392ef37bc3e12a9a..3a1db2f646b4fca0ed9675b9099e8a508ca6d375 100644 (file)
@@ -67,7 +67,17 @@ AM_PATH_PYTHON(2.4.0,, :)
 AC_PROG_RANLIB
 
 ### Check for a C++ compiler
+dnl We have to do weird tricks so that autoconf does not touch CXXFLAGS even
+dnl if it is not set. We do not use autoconf defaults.
+lyx_has_CXXFLAGS=${CXXFLAGS+yes}
+if ! test "$lyx_has_CXXFLAGS" = yes; then
+  dnl set to a dummy value so that AC_PROG_CXX does not try to set CXXFLAGS
+  CXXFLAGS=" "
+fi
 LYX_PROG_CXX
+if ! test "$lyx_has_CXXFLAGS" = yes; then
+  unset CXXFLAGS
+fi
 AC_LANG(C++)
 
 ### Objective-C compiler