summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2018-09-23 08:58:48 +0200
committerAkim Demaille <akim.demaille@gmail.com>2018-09-23 11:50:58 +0200
commit41ded5828664e7cbad659ef3d8475fca9cb11035 (patch)
tree4c546a1976b41d9d5b361803ab94213c12c60511 /m4
parent5649888686cfa474fbe12ff47e4401333e5cb8f4 (diff)
downloadbison-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.
Diffstat (limited to 'm4')
-rw-r--r--m4/bison-cxx-std.m457
1 files changed, 56 insertions, 1 deletions
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++])