Annotation of embedaddon/libiconv/srcm4/gnulib-common.m4, revision 1.1.1.2
1.1.1.2 ! misho 1: # gnulib-common.m4 serial 29
! 2: dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
1.1 misho 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], [
1.1.1.2 ! misho 15: AH_VERBATIM([_Noreturn],
! 16: [/* The _Noreturn keyword of draft C1X. */
! 17: #ifndef _Noreturn
! 18: # if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
! 19: || 0x5110 <= __SUNPRO_C)
! 20: # define _Noreturn __attribute__ ((__noreturn__))
! 21: # elif 1200 <= _MSC_VER
! 22: # define _Noreturn __declspec (noreturn)
! 23: # else
! 24: # define _Noreturn
! 25: # endif
! 26: #endif
! 27: ])
1.1 misho 28: AH_VERBATIM([isoc99_inline],
29: [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
30: the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
31: earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
32: __APPLE__ && __MACH__ test for MacOS X.
33: __APPLE_CC__ tests for the Apple compiler and its version.
34: __STDC_VERSION__ tests for the C99 mode. */
35: #if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
36: # define __GNUC_STDC_INLINE__ 1
37: #endif])
38: AH_VERBATIM([unused_parameter],
1.1.1.2 ! misho 39: [/* Define as a marker that can be attached to declarations that might not
! 40: be used. This helps to reduce warnings, such as from
! 41: GCC -Wunused-parameter. */
1.1 misho 42: #if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
1.1.1.2 ! misho 43: # define _GL_UNUSED __attribute__ ((__unused__))
! 44: #else
! 45: # define _GL_UNUSED
! 46: #endif
! 47: /* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
! 48: is a misnomer outside of parameter lists. */
! 49: #define _UNUSED_PARAMETER_ _GL_UNUSED
! 50:
! 51: /* The __pure__ attribute was added in gcc 2.96. */
! 52: #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
! 53: # define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
1.1 misho 54: #else
1.1.1.2 ! misho 55: # define _GL_ATTRIBUTE_PURE /* empty */
! 56: #endif
! 57:
! 58: /* The __const__ attribute was added in gcc 2.95. */
! 59: #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
! 60: # define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
! 61: #else
! 62: # define _GL_ATTRIBUTE_CONST /* empty */
1.1 misho 63: #endif
64: ])
1.1.1.2 ! misho 65: dnl Preparation for running test programs:
! 66: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
! 67: dnl to /dev/tty, so they can be redirected to log files. Such diagnostics
! 68: dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N.
! 69: LIBC_FATAL_STDERR_=1
! 70: export LIBC_FATAL_STDERR_
! 71: ])
! 72:
! 73: # gl_MODULE_INDICATOR_CONDITION
! 74: # expands to a C preprocessor expression that evaluates to 1 or 0, depending
! 75: # whether a gnulib module that has been requested shall be considered present
! 76: # or not.
! 77: m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
! 78:
! 79: # gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
! 80: # sets the shell variable that indicates the presence of the given module to
! 81: # a C preprocessor expression that will evaluate to 1.
! 82: AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
! 83: [
! 84: gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
! 85: [GNULIB_[]m4_translit([[$1]],
! 86: [abcdefghijklmnopqrstuvwxyz./-],
! 87: [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
! 88: [gl_MODULE_INDICATOR_CONDITION])
! 89: ])
! 90:
! 91: # gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
! 92: # modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
! 93: # The shell variable's value is a C preprocessor expression that evaluates
! 94: # to 0 or 1.
! 95: AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
! 96: [
! 97: m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
! 98: [
! 99: dnl Simplify the expression VALUE || 1 to 1.
! 100: $1=1
! 101: ],
! 102: [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
! 103: [gl_MODULE_INDICATOR_CONDITION])])
! 104: ])
! 105:
! 106: # gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
! 107: # modifies the shell variable to include the given condition. The shell
! 108: # variable's value is a C preprocessor expression that evaluates to 0 or 1.
! 109: AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
! 110: [
! 111: dnl Simplify the expression 1 || CONDITION to 1.
! 112: if test "$[]$1" != 1; then
! 113: dnl Simplify the expression 0 || CONDITION to CONDITION.
! 114: if test "$[]$1" = 0; then
! 115: $1=$2
! 116: else
! 117: $1="($[]$1 || $2)"
! 118: fi
! 119: fi
1.1 misho 120: ])
121:
122: # gl_MODULE_INDICATOR([modulename])
1.1.1.2 ! misho 123: # defines a C macro indicating the presence of the given module
! 124: # in a location where it can be used.
! 125: # | Value | Value |
! 126: # | in lib/ | in tests/ |
! 127: # --------------------------------------------+---------+-----------+
! 128: # Module present among main modules: | 1 | 1 |
! 129: # --------------------------------------------+---------+-----------+
! 130: # Module present among tests-related modules: | 0 | 1 |
! 131: # --------------------------------------------+---------+-----------+
! 132: # Module not present at all: | 0 | 0 |
! 133: # --------------------------------------------+---------+-----------+
1.1 misho 134: AC_DEFUN([gl_MODULE_INDICATOR],
135: [
1.1.1.2 ! misho 136: AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]],
! 137: [abcdefghijklmnopqrstuvwxyz./-],
! 138: [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]),
! 139: [gl_MODULE_INDICATOR_CONDITION],
! 140: [Define to a C preprocessor expression that evaluates to 1 or 0,
! 141: depending whether the gnulib module $1 shall be considered present.])
! 142: ])
! 143:
! 144: # gl_MODULE_INDICATOR_FOR_TESTS([modulename])
! 145: # defines a C macro indicating the presence of the given module
! 146: # in lib or tests. This is useful to determine whether the module
! 147: # should be tested.
! 148: # | Value | Value |
! 149: # | in lib/ | in tests/ |
! 150: # --------------------------------------------+---------+-----------+
! 151: # Module present among main modules: | 1 | 1 |
! 152: # --------------------------------------------+---------+-----------+
! 153: # Module present among tests-related modules: | 1 | 1 |
! 154: # --------------------------------------------+---------+-----------+
! 155: # Module not present at all: | 0 | 0 |
! 156: # --------------------------------------------+---------+-----------+
! 157: AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS],
! 158: [
! 159: AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]],
! 160: [abcdefghijklmnopqrstuvwxyz./-],
! 161: [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
! 162: [Define to 1 when the gnulib module $1 should be tested.])
! 163: ])
! 164:
! 165: # gl_ASSERT_NO_GNULIB_POSIXCHECK
! 166: # asserts that there will never be a need to #define GNULIB_POSIXCHECK.
! 167: # and thereby enables an optimization of configure and config.h.
! 168: # Used by Emacs.
! 169: AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
! 170: [
! 171: dnl Override gl_WARN_ON_USE_PREPARE.
! 172: dnl But hide this definition from 'aclocal'.
! 173: AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
! 174: ])
! 175:
! 176: # gl_ASSERT_NO_GNULIB_TESTS
! 177: # asserts that there will be no gnulib tests in the scope of the configure.ac
! 178: # and thereby enables an optimization of config.h.
! 179: # Used by Emacs.
! 180: AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS],
! 181: [
! 182: dnl Override gl_MODULE_INDICATOR_FOR_TESTS.
! 183: AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [])
! 184: ])
! 185:
! 186: # Test whether <features.h> exists.
! 187: # Set HAVE_FEATURES_H.
! 188: AC_DEFUN([gl_FEATURES_H],
! 189: [
! 190: AC_CHECK_HEADERS_ONCE([features.h])
! 191: if test $ac_cv_header_features_h = yes; then
! 192: HAVE_FEATURES_H=1
! 193: else
! 194: HAVE_FEATURES_H=0
! 195: fi
! 196: AC_SUBST([HAVE_FEATURES_H])
1.1 misho 197: ])
198:
199: # m4_foreach_w
200: # is a backport of autoconf-2.59c's m4_foreach_w.
201: # Remove this macro when we can assume autoconf >= 2.60.
202: m4_ifndef([m4_foreach_w],
203: [m4_define([m4_foreach_w],
204: [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])])
205:
1.1.1.2 ! misho 206: # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH])
! 207: # ----------------------------------------------------
! 208: # Backport of autoconf-2.63b's macro.
! 209: # Remove this macro when we can assume autoconf >= 2.64.
! 210: m4_ifndef([AS_VAR_IF],
! 211: [m4_define([AS_VAR_IF],
! 212: [AS_IF([test x"AS_VAR_GET([$1])" = x""$2], [$3], [$4])])])
! 213:
! 214: # gl_PROG_AR_RANLIB
! 215: # Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
! 216: AC_DEFUN([gl_PROG_AR_RANLIB],
! 217: [
! 218: dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
! 219: dnl as "cc", and GCC as "gcc". They have different object file formats and
! 220: dnl library formats. In particular, the GNU binutils programs ar, ranlib
! 221: dnl produce libraries that work only with gcc, not with cc.
! 222: AC_REQUIRE([AC_PROG_CC])
! 223: AC_EGREP_CPP([Amsterdam],
! 224: [
! 225: #ifdef __ACK__
! 226: Amsterdam
! 227: #endif
! 228: ],
! 229: [AR='cc -c.a'
! 230: ARFLAGS='-o'
! 231: RANLIB=':'
! 232: ],
! 233: [dnl Use the Automake-documented default values for AR and ARFLAGS.
! 234: AR='ar'
! 235: ARFLAGS='cru'
! 236: dnl Use the ranlib program if it is available.
! 237: AC_PROG_RANLIB
! 238: ])
! 239: AC_SUBST([AR])
! 240: AC_SUBST([ARFLAGS])
! 241: ])
! 242:
1.1 misho 243: # AC_PROG_MKDIR_P
1.1.1.2 ! misho 244: # is a backport of autoconf-2.60's AC_PROG_MKDIR_P, with a fix
! 245: # for interoperability with automake-1.9.6 from autoconf-2.62.
! 246: # Remove this macro when we can assume autoconf >= 2.62 or
! 247: # autoconf >= 2.60 && automake >= 1.10.
! 248: m4_ifdef([AC_PROG_MKDIR_P], [
! 249: dnl For automake-1.9.6 && autoconf < 2.62: Ensure MKDIR_P is AC_SUBSTed.
! 250: m4_define([AC_PROG_MKDIR_P],
! 251: m4_defn([AC_PROG_MKDIR_P])[
! 252: AC_SUBST([MKDIR_P])])], [
! 253: dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P.
1.1 misho 254: AC_DEFUN_ONCE([AC_PROG_MKDIR_P],
255: [AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
256: MKDIR_P='$(mkdir_p)'
257: AC_SUBST([MKDIR_P])])])
258:
259: # AC_C_RESTRICT
260: # This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
261: # so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
262: # works.
263: # This definition can be removed once autoconf >= 2.62 can be assumed.
1.1.1.2 ! misho 264: m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[
1.1 misho 265: AC_DEFUN([AC_C_RESTRICT],
266: [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
267: [ac_cv_c_restrict=no
268: # The order here caters to the fact that C++ does not require restrict.
269: for ac_kw in __restrict __restrict__ _Restrict restrict; do
270: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
271: [[typedef int * int_ptr;
1.1.1.2 ! misho 272: int foo (int_ptr $ac_kw ip) {
! 273: return ip[0];
1.1 misho 274: }]],
275: [[int s[1];
1.1.1.2 ! misho 276: int * $ac_kw t = s;
! 277: t[0] = 0;
! 278: return foo(t)]])],
1.1 misho 279: [ac_cv_c_restrict=$ac_kw])
280: test "$ac_cv_c_restrict" != no && break
281: done
282: ])
283: AH_VERBATIM([restrict],
284: [/* Define to the equivalent of the C99 'restrict' keyword, or to
285: nothing if this is not supported. Do not define if restrict is
286: supported directly. */
287: #undef restrict
288: /* Work around a bug in Sun C++: it does not support _Restrict, even
289: though the corresponding Sun C compiler does, which causes
290: "#define restrict _Restrict" in the previous line. Perhaps some future
291: version of Sun C++ will work with _Restrict; if so, it'll probably
292: define __RESTRICT, just as Sun C does. */
293: #if defined __SUNPRO_CC && !defined __RESTRICT
294: # define _Restrict
295: #endif])
296: case $ac_cv_c_restrict in
297: restrict) ;;
298: no) AC_DEFINE([restrict], []) ;;
299: *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
300: esac
301: ])
1.1.1.2 ! misho 302: ])
1.1 misho 303:
304: # gl_BIGENDIAN
305: # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.
306: # Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some
307: # macros invoke AC_C_BIGENDIAN with arguments.
308: AC_DEFUN([gl_BIGENDIAN],
309: [
310: AC_C_BIGENDIAN
311: ])
312:
313: # gl_CACHE_VAL_SILENT(cache-id, command-to-set-it)
314: # is like AC_CACHE_VAL(cache-id, command-to-set-it), except that it does not
315: # output a spurious "(cached)" mark in the midst of other configure output.
316: # This macro should be used instead of AC_CACHE_VAL when it is not surrounded
317: # by an AC_MSG_CHECKING/AC_MSG_RESULT pair.
318: AC_DEFUN([gl_CACHE_VAL_SILENT],
319: [
320: saved_as_echo_n="$as_echo_n"
321: as_echo_n=':'
322: AC_CACHE_VAL([$1], [$2])
323: as_echo_n="$saved_as_echo_n"
324: ])
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>