Tizen 2.1 base
[platform/upstream/gcd.git] / dispatch-1.0 / m4 / private-extern.m4
1 #
2 # Does the platform support __private_extern__?  There is surely a better way
3 # to check this.
4 #
5 AC_DEFUN([DISPATCH_C_PRIVATE_EXTERN], [
6
7 AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
8     dispatch_cv_hidden_visibility_attribute, [
9         AC_TRY_LINK([], 
10                     [extern __attribute__ ((visibility ("hidden"))) int foo;],
11                     [dispatch_cv_hidden_visibility_attribute=yes],
12                     [dispatch_cv_hidden_visibility_attribute=no])])
13
14 AC_CACHE_CHECK([for __private_extern__],
15     dispatch_cv_private_extern, [
16         AC_TRY_LINK([], [__private_extern__ int foo;],
17                     [dispatch_cv_private_extern=yes],
18                     [dispatch_cv_private_extern=no])])
19
20 if test $dispatch_cv_private_extern = yes; then
21   AC_DEFINE(HAVE_PRIVATE_EXTERN, 1, Define if __private_extern__ present)
22 elif test $dispatch_cv_hidden_visibility_attribute = yes; then
23   AC_DEFINE(HAVE_PRIVATE_EXTERN, 1, Define if __private_extern__ present)
24   AC_DEFINE([__private_extern__], [extern __attribute__ ((visibility ("hidden")))],
25             [Define to a replacement for __private_extern])
26 else
27   AC_DEFINE([__private_extern__], [extern],
28             [Define to a replacement for __private_extern])
29 fi
30
31 ])