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