Annotation of embedaddon/libiconv/srcm4/extensions.m4, revision 1.1.1.3

1.1.1.3 ! misho       1: # serial 18  -*- Autoconf -*-
1.1       misho       2: # Enable extensions on systems that normally disable them.
                      3: 
1.1.1.3 ! misho       4: # Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc.
1.1       misho       5: # This file is free software; the Free Software Foundation
                      6: # gives unlimited permission to copy and/or distribute it,
                      7: # with or without modifications, as long as this notice is preserved.
                      8: 
1.1.1.3 ! misho       9: # This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from git
1.1       misho      10: # Autoconf.  Perhaps we can remove this once we can assume Autoconf
1.1.1.3 ! misho      11: # 2.70 or later everywhere, but since Autoconf mutates rapidly
1.1       misho      12: # enough in this area it's likely we'll need to redefine
                     13: # AC_USE_SYSTEM_EXTENSIONS for quite some time.
                     14: 
1.1.1.2   misho      15: # If autoconf reports a warning
                     16: #     warning: AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
                     17: # or  warning: AC_RUN_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS
                     18: # the fix is
                     19: #   1) to ensure that AC_USE_SYSTEM_EXTENSIONS is never directly invoked
                     20: #      but always AC_REQUIREd,
                     21: #   2) to ensure that for each occurrence of
                     22: #        AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
                     23: #      or
                     24: #        AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
                     25: #      the corresponding gnulib module description has 'extensions' among
                     26: #      its dependencies. This will ensure that the gl_USE_SYSTEM_EXTENSIONS
                     27: #      invocation occurs in gl_EARLY, not in gl_INIT.
                     28: 
1.1       misho      29: # AC_USE_SYSTEM_EXTENSIONS
                     30: # ------------------------
                     31: # Enable extensions on systems that normally disable them,
                     32: # typically due to standards-conformance issues.
1.1.1.3 ! misho      33: #
1.1       misho      34: # Remember that #undef in AH_VERBATIM gets replaced with #define by
                     35: # AC_DEFINE.  The goal here is to define all known feature-enabling
                     36: # macros, then, if reports of conflicts are made, disable macros that
                     37: # cause problems on some platforms (such as __EXTENSIONS__).
                     38: AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
                     39: [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
                     40: AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
                     41: 
                     42:   AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
                     43:   if test "$MINIX" = yes; then
                     44:     AC_DEFINE([_POSIX_SOURCE], [1],
1.1.1.3 ! misho      45:       [Define to 1 if you need to in order for 'stat' and other
1.1       misho      46:        things to work.])
                     47:     AC_DEFINE([_POSIX_1_SOURCE], [2],
                     48:       [Define to 2 if the system does not provide POSIX.1 features
                     49:        except with this defined.])
                     50:     AC_DEFINE([_MINIX], [1],
                     51:       [Define to 1 if on MINIX.])
1.1.1.3 ! misho      52:     AC_DEFINE([_NETBSD_SOURCE], [1],
        !            53:       [Define to 1 to make NetBSD features available.  MINIX 3 needs this.])
1.1       misho      54:   fi
                     55: 
1.1.1.3 ! misho      56: dnl Use a different key than __EXTENSIONS__, as that name broke existing
        !            57: dnl configure.ac when using autoheader 2.62.
        !            58:   AH_VERBATIM([USE_SYSTEM_EXTENSIONS],
1.1       misho      59: [/* Enable extensions on AIX 3, Interix.  */
                     60: #ifndef _ALL_SOURCE
                     61: # undef _ALL_SOURCE
                     62: #endif
1.1.1.3 ! misho      63: /* Enable general extensions on macOS.  */
1.1.1.2   misho      64: #ifndef _DARWIN_C_SOURCE
                     65: # undef _DARWIN_C_SOURCE
                     66: #endif
1.1       misho      67: /* Enable GNU extensions on systems that have them.  */
                     68: #ifndef _GNU_SOURCE
                     69: # undef _GNU_SOURCE
                     70: #endif
1.1.1.3 ! misho      71: /* Enable NetBSD extensions on NetBSD.  */
        !            72: #ifndef _NETBSD_SOURCE
        !            73: # undef _NETBSD_SOURCE
        !            74: #endif
        !            75: /* Enable OpenBSD extensions on NetBSD.  */
        !            76: #ifndef _OPENBSD_SOURCE
        !            77: # undef _OPENBSD_SOURCE
        !            78: #endif
1.1       misho      79: /* Enable threading extensions on Solaris.  */
                     80: #ifndef _POSIX_PTHREAD_SEMANTICS
                     81: # undef _POSIX_PTHREAD_SEMANTICS
                     82: #endif
1.1.1.3 ! misho      83: /* Enable extensions specified by ISO/IEC TS 18661-5:2014.  */
        !            84: #ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
        !            85: # undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
        !            86: #endif
        !            87: /* Enable extensions specified by ISO/IEC TS 18661-1:2014.  */
        !            88: #ifndef __STDC_WANT_IEC_60559_BFP_EXT__
        !            89: # undef __STDC_WANT_IEC_60559_BFP_EXT__
        !            90: #endif
        !            91: /* Enable extensions specified by ISO/IEC TS 18661-2:2015.  */
        !            92: #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
        !            93: # undef __STDC_WANT_IEC_60559_DFP_EXT__
        !            94: #endif
        !            95: /* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
        !            96: #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
        !            97: # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
        !            98: #endif
        !            99: /* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
        !           100: #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
        !           101: # undef __STDC_WANT_IEC_60559_TYPES_EXT__
        !           102: #endif
        !           103: /* Enable extensions specified by ISO/IEC TR 24731-2:2010.  */
        !           104: #ifndef __STDC_WANT_LIB_EXT2__
        !           105: # undef __STDC_WANT_LIB_EXT2__
        !           106: #endif
        !           107: /* Enable extensions specified by ISO/IEC 24747:2009.  */
        !           108: #ifndef __STDC_WANT_MATH_SPEC_FUNCS__
        !           109: # undef __STDC_WANT_MATH_SPEC_FUNCS__
        !           110: #endif
1.1       misho     111: /* Enable extensions on HP NonStop.  */
                    112: #ifndef _TANDEM_SOURCE
                    113: # undef _TANDEM_SOURCE
                    114: #endif
1.1.1.3 ! misho     115: /* Enable X/Open extensions if necessary.  HP-UX 11.11 defines
        !           116:    mbstate_t only if _XOPEN_SOURCE is defined to 500, regardless of
        !           117:    whether compiling with -Ae or -D_HPUX_SOURCE=1.  */
        !           118: #ifndef _XOPEN_SOURCE
        !           119: # undef _XOPEN_SOURCE
        !           120: #endif
        !           121: /* Enable X/Open compliant socket functions that do not require linking
        !           122:    with -lxnet on HP-UX 11.11.  */
        !           123: #ifndef _HPUX_ALT_XOPEN_SOCKET_API
        !           124: # undef _HPUX_ALT_XOPEN_SOCKET_API
        !           125: #endif
1.1       misho     126: /* Enable general extensions on Solaris.  */
                    127: #ifndef __EXTENSIONS__
                    128: # undef __EXTENSIONS__
                    129: #endif
                    130: ])
                    131:   AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
                    132:     [ac_cv_safe_to_define___extensions__],
                    133:     [AC_COMPILE_IFELSE(
                    134:        [AC_LANG_PROGRAM([[
1.1.1.2   misho     135: #         define __EXTENSIONS__ 1
                    136:           ]AC_INCLUDES_DEFAULT])],
1.1       misho     137:        [ac_cv_safe_to_define___extensions__=yes],
                    138:        [ac_cv_safe_to_define___extensions__=no])])
                    139:   test $ac_cv_safe_to_define___extensions__ = yes &&
                    140:     AC_DEFINE([__EXTENSIONS__])
                    141:   AC_DEFINE([_ALL_SOURCE])
