2 dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
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.
9 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
10 AC_REQUIRE([AC_C_INLINE])
11 gl_NEXT_HEADERS([stdio.h])
13 dnl No need to create extra modules for these functions. Everyone who uses
14 dnl <stdio.h> likely needs them.
25 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
26 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
27 dnl also an optimization, to avoid performing a configure check whose result
28 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
29 dnl or GNULIB_NONBLOCKING redundant.
30 m4_ifdef([gl_NONBLOCKING_IO], [
32 if test $gl_cv_have_nonblocking != yes; then
33 REPLACE_STDIO_READ_FUNCS=1
34 AC_LIBOBJ([stdio-read])
38 dnl No need to create extra modules for these functions. Everyone who uses
39 dnl <stdio.h> likely needs them.
50 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
51 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
52 dnl also an optimization, to avoid performing a configure check whose result
53 dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
54 dnl GNULIB_SIGPIPE redundant.
55 m4_ifdef([gl_SIGNAL_SIGPIPE], [
57 if test $gl_cv_header_signal_h_SIGPIPE != yes; then
58 REPLACE_STDIO_WRITE_FUNCS=1
59 AC_LIBOBJ([stdio-write])
62 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
63 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
64 dnl also an optimization, to avoid performing a configure check whose result
65 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
66 dnl or GNULIB_NONBLOCKING redundant.
67 m4_ifdef([gl_NONBLOCKING_IO], [
69 if test $gl_cv_have_nonblocking != yes; then
70 REPLACE_STDIO_WRITE_FUNCS=1
71 AC_LIBOBJ([stdio-write])
75 dnl Check for declarations of anything we want to poison if the
76 dnl corresponding gnulib module is not in use, and which is not
77 dnl guaranteed by C89.
78 gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
79 ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat
80 snprintf tmpfile vdprintf vsnprintf])
83 AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
85 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
86 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
87 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
88 dnl Define it also as a C macro, for the benefit of the unit tests.
89 gl_MODULE_INDICATOR_FOR_TESTS([$1])
92 AC_DEFUN([gl_STDIO_H_DEFAULTS],
94 GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
95 GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
96 GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
97 GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
98 GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
99 GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
100 GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
101 GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
102 GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
103 GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
104 GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
105 GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD])
106 GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
107 GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
108 GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
109 GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
110 GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
111 GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
112 GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
113 GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
114 GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
115 GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
116 GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
117 GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
118 GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
119 GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
120 GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
121 GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN])
122 GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
123 GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX])
124 GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
125 GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
126 GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
127 GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE])
128 GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME])
129 GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT])
130 GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF])
131 GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
132 GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
133 GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
134 GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
135 GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE])
136 GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
137 GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
138 GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
139 GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF])
140 GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
141 GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
142 GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
143 GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
144 GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
145 GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
146 dnl Assume proper GNU behavior unless another module says otherwise.
147 HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
148 HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO])
149 HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO])
150 HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
151 HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
152 HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
153 HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
154 HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
155 HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
156 HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
157 HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
158 HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
159 HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
160 HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
161 REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
162 REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
163 REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
164 REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
165 REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
166 REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
167 REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
168 REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
169 REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
170 REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
171 REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
172 REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
173 REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
174 REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
175 REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
176 REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
177 REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
178 REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE])
179 REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME])
180 REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT])
181 REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
182 REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
183 REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
184 REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
185 REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
186 REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
187 REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
188 REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
189 REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
190 REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
191 REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])