diff options
author | Akim Demaille <akim.demaille@gmail.com> | 2018-09-23 08:58:48 +0200 |
---|---|---|
committer | Akim Demaille <akim.demaille@gmail.com> | 2018-09-23 11:50:58 +0200 |
commit | 41ded5828664e7cbad659ef3d8475fca9cb11035 (patch) | |
tree | 4c546a1976b41d9d5b361803ab94213c12c60511 | |
parent | 5649888686cfa474fbe12ff47e4401333e5cb8f4 (diff) | |
download | bison-41ded5828664e7cbad659ef3d8475fca9cb11035.tar.gz |
build: check for C++98 and 03 like the others
* m4/bison-cxx-std.m4 (BISON_CXX_COMPILE_STDCXX_98)
(BISON_CXX_COMPILE_STDCXX_03): New.
* configure.ac: Use them.
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | m4/bison-cxx-std.m4 | 57 |
2 files changed, 58 insertions, 3 deletions
diff --git a/configure.ac b/configure.ac index 232ee8d8..0540a50a 100644 --- a/configure.ac +++ b/configure.ac @@ -73,8 +73,8 @@ AC_CACHE_CHECK([whether pragma GCC diagnostic push works], AC_LANG_PUSH([C++]) gl_WARN_ADD([-fno-exceptions], [NO_EXCEPTIONS_CXXFLAGS]) -gl_WARN_ADD([-std=c++98], [CXX98_CXXFLAGS]) -gl_WARN_ADD([-std=c++03], [CXX03_CXXFLAGS]) +BISON_CXX_COMPILE_STDCXX_98 +BISON_CXX_COMPILE_STDCXX_03 BISON_CXX_COMPILE_STDCXX_11 BISON_CXX_COMPILE_STDCXX_14 BISON_CXX_COMPILE_STDCXX_17 diff --git a/m4/bison-cxx-std.m4 b/m4/bison-cxx-std.m4 index d5631caa..a0722310 100644 --- a/m4/bison-cxx-std.m4 +++ b/m4/bison-cxx-std.m4 @@ -6,13 +6,21 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. +m4_define([_BISON_CXX_COMPILE_STDCXX_98_snippet], +[#include <vector> + +typedef std::vector<int> ints; +]) + +m4_define([_BISON_CXX_COMPILE_STDCXX_03_snippet], +[]) + m4_define([_BISON_CXX_COMPILE_STDCXX_11_snippet], [#include <algorithm> #include <memory> #include <set> #include <sstream> #include <string> -#include <vector> // C++11 template <typename T> @@ -83,19 +91,36 @@ m4_define([_BISON_CXX_COMPILE_STDCXX_2A_snippet], ]) +m4_define([_BISON_CXX_COMPILE_STDCXX_98_testbody], +[AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +])]) + +m4_define([_BISON_CXX_COMPILE_STDCXX_03_testbody], +[AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +_BISON_CXX_COMPILE_STDCXX_03_snippet +])]) + m4_define([_BISON_CXX_COMPILE_STDCXX_11_testbody], [AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +_BISON_CXX_COMPILE_STDCXX_03_snippet _BISON_CXX_COMPILE_STDCXX_11_snippet ])]) m4_define([_BISON_CXX_COMPILE_STDCXX_14_testbody], [AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +_BISON_CXX_COMPILE_STDCXX_03_snippet _BISON_CXX_COMPILE_STDCXX_11_snippet _BISON_CXX_COMPILE_STDCXX_14_snippet ])]) m4_define([_BISON_CXX_COMPILE_STDCXX_17_testbody], [AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +_BISON_CXX_COMPILE_STDCXX_03_snippet _BISON_CXX_COMPILE_STDCXX_11_snippet _BISON_CXX_COMPILE_STDCXX_14_snippet _BISON_CXX_COMPILE_STDCXX_17_snippet @@ -103,6 +128,8 @@ _BISON_CXX_COMPILE_STDCXX_17_snippet m4_define([_BISON_CXX_COMPILE_STDCXX_2A_testbody], [AC_LANG_PROGRAM([ +_BISON_CXX_COMPILE_STDCXX_98_snippet +_BISON_CXX_COMPILE_STDCXX_03_snippet _BISON_CXX_COMPILE_STDCXX_11_snippet _BISON_CXX_COMPILE_STDCXX_14_snippet _BISON_CXX_COMPILE_STDCXX_17_snippet @@ -111,6 +138,34 @@ _BISON_CXX_COMPILE_STDCXX_2A_snippet +AC_DEFUN([BISON_CXX_COMPILE_STDCXX_98], +[AC_REQUIRE([AC_PROG_CXX]) +AC_LANG_PUSH([C++]) +for f in '-std=c++98' '-std=c++98 -stdlib=libc++' +do + BISON_CHECK_COMPILER_FLAG([$f], + [AC_SUBST([CXX98_CXXFLAGS], [$f]) break], + [], [], + [_BISON_CXX_COMPILE_STDCXX_98_testbody]) +done +AC_LANG_POP([C++]) +]) + + +AC_DEFUN([BISON_CXX_COMPILE_STDCXX_03], +[AC_REQUIRE([AC_PROG_CXX]) +AC_LANG_PUSH([C++]) +for f in '-std=c++03' '-std=c++03 -stdlib=libc++' +do + BISON_CHECK_COMPILER_FLAG([$f], + [AC_SUBST([CXX03_CXXFLAGS], [$f]) break], + [], [], + [_BISON_CXX_COMPILE_STDCXX_03_testbody]) +done +AC_LANG_POP([C++]) +]) + + AC_DEFUN([BISON_CXX_COMPILE_STDCXX_11], [AC_REQUIRE([AC_PROG_CXX]) AC_LANG_PUSH([C++]) |