]> git.lyx.org Git - lyx.git/blobdiff - config/lyxinclude.m4
DocBook: implement AMS book.
[lyx.git] / config / lyxinclude.m4
index b61ea59ac5c26d9331f68e50f3fa9beb465cf0d4..fb6525c7adb33ab0c56fae5ae0a63ebaea0467d8 100644 (file)
@@ -164,12 +164,16 @@ fi
 ])
 
 
-dnl Usage: LYX_CXX_CXX11_FLAGS: add to AM_CXXFLAGS the best flag that
-selects C++11 mode; gives an error when C++11 mode is not found.
+dnl Usage: LYX_CXX_CXX11_FLAGS(VERSION): add to AM_CXXFLAGS the best flag that
+dnl selects C++11 mode; gives an error when C++11 mode is not found.
+dnl VERSION is a list of years to try (e.g. 11 or {14,11}).
 AC_DEFUN([LYX_CXX_CXX11_FLAGS],
-[AC_CACHE_CHECK([for at least C++11 mode], [lyx_cv_cxx11_flags],
+[AC_CACHE_CHECK([for a good C++ mode], [lyx_cv_cxx11_flags],
  [lyx_cv_cxx11_flags=none
-  for flag in -std=c++14 -std=c++11 "" -std=gnu++14 -std=gnu++11 ; do
+  for flag in `eval echo -std=c++$1 default -std=gnu++$1` ; do
+    if test $flag = default ; then
+      flag=
+    fi
     save_CPPFLAGS=$CPPFLAGS
     CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
     save_CXXFLAGS=$CXXFLAGS
@@ -202,8 +206,8 @@ AC_DEFUN([LYX_CXX_CXX11_FLAGS],
    CXXFLAGS=$save_CXXFLAGS
    CPPFLAGS=$save_CPPFLAGS
   done])
-  if test $lyx_cv_cxx11_flags = none ; then
-    AC_MSG_ERROR([Cannot find suitable C++11 mode for compiler $CXX])
+  if test x$lyx_cv_cxx11_flags = xnone ; then
+    AC_MSG_ERROR([Cannot find suitable mode for compiler $CXX])
   fi
   AM_CXXFLAGS="$lyx_cv_cxx11_flags $AM_CXXFLAGS"
 ])
@@ -304,9 +308,15 @@ AC_DEFUN([LYX_PROG_CXX],
 [AC_REQUIRE([AC_PROG_CXX])
 AC_REQUIRE([AC_PROG_CXXCPP])
 
+### We might want to force the C++ standard.
+AC_ARG_ENABLE(cxx-mode,
+  AS_HELP_STRING([--enable-cxx-mode],[choose C++ standard (default: 14, then 11)]),,
+  [enable_cxx_mode={14,11}]
+)
+
 AC_LANG_PUSH(C++)
 LYX_PROG_CLANG
-LYX_CXX_CXX11_FLAGS
+LYX_CXX_CXX11_FLAGS($enable_cxx_mode)
 LYX_LIB_STDCXX
 LYX_LIB_STDCXX_CXX11_ABI
 LYX_CXX_USE_REGEX
@@ -422,14 +432,14 @@ if test x$GXX = xyes; then
   if test x$enable_stdlib_debug = xyes ; then
     dnl FIXME: for clang/libc++, one should define _LIBCPP_DEBUG2=0
     dnl See http://clang-developers.42468.n3.nabble.com/libc-debug-mode-td3336742.html
-    case $gxx_version in
-      *)
+    if test x$lyx_cv_lib_stdcxx = xyes ; then
         lyx_flags="$lyx_flags stdlib-debug"
        AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
        AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
        AC_SUBST(STDLIB_DEBUG, "-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC")
-        ;;
-    esac
+    else
+       enable_stdlib_debug=no
+    fi
   fi
 fi