Avoid duplicate -lm.
[gnulib.git] / m4 / roundl.m4
1 # roundl.m4 serial 6
2 dnl Copyright (C) 2007, 2009-2010 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   fi
16   if test "$ac_cv_have_decl_roundl" != yes || test "$ROUNDL_LIBM" = missing; then
17     REPLACE_ROUNDL=1
18     AC_LIBOBJ([roundl])
19     AC_CHECK_DECLS([ceill, floorl], , , [#include <math.h>])
20     if test "$ac_cv_have_decl_floorl" = yes \
21        && test "$ac_cv_have_decl_ceill" = yes; then
22       gl_FUNC_FLOORL_LIBS
23       gl_FUNC_CEILL_LIBS
24       if test "$FLOORL_LIBM" != '?' && test "$CEILL_LIBM" != '?'; then
25         AC_DEFINE([HAVE_FLOORL_AND_CEILL], [1],
26           [Define if the both the floorl() and ceill() functions exist.])
27         ROUNDL_LIBM=
28         dnl Append $FLOORL_LIBM to ROUNDL_LIBM, avoiding gratuitous duplicates.
29         case " $ROUNDL_LIBM " in
30           *" $FLOORL_LIBM "*) ;;
31           *) ROUNDL_LIBM="$ROUNDL_LIBM $FLOORL_LIBM" ;;
32         esac
33         dnl Append $CEILL_LIBM to ROUNDL_LIBM, avoiding gratuitous duplicates.
34         case " $ROUNDL_LIBM " in
35           *" $CEILL_LIBM "*) ;;
36           *) ROUNDL_LIBM="$ROUNDL_LIBM $CEILL_LIBM" ;;
37         esac
38       else
39         ROUNDL_LIBM=
40       fi
41     else
42       ROUNDL_LIBM=
43     fi
44   fi
45   AC_SUBST([ROUNDL_LIBM])
46 ])