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