summaryrefslogtreecommitdiff
path: root/m4/ax_cxx_compile_stdcxx.m4
Commit message (Collapse)AuthorAgeFilesLines
* ax_cxx_compile_stdcxx: bump serial numberPeter Simons2023-02-201-1/+1
|
* Avoid cache variable name collisionOlly Betts2023-01-211-2/+10
| | | | | | AS_TR_SH maps both `:` and `=` to `_` so -std:c++17 was colliding with -std=c++17. Suffix the cache variable name for the former with _MSVC to avoid this.
* AX_CXX_COMPILE_STDCXX: Fix MSVC with C++17 or laterOlly Betts2023-01-191-2/+3
| | | | | MSVC defaults to C++14 and needs -std:c++NN to enable support for newer versions so add that to the list of options to try.
* ax_cxx_compile_stdcxx: Fix for MSVCOlly Betts2022-07-251-7/+11
| | | | | | | | | | | | MSVC always sets __cplusplus to 199711L in older versions; newer versions do the same unless /Zc:__cplusplus is specified as well as a /std:c++<NN> switch: https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/ This fixes a regression compared to the old separate AX_CXX_COMPILE_STDCXX_11, etc macros which didn't check the value of __cplusplus so worked OK with MSVC.
* Re-format macros into the canonical format.Peter Simons2022-02-111-2/+1
|
* AX_CXX_COMPILE_STDCXX: add C++20 supportJörn Heusipp2021-12-251-4/+48
|
* ax_cxx_compile_stdcxx.m4: Restore check for default C++ version supportJason Merrill2020-05-151-2/+13
| | | | | | | Commit bbb60ca79952c20ee0b187208533d98206b156d1 removed this check because it can't support the user requesting noext. But if the user didn't specify ext or noext, using the default mode should be fine. So this patch restores the check if the second argument is empty.
* Unbreak testing for `-std=c++11` with `clang++` with `-Werror ↵Enji Cooper2019-03-011-1/+4
| | | | | | | | | | | | | | | | | | | -Wnon-virtual-dtor` Earlier autoconf tests in the [Kyua project](https://github.com/jmmv/kyua) enable `-Werror -Wnon-virtual-dtor`, which fails because of the fact that the `Base` and `Derived` classes have non-virtual destructors with virtual methods. Thus, add a set of virtual destructors for both `Base` and `Derived` to quell the error and have `clang++` be properly detected as a C++-11 capable compiler. Bump serial and add name to copyright for the change. Tested with: - clang++ 7.0.1 - g++ 8.2.0 Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
* Some cleanups in C++17 checking codeKrzesimir Nowak2018-05-051-27/+3
| | | | | | | | There is a released version of clang that supports C++17, so drop all the ifdefs that made clang to skip some checks. Also, a __cplusplus macro is specified to expand to 201703L, so fix the check accordingly.
* ax_cxx_compile_stdcxx.m4: Drop the check for default C++ version supportKrzesimir Nowak2018-04-191-10/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem with the check is that it can't detect whether the version is with extensions or not. So it can't take the "noext" or "ext" option into account. This may be a problem when an extended version of C++ has a feature that conflicts with another feature from the C++ standard and we have no way to tell the macro to add a "-std" flag anyway. An example: using namespace std::complex_literals; std::complex<double> c = 1.0; c += 1.0i; std::cout << "abs" << c << " = " << abs(c) << '\n'; Here, the "1.0i" constant is either a GCC extension if compiled with -std=gnu++14 or a standard C++ operator if compiled with -std=c++14. If a GCC extension is used, the snippet fails to compile. Unfortunately, recent GCC versions default to gnu++14, so this code fails to compile by default. Dropping the check forces the macro to evaluate compiler flags with taking the "ext"/"noext" option into account. Issue spotted by Frédéric Mangano-Tarumi.
* Remove warning about C++17Maximilian Heinzler2018-03-141-3/+1
| | | | Now that C++17 has been standardized this warning can be removed.
* switch gnu.org sites to httpsMike Frysinger2017-02-081-2/+2
|
* CXX_COMPILE_STDCXX: Check alternative flags tooKrzesimir Nowak2016-12-061-20/+26
|
* CXX_COMPILE_STDCXX: Add checks for C++17 compilerKrzesimir Nowak2016-12-061-3/+417
|
* Update CXXCPP after updating CXX.Enrico M. Crisostomo2016-03-211-4/+10
| | | | | | Rewrap text. Rewrap.
* AX_CXX_COMPILE_STDCXX: don't break "make CXXFLAGS=..."Joshua Judson Rosen2016-02-291-10/+10
| | | | | | | | | | | | | | | | Make C++ std-selection macros modify $(CXX), not $(CXXFLAGS). Using $(CXXFLAGS) prevents users from being able to rebuild with different CXXFLAGS (e.g.: to try out different optimisations or to change debug levels) unless they re-run ./configure with their CFLAGS. This is more like what the mainline Autoconf macros do (e.g.: AC_PROG_CC_C99, AC_PROG_CC_STD, etc. modify $(CC), not $(CCFLAGS)), presmuably for much the same reasons: if you need to specify a standard to the compiler, it doesn't really make sense to separate that from $(CC)/$(CXX) since $(CC)/$(CXX) aren't usable without it.
* CXX_COMPILE_STDCXX: fix regression introduced in ccd1d4f54bMichael Welsh Duggan2016-02-291-11/+9
| | | | | AX_CXX_COMPILE_STDCXX doesn't set HAVE_CXX when [mandatory] is given as an argument. This bug has existed since commit ccd1d4f54b07b46b.
* Unify macros for checking C++11/14/... compiler support.Moritz Klammler2015-11-231-0/+558
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * m4/ax_cxx_compile_stdcxx.m4: New macro file added. (AX_CXX_COMPILE_STDCXX): New macro added. The code is based on the former (serial version number 13) `AX_CXX_COMPILE_STDCXX_11` macro, generalized to check for arbitrary versions of the standard selected via an additional argument. (_AX_CXX_COMPILE_STDCXX_testbody_11): New internal macro added. Defined in terms of `_AX_CXX_COMPILE_STDCXX_testbody_new_in_11`. (_AX_CXX_COMPILE_STDCXX_testbody_14): New internal macro added. Defined in terms of `_AX_CXX_COMPILE_STDCXX_testbody_new_in_11` and `_AX_CXX_COMPILE_STDCXX_testbody_new_in_14`. (_AX_CXX_COMPILE_STDCXX_testbody_new_in_11): New internal macro added. Test code to check for features added in C++14. It is based on the code previously found in the `_AX_CXX_COMPILE_STDCXX_11_testbody` macro, defined in `m4/ax_cxx_compile_stdcxx_11.m4` but heavily refactored and extended with additional checks. (_AX_CXX_COMPILE_STDCXX_testbody_new_in_14): New internal macro added. Test code to check for features added in C++14. * m4/ax_cxx_compile_stdcxx_11.m4: (AX_CXX_COMPILE_STDCXX_11): Make this macro an alias for the new `AX_CXX_COMPILE_STDCXX` macro with the version set to C++11. (_AX_CXX_COMPILE_STDCXX_11_testbody): Internal macro deleted. * m4/ax_cxx_compile_stdcxx_14.m4: New macro file added. (AX_CXX_COMPILE_STDCXX_14): New macro added. This macro is an alias for the new `AX_CXX_COMPILE_STDCXX` macro with the version set to C++14. * m4/ax_cxx_compile_stdcxx_0x.m4 (AX_CXX_COMPILE_STDCXX_0X): Mark macro as obsolete. The macro `AX_CXX_COMPILE_STDCXX_11` should be used instead. I couldn't test this macro on my system because it uses a lot of obsolete macros my Autoconf complains about and errors out.
* remove m4 submoduleDustin J. Mitchell2009-08-011-6/+0
|
* m4: update reference to macro branchPeter Simons2009-08-011-5/+5
|
* m4: update reference to macro branchPeter Simons2009-07-311-7/+5
|
* m4: update reference to macro branchPeter Simons2009-07-301-5/+7
|
* m4: update reference to macro branchPeter Simons2009-07-271-5/+5
|
* Avoid non-ASCII characters in m4 files.Peter Simons2009-07-271-7/+5
|
* m4: update reference to macro branchPeter Simons2009-07-221-7/+6
|
* m4: update reference to macro branchPeter Simons2009-07-211-5/+8
|
* m4: update reference to macro branchPeter Simons2009-07-211-7/+5
|
* m4: update reference to macro branchPeter Simons2009-07-211-6/+6
|
* m4: update reference to macro branchPeter Simons2009-07-201-5/+7
|
* m4: update reference to macro branchPeter Simons2009-07-191-7/+5
|
* m4: update reference to macro branchPeter Simons2009-07-171-6/+6
|
* m4: update reference to macro branchPeter Simons2009-06-231-12/+6
|
* m4: update reference to macro branchPeter Simons2009-06-221-6/+12
|
* m4: update reference to macro branchPeter Simons2009-06-161-5/+7
|
* m4: update reference to macro branchPeter Simons2009-06-101-7/+5
|
* m4: update reference to macro branchPeter Simons2009-06-101-6/+6
|
* m4: update reference to macro branchPeter Simons2009-06-051-7/+6
|
* maint: added initial version of the toolchainPeter Simons2009-05-051-0/+9
The build process requires python, the python StringTemplate module, and preferably SCons. A make-based build exists, but it is really slow and awkward, compared to the SConstruct file.