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

1.1.1.3 ! misho       1: # stdio_h.m4 serial 49
        !             2: dnl Copyright (C) 2007-2019 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: AC_DEFUN([gl_STDIO_H],
                      8: [
1.1.1.3 ! misho       9:   AH_VERBATIM([MINGW_ANSI_STDIO],
        !            10: [/* Use GNU style printf and scanf.  */
        !            11: #ifndef __USE_MINGW_ANSI_STDIO
        !            12: # undef __USE_MINGW_ANSI_STDIO
        !            13: #endif
        !            14: ])
        !            15:   AC_DEFINE([__USE_MINGW_ANSI_STDIO])
1.1       misho      16:   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
1.1.1.2   misho      17:   gl_NEXT_HEADERS([stdio.h])
                     18: 
1.1.1.3 ! misho      19:   dnl Determine whether __USE_MINGW_ANSI_STDIO makes printf and
        !            20:   dnl inttypes.h behave like gnu instead of system; we must give our
        !            21:   dnl printf wrapper the right attribute to match.
        !            22:   AC_CACHE_CHECK([which flavor of printf attribute matches inttypes macros],
        !            23:     [gl_cv_func_printf_attribute_flavor],
        !            24:     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !            25:        #define __STDC_FORMAT_MACROS 1
        !            26:        #include <stdio.h>
        !            27:        #include <inttypes.h>
        !            28:        /* For non-mingw systems, compilation will trivially succeed.
        !            29:           For mingw, compilation will succeed for older mingw (system
        !            30:           printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */
        !            31:        #if (defined _WIN32 && ! defined __CYGWIN__) && \
        !            32:          (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
        !            33:        extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1];
        !            34:        #endif
        !            35:       ]])], [gl_cv_func_printf_attribute_flavor=system],
        !            36:       [gl_cv_func_printf_attribute_flavor=gnu])])
        !            37:   if test "$gl_cv_func_printf_attribute_flavor" = gnu; then
        !            38:     AC_DEFINE([GNULIB_PRINTF_ATTRIBUTE_FLAVOR_GNU], [1],
        !            39:       [Define to 1 if printf and friends should be labeled with
        !            40:        attribute "__gnu_printf__" instead of "__printf__"])
        !            41:   fi
        !            42: 
1.1.1.2   misho      43:   dnl No need to create extra modules for these functions. Everyone who uses
                     44:   dnl <stdio.h> likely needs them.
                     45:   GNULIB_FSCANF=1
1.1.1.3 ! misho      46:   gl_MODULE_INDICATOR([fscanf])
1.1.1.2   misho      47:   GNULIB_SCANF=1
1.1.1.3 ! misho      48:   gl_MODULE_INDICATOR([scanf])
1.1.1.2   misho      49:   GNULIB_FGETC=1
                     50:   GNULIB_GETC=1
                     51:   GNULIB_GETCHAR=1
                     52:   GNULIB_FGETS=1
                     53:   GNULIB_FREAD=1
                     54:   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
                     55:   dnl "expected source file, required through AC_LIBSOURCES, not found". It is
                     56:   dnl also an optimization, to avoid performing a configure check whose result
                     57:   dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
                     58:   dnl or GNULIB_NONBLOCKING redundant.
                     59:   m4_ifdef([gl_NONBLOCKING_IO], [
                     60:     gl_NONBLOCKING_IO
                     61:     if test $gl_cv_have_nonblocking != yes; then
                     62:       REPLACE_STDIO_READ_FUNCS=1
                     63:       AC_LIBOBJ([stdio-read])
                     64:     fi
                     65:   ])
                     66: 
1.1       misho      67:   dnl No need to create extra modules for these functions. Everyone who uses
                     68:   dnl <stdio.h> likely needs them.
                     69:   GNULIB_FPRINTF=1
                     70:   GNULIB_PRINTF=1
                     71:   GNULIB_VFPRINTF=1
                     72:   GNULIB_VPRINTF=1
                     73:   GNULIB_FPUTC=1
                     74:   GNULIB_PUTC=1
                     75:   GNULIB_PUTCHAR=1
                     76:   GNULIB_FPUTS=1
                     77:   GNULIB_PUTS=1
                     78:   GNULIB_FWRITE=1
1.1.1.2   misho      79:   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
                     80:   dnl "expected source file, required through AC_LIBSOURCES, not found". It is
                     81:   dnl also an optimization, to avoid performing a configure check whose result
                     82:   dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
                     83:   dnl GNULIB_SIGPIPE redundant.
