Add support for 'long double' number output.
[gnulib.git] / m4 / fprintf-posix.m4
1 # fprintf-posix.m4 serial 6
2 dnl Copyright (C) 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_FPRINTF_POSIX],
8 [
9   AC_REQUIRE([gl_EOVERFLOW])
10   AC_REQUIRE([gl_PRINTF_SIZES_C99])
11   AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
12   AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
13   AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
14   AC_REQUIRE([gl_PRINTF_DIRECTIVE_N])
15   AC_REQUIRE([gl_PRINTF_POSITIONS])
16   AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
17   AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
18   gl_cv_func_fprintf_posix=no
19   case "$gl_cv_func_printf_sizes_c99" in
20     *yes)
21       case "$gl_cv_func_printf_long_double" in
22         *yes)
23           case "$gl_cv_func_printf_directive_a" in
24             *yes)
25               case "$gl_cv_func_printf_directive_f" in
26                 *yes)
27                   case "$gl_cv_func_printf_directive_n" in
28                     *yes)
29                       case "$gl_cv_func_printf_positions" in
30                         *yes)
31                           case "$gl_cv_func_printf_flag_grouping" in
32                             *yes)
33                               case "$gl_cv_func_printf_flag_zero" in
34                                 *yes)
35                                   # fprintf exists and is already POSIX
36                                   # compliant.
37                                   gl_cv_func_fprintf_posix=yes
38                                   ;;
39                               esac
40                               ;;
41                           esac
42                           ;;
43                       esac
44                       ;;
45                   esac
46                   ;;
47               esac
48               ;;
49           esac
50           ;;
51       esac
52       ;;
53   esac
54   if test $gl_cv_func_fprintf_posix = no; then
55     gl_PREREQ_VASNPRINTF_LONG_DOUBLE
56     gl_PREREQ_VASNPRINTF_DIRECTIVE_A
57     gl_PREREQ_VASNPRINTF_DIRECTIVE_F
58     gl_PREREQ_VASNPRINTF_FLAG_GROUPING
59     gl_PREREQ_VASNPRINTF_FLAG_ZERO
60     gl_REPLACE_VASNPRINTF
61     gl_REPLACE_FPRINTF
62   fi
63 ])
64
65 AC_DEFUN([gl_REPLACE_FPRINTF],
66 [
67   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
68   AC_LIBOBJ([fprintf])
69   REPLACE_FPRINTF=1
70   gl_PREREQ_FPRINTF
71 ])
72
73 AC_DEFUN([gl_PREREQ_FPRINTF], [:])