X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/90dd450cf3c48124a6eb9c815f47dfafea141a92..579d81381ef1fd8c55ca137ccb422922a11105dd:/acinclude.m4 diff --git a/acinclude.m4 b/acinclude.m4 index bcc7a98aa8..6479c8eaab 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -144,6 +144,53 @@ AC_DEFUN([WX_CPP_BOOL], fi ]) +dnl --------------------------------------------------------------------------- +dnl WX_CPP_EXPLICIT checks whether the C++ compiler support the explicit +dnl keyword and defines HAVE_EXPLICIT if this is the case +dnl --------------------------------------------------------------------------- + +AC_DEFUN([WX_CPP_EXPLICIT], +[ + AC_CACHE_CHECK([if C++ compiler supports the explicit keyword], + wx_cv_explicit, + [ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + dnl do the test in 2 steps: first check that the compiler knows about the + dnl explicit keyword at all and then verify that it really honours it + AC_TRY_COMPILE( + [ + class Foo { public: explicit Foo(int) {} }; + ], + [ + return 0; + ], + [ + AC_TRY_COMPILE( + [ + class Foo { public: explicit Foo(int) {} }; + static void TakeFoo(const Foo& foo) { } + ], + [ + TakeFoo(17); + return 0; + ], + wx_cv_explicit=no, + wx_cv_explicit=yes + ) + ], + wx_cv_explicit=no + ) + + AC_LANG_RESTORE + ]) + + if test "$wx_cv_explicit" = "yes"; then + AC_DEFINE(HAVE_EXPLICIT) + fi +]) + dnl --------------------------------------------------------------------------- dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling dnl --------------------------------------------------------------------------- @@ -440,7 +487,7 @@ define(WX_SYS_LARGEFILE_MACRO_VALUE, ) if test "$$3" != no; then - $wx_largefile=yes + wx_largefile=yes AC_DEFINE_UNQUOTED([$1], [$$3]) fi ]) @@ -458,13 +505,16 @@ AC_DEFUN([AC_SYS_LARGEFILE], if test "$enable_largefile" != no; then dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ... dnl _LARGE_FILES -- for AIX + wx_largefile=no WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits) if test "x$wx_largefile" != "xyes"; then WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files) fi + AC_MSG_CHECKING(if large file support is available) if test "x$wx_largefile" = "xyes"; then AC_DEFINE(HAVE_LARGEFILE_SUPPORT) fi + AC_MSG_RESULT($wx_largefile) fi ])