Merge from emacs-23; up to 2010-06-12T10:58:54Z!romain@orebokech.com.
[bpt/emacs.git] / m4 / stdio_h.m4
1 # stdio_h.m4 serial 37
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.
6
7 AC_DEFUN([gl_STDIO_H],
8 [
9 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
10 AC_REQUIRE([AC_C_INLINE])
11 gl_NEXT_HEADERS([stdio.h])
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
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
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
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.
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 ])
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 ])
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>
77 ]], [dprintf fpurge fseeko ftello getdelim getline popen renameat
78 snprintf tmpfile vdprintf vsnprintf])
79 ])
80
81 AC_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
90 AC_DEFUN([gl_STDIO_H_DEFAULTS],
91 [
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])
98 GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
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])
120 GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
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])
129 GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
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])
138 GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
139 GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
140 GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
141 GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
142 GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
143 GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
144 dnl Assume proper GNU behavior unless another module says otherwise.
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])
151 HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
152 HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
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])
159 REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
160 REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
161 REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
162 REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
163 REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
164 REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
165 REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
166 REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
167 REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
168 REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
169 REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
170 REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
171 REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
172 REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
173 REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
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])
190 ])