815.1.1
by Monty Taylor
Add timegm which is missing on Solaris. |
1 |
# gnulib-common.m4 serial 5 |
2 |
dnl Copyright (C) 2007-2008 Free Software Foundation, Inc. |
|
3 |
dnl This file is free software; the Free Software Foundation |
|
4 |
dnl gives unlimited permission to copy and/or distribute it, |
|
5 |
dnl with or without modifications, as long as this notice is preserved. |
|
6 |
||
7 |
# gl_COMMON |
|
8 |
# is expanded unconditionally through gnulib-tool magic. |
|
9 |
AC_DEFUN([gl_COMMON], [ |
|
10 |
dnl Use AC_REQUIRE here, so that the code is expanded once only.
|
|
11 |
AC_REQUIRE([gl_COMMON_BODY]) |
|
12 |
]) |
|
13 |
AC_DEFUN([gl_COMMON_BODY], [ |
|
14 |
AH_VERBATIM([isoc99_inline], |
|
15 |
[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports |
|
16 |
the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
|
|
17 |
earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
|
|
18 |
__APPLE__ && __MACH__ test for MacOS X.
|
|
19 |
__APPLE_CC__ tests for the Apple compiler and its version.
|
|
20 |
__STDC_VERSION__ tests for the C99 mode. */
|
|
21 |
#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
|
|
22 |
# define __GNUC_STDC_INLINE__ 1
|
|
23 |
#endif]) |
|
24 |
]) |
|
25 |
||
26 |
# gl_MODULE_INDICATOR([modulename]) |
|
27 |
# defines a C macro indicating the presence of the given module. |
|
28 |
AC_DEFUN([gl_MODULE_INDICATOR], |
|
29 |
[
|
|
30 |
AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], |
|
31 |
[Define to 1 when using the gnulib module ]$1[.]) |
|
32 |
]) |
|
33 |
||
34 |
# m4_foreach_w |
|
35 |
# is a backport of autoconf-2.59c's m4_foreach_w. |
|
36 |
# Remove this macro when we can assume autoconf >= 2.60.
|
|
37 |
m4_ifndef([m4_foreach_w],
|
|
38 |
[m4_define([m4_foreach_w],
|
|
39 |
[m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
|
|
40 |
||
41 |
# AC_PROG_MKDIR_P
|
|
42 |
# is a backport of autoconf-2.60's AC_PROG_MKDIR_P. |
|
43 |
# Remove this macro when we can assume autoconf >= 2.60. |
|
44 |
m4_ifdef([AC_PROG_MKDIR_P], [], [ |
|
45 |
AC_DEFUN([AC_PROG_MKDIR_P], |
|
46 |
[AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake |
|
47 |
MKDIR_P='$(mkdir_p)' |
|
48 |
AC_SUBST([MKDIR_P])])]) |
|
49 |
||
50 |
# AC_C_RESTRICT |
|
51 |
# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, |
|
52 |
# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ |
|
53 |
# works. |
|
54 |
# This definition can be removed once autoconf >= 2.62 can be assumed. |
|
55 |
AC_DEFUN([AC_C_RESTRICT], |
|
56 |
[AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict, |
|
57 |
[ac_cv_c_restrict=no |
|
58 |
# The order here caters to the fact that C++ does not require restrict.
|
|
59 |
for ac_kw in __restrict __restrict__ _Restrict restrict; do
|
|
60 |
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
|
61 |
[[typedef int * int_ptr;
|
|
62 |
int foo (int_ptr $ac_kw ip) {
|
|
63 |
return ip[0]; |
|
64 |
}]], |
|
65 |
[[int s[1]; |
|
66 |
int * $ac_kw t = s; |
|
67 |
t[0] = 0; |
|
68 |
return foo(t)]])], |
|
69 |
[ac_cv_c_restrict=$ac_kw]) |
|
70 |
test "$ac_cv_c_restrict" != no && break |
|
71 |
done |
|
72 |
]) |
|
73 |
AH_VERBATIM([restrict], |
|
74 |
[/* Define to the equivalent of the C99 'restrict' keyword, or to |
|
75 |
nothing if this is not supported. Do not define if restrict is
|
|
76 |
supported directly. */
|
|
77 |
#undef restrict
|
|
78 |
/* Work around a bug in Sun C++: it does not support _Restrict, even
|
|
79 |
though the corresponding Sun C compiler does, which causes
|
|
80 |
"#define restrict _Restrict" in the previous line. Perhaps some future
|
|
81 |
version of Sun C++ will work with _Restrict; if so, it'll probably
|
|
82 |
define __RESTRICT, just as Sun C does. */
|
|
83 |
#if defined __SUNPRO_CC && !defined __RESTRICT
|
|
84 |
# define _Restrict
|
|
85 |
#endif]) |
|
86 |
case $ac_cv_c_restrict in |
|
87 |
restrict) ;; |
|
88 |
no) AC_DEFINE([restrict], []) ;; |
|
89 |
*) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; |
|
90 |
esac |
|
91 |
]) |