Fix printf-frexpl module to recognize buggy AIX 5.1 frexpl().
[gnulib.git] / m4 / printf-frexpl.m4
1 # printf-frexpl.m4 serial 5
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 dnl Check how to define printf_frexpl() without linking with libm.
8
9 AC_DEFUN([gl_FUNC_PRINTF_FREXPL],
10 [
11   AC_REQUIRE([gl_MATH_H_DEFAULTS])
12   dnl Subset of gl_FUNC_FREXPL_NO_LIBM.
13   AC_CACHE_CHECK([whether frexpl can be used without linking with libm],
14     [gl_cv_func_frexpl_no_libm],
15     [
16       AC_TRY_LINK([#include <math.h>
17                    long double x;
18                    int y;],
19                   [return frexpl (x, &y) < 1;],
20         [gl_cv_func_frexpl_no_libm=yes],
21         [gl_cv_func_frexpl_no_libm=no])
22     ])
23   if test $gl_cv_func_frexpl_no_libm = yes; then
24     gl_FUNC_FREXPL_WORKS
25     case "$gl_cv_func_frexpl_works" in
26       *yes) gl_func_frexpl_no_libm=yes ;;
27       *)    gl_func_frexpl_no_libm=no; REPLACE_FREXPL=1 ;;
28     esac
29   else
30     gl_func_frexpl_no_libm=no
31   fi
32   if test $gl_func_frexpl_no_libm = yes; then
33     AC_DEFINE([HAVE_FREXPL_IN_LIBC], 1,
34       [Define if the frexpl function is available in libc.])
35     dnl Also check whether it's declared.
36     dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
37     AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>])
38   fi
39
40   AC_CACHE_CHECK([whether ldexpl can be used without linking with libm],
41     [gl_cv_func_ldexpl_no_libm],
42     [
43       AC_TRY_LINK([#include <math.h>
44                    long double x;
45                    int y;],
46                   [return ldexpl (x, y) < 1;],
47         [gl_cv_func_ldexpl_no_libm=yes],
48         [gl_cv_func_ldexpl_no_libm=no])
49     ])
50   if test $gl_cv_func_ldexpl_no_libm = yes; then
51     gl_FUNC_LDEXPL_WORKS
52     case "$gl_cv_func_ldexpl_works" in
53       *yes)
54         AC_DEFINE([HAVE_LDEXPL_IN_LIBC], 1,
55           [Define if the ldexpl function is available in libc.])
56         dnl Also check whether it's declared.
57         dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
58         AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [#include <math.h>])
59         ;;
60     esac
61   fi
62 ])