diff options
author | Mark H Weaver <mhw@netris.org> | 2015-06-10 17:50:27 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2015-06-10 17:50:27 -0400 |
commit | 14928016556300a6763334d4279c3d117902caaf (patch) | |
tree | d0dc262b14164b82f97dd6e896ca9e93a1fabeea /m4/guix.m4 | |
parent | 1511e0235525358abb52cf62abeb9457605b5093 (diff) | |
parent | 57cd353d87d6e9e6e882327be70b4d7b5ce863ba (diff) | |
download | guix-14928016556300a6763334d4279c3d117902caaf.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'm4/guix.m4')
-rw-r--r-- | m4/guix.m4 | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/m4/guix.m4 b/m4/guix.m4 index 445ce857dd..fa5a4023ba 100644 --- a/m4/guix.m4 +++ b/m4/guix.m4 @@ -218,3 +218,42 @@ AC_DEFUN([GUIX_CHECK_FILE_NAME_LIMITS], [ AC_MSG_ERROR([store directory '$storedir' would lead to overly long hash-bang lines]) fi ]) + +dnl GUIX_CHECK_CXX11 +dnl +dnl Check whether the C++ compiler can compile a typical C++11 program. +AC_DEFUN([GUIX_CHECK_CXX11], [ + AC_REQUIRE([AC_PROG_CXX]) + AC_CACHE_CHECK([whether $CXX supports C++11], + [ac_cv_guix_cxx11_support], + [save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="-std=c++11 $CXXFLAGS" + AC_COMPILE_IFELSE([ + AC_LANG_SOURCE([ + #include <functional> + + std::function<int(int)> + return_plus_lambda (int x) + { + auto result = [[&]](int y) { + return x + y; + }; + + return result; + } + ])], + [ac_cv_guix_cxx11_support=yes], + [ac_cv_guix_cxx11_support=no]) + CXXFLAGS="$save_CXXFLAGS" + ]) +]) + +dnl GUIX_ASSERT_CXX11 +dnl +dnl Error out if the C++ compiler cannot compile C++11 code. +AC_DEFUN([GUIX_ASSERT_CXX11], [ + GUIX_CHECK_CXX11 + if test "x$ac_cv_guix_cxx11_support" != "xyes"; then + AC_MSG_ERROR([C++ compiler '$CXX' does not support the C++11 standard]) + fi +]) |