Update `THANKS'.
[bpt/guile.git] / m4 / vasnprintf.m4
CommitLineData
c4b681fd 1# vasnprintf.m4 serial 29
61cd9dc9 2dnl Copyright (C) 2002-2004, 2006-2010 Free Software Foundation, Inc.
c4b681fd
LC
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_FUNC_VASNPRINTF],
8[
9 AC_CHECK_FUNCS_ONCE([vasnprintf])
10 if test $ac_cv_func_vasnprintf = no; then
11 gl_REPLACE_VASNPRINTF
12 fi
13])
14
15AC_DEFUN([gl_REPLACE_VASNPRINTF],
16[
17 AC_CHECK_FUNCS_ONCE([vasnprintf])
18 AC_LIBOBJ([vasnprintf])
19 AC_LIBOBJ([printf-args])
20 AC_LIBOBJ([printf-parse])
21 AC_LIBOBJ([asnprintf])
22 if test $ac_cv_func_vasnprintf = yes; then
23 AC_DEFINE([REPLACE_VASNPRINTF], [1],
24 [Define if vasnprintf exists but is overridden by gnulib.])
25 fi
26 gl_PREREQ_PRINTF_ARGS
27 gl_PREREQ_PRINTF_PARSE
28 gl_PREREQ_VASNPRINTF
29 gl_PREREQ_ASNPRINTF
30])
31
32# Prequisites of lib/printf-args.h, lib/printf-args.c.
33AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
34[
35 AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
36 AC_REQUIRE([gt_TYPE_WCHAR_T])
37 AC_REQUIRE([gt_TYPE_WINT_T])
38])
39
40# Prequisites of lib/printf-parse.h, lib/printf-parse.c.
41AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
42[
43 AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
44 AC_REQUIRE([gt_TYPE_WCHAR_T])
45 AC_REQUIRE([gt_TYPE_WINT_T])
46 AC_REQUIRE([AC_TYPE_SIZE_T])
47 AC_CHECK_TYPE([ptrdiff_t], ,
48 [AC_DEFINE([ptrdiff_t], [long],
49 [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
50 ])
51 AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
52])
53
54# Prerequisites of lib/vasnprintf.c.
55AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
56[
57 AC_REQUIRE([AC_FUNC_ALLOCA])
58 AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
59 AC_REQUIRE([gt_TYPE_WCHAR_T])
60 AC_REQUIRE([gt_TYPE_WINT_T])
61 AC_CHECK_FUNCS([snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb])
62 dnl Use the _snprintf function only if it is declared (because on NetBSD it
63 dnl is defined as a weak alias of snprintf; we prefer to use the latter).
64 AC_CHECK_DECLS([_snprintf], , , [#include <stdio.h>])
65])
66
67# Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
68# arguments.
69AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE],
70[
71 AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
72 case "$gl_cv_func_printf_long_double" in
73 *yes)
74 ;;
75 *)
76 AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
77 [Define if the vasnprintf implementation needs special code for
78 'long double' arguments.])
79 ;;
80 esac
81])
82
83# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double'
84# arguments.
85AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE],
86[
87 AC_REQUIRE([gl_PRINTF_INFINITE])
88 case "$gl_cv_func_printf_infinite" in
89 *yes)
90 ;;
91 *)
92 AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1],
93 [Define if the vasnprintf implementation needs special code for
94 infinite 'double' arguments.])
95 ;;
96 esac
97])
98
99# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double'
100# arguments.
101AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE],
102[
103 AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
104 dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if
105 dnl NEED_PRINTF_LONG_DOUBLE is already set.
106 AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE])
107 case "$gl_cv_func_printf_long_double" in
108 *yes)
109 case "$gl_cv_func_printf_infinite_long_double" in
110 *yes)
111 ;;
112 *)
113 AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1],
114 [Define if the vasnprintf implementation needs special code for
115 infinite 'long double' arguments.])
116 ;;
117 esac
118 ;;
119 esac
120])
121
122# Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive.
123AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
124[
125 AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
126 case "$gl_cv_func_printf_directive_a" in
127 *yes)
128 ;;
129 *)
130 AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1],
131 [Define if the vasnprintf implementation needs special code for
132 the 'a' and 'A' directives.])
133 AC_CHECK_FUNCS([nl_langinfo])
134 ;;
135 esac
136])
137
138# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
139AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
140[
141 AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
142 case "$gl_cv_func_printf_directive_f" in
143 *yes)
144 ;;
145 *)
146 AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1],
147 [Define if the vasnprintf implementation needs special code for
148 the 'F' directive.])
149 ;;
150 esac
151])
152
153# Extra prerequisites of lib/vasnprintf.c for supporting the 'ls' directive.
154AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_LS],
155[
156 AC_REQUIRE([gl_PRINTF_DIRECTIVE_LS])
157 case "$gl_cv_func_printf_directive_ls" in
158 *yes)
159 ;;
160 *)
161 AC_DEFINE([NEED_PRINTF_DIRECTIVE_LS], [1],
162 [Define if the vasnprintf implementation needs special code for
163 the 'ls' directive.])
164 ;;
165 esac
166])
167
168# Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
169AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
170[
171 AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
172 case "$gl_cv_func_printf_flag_grouping" in
173 *yes)
174 ;;
175 *)
176 AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1],
177 [Define if the vasnprintf implementation needs special code for the
178 ' flag.])
179 ;;
180 esac
181])
182
183# Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag.
184AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST],
185[
186 AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
187 case "$gl_cv_func_printf_flag_leftadjust" in
188 *yes)
189 ;;
190 *)
191 AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1],
192 [Define if the vasnprintf implementation needs special code for the
193 '-' flag.])
194 ;;
195 esac
196])
197
198# Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag.
199AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO],
200[
201 AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
202 case "$gl_cv_func_printf_flag_zero" in
203 *yes)
204 ;;
205 *)
206 AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1],
207 [Define if the vasnprintf implementation needs special code for the
208 0 flag.])
209 ;;
210 esac
211])
212
213# Extra prerequisites of lib/vasnprintf.c for supporting large precisions.
214AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION],
215[
216 AC_REQUIRE([gl_PRINTF_PRECISION])
217 case "$gl_cv_func_printf_precision" in
218 *yes)
219 ;;
220 *)
221 AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1],
222 [Define if the vasnprintf implementation needs special code for
223 supporting large precisions without arbitrary bounds.])
224 AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
225 [Define if the vasnprintf implementation needs special code for
226 'double' arguments.])
227 AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
228 [Define if the vasnprintf implementation needs special code for
229 'long double' arguments.])
230 ;;
231 esac
232])
233
234# Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory
235# conditions.
236AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM],
237[
238 AC_REQUIRE([gl_PRINTF_ENOMEM])
239 case "$gl_cv_func_printf_enomem" in
240 *yes)
241 ;;
242 *)
243 AC_DEFINE([NEED_PRINTF_ENOMEM], [1],
244 [Define if the vasnprintf implementation needs special code for
245 surviving out-of-memory conditions.])
246 AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
247 [Define if the vasnprintf implementation needs special code for
248 'double' arguments.])
249 AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
250 [Define if the vasnprintf implementation needs special code for
251 'long double' arguments.])
252 ;;
253 esac
254])
255
256# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance.
257AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
258[
259 AC_REQUIRE([gl_PREREQ_VASNPRINTF])
260 gl_PREREQ_VASNPRINTF_LONG_DOUBLE
261 gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
262 gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE
263 gl_PREREQ_VASNPRINTF_DIRECTIVE_A
264 gl_PREREQ_VASNPRINTF_DIRECTIVE_F
265 gl_PREREQ_VASNPRINTF_DIRECTIVE_LS
266 gl_PREREQ_VASNPRINTF_FLAG_GROUPING
267 gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST
268 gl_PREREQ_VASNPRINTF_FLAG_ZERO
269 gl_PREREQ_VASNPRINTF_PRECISION
270 gl_PREREQ_VASNPRINTF_ENOMEM
271])
272
273# Prerequisites of lib/asnprintf.c.
274AC_DEFUN([gl_PREREQ_ASNPRINTF],
275[
276])