Assume 'long double' exists.
[gnulib.git] / m4 / printf-frexpl.m4
1 # printf-frexpl.m4 serial 4
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   AC_CACHE_CHECK([whether frexpl can be used without linking with libm],
13     [gl_cv_func_frexpl_no_libm],
14     [
15       AC_TRY_LINK([#include <math.h>
16                    long double x;
17                    int y;],
18                   [return frexpl (x, &y) < 1;],
19         [gl_cv_func_frexpl_no_libm=yes],
20         [gl_cv_func_frexpl_no_libm=no])
21     ])
22   if test $gl_cv_func_frexpl_no_libm = yes; then
23     AC_DEFINE([HAVE_FREXPL_IN_LIBC], 1,
24       [Define if the frexpl function is available in libc.])
25     dnl Also check whether it's declared.
26     dnl MacOS X 10.3 has frexpl() in libc but doesn't declare it in <math.h>.
27     AC_CHECK_DECL([frexpl], , [HAVE_DECL_FREXPL=0], [#include <math.h>])
28   fi
29
30   AC_CACHE_CHECK([whether ldexpl can be used without linking with libm],
31     [gl_cv_func_ldexpl_no_libm],
32     [
33       AC_TRY_LINK([#include <math.h>
34                    long double x;
35                    int y;],
36                   [return ldexpl (x, y) < 1;],
37         [gl_cv_func_ldexpl_no_libm=yes],
38         [gl_cv_func_ldexpl_no_libm=no])
39     ])
40   if test $gl_cv_func_ldexpl_no_libm = yes; then
41     gl_FUNC_LDEXPL_WORKS
42     case "$gl_cv_func_ldexpl_works" in
43       *yes)
44         AC_DEFINE([HAVE_LDEXPL_IN_LIBC], 1,
45           [Define if the ldexpl function is available in libc.])
46         dnl Also check whether it's declared.
47         dnl MacOS X 10.3 has ldexpl() in libc but doesn't declare it in <math.h>.
48         AC_CHECK_DECL([ldexpl], , [HAVE_DECL_LDEXPL=0], [#include <math.h>])
49         ;;
50     esac
51   fi
52 ])