Check whether round* exist in libraries, not just whether they are declared.
[gnulib.git] / m4 / round.m4
1 # round.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 AC_DEFUN([gl_FUNC_ROUND],
8 [
9   AC_REQUIRE([gl_MATH_H_DEFAULTS])
10   dnl Persuade glibc <math.h> to declare round().
11   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
12   AC_CHECK_DECLS([round], , , [#include <math.h>])
13   if test "$ac_cv_have_decl_round" = yes; then
14     gl_CHECK_MATH_LIB([ROUND_LIBM], [x = round (x);])
15   fi
16   if test "$ac_cv_have_decl_round" != yes || test "$ROUND_LIBM" = missing; then
17     gl_CHECK_MATH_LIB([ROUND_LIBM], [x = floor (x) + ceil (x);])
18     HAVE_DECL_ROUND=0
19     AC_LIBOBJ([round])
20   fi
21   AC_SUBST([HAVE_DECL_ROUND])
22   AC_SUBST([ROUND_LIBM])])