1.1       misho      84:   m4_ifdef([gl_SIGNAL_SIGPIPE], [
                     85:     gl_SIGNAL_SIGPIPE
                     86:     if test $gl_cv_header_signal_h_SIGPIPE != yes; then
                     87:       REPLACE_STDIO_WRITE_FUNCS=1
                     88:       AC_LIBOBJ([stdio-write])
                     89:     fi
                     90:   ])
1.1.1.2   misho      91:   dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
                     92:   dnl "expected source file, required through AC_LIBSOURCES, not found". It is
                     93:   dnl also an optimization, to avoid performing a configure check whose result
                     94:   dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
                     95:   dnl or GNULIB_NONBLOCKING redundant.
                     96:   m4_ifdef([gl_NONBLOCKING_IO], [
                     97:     gl_NONBLOCKING_IO
                     98:     if test $gl_cv_have_nonblocking != yes; then
                     99:       REPLACE_STDIO_WRITE_FUNCS=1
                    100:       AC_LIBOBJ([stdio-write])
                    101:     fi
                    102:   ])
                    103: 
                    104:   dnl Check for declarations of anything we want to poison if the
                    105:   dnl corresponding gnulib module is not in use, and which is not
1.1.1.3 ! misho     106:   dnl guaranteed by both C89 and C11.
1.1.1.2   misho     107:   gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
1.1.1.3 ! misho     108:     ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
        !           109:     renameat snprintf tmpfile vdprintf vsnprintf])
1.1       misho     110: ])
                    111: 
                    112: AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
                    113: [
                    114:   dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
                    115:   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
1.1.1.2   misho     116:   gl_MODULE_INDICATOR_SET_VARIABLE([$1])
                    117:   dnl Define it also as a C macro, for the benefit of the unit tests.
                    118:   gl_MODULE_INDICATOR_FOR_TESTS([$1])
1.1       misho     119: ])
                    120: 
                    121: AC_DEFUN([gl_STDIO_H_DEFAULTS],
                    122: [
                    123:   GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
1.1.1.2   misho     124:   GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
1.1.1.3 ! misho     125:   GNULIB_FDOPEN=0;               AC_SUBST([GNULIB_FDOPEN])
1.1.1.2   misho     126:   GNULIB_FFLUSH=0;               AC_SUBST([GNULIB_FFLUSH])
                    127:   GNULIB_FGETC=0;                AC_SUBST([GNULIB_FGETC])
                    128:   GNULIB_FGETS=0;                AC_SUBST([GNULIB_FGETS])
1.1       misho     129:   GNULIB_FOPEN=0;                AC_SUBST([GNULIB_FOPEN])
1.1.1.2   misho     130:   GNULIB_FPRINTF=0;              AC_SUBST([GNULIB_FPRINTF])
                    131:   GNULIB_FPRINTF_POSIX=0;        AC_SUBST([GNULIB_FPRINTF_POSIX])
                    132:   GNULIB_FPURGE=0;               AC_SUBST([GNULIB_FPURGE])
                    133:   GNULIB_FPUTC=0;                AC_SUBST([GNULIB_FPUTC])
                    134:   GNULIB_FPUTS=0;                AC_SUBST([GNULIB_FPUTS])
                    135:   GNULIB_FREAD=0;                AC_SUBST([GNULIB_FREAD])
1.1       misho     136:   GNULIB_FREOPEN=0;              AC_SUBST([GNULIB_FREOPEN])
1.1.1.2   misho     137:   GNULIB_FSCANF=0;               AC_SUBST([GNULIB_FSCANF])
1.1       misho     138:   GNULIB_FSEEK=0;                AC_SUBST([GNULIB_FSEEK])
                    139:   GNULIB_FSEEKO=0;               AC_SUBST([GNULIB_FSEEKO])
                    140:   GNULIB_FTELL=0;                AC_SUBST([GNULIB_FTELL])
                    141:   GNULIB_FTELLO=0;               AC_SUBST([GNULIB_FTELLO])
                    142:   GNULIB_FWRITE=0;               AC_SUBST([GNULIB_FWRITE])
1.1.1.2   misho     143:   GNULIB_GETC=0;                 AC_SUBST([GNULIB_GETC])
                    144:   GNULIB_GETCHAR=0;              AC_SUBST([GNULIB_GETCHAR])
1.1       misho     145:   GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM])
                    146:   GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE])
