Merge from emacs-24; up to 2012-04-26T03:04:36Z!cyd@gnu.org
[bpt/emacs.git] / m4 / stdio_h.m4
CommitLineData
caf8a9b2
PE
1# stdio_h.m4 serial 41
2dnl Copyright (C) 2007-2012 Free Software Foundation, Inc.
d5cad867
PE
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
cc2e7b46
PE
21 GNULIB_FREAD=1
22 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
23 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
24 dnl also an optimization, to avoid performing a configure check whose result
25 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
26 dnl or GNULIB_NONBLOCKING redundant.
27 m4_ifdef([gl_NONBLOCKING_IO], [
28 gl_NONBLOCKING_IO
29 if test $gl_cv_have_nonblocking != yes; then
30 REPLACE_STDIO_READ_FUNCS=1
31 AC_LIBOBJ([stdio-read])
32 fi
33 ])
34
d5cad867
PE
35 dnl No need to create extra modules for these functions. Everyone who uses
36 dnl <stdio.h> likely needs them.
37 GNULIB_FPRINTF=1
38 GNULIB_PRINTF=1
39 GNULIB_VFPRINTF=1
40 GNULIB_VPRINTF=1
41 GNULIB_FPUTC=1
42 GNULIB_PUTC=1
43 GNULIB_PUTCHAR=1
44 GNULIB_FPUTS=1
45 GNULIB_PUTS=1
46 GNULIB_FWRITE=1
cc2e7b46
PE
47 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
48 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
49 dnl also an optimization, to avoid performing a configure check whose result
50 dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
51 dnl GNULIB_SIGPIPE redundant.
d5cad867
PE
52 m4_ifdef([gl_SIGNAL_SIGPIPE], [
53 gl_SIGNAL_SIGPIPE
54 if test $gl_cv_header_signal_h_SIGPIPE != yes; then
55 REPLACE_STDIO_WRITE_FUNCS=1
56 AC_LIBOBJ([stdio-write])
57 fi
58 ])
cc2e7b46
PE
59 dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
60 dnl "expected source file, required through AC_LIBSOURCES, not found". It is
61 dnl also an optimization, to avoid performing a configure check whose result
62 dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
63 dnl or GNULIB_NONBLOCKING redundant.
64 m4_ifdef([gl_NONBLOCKING_IO], [
65 gl_NONBLOCKING_IO
66 if test $gl_cv_have_nonblocking != yes; then
67 REPLACE_STDIO_WRITE_FUNCS=1
68 AC_LIBOBJ([stdio-write])
69 fi
70 ])
d5cad867
PE
71
72 dnl Check for declarations of anything we want to poison if the
73 dnl corresponding gnulib module is not in use, and which is not
caf8a9b2 74 dnl guaranteed by both C89 and C11.
d5cad867 75 gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
caf8a9b2
PE
76 ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
77 renameat snprintf tmpfile vdprintf vsnprintf])
d5cad867
PE
78])
79
80AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
81[
82 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
83 AC_REQUIRE([gl_STDIO_H_DEFAULTS])
84 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
85 dnl Define it also as a C macro, for the benefit of the unit tests.
86 gl_MODULE_INDICATOR_FOR_TESTS([$1])
87])
88
89AC_DEFUN([gl_STDIO_H_DEFAULTS],
90[
91 GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
92 GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
316f8af0 93 GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN])
d5cad867 94 GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
cc2e7b46
PE
95 GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
96 GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
d5cad867
PE
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])
cc2e7b46 103 GNULIB_FREAD=0; AC_SUBST([GNULIB_FREAD])
d5cad867 104 GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
cc2e7b46 105 GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
d5cad867
PE
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])
cc2e7b46
PE
111 GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
112 GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
d5cad867
PE
113 GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
114 GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
115 GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
116 GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
316f8af0 117 GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])
d5cad867
PE
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])
cc2e7b46 128 GNULIB_SCANF=0; AC_SUBST([GNULIB_SCANF])
d5cad867
PE
129 GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
130 GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
cc2e7b46 131 GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
d5cad867
PE
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])
cc2e7b46
PE
135 GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
136 GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
d5cad867
PE
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])
316f8af0
PE
156 HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE])
157 HAVE_POPEN=1; AC_SUBST([HAVE_POPEN])
d5cad867
PE
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])
316f8af0 163 REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN])
d5cad867
PE
164 REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
165 REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
166 REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
167 REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
168 REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
169 REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
170 REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
171 REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
172 REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
173 REPLACE_GETDELIM=0; AC_SUBST([REPLACE_GETDELIM])
174 REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
175 REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
176 REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
177 REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
178 REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
179 REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE])
180 REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME])
181 REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT])
182 REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
183 REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
cc2e7b46 184 REPLACE_STDIO_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
d5cad867
PE
185 REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
186 REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
187 REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
188 REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
189 REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
190 REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
191 REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
192 REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
193])