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>