diff options
Diffstat (limited to 'SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/m4/ax_declspec.m4')
-rw-r--r-- | SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/m4/ax_declspec.m4 | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/m4/ax_declspec.m4 b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/m4/ax_declspec.m4 new file mode 100644 index 000000000..19672d390 --- /dev/null +++ b/SDL_Core/src/thirdPartyLibs/logger/log4cplus-1.1.0/m4/ax_declspec.m4 @@ -0,0 +1,118 @@ +dnl Check for the __declspec(dllexport) construct support. + +AC_DEFUN([AX_DECLSPEC], +[ +AH_TEMPLATE($1[]_IMPORT, + [Defined if the compiler understands __declspec(dllimport) + or __attribute__((visibility("default"))) or __global construct.]) +AH_TEMPLATE($1[]_EXPORT, + [Defined if the compiler understands __declspec(dllimport) + or __attribute__((visibility("default"))) or __global construct.]) +AH_TEMPLATE($1[]_PRIVATE, + [Defined if the compiler understands __attribute__((visibility("hidden"))) + or __hidden construct.]) + +AS_VAR_SET([continue_checks], [1]) + +dnl This is for Solaris platforms with Solaris Studio. + +AC_CACHE_CHECK([for __global and __hidden], [ac_cv__global], +[ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ + __global int x = 0; + __global int foo (); + int foo () { return 0; } + __global int bar () { return x; } + __hidden int baz () { return 1; } + ]], + [[]])], + [ac_cv__global=yes], + [ac_cv__global=no]) +]) + +AS_IF([test "x$ac_cv__global" = "xyes"], + [AC_DEFINE($1[]_IMPORT, [__global]) + AC_DEFINE($1[]_EXPORT, [__global]) + AC_DEFINE($1[]_PRIVATE, [__hidden]) + AS_UNSET([continue_checks])]) + +dnl This typically succeeds on Windows/MinGW/Cygwin. + +AS_VAR_SET_IF([continue_checks], +[ +AC_CACHE_CHECK([for __declspec(dllexport) and __declspec(dllimport)], + [ac_cv_declspec], +[ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#if defined (__clang__) +// Here the problem is that Clang only warns that it does not support +// __declspec(dllexport) but still compiles the executable. +# error Please fail. +And extra please fail. +#else + __declspec(dllexport) int x = 0; + __declspec(dllexport) int foo (); + int foo () { return 0; } + __declspec(dllexport) int bar () { return x; } +#endif + ]], + [[]])], + [ac_cv_declspec=yes], + [ac_cv_declspec=no]) +]) + +AS_IF([test "x$ac_cv_declspec" = "xyes"], + [AC_DEFINE($1[]_IMPORT, [__declspec(dllimport)]) + AC_DEFINE($1[]_EXPORT, [__declspec(dllexport)]) + AC_DEFINE($1[]_PRIVATE, [/* empty */]) + AS_UNSET([continue_checks])]) +]) + +dnl This typically succeeds on *NIX platforms with GCC or Clang. + +AS_VAR_SET_IF([continue_checks], +[ +AC_CACHE_CHECK([for __attribute__((visibility("default")))dnl + and __attribute__((visibility("hidden")))], [ac_cv__attribute__visibility], +[ + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ +#if defined (__GNUC__) && (__GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 1)) +# error Please fail. +And extra please fail. +#else + __attribute__((visibility("default"))) int x = 0; + __attribute__((visibility("default"))) int foo (); + int foo () { return 0; } + __attribute__((visibility("default"))) int bar () { return x; } + __attribute__((visibility("hidden"))) int baz () { return 1; } +#endif + ]], + [[]])], + [ac_cv__attribute__visibility=yes], + [ac_cv__attribute__visibility=no]) +]) + +AS_IF([test "x$ac_cv__attribute__visibility" = "xyes"], + [AC_DEFINE($1[]_IMPORT, [__attribute__ ((visibility("default")))]) + AC_DEFINE($1[]_EXPORT, [__attribute__ ((visibility("default")))]) + AC_DEFINE($1[]_PRIVATE, [__attribute__ ((visibility("hidden")))]) + AS_UNSET([continue_checks])]) +]) + + +AS_IF([test "x$ac_cv__attribute__visibility" = "xno" dnl + && test "x$ac_cv_declspec" = "xno" dnl + && test "x$ax_cv__global" = "xno"], + [AC_DEFINE($1[]_IMPORT, [/* empty */]) + AC_DEFINE($1[]_EXPORT, [/* empty */]) + AC_DEFINE($1[]_PRIVATE, [/* empty */])]) + +AS_UNSET([continue_checks]) + +]) dnl AX_DECLSPEC |