Fix bugs in round modules reported by Bruno Haible.
[gnulib.git] / m4 / roundl.m4
1 # roundl.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 AC_DEFUN([gl_FUNC_ROUNDL],
8 [
9   AC_REQUIRE([gl_MATH_H_DEFAULTS])
10   dnl Persuade glibc <math.h> to declare roundl().
11   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
12   AC_CHECK_DECLS([roundl], , , [#include <math.h>])
13   if test "$ac_cv_have_decl_roundl" = yes; then
14     gl_CHECK_MATH_LIB([ROUNDL_LIBM], [x = roundl (x);])
15   else
16     AC_CHECK_DECLS([ceill, floorl], , , [#include <math.h>])
17     if test "$ac_cv_have_decl_floorl" = yes &&
18        test "$ac_cv_have_decl_ceill" = yes; then
19       gl_CHECK_MATH_LIB([ROUNDL_LIBM], [x = floorl (x) + ceill (x);])
20     else
21       ROUNDL_LIBM=
22     fi
23     HAVE_DECL_ROUNDL=0
24     AC_LIBOBJ([roundl])
25   fi
26   AC_SUBST([HAVE_DECL_ROUNDL])
27   AC_SUBST([ROUNDL_LIBM])
28 ])