30
57
AC_LIBOBJ([stdio-write])
60
dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
61
dnl "expected source file, required through AC_LIBSOURCES, not found". It is
62
dnl also an optimization, to avoid performing a configure check whose result
63
dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
64
dnl or GNULIB_NONBLOCKING redundant.
65
m4_ifdef([gl_NONBLOCKING_IO], [
67
if test $gl_cv_have_nonblocking != yes; then
68
REPLACE_STDIO_WRITE_FUNCS=1
69
AC_LIBOBJ([stdio-write])
73
dnl Check for declarations of anything we want to poison if the
74
dnl corresponding gnulib module is not in use, and which is not
75
dnl guaranteed by C89.
76
gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
77
]], [dprintf fpurge fseeko ftello getdelim getline popen renameat
78
snprintf tmpfile vdprintf vsnprintf])
35
81
AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
37
83
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
38
84
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
39
GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
85
gl_MODULE_INDICATOR_SET_VARIABLE([$1])
86
dnl Define it also as a C macro, for the benefit of the unit tests.
87
gl_MODULE_INDICATOR_FOR_TESTS([$1])
42
90
AC_DEFUN([gl_STDIO_H_DEFAULTS],
92
GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
93
GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
94
GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
95
GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
96
GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
97
GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
44
98
GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
45
99
GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
100
GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
101
GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
102
GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
103
GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD])
104
GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
105
GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
106
GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
107
GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
108
GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
109
GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
110
GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
111
GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
112
GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
113
GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
114
GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
115
GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
116
GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
117
GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
118
GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
119
GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN])
46
120
GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
47
121
GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX])
122
GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
123
GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
124
GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
125
GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE])
126
GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME])
127
GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT])
128
GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF])
48
129
GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
49
130
GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
131
GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
132
GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
133
GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE])
134
GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
135
GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
136
GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
137
GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF])
50
138
GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
51
139
GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
52
140
GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
53
141
GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
54
142
GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
55
143
GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
56
GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
57
GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF])
58
GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
59
GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
60
GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
61
GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
62
GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
63
GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
64
GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
65
GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
66
GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
67
GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
68
GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
69
GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
70
GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
71
GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
72
GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
73
GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
74
GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
75
GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
76
GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN])
77
GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
78
GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
79
GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
80
GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
81
144
dnl Assume proper GNU behavior unless another module says otherwise.
82
REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
83
REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
84
REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
85
REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
86
REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
87
REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
145
HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
146
HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO])
147
HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO])
148
HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
149
HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
150
HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
88
151
HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
89
REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
90
152
HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
91
REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
92
REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
93
153
HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
154
HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
155
HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
156
HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
157
HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
158
HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
94
159
REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
95
HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
96
REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
97
HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
98
REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
99
HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
100
REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
160
REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
161
REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
101
162
REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
163
REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
164
REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
102
165
REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
103
HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
166
REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
104
167
REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
105
REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
106
HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
168
REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
107
169
REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
108
REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
109
REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
110
REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
111
HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
112
REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
113
REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
114
HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
115
HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
170
REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
116
171
REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
172
REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
117
173
REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
120
dnl Code shared by fseeko and ftello. Determine if large files are supported,
121
dnl but stdin does not start as a large file by default.
122
AC_DEFUN([gl_STDIN_LARGE_OFFSET],
124
AC_CACHE_CHECK([whether stdin defaults to large file offsets],
125
[gl_cv_var_stdin_large_offset],
126
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
127
[[#if defined __SL64 && defined __SCLE /* cygwin */
128
/* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
129
fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
130
it is easier to do a version check than building a runtime test. */
131
# include <cygwin/version.h>
132
# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
136
[gl_cv_var_stdin_large_offset=yes],
137
[gl_cv_var_stdin_large_offset=no])])
174
REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
175
REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
176
REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE])
177
REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME])
178
REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT])
179
REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
180
REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
181
REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
182
REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
183
REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
184
REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
185
REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
186
REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
187
REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
188
REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
189
REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])