1.1.1.2   misho     147:   GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
                    148:   GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
1.1.1.3 ! misho     149:   GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE])
1.1       misho     150:   GNULIB_PERROR=0;               AC_SUBST([GNULIB_PERROR])
1.1.1.2   misho     151:   GNULIB_POPEN=0;                AC_SUBST([GNULIB_POPEN])
                    152:   GNULIB_PRINTF=0;               AC_SUBST([GNULIB_PRINTF])
                    153:   GNULIB_PRINTF_POSIX=0;         AC_SUBST([GNULIB_PRINTF_POSIX])
                    154:   GNULIB_PUTC=0;                 AC_SUBST([GNULIB_PUTC])
                    155:   GNULIB_PUTCHAR=0;              AC_SUBST([GNULIB_PUTCHAR])
                    156:   GNULIB_PUTS=0;                 AC_SUBST([GNULIB_PUTS])
                    157:   GNULIB_REMOVE=0;               AC_SUBST([GNULIB_REMOVE])
                    158:   GNULIB_RENAME=0;               AC_SUBST([GNULIB_RENAME])
                    159:   GNULIB_RENAMEAT=0;             AC_SUBST([GNULIB_RENAMEAT])
                    160:   GNULIB_SCANF=0;                AC_SUBST([GNULIB_SCANF])
                    161:   GNULIB_SNPRINTF=0;             AC_SUBST([GNULIB_SNPRINTF])
                    162:   GNULIB_SPRINTF_POSIX=0;        AC_SUBST([GNULIB_SPRINTF_POSIX])
                    163:   GNULIB_STDIO_H_NONBLOCKING=0;  AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
1.1       misho     164:   GNULIB_STDIO_H_SIGPIPE=0;      AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
1.1.1.2   misho     165:   GNULIB_TMPFILE=0;              AC_SUBST([GNULIB_TMPFILE])
                    166:   GNULIB_VASPRINTF=0;            AC_SUBST([GNULIB_VASPRINTF])
                    167:   GNULIB_VFSCANF=0;              AC_SUBST([GNULIB_VFSCANF])
                    168:   GNULIB_VSCANF=0;               AC_SUBST([GNULIB_VSCANF])
                    169:   GNULIB_VDPRINTF=0;             AC_SUBST([GNULIB_VDPRINTF])
                    170:   GNULIB_VFPRINTF=0;             AC_SUBST([GNULIB_VFPRINTF])
                    171:   GNULIB_VFPRINTF_POSIX=0;       AC_SUBST([GNULIB_VFPRINTF_POSIX])
                    172:   GNULIB_VPRINTF=0;              AC_SUBST([GNULIB_VPRINTF])
                    173:   GNULIB_VPRINTF_POSIX=0;        AC_SUBST([GNULIB_VPRINTF_POSIX])
                    174:   GNULIB_VSNPRINTF=0;            AC_SUBST([GNULIB_VSNPRINTF])
                    175:   GNULIB_VSPRINTF_POSIX=0;       AC_SUBST([GNULIB_VSPRINTF_POSIX])
1.1       misho     176:   dnl Assume proper GNU behavior unless another module says otherwise.
1.1.1.2   misho     177:   HAVE_DECL_FPURGE=1;            AC_SUBST([HAVE_DECL_FPURGE])
                    178:   HAVE_DECL_FSEEKO=1;            AC_SUBST([HAVE_DECL_FSEEKO])
                    179:   HAVE_DECL_FTELLO=1;            AC_SUBST([HAVE_DECL_FTELLO])
                    180:   HAVE_DECL_GETDELIM=1;          AC_SUBST([HAVE_DECL_GETDELIM])
                    181:   HAVE_DECL_GETLINE=1;           AC_SUBST([HAVE_DECL_GETLINE])
                    182:   HAVE_DECL_OBSTACK_PRINTF=1;    AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
1.1       misho     183:   HAVE_DECL_SNPRINTF=1;          AC_SUBST([HAVE_DECL_SNPRINTF])
                    184:   HAVE_DECL_VSNPRINTF=1;         AC_SUBST([HAVE_DECL_VSNPRINTF])
                    185:   HAVE_DPRINTF=1;                AC_SUBST([HAVE_DPRINTF])
1.1.1.2   misho     186:   HAVE_FSEEKO=1;                 AC_SUBST([HAVE_FSEEKO])
                    187:   HAVE_FTELLO=1;                 AC_SUBST([HAVE_FTELLO])
