Initail import package wget: A utility for retrieving files using the HTTP or FTP...
[external/wget.git] / m4 / stdio_h.m4
1 # stdio_h.m4 serial 17
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_FPRINTF=0;              AC_SUBST([GNULIB_FPRINTF])
45   GNULIB_FPRINTF_POSIX=0;        AC_SUBST([GNULIB_FPRINTF_POSIX])
46   GNULIB_PRINTF=0;               AC_SUBST([GNULIB_PRINTF])
47   GNULIB_PRINTF_POSIX=0;         AC_SUBST([GNULIB_PRINTF_POSIX])
48   GNULIB_SNPRINTF=0;             AC_SUBST([GNULIB_SNPRINTF])
49   GNULIB_SPRINTF_POSIX=0;        AC_SUBST([GNULIB_SPRINTF_POSIX])
50   GNULIB_VFPRINTF=0;             AC_SUBST([GNULIB_VFPRINTF])
51   GNULIB_VFPRINTF_POSIX=0;       AC_SUBST([GNULIB_VFPRINTF_POSIX])
52   GNULIB_VPRINTF=0;              AC_SUBST([GNULIB_VPRINTF])
53   GNULIB_VPRINTF_POSIX=0;        AC_SUBST([GNULIB_VPRINTF_POSIX])
54   GNULIB_VSNPRINTF=0;            AC_SUBST([GNULIB_VSNPRINTF])
55   GNULIB_VSPRINTF_POSIX=0;       AC_SUBST([GNULIB_VSPRINTF_POSIX])
56   GNULIB_DPRINTF=0;              AC_SUBST([GNULIB_DPRINTF])
57   GNULIB_VDPRINTF=0;             AC_SUBST([GNULIB_VDPRINTF])
58   GNULIB_VASPRINTF=0;            AC_SUBST([GNULIB_VASPRINTF])
59   GNULIB_OBSTACK_PRINTF=0;       AC_SUBST([GNULIB_OBSTACK_PRINTF])
60   GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
61   GNULIB_FOPEN=0;                AC_SUBST([GNULIB_FOPEN])
62   GNULIB_FREOPEN=0;              AC_SUBST([GNULIB_FREOPEN])
63   GNULIB_FSEEK=0;                AC_SUBST([GNULIB_FSEEK])
64   GNULIB_FSEEKO=0;               AC_SUBST([GNULIB_FSEEKO])
65   GNULIB_FTELL=0;                AC_SUBST([GNULIB_FTELL])
66   GNULIB_FTELLO=0;               AC_SUBST([GNULIB_FTELLO])
67   GNULIB_FFLUSH=0;               AC_SUBST([GNULIB_FFLUSH])
68   GNULIB_FPURGE=0;               AC_SUBST([GNULIB_FPURGE])
69   GNULIB_FCLOSE=0;               AC_SUBST([GNULIB_FCLOSE])
70   GNULIB_FPUTC=0;                AC_SUBST([GNULIB_FPUTC])
71   GNULIB_PUTC=0;                 AC_SUBST([GNULIB_PUTC])
72   GNULIB_PUTCHAR=0;              AC_SUBST([GNULIB_PUTCHAR])
73   GNULIB_FPUTS=0;                AC_SUBST([GNULIB_FPUTS])
74   GNULIB_PUTS=0;                 AC_SUBST([GNULIB_PUTS])
75   GNULIB_FWRITE=0;               AC_SUBST([GNULIB_FWRITE])
76   GNULIB_POPEN=0;                AC_SUBST([GNULIB_POPEN])
77   GNULIB_GETDELIM=0;             AC_SUBST([GNULIB_GETDELIM])
78   GNULIB_GETLINE=0;              AC_SUBST([GNULIB_GETLINE])
79   GNULIB_PERROR=0;               AC_SUBST([GNULIB_PERROR])
80   GNULIB_STDIO_H_SIGPIPE=0;      AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
81   dnl Assume proper GNU behavior unless another module says otherwise.
82   REPLACE_STDIO_WRITE_FUNCS=0;   AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
83   REPLACE_FPRINTF=0;             AC_SUBST([REPLACE_FPRINTF])
84   REPLACE_VFPRINTF=0;            AC_SUBST([REPLACE_VFPRINTF])
85   REPLACE_PRINTF=0;              AC_SUBST([REPLACE_PRINTF])
86   REPLACE_VPRINTF=0;             AC_SUBST([REPLACE_VPRINTF])
87   REPLACE_SNPRINTF=0;            AC_SUBST([REPLACE_SNPRINTF])
88   HAVE_DECL_SNPRINTF=1;          AC_SUBST([HAVE_DECL_SNPRINTF])
89   REPLACE_VSNPRINTF=0;           AC_SUBST([REPLACE_VSNPRINTF])
90   HAVE_DECL_VSNPRINTF=1;         AC_SUBST([HAVE_DECL_VSNPRINTF])
91   REPLACE_SPRINTF=0;             AC_SUBST([REPLACE_SPRINTF])
92   REPLACE_VSPRINTF=0;            AC_SUBST([REPLACE_VSPRINTF])
93   HAVE_DPRINTF=1;                AC_SUBST([HAVE_DPRINTF])
94   REPLACE_DPRINTF=0;             AC_SUBST([REPLACE_DPRINTF])
95   HAVE_VDPRINTF=1;               AC_SUBST([HAVE_VDPRINTF])
96   REPLACE_VDPRINTF=0;            AC_SUBST([REPLACE_VDPRINTF])
97   HAVE_VASPRINTF=1;              AC_SUBST([HAVE_VASPRINTF])
98   REPLACE_VASPRINTF=0;           AC_SUBST([REPLACE_VASPRINTF])
99   HAVE_DECL_OBSTACK_PRINTF=1;    AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
100   REPLACE_OBSTACK_PRINTF=0;      AC_SUBST([REPLACE_OBSTACK_PRINTF])
101   REPLACE_FOPEN=0;               AC_SUBST([REPLACE_FOPEN])
102   REPLACE_FREOPEN=0;             AC_SUBST([REPLACE_FREOPEN])
103   HAVE_FSEEKO=1;                 AC_SUBST([HAVE_FSEEKO])
104   REPLACE_FSEEKO=0;              AC_SUBST([REPLACE_FSEEKO])
105   REPLACE_FSEEK=0;               AC_SUBST([REPLACE_FSEEK])
106   HAVE_FTELLO=1;                 AC_SUBST([HAVE_FTELLO])
107   REPLACE_FTELLO=0;              AC_SUBST([REPLACE_FTELLO])
108   REPLACE_FTELL=0;               AC_SUBST([REPLACE_FTELL])
109   REPLACE_FFLUSH=0;              AC_SUBST([REPLACE_FFLUSH])
110   REPLACE_FPURGE=0;              AC_SUBST([REPLACE_FPURGE])
111   HAVE_DECL_FPURGE=1;            AC_SUBST([HAVE_DECL_FPURGE])
112   REPLACE_FCLOSE=0;              AC_SUBST([REPLACE_FCLOSE])
113   REPLACE_POPEN=0;               AC_SUBST([REPLACE_POPEN])
114   HAVE_DECL_GETDELIM=1;          AC_SUBST([HAVE_DECL_GETDELIM])
115   HAVE_DECL_GETLINE=1;           AC_SUBST([HAVE_DECL_GETLINE])
116   REPLACE_GETLINE=0;             AC_SUBST([REPLACE_GETLINE])
117   REPLACE_PERROR=0;              AC_SUBST([REPLACE_PERROR])
118 ])
119
120 dnl Code shared by fseeko and ftello.  Determine if large files are supported,
121 dnl but stdin does not start as a large file by default.
122 AC_DEFUN([gl_STDIN_LARGE_OFFSET],
123   [
124     AC_CACHE_CHECK([whether stdin defaults to large file offsets],
125       [gl_cv_var_stdin_large_offset],
126       [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
127 [[#if defined __SL64 && defined __SCLE /* cygwin */
128   /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
129      fseeko/ftello needlessly fail.  This bug was fixed in 1.5.25, and
130      it is easier to do a version check than building a runtime test.  */
131 # include <cygwin/version.h>
132 # if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
133   choke me
134 # endif
135 #endif]])],
136         [gl_cv_var_stdin_large_offset=yes],
137         [gl_cv_var_stdin_large_offset=no])])
138 ])