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>