Provide missing frexpl(), ldexpl() declarations.
[gnulib.git] / m4 / printf-frexpl.m4
1 # printf-frexpl.m4 serial 2
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   if test $gt_cv_c_long_double = yes; then
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       AC_DEFINE([HAVE_FREXPL_IN_LIBC], 1,
25         [Define if the frexpl function is available in libc.])
26       dnl Also check whether it's declared. glibc (2.3..2.5 at least) and
27       dnl MacOS X 10.3 have frexpl() in libc but don't declare it in <math.h>.
28       AC_CHECK_DECLS([frexpl])
29     fi
30
31     AC_CACHE_CHECK([whether ldexpl can be used without linking with libm],
32       [gl_cv_func_ldexpl_no_libm],
33       [
34         AC_TRY_LINK([#include <math.h>
35                      long double x;
36                      int y;],
37                     [return ldexpl (x, y) < 1;],
38           [gl_cv_func_ldexpl_no_libm=yes],
39           [gl_cv_func_ldexpl_no_libm=no])
40       ])
41     if test $gl_cv_func_ldexpl_no_libm = yes; then
42       AC_DEFINE([HAVE_LDEXPL_IN_LIBC], 1,
43         [Define if the ldexpl function is available in libc.])
44       dnl Also check whether it's declared. glibc (2.3..2.5 at least) and
45       dnl MacOS X 10.3 have ldexpl() in libc but don't declare it in <math.h>.
46       AC_CHECK_DECLS([ldexpl])
47     fi
48   fi
49 ])