1.1.1.3 ! misho     188:   HAVE_PCLOSE=1;                 AC_SUBST([HAVE_PCLOSE])
        !           189:   HAVE_POPEN=1;                  AC_SUBST([HAVE_POPEN])
1.1.1.2   misho     190:   HAVE_RENAMEAT=1;               AC_SUBST([HAVE_RENAMEAT])
1.1       misho     191:   HAVE_VASPRINTF=1;              AC_SUBST([HAVE_VASPRINTF])
1.1.1.2   misho     192:   HAVE_VDPRINTF=1;               AC_SUBST([HAVE_VDPRINTF])
                    193:   REPLACE_DPRINTF=0;             AC_SUBST([REPLACE_DPRINTF])
                    194:   REPLACE_FCLOSE=0;              AC_SUBST([REPLACE_FCLOSE])
1.1.1.3 ! misho     195:   REPLACE_FDOPEN=0;              AC_SUBST([REPLACE_FDOPEN])
1.1.1.2   misho     196:   REPLACE_FFLUSH=0;              AC_SUBST([REPLACE_FFLUSH])
1.1       misho     197:   REPLACE_FOPEN=0;               AC_SUBST([REPLACE_FOPEN])
1.1.1.2   misho     198:   REPLACE_FPRINTF=0;             AC_SUBST([REPLACE_FPRINTF])
                    199:   REPLACE_FPURGE=0;              AC_SUBST([REPLACE_FPURGE])
1.1       misho     200:   REPLACE_FREOPEN=0;             AC_SUBST([REPLACE_FREOPEN])
                    201:   REPLACE_FSEEK=0;               AC_SUBST([REPLACE_FSEEK])
1.1.1.2   misho     202:   REPLACE_FSEEKO=0;              AC_SUBST([REPLACE_FSEEKO])
1.1       misho     203:   REPLACE_FTELL=0;               AC_SUBST([REPLACE_FTELL])
1.1.1.2   misho     204:   REPLACE_FTELLO=0;              AC_SUBST([REPLACE_FTELLO])
                    205:   REPLACE_GETDELIM=0;            AC_SUBST([REPLACE_GETDELIM])
1.1       misho     206:   REPLACE_GETLINE=0;             AC_SUBST([REPLACE_GETLINE])
1.1.1.2   misho     207:   REPLACE_OBSTACK_PRINTF=0;      AC_SUBST([REPLACE_OBSTACK_PRINTF])
1.1       misho     208:   REPLACE_PERROR=0;              AC_SUBST([REPLACE_PERROR])
1.1.1.2   misho     209:   REPLACE_POPEN=0;               AC_SUBST([REPLACE_POPEN])
                    210:   REPLACE_PRINTF=0;              AC_SUBST([REPLACE_PRINTF])
                    211:   REPLACE_REMOVE=0;              AC_SUBST([REPLACE_REMOVE])
                    212:   REPLACE_RENAME=0;              AC_SUBST([REPLACE_RENAME])
                    213:   REPLACE_RENAMEAT=0;            AC_SUBST([REPLACE_RENAMEAT])
                    214:   REPLACE_SNPRINTF=0;            AC_SUBST([REPLACE_SNPRINTF])
                    215:   REPLACE_SPRINTF=0;             AC_SUBST([REPLACE_SPRINTF])
                    216:   REPLACE_STDIO_READ_FUNCS=0;    AC_SUBST([REPLACE_STDIO_READ_FUNCS])
                    217:   REPLACE_STDIO_WRITE_FUNCS=0;   AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
                    218:   REPLACE_TMPFILE=0;             AC_SUBST([REPLACE_TMPFILE])
                    219:   REPLACE_VASPRINTF=0;           AC_SUBST([REPLACE_VASPRINTF])
                    220:   REPLACE_VDPRINTF=0;            AC_SUBST([REPLACE_VDPRINTF])
                    221:   REPLACE_VFPRINTF=0;            AC_SUBST([REPLACE_VFPRINTF])
                    222:   REPLACE_VPRINTF=0;             AC_SUBST([REPLACE_VPRINTF])
                    223:   REPLACE_VSNPRINTF=0;           AC_SUBST([REPLACE_VSNPRINTF])
                    224:   REPLACE_VSPRINTF=0;            AC_SUBST([REPLACE_VSPRINTF])
1.1       misho     225: ])

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