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