| OLD | NEW |
| (Empty) |
| 1 # gnulib-common.m4 serial 20 | |
| 2 dnl Copyright (C) 2007-2011 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_00GNULIB]) | |
| 12 AC_REQUIRE([gl_COMMON_BODY]) | |
| 13 ]) | |
| 14 AC_DEFUN([gl_COMMON_BODY], [ | |
| 15 AH_VERBATIM([isoc99_inline], | |
| 16 [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports | |
| 17 the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of | |
| 18 earlier versions), but does not display it by setting __GNUC_STDC_INLINE__. | |
| 19 __APPLE__ && __MACH__ test for MacOS X. | |
| 20 __APPLE_CC__ tests for the Apple compiler and its version. | |
| 21 __STDC_VERSION__ tests for the C99 mode. */ | |
| 22 #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __
cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__ | |
| 23 # define __GNUC_STDC_INLINE__ 1 | |
| 24 #endif]) | |
| 25 AH_VERBATIM([unused_parameter], | |
| 26 [/* Define as a marker that can be attached to declarations that might not | |
| 27 be used. This helps to reduce warnings, such as from | |
| 28 GCC -Wunused-parameter. */ | |
| 29 #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7) | |
| 30 # define _GL_UNUSED __attribute__ ((__unused__)) | |
| 31 #else | |
| 32 # define _GL_UNUSED | |
| 33 #endif | |
| 34 /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name | |
| 35 is a misnomer outside of parameter lists. */ | |
| 36 #define _UNUSED_PARAMETER_ _GL_UNUSED | |
| 37 ]) | |
| 38 dnl Preparation for running test programs: | |
| 39 dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not | |
| 40 dnl to /dev/tty, so they can be redirected to log files. Such diagnostics | |
| 41 dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N. | |
| 42 LIBC_FATAL_STDERR_=1 | |
| 43 export LIBC_FATAL_STDERR_ | |
| 44 ]) | |
| 45 | |
| 46 # gl_MODULE_INDICATOR_CONDITION | |
| 47 # expands to a C preprocessor expression that evaluates to 1 or 0, depending | |
| 48 # whether a gnulib module that has been requested shall be considered present | |
| 49 # or not. | |
| 50 AC_DEFUN([gl_MODULE_INDICATOR_CONDITION], [1]) | |
| 51 | |
| 52 # gl_MODULE_INDICATOR_SET_VARIABLE([modulename]) | |
| 53 # sets the shell variable that indicates the presence of the given module to | |
| 54 # a C preprocessor expression that will evaluate to 1. | |
| 55 AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], | |
| 56 [ | |
| 57 GNULIB_[]m4_translit([[$1]], | |
| 58 [abcdefghijklmnopqrstuvwxyz./-], | |
| 59 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=gl_MODULE_INDICATOR_CONDITION | |
| 60 ]) | |
| 61 | |
| 62 # gl_MODULE_INDICATOR([modulename]) | |
| 63 # defines a C macro indicating the presence of the given module | |
| 64 # in a location where it can be used. | |
| 65 # | Value | Value | | |
| 66 # | in lib/ | in tests/ | | |
| 67 # --------------------------------------------+---------+-----------+ | |
| 68 # Module present among main modules: | 1 | 1 | | |
| 69 # --------------------------------------------+---------+-----------+ | |
| 70 # Module present among tests-related modules: | 0 | 1 | | |
| 71 # --------------------------------------------+---------+-----------+ | |
| 72 # Module not present at all: | 0 | 0 | | |
| 73 # --------------------------------------------+---------+-----------+ | |
| 74 AC_DEFUN([gl_MODULE_INDICATOR], | |
| 75 [ | |
| 76 AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]], | |
| 77 [abcdefghijklmnopqrstuvwxyz./-], | |
| 78 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), | |
| 79 [gl_MODULE_INDICATOR_CONDITION], | |
| 80 [Define to a C preprocessor expression that evaluates to 1 or 0, | |
| 81 depending whether the gnulib module $1 shall be considered present.]) | |
| 82 ]) | |
| 83 | |
| 84 # gl_MODULE_INDICATOR_FOR_TESTS([modulename]) | |
| 85 # defines a C macro indicating the presence of the given module | |
| 86 # in lib or tests. This is useful to determine whether the module | |
| 87 # should be tested. | |
| 88 # | Value | Value | | |
| 89 # | in lib/ | in tests/ | | |
| 90 # --------------------------------------------+---------+-----------+ | |
| 91 # Module present among main modules: | 1 | 1 | | |
| 92 # --------------------------------------------+---------+-----------+ | |
| 93 # Module present among tests-related modules: | 1 | 1 | | |
| 94 # --------------------------------------------+---------+-----------+ | |
| 95 # Module not present at all: | 0 | 0 | | |
| 96 # --------------------------------------------+---------+-----------+ | |
| 97 AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], | |
| 98 [ | |
| 99 AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]], | |
| 100 [abcdefghijklmnopqrstuvwxyz./-], | |
| 101 [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], | |
| 102 [Define to 1 when the gnulib module $1 should be tested.]) | |
| 103 ]) | |
| 104 | |
| 105 # m4_foreach_w | |
| 106 # is a backport of autoconf-2.59c's m4_foreach_w. | |
| 107 # Remove this macro when we can assume autoconf >= 2.60. | |
| 108 m4_ifndef([m4_foreach_w], | |
| 109 [m4_define([m4_foreach_w], | |
| 110 [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) | |
| 111 | |
| 112 # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) | |
| 113 # ---------------------------------------------------- | |
| 114 # Backport of autoconf-2.63b's macro. | |
| 115 # Remove this macro when we can assume autoconf >= 2.64. | |
| 116 m4_ifndef([AS_VAR_IF], | |
| 117 [m4_define([AS_VAR_IF], | |
| 118 [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])]) | |
| 119 | |
| 120 # AC_PROG_MKDIR_P | |
| 121 # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix | |
| 122 # for interoperability with automake-1.9.6 from autoconf-2.62. | |
| 123 # Remove this macro when we can assume autoconf >= 2.62 or | |
| 124 # autoconf >= 2.60 && automake >= 1.10. | |
| 125 m4_ifdef([AC_PROG_MKDIR_P], [ | |
| 126 dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed. | |
| 127 m4_define([AC_PROG_MKDIR_P], | |
| 128 m4_defn([AC_PROG_MKDIR_P])[ | |
| 129 AC_SUBST([MKDIR_P])])], [ | |
| 130 dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. | |
| 131 AC_DEFUN_ONCE([AC_PROG_MKDIR_P], | |
| 132 [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake | |
| 133 MKDIR_P='$(mkdir_p)' | |
| 134 AC_SUBST([MKDIR_P])])]) | |
| 135 | |
| 136 # AC_C_RESTRICT | |
| 137 # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, | |
| 138 # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ | |
| 139 # works. | |
| 140 # This definition can be removed once autoconf >= 2.62 can be assumed. | |
| 141 m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[ | |
| 142 AC_DEFUN([AC_C_RESTRICT], | |
| 143 [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], | |
| 144 [ac_cv_c_restrict=no | |
| 145 # The order here caters to the fact that C++ does not require restrict. | |
| 146 for ac_kw in __restrict __restrict__ _Restrict restrict; do | |
| 147 AC_COMPILE_IFELSE([AC_LANG_PROGRAM( | |
| 148 [[typedef int * int_ptr; | |
| 149 int foo (int_ptr $ac_kw ip) { | |
| 150 return ip[0]; | |
| 151 }]], | |
| 152 [[int s[1]; | |
| 153 int * $ac_kw t = s; | |
| 154 t[0] = 0; | |
| 155 return foo(t)]])], | |
| 156 [ac_cv_c_restrict=$ac_kw]) | |
| 157 test "$ac_cv_c_restrict" != no && break | |
| 158 done | |
| 159 ]) | |
| 160 AH_VERBATIM([restrict], | |
| 161 [/* Define to the equivalent of the C99 'restrict' keyword, or to | |
| 162 nothing if this is not supported. Do not define if restrict is | |
| 163 supported directly. */ | |
| 164 #undef restrict | |
| 165 /* Work around a bug in Sun C++: it does not support _Restrict, even | |
| 166 though the corresponding Sun C compiler does, which causes | |
| 167 "#define restrict _Restrict" in the previous line. Perhaps some future | |
| 168 version of Sun C++ will work with _Restrict; if so, it'll probably | |
| 169 define __RESTRICT, just as Sun C does. */ | |
| 170 #if defined __SUNPRO_CC && !defined __RESTRICT | |
| 171 # define _Restrict | |
| 172 #endif]) | |
| 173 case $ac_cv_c_restrict in | |
| 174 restrict) ;; | |
| 175 no) AC_DEFINE([restrict], []) ;; | |
| 176 *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; | |
| 177 esac | |
| 178 ]) | |
| 179 ]) | |
| 180 | |
| 181 # gl_BIGENDIAN | |
| 182 # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd. | |
| 183 # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some | |
| 184 # macros invoke AC_C_BIGENDIAN with arguments. | |
| 185 AC_DEFUN([gl_BIGENDIAN], | |
| 186 [ | |
| 187 AC_C_BIGENDIAN | |
| 188 ]) | |
| 189 | |
| 190 # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it) | |
| 191 # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not | |
| 192 # output a spurious "(cached)" mark in the midst of other configure output. | |
| 193 # This macro should be used instead of AC_CACHE_VAL when it is not surrounded | |
| 194 # by an AC_MSG_CHECKING/AC_MSG_RESULT pair. | |
| 195 AC_DEFUN([gl_CACHE_VAL_SILENT], | |
| 196 [ | |
| 197 saved_as_echo_n="$as_echo_n" | |
| 198 as_echo_n=':' | |
| 199 AC_CACHE_VAL([$1], [$2]) | |
| 200 as_echo_n="$saved_as_echo_n" | |
| 201 ]) | |
| OLD | NEW |