1.1.1.2   misho     142:   AC_DEFINE([_DARWIN_C_SOURCE])
1.1       misho     143:   AC_DEFINE([_GNU_SOURCE])
1.1.1.3 ! misho     144:   AC_DEFINE([_NETBSD_SOURCE])
        !           145:   AC_DEFINE([_OPENBSD_SOURCE])
1.1       misho     146:   AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
1.1.1.3 ! misho     147:   AC_DEFINE([__STDC_WANT_IEC_60559_ATTRIBS_EXT__])
        !           148:   AC_DEFINE([__STDC_WANT_IEC_60559_BFP_EXT__])
        !           149:   AC_DEFINE([__STDC_WANT_IEC_60559_DFP_EXT__])
        !           150:   AC_DEFINE([__STDC_WANT_IEC_60559_FUNCS_EXT__])
        !           151:   AC_DEFINE([__STDC_WANT_IEC_60559_TYPES_EXT__])
        !           152:   AC_DEFINE([__STDC_WANT_LIB_EXT2__])
        !           153:   AC_DEFINE([__STDC_WANT_MATH_SPEC_FUNCS__])
1.1       misho     154:   AC_DEFINE([_TANDEM_SOURCE])
1.1.1.3 ! misho     155:   AC_CACHE_CHECK([whether _XOPEN_SOURCE should be defined],
        !           156:     [ac_cv_should_define__xopen_source],
        !           157:     [ac_cv_should_define__xopen_source=no
        !           158:      AC_COMPILE_IFELSE(
        !           159:        [AC_LANG_PROGRAM([[
        !           160:           #include <wchar.h>
        !           161:           mbstate_t x;]])],
        !           162:        [],
        !           163:        [AC_COMPILE_IFELSE(
        !           164:           [AC_LANG_PROGRAM([[
        !           165:              #define _XOPEN_SOURCE 500
        !           166:              #include <wchar.h>
        !           167:              mbstate_t x;]])],
        !           168:           [ac_cv_should_define__xopen_source=yes])])])
        !           169:   test $ac_cv_should_define__xopen_source = yes &&
        !           170:     AC_DEFINE([_XOPEN_SOURCE], [500])
        !           171:   AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API])
1.1       misho     172: ])# AC_USE_SYSTEM_EXTENSIONS
                    173: 
                    174: # gl_USE_SYSTEM_EXTENSIONS
                    175: # ------------------------
                    176: # Enable extensions on systems that normally disable them,
                    177: # typically due to standards-conformance issues.
                    178: AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS],
                    179: [
                    180:   dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS.
                    181:   dnl gnulib does not need it. But if it gets required by third-party macros
                    182:   dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a
                    183:   dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
                    184:   dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE,
                    185:   dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck.
                    186:   AC_REQUIRE([AC_GNU_SOURCE])
                    187: 
                    188:   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
                    189: ])

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>