2
dnl Copyright (C) 2007-2010 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.
9
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
10
AC_REQUIRE([AC_C_INLINE])
11
gl_CHECK_NEXT_HEADERS([stdio.h])
12
dnl No need to create extra modules for these functions. Everyone who uses
13
dnl <stdio.h> likely needs them.
24
dnl This ifdef is just an optimization, to avoid performing a configure
25
dnl check whose result is not used. It does not make the test of
26
dnl GNULIB_STDIO_H_SIGPIPE or GNULIB_SIGPIPE redundant.
27
m4_ifdef([gl_SIGNAL_SIGPIPE], [
29
if test $gl_cv_header_signal_h_SIGPIPE != yes; then
30
REPLACE_STDIO_WRITE_FUNCS=1
31
AC_LIBOBJ([stdio-write])
35
dnl Check for declarations of anything we want to poison if the
36
dnl corresponding gnulib module is not in use, and which is not
37
dnl guaranteed by C89.
38
gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
42
AC_DEFUN([gl_STDIO_MODULE_INDICATOR],
44
dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
45
AC_REQUIRE([gl_STDIO_H_DEFAULTS])
46
GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
49
AC_DEFUN([gl_STDIO_H_DEFAULTS],
51
GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
52
GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
53
GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
54
GNULIB_FOPEN=0; AC_SUBST([GNULIB_FOPEN])
55
GNULIB_FPRINTF=0; AC_SUBST([GNULIB_FPRINTF])
56
GNULIB_FPRINTF_POSIX=0; AC_SUBST([GNULIB_FPRINTF_POSIX])
57
GNULIB_FPURGE=0; AC_SUBST([GNULIB_FPURGE])
58
GNULIB_FPUTC=0; AC_SUBST([GNULIB_FPUTC])
59
GNULIB_FPUTS=0; AC_SUBST([GNULIB_FPUTS])
60
GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
61
GNULIB_FSEEK=0; AC_SUBST([GNULIB_FSEEK])
62
GNULIB_FSEEKO=0; AC_SUBST([GNULIB_FSEEKO])
63
GNULIB_FTELL=0; AC_SUBST([GNULIB_FTELL])
64
GNULIB_FTELLO=0; AC_SUBST([GNULIB_FTELLO])
65
GNULIB_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
66
GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
67
GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
68
GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
69
GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
70
GNULIB_PERROR=0; AC_SUBST([GNULIB_PERROR])
71
GNULIB_POPEN=0; AC_SUBST([GNULIB_POPEN])
72
GNULIB_PRINTF=0; AC_SUBST([GNULIB_PRINTF])
73
GNULIB_PRINTF_POSIX=0; AC_SUBST([GNULIB_PRINTF_POSIX])
74
GNULIB_PUTC=0; AC_SUBST([GNULIB_PUTC])
75
GNULIB_PUTCHAR=0; AC_SUBST([GNULIB_PUTCHAR])
76
GNULIB_PUTS=0; AC_SUBST([GNULIB_PUTS])
77
GNULIB_REMOVE=0; AC_SUBST([GNULIB_REMOVE])
78
GNULIB_RENAME=0; AC_SUBST([GNULIB_RENAME])
79
GNULIB_RENAMEAT=0; AC_SUBST([GNULIB_RENAMEAT])
80
GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
81
GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
82
GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
83
GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
84
GNULIB_VDPRINTF=0; AC_SUBST([GNULIB_VDPRINTF])
85
GNULIB_VFPRINTF=0; AC_SUBST([GNULIB_VFPRINTF])
86
GNULIB_VFPRINTF_POSIX=0; AC_SUBST([GNULIB_VFPRINTF_POSIX])
87
GNULIB_VPRINTF=0; AC_SUBST([GNULIB_VPRINTF])
88
GNULIB_VPRINTF_POSIX=0; AC_SUBST([GNULIB_VPRINTF_POSIX])
89
GNULIB_VSNPRINTF=0; AC_SUBST([GNULIB_VSNPRINTF])
90
GNULIB_VSPRINTF_POSIX=0; AC_SUBST([GNULIB_VSPRINTF_POSIX])
91
dnl Assume proper GNU behavior unless another module says otherwise.
92
HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
93
HAVE_DECL_GETDELIM=1; AC_SUBST([HAVE_DECL_GETDELIM])
94
HAVE_DECL_GETLINE=1; AC_SUBST([HAVE_DECL_GETLINE])
95
HAVE_DECL_OBSTACK_PRINTF=1; AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
96
HAVE_DECL_SNPRINTF=1; AC_SUBST([HAVE_DECL_SNPRINTF])
97
HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
98
HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
99
HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
100
HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
101
HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
102
REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
103
REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
104
REPLACE_FFLUSH=0; AC_SUBST([REPLACE_FFLUSH])
105
REPLACE_FOPEN=0; AC_SUBST([REPLACE_FOPEN])
106
REPLACE_FPRINTF=0; AC_SUBST([REPLACE_FPRINTF])
107
REPLACE_FPURGE=0; AC_SUBST([REPLACE_FPURGE])
108
REPLACE_FREOPEN=0; AC_SUBST([REPLACE_FREOPEN])
109
REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
110
REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
111
REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
112
REPLACE_FTELLO=0; AC_SUBST([REPLACE_FTELLO])
113
REPLACE_GETLINE=0; AC_SUBST([REPLACE_GETLINE])
114
REPLACE_OBSTACK_PRINTF=0; AC_SUBST([REPLACE_OBSTACK_PRINTF])
115
REPLACE_PERROR=0; AC_SUBST([REPLACE_PERROR])
116
REPLACE_POPEN=0; AC_SUBST([REPLACE_POPEN])
117
REPLACE_PRINTF=0; AC_SUBST([REPLACE_PRINTF])
118
REPLACE_REMOVE=0; AC_SUBST([REPLACE_REMOVE])
119
REPLACE_RENAME=0; AC_SUBST([REPLACE_RENAME])
120
REPLACE_RENAMEAT=0; AC_SUBST([REPLACE_RENAMEAT])
121
REPLACE_SNPRINTF=0; AC_SUBST([REPLACE_SNPRINTF])
122
REPLACE_SPRINTF=0; AC_SUBST([REPLACE_SPRINTF])
123
REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
124
REPLACE_VASPRINTF=0; AC_SUBST([REPLACE_VASPRINTF])
125
REPLACE_VDPRINTF=0; AC_SUBST([REPLACE_VDPRINTF])
126
REPLACE_VFPRINTF=0; AC_SUBST([REPLACE_VFPRINTF])
127
REPLACE_VPRINTF=0; AC_SUBST([REPLACE_VPRINTF])
128
REPLACE_VSNPRINTF=0; AC_SUBST([REPLACE_VSNPRINTF])
129
REPLACE_VSPRINTF=0; AC_SUBST([REPLACE_VSPRINTF])
132
dnl Code shared by fseeko and ftello. Determine if large files are supported,
133
dnl but stdin does not start as a large file by default.
134
AC_DEFUN([gl_STDIN_LARGE_OFFSET],
136
AC_CACHE_CHECK([whether stdin defaults to large file offsets],
137
[gl_cv_var_stdin_large_offset],
138
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
139
[[#if defined __SL64 && defined __SCLE /* cygwin */
140
/* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
141
fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
142
it is easier to do a version check than building a runtime test. */
143
# include <cygwin/version.h>
144
# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
148
[gl_cv_var_stdin_large_offset=yes],
149
[gl_cv_var_stdin_large_offset=no])])