Use the shared tests for the floor* and ceil* functions.
[gnulib.git] / m4 / roundf.m4
1 # roundf.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 AC_DEFUN([gl_FUNC_ROUNDF],
8 [
9   AC_REQUIRE([gl_MATH_H_DEFAULTS])
10   dnl Persuade glibc <math.h> to declare roundf().
11   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
12   AC_CHECK_DECLS([roundf], , , [#include <math.h>])
13   if test "$ac_cv_have_decl_roundf" = yes; then
14     gl_CHECK_MATH_LIB([ROUNDF_LIBM], [x = roundf (x);])
15   fi
16   if test "$ac_cv_have_decl_roundf" != yes || test "$ROUNDF_LIBM" = missing; then
17     REPLACE_ROUNDF=1
18     AC_LIBOBJ([roundf])
19     AC_CHECK_DECLS([ceilf, floorf], , , [#include <math.h>])
20     if test "$ac_cv_have_decl_floorf" = yes \
21        && test "$ac_cv_have_decl_ceilf" = yes; then
22       gl_FUNC_FLOORF_LIBS
23       gl_FUNC_CEILF_LIBS
24       if test "$FLOORF_LIBM" != '?' && test "$CEILF_LIBM" != '?'; then
25         AC_DEFINE([HAVE_FLOORF_AND_CEILF], 1,
26           [Define if the both the floorf() and ceilf() functions exist.])
27         ROUNDF_LIBM="$FLOORF_LIBM $CEILF_LIBM"
28       else
29         ROUNDF_LIBM=
30       fi
31     else
32       ROUNDF_LIBM=
33     fi
34   fi
35   AC_SUBST([ROUNDF_LIBM])
36 ])