Merge from emacs-23; up to 2010-06-22T07:41:10Z!rgm@gnu.org
[bpt/emacs.git] / m4 / stdio_h.m4
CommitLineData
316f8af0 1# stdio_h.m4 serial 40
d5cad867
PE
2dnl Copyright (C) 2007-2011 Free Software Foundation, Inc.
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])
10 AC_REQUIRE([AC_C_INLINE])
11 gl_NEXT_HEADERS([stdio.h])
cc2e7b46
PE
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
16 GNULIB_SCANF=1
cc2e7b46
PE
17 GNULIB_FGETC=1
18 GNULIB_GETC=1
19 GNULIB_GETCHAR=1
20 GNULIB_FGETS=1
21 GNULIB_GETS=1
22 GNULIB_FREAD=1
23 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
24 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
25 dnl also an optimization, to avoid performing a configure check whose result
26 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
27 dnl or GNULIB_NONBLOCKING redundant.
28 m4_ifdef([gl_NONBLOCKING_IO], [
29 gl_NONBLOCKING_IO
30 if test $gl_cv_have_nonblocking != yes; then
31 REPLACE_STDIO_READ_FUNCS=1
32 AC_LIBOBJ([stdio-read])
33 fi
34 ])
35
d5cad867
PE
36 dnl No need to create extra modules for these functions. Everyone who uses
37 dnl <stdio.h> likely needs them.
38 GNULIB_FPRINTF=1
39 GNULIB_PRINTF=1
40 GNULIB_VFPRINTF=1
41 GNULIB_VPRINTF=1
42 GNULIB_FPUTC=1
43 GNULIB_PUTC=1
44 GNULIB_PUTCHAR=1
45 GNULIB_FPUTS=1
46 GNULIB_PUTS=1
47 GNULIB_FWRITE=1
cc2e7b46
PE
48 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
49 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
50 dnl also an optimization, to avoid performing a configure check whose result
51 dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
52 dnl GNULIB_SIGPIPE redundant.
d5cad867
PE
53 m4_ifdef([gl_SIGNAL_SIGPIPE], [
54 gl_SIGNAL_SIGPIPE
55 if test $gl_cv_header_signal_h_SIGPIPE != yes; then
56 REPLACE_STDIO_WRITE_FUNCS=1
57 AC_LIBOBJ([stdio-write])
58 fi
59 ])
cc2e7b46
PE
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], [
66 gl_NONBLOCKING_IO
67 if test $gl_cv_have_nonblocking != yes; then
68 REPLACE_STDIO_WRITE_FUNCS=1
69 AC_LIBOBJ([stdio-write])
70 fi
71 ])
d5cad867
PE
72
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>
316f8af0 77 ]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat
d5cad867
PE
78 snprintf tmpfile vdprintf vsnprintf])
79])
80
81AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
82[
83 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
84 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
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])
88])
89
90AC_DEFUN([gl_STDIO_H_DEFAULTS],
91[
92 GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
93 GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
316f8af0 94 GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN])
d5cad867 95 GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
cc2e7b46
PE
96 GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
97 GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
d5cad867
PE
98 GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
99 GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
100 GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
101 GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
102 GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
103 GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
cc2e7b46 104 GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD])
d5cad867 105 GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
cc2e7b46 106 GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
d5cad867
PE
107 GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
108 GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
109 GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
110 GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
111 GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
cc2e7b46
PE
112 GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
113 GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
d5cad867
PE
114 GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
115 GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
cc2e7b46 116 GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
d5cad867
PE
117 GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
118 GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
316f8af0 119 GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])
d5cad867
PE
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])
cc2e7b46 130 GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF])
d5cad867
PE
131 GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
132 GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
cc2e7b46 133 GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
d5cad867
PE
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])
cc2e7b46
PE
137 GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
138 GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
d5cad867
PE
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])
316f8af0
PE
158 HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE])
159 HAVE_POPEN=1; AC_SUBST([HAVE_POPEN])
d5cad867
PE
160 HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
161 HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
162 HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
163 REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
164 REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
316f8af0 165 REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN])
d5cad867
PE
166 REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
167 REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
168 REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
169 REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
170 REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
171 REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
172 REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
173 REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
174 REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
175 REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
176 REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
177 REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
178 REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
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])
cc2e7b46 186 REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
d5cad867
PE
187 REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
188 REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
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])
195])