2 dnl Copyright (C) 2007-2011 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.
7 dnl Check how to get or define isnand().
9 AC_DEFUN([gl_FUNC_ISNAND],
11 AC_REQUIRE([gl_MATH_H_DEFAULTS])
13 gl_HAVE_ISNAND_NO_LIBM
14 if test $gl_cv_func_isnand_no_libm = no; then
15 gl_HAVE_ISNAND_IN_LIBM
16 if test $gl_cv_func_isnand_in_libm = yes; then
20 dnl The variable gl_func_isnand set here is used by isnan.m4.
21 if test $gl_cv_func_isnand_no_libm = yes \
22 || test $gl_cv_func_isnand_in_libm = yes; then
30 AC_SUBST([ISNAND_LIBM])
33 dnl Check how to get or define isnand() without linking with libm.
35 AC_DEFUN([gl_FUNC_ISNAND_NO_LIBM],
37 gl_HAVE_ISNAND_NO_LIBM
38 if test $gl_cv_func_isnand_no_libm = yes; then
39 AC_DEFINE([HAVE_ISNAND_IN_LIBC], [1],
40 [Define if the isnan(double) function is available in libc.])
47 dnl Prerequisites of replacement isnand definition. It does not need -lm.
48 AC_DEFUN([gl_PREREQ_ISNAND],
50 gl_DOUBLE_EXPONENT_LOCATION
53 dnl Test whether isnand() can be used with libm.
55 AC_DEFUN([gl_HAVE_ISNAND_IN_LIBM],
57 AC_CACHE_CHECK([whether isnan(double) can be used with libm],
58 [gl_cv_func_isnand_in_libm],
67 # define isnand(x) __builtin_isnan ((double)(x))
70 # define isnand(x) isnan ((double)(x))
73 [[return isnand (x);]])],
74 [gl_cv_func_isnand_in_libm=yes],
75 [gl_cv_func_isnand_in_libm=no])
80 AC_DEFUN([gl_HAVE_ISNAND_NO_LIBM],
82 AC_CACHE_CHECK([whether isnan(double) can be used without linking with libm],
83 [gl_cv_func_isnand_no_libm],
90 # define isnand(x) __builtin_isnan ((double)(x))
93 # define isnand(x) isnan ((double)(x))
96 [[return isnand (x);]])],
97 [gl_cv_func_isnand_no_libm=yes],
98 [gl_cv_func_isnand_no_libm=no])