Fix *printf result for NaN, Inf, -0.0 on mingw.
[pspp] / m4 / vasnprintf.m4
1 # vasnprintf.m4 serial 17
2 dnl Copyright (C) 2002-2004, 2006-2007 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_FUNC_VASNPRINTF],
8 [
9   AC_REQUIRE([gl_EOVERFLOW])
10   AC_CHECK_FUNCS_ONCE([vasnprintf])
11   if test $ac_cv_func_vasnprintf = no; then
12     gl_REPLACE_VASNPRINTF
13   fi
14 ])
15
16 AC_DEFUN([gl_REPLACE_VASNPRINTF],
17 [
18   AC_CHECK_FUNCS_ONCE([vasnprintf])
19   AC_LIBOBJ([vasnprintf])
20   AC_LIBOBJ([printf-args])
21   AC_LIBOBJ([printf-parse])
22   AC_LIBOBJ([asnprintf])
23   if test $ac_cv_func_vasnprintf = yes; then
24     AC_DEFINE([REPLACE_VASNPRINTF], 1,
25       [Define if vasnprintf exists but is overridden by gnulib.])
26   fi
27   gl_PREREQ_PRINTF_ARGS
28   gl_PREREQ_PRINTF_PARSE
29   gl_PREREQ_VASNPRINTF
30   gl_PREREQ_ASNPRINTF
31 ])
32
33 # Prequisites of lib/printf-args.h, lib/printf-args.c.
34 AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
35 [
36   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
37   AC_REQUIRE([gt_TYPE_WCHAR_T])
38   AC_REQUIRE([gt_TYPE_WINT_T])
39 ])
40
41 # Prequisites of lib/printf-parse.h, lib/printf-parse.c.
42 AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
43 [
44   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
45   AC_REQUIRE([gt_TYPE_WCHAR_T])
46   AC_REQUIRE([gt_TYPE_WINT_T])
47   AC_REQUIRE([AC_TYPE_SIZE_T])
48   AC_CHECK_TYPES(ptrdiff_t)
49   AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
50 ])
51
52 # Prerequisites of lib/vasnprintf.c.
53 AC_DEFUN([gl_PREREQ_VASNPRINTF],
54 [
55   AC_REQUIRE([AC_FUNC_ALLOCA])
56   AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
57   AC_REQUIRE([gt_TYPE_WCHAR_T])
58   AC_REQUIRE([gt_TYPE_WINT_T])
59   AC_CHECK_FUNCS(snprintf wcslen)
60 ])
61
62 # Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double'
63 # arguments.
64 AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE],
65 [
66   AC_REQUIRE([gl_PRINTF_INFINITE])
67   case "$gl_cv_func_printf_infinite" in
68     *yes)
69       ;;
70     *)
71       AC_DEFINE([NEED_PRINTF_INFINITE], 1,
72         [Define if the vasnprintf implementation needs special code for
73          infinite 'double' arguments.])
74       ;;
75   esac
76 ])
77
78 # Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
79 # arguments.
80 AC_DEFUN([gl_PREREQ_VASNPRINTF_LONG_DOUBLE],
81 [
82   AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
83   case "$gl_cv_func_printf_long_double" in
84     *yes)
85       ;;
86     *)
87       AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], 1,
88         [Define if the vasnprintf implementation needs special code for
89          'long double' arguments.])
90       ;;
91   esac
92 ])
93
94 # Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive.
95 AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
96 [
97   AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
98   case "$gl_cv_func_printf_directive_a" in
99     *yes)
100       ;;
101     *)
102       AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], 1,
103         [Define if the vasnprintf implementation needs special code for
104          the 'a' and 'A' directives.])
105       AC_CHECK_FUNCS([nl_langinfo])
106       ;;
107   esac
108 ])
109
110 # Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
111 AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
112 [
113   AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
114   case "$gl_cv_func_printf_directive_f" in
115     *yes)
116       ;;
117     *)
118       AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], 1,
119         [Define if the vasnprintf implementation needs special code for
120          the 'F' directive.])
121       ;;
122   esac
123 ])
124
125 # Extra prerequisites of lib/vasnprintf.c for supporting the ' flag.
126 AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING],
127 [
128   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
129   case "$gl_cv_func_printf_flag_grouping" in
130     *yes)
131       ;;
132     *)
133       AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], 1,
134         [Define if the vasnprintf implementation needs special code for the
135          ' flag.])
136       ;;
137   esac
138 ])
139
140 # Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag.
141 AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO],
142 [
143   AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
144   case "$gl_cv_func_printf_flag_zero" in
145     *yes)
146       ;;
147     *)
148       AC_DEFINE([NEED_PRINTF_FLAG_ZERO], 1,
149         [Define if the vasnprintf implementation needs special code for the
150          0 flag.])
151       ;;
152   esac
153 ])
154
155 # Prerequisites of lib/asnprintf.c.
156 AC_DEFUN([gl_PREREQ_ASNPRINTF],
157 [
158 ])