Imported Upstream version 1.5
[debian/gzip] / m4 / stdio_h.m4
1 # stdio_h.m4 serial 41
2 dnl Copyright (C) 2007-2012 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_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
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
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.
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   ])
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   ])
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
74   dnl guaranteed by both C89 and C11.
75   gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
76     ]], [dprintf fpurge fseeko ftello getdelim getline gets pclose popen
77     renameat snprintf tmpfile vdprintf vsnprintf])
78 ])
79
80 AC_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
89 AC_DEFUN([gl_STDIO_H_DEFAULTS],
90 [
91   GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
92   GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
93   GNULIB_FDOPEN=0;               AC_SUBST([GNULIB_FDOPEN])
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_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
116   GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
117   GNULIB_PCLOSE=0;               AC_SUBST([GNULIB_PCLOSE])
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_PCLOSE=1;                 AC_SUBST([HAVE_PCLOSE])
157   HAVE_POPEN=1;                  AC_SUBST([HAVE_POPEN])
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])
163   REPLACE_FDOPEN=0;              AC_SUBST([REPLACE_FDOPEN])
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])
184   REPLACE_STDIO_READ_FUNCS=0;    AC_SUBST([REPLACE_STDIO_READ_FUNCS])
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 ])