Merge remote-tracking branch 'origin/stable-2.0'
[bpt/guile.git] / m4 / stdio_h.m4
CommitLineData
005de2e8 1# stdio_h.m4 serial 42
f0007cad 2dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
c4b681fd
LC
3dnl This file is free software; the Free Software Foundation
4dnl gives unlimited permission to copy and/or distribute it,
5dnl with or without modifications, as long as this notice is preserved.
6
7AC_DEFUN([gl_STDIO_H],
8[
9 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
61cd9dc9 10 AC_REQUIRE([AC_C_INLINE])
49114fd4 11 gl_NEXT_HEADERS([stdio.h])
dd7d0148
LC
12
13 dnl No need to create extra modules for these functions. Everyone who uses
14 dnl <stdio.h> likely needs them.
15 GNULIB_FSCANF=1
005de2e8 16 gl_MODULE_INDICATOR([fscanf])
dd7d0148 17 GNULIB_SCANF=1
005de2e8 18 gl_MODULE_INDICATOR([scanf])
dd7d0148
LC
19 GNULIB_FGETC=1
20 GNULIB_GETC=1
21 GNULIB_GETCHAR=1
22 GNULIB_FGETS=1
dd7d0148
LC
23 GNULIB_FREAD=1
24 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
25 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
26 dnl also an optimization, to avoid performing a configure check whose result
27 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
28 dnl or GNULIB_NONBLOCKING redundant.
29 m4_ifdef([gl_NONBLOCKING_IO], [
30 gl_NONBLOCKING_IO
31 if test $gl_cv_have_nonblocking != yes; then
32 REPLACE_STDIO_READ_FUNCS=1
33 AC_LIBOBJ([stdio-read])
34 fi
35 ])
36
c4b681fd
LC
37 dnl No need to create extra modules for these functions. Everyone who uses
38 dnl <stdio.h> likely needs them.
39 GNULIB_FPRINTF=1
40 GNULIB_PRINTF=1
41 GNULIB_VFPRINTF=1
42 GNULIB_VPRINTF=1
43 GNULIB_FPUTC=1
44 GNULIB_PUTC=1
45 GNULIB_PUTCHAR=1
46 GNULIB_FPUTS=1
47 GNULIB_PUTS=1
48 GNULIB_FWRITE=1
dd7d0148
LC
49 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
50 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
51 dnl also an optimization, to avoid performing a configure check whose result
52 dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
53 dnl GNULIB_SIGPIPE redundant.
c4b681fd
LC
54 m4_ifdef([gl_SIGNAL_SIGPIPE], [
55 gl_SIGNAL_SIGPIPE
56 if test $gl_cv_header_signal_h_SIGPIPE != yes; then
57 REPLACE_STDIO_WRITE_FUNCS=1
58 AC_LIBOBJ([stdio-write])
59 fi
60 ])
dd7d0148
LC
61 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
62 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
63 dnl also an optimization, to avoid performing a configure check whose result
64 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
65 dnl or GNULIB_NONBLOCKING redundant.
66 m4_ifdef([gl_NONBLOCKING_IO], [
67 gl_NONBLOCKING_IO
68 if test $gl_cv_have_nonblocking != yes; then
69 REPLACE_STDIO_WRITE_FUNCS=1
70 AC_LIBOBJ([stdio-write])
71 fi
72 ])
61cd9dc9
LC
73
74 dnl Check for declarations of anything we want to poison if the
75 dnl corresponding gnulib module is not in use, and which is not
005de2e8 76 dnl guaranteed by both C89 and C11.
61cd9dc9 77 gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
005de2e8
LC
78 ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
79 renameat snprintf tmpfile vdprintf vsnprintf])
c4b681fd
LC
80])
81
82AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
83[
84 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
85 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
a927b6c1 86 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
f4c79b3c 87 dnl Define it also as a C macro, for the benefit of the unit tests.
a927b6c1 88 gl_MODULE_INDICATOR_FOR_TESTS([$1])
c4b681fd
LC
89])
90
91AC_DEFUN([gl_STDIO_H_DEFAULTS],
92[
c4b681fd 93 GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
8912421c 94 GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
35428fb6 95 GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN])
8912421c 96 GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
dd7d0148
LC
97 GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
98 GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
c4b681fd 99 GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
8912421c
LC
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])
dd7d0148 105 GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD])
c4b681fd 106 GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
dd7d0148 107 GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
c4b681fd
LC
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])
c4b681fd 112 GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
dd7d0148
LC
113 GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
114 GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
c4b681fd
LC
115 GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
116 GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
8912421c
LC
117 GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
118 GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
35428fb6 119 GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])
c4b681fd 120 GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
8912421c
LC
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])
dd7d0148 130 GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF])
8912421c
LC
131 GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
132 GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
dd7d0148 133 GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
c4b681fd 134 GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
a927b6c1 135 GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE])
8912421c 136 GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
dd7d0148
LC
137 GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
138 GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
8912421c
LC
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])
c4b681fd 146 dnl Assume proper GNU behavior unless another module says otherwise.
8912421c 147 HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
ab4d62ad
LC
148 HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO])
149 HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO])
8912421c
LC
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])
c4b681fd 153 HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
c4b681fd 154 HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
c4b681fd 155 HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
a927b6c1
LC
156 HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
157 HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
35428fb6
LC
158 HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE])
159 HAVE_POPEN=1; AC_SUBST([HAVE_POPEN])
8912421c 160 HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
c4b681fd 161 HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
8912421c
LC
162 HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
163 REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
164 REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
35428fb6 165 REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN])
8912421c 166 REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
c4b681fd 167 REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
8912421c
LC
168 REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
169 REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
c4b681fd 170 REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
c4b681fd 171 REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
8912421c 172 REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
c4b681fd 173 REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
8912421c 174 REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
61cd9dc9 175 REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
c4b681fd 176 REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
8912421c 177 REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
c4b681fd 178 REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
8912421c
LC
179 REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
180 REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
181 REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE])
182 REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME])
183 REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT])
184 REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
185 REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
dd7d0148 186 REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
8912421c 187 REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
a927b6c1 188 REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
8912421c
LC
189 REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
190 REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
191 REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
192 REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
193 REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
194 REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
c4b681fd 195])