annotate m4/math_h.m4 @ 10667:678640901735

Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
author Bruno Haible <bruno@clisp.org>
date Sun, 19 Oct 2008 14:05:30 +0200
parents 7a5cfea8469f
children e8d2c6fc33ad
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
1 # math_h.m4 serial 14
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
2 dnl Copyright (C) 2007-2008 Free Software Foundation, Inc.
8186
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
3 dnl This file is free software; the Free Software Foundation
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
4 dnl gives unlimited permission to copy and/or distribute it,
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
5 dnl with or without modifications, as long as this notice is preserved.
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
6
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
7 AC_DEFUN([gl_MATH_H],
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
8 [
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
9 AC_REQUIRE([gl_MATH_H_DEFAULTS])
8995
1025663f7658 * m4/include_next.m4 (gl_INCLUDE_NEXT): Define and AC_SUBST
Paul Eggert <eggert@cs.ucla.edu>
parents: 8652
diff changeset
10 gl_CHECK_NEXT_HEADERS([math.h])
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
11 AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
9921
01cfd65cc7e0 Fix underquoting of AC_LANG_PROGRAM arguments.
Bruno Haible <bruno@clisp.org>
parents: 9913
diff changeset
12 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
13 [[/* Solaris 10 has a broken definition of NAN. Other platforms
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
14 fail to provide NAN, or provide it only in C99 mode; this
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
15 test only needs to fail when NAN is provided but wrong. */
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
16 float f = 1.0f;
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
17 #ifdef NAN
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
18 f = NAN;
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
19 #endif
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
20 return f == 0;]])],
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
21 [gl_cv_header_math_nan_works=yes],
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
22 [gl_cv_header_math_nan_works=no])])
9900
5f47b9c9cc45 * m4/math_h.m4 (gl_MATH_H): Fix typos.
Jim Meyering <meyering@redhat.com>
parents: 9898
diff changeset
23 if test $gl_cv_header_math_nan_works = no; then
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
24 REPLACE_NAN=1
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
25 fi
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
26 AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
9921
01cfd65cc7e0 Fix underquoting of AC_LANG_PROGRAM arguments.
Bruno Haible <bruno@clisp.org>
parents: 9913
diff changeset
27 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
28 [[/* Solaris 10 has a broken definition of HUGE_VAL. */
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
29 double d = HUGE_VAL;
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
30 return d == 0;]])],
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
31 [gl_cv_header_math_huge_val_works=yes],
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
32 [gl_cv_header_math_huge_val_works=no])])
9900
5f47b9c9cc45 * m4/math_h.m4 (gl_MATH_H): Fix typos.
Jim Meyering <meyering@redhat.com>
parents: 9898
diff changeset
33 if test $gl_cv_header_math_huge_val_works = no; then
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
34 REPLACE_HUGE_VAL=1
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
35 fi
8186
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
36 ])
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
37
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
38 AC_DEFUN([gl_MATH_MODULE_INDICATOR],
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
39 [
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
40 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
41 AC_REQUIRE([gl_MATH_H_DEFAULTS])
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
42 GNULIB_[]m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___])=1
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
43 ])
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
44
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
45 AC_DEFUN([gl_MATH_H_DEFAULTS],
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
46 [
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
47 GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
48 GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
49 GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
50 GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
51 GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
52 GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL])
9423
fa47aa8bb105 Use REPLACE_ISFINITE instead of HAVE_DECL_ISFINITE.
Bruno Haible <bruno@clisp.org>
parents: 9420
diff changeset
53 GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
10287
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
54 GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9921
diff changeset
55 GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
56 GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
57 GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
58 GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
9420
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
59 GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
60 GNULIB_MATHL=0; AC_SUBST([GNULIB_MATHL])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
61 GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
62 GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
63 GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
64 GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
65 GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
66 GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
9e0484f26251 Fix link errors with Sun C 5.0 on Solaris 10.
Bruno Haible <bruno@clisp.org>
parents: 9414
diff changeset
67 GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
8359
d8d194025f40 Provide the option to declare the mathl functions also when the 'mathl'
Bruno Haible <bruno@clisp.org>
parents: 8186
diff changeset
68 dnl Assume proper GNU behavior unless another module says otherwise.
10667
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
69 HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
70 HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
678640901735 Move the isnanf(), isnand(), isnanl() declarations to <math.h>.
Bruno Haible <bruno@clisp.org>
parents: 10287
diff changeset
71 HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
72 HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
73 HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
74 HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
75 HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
76 HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
77 HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
78 HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
79 HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
80 HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
81 HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
82 HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
83 HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
84 HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
85 REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
86 REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
87 REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
88 REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
89 REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
90 REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
91 REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
92 REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
10287
7a5cfea8469f Add isinf module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 10267
diff changeset
93 REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
10267
bf763f10f63c Add isnan module.
Ben Pfaff <blp@cs.stanford.edu>
parents: 9921
diff changeset
94 REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
95 REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
9898
02bfc9acab82 Work around Solaris 10 math.h bug.
Eric Blake <ebb9@byu.net>
parents: 9645
diff changeset
96 REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
9645
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
97 REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
98 REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
99 REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
100 REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
c8174371956e Exploit the __builtin_signbit GCC built-in.
Bruno Haible <bruno@clisp.org>
parents: 9465
diff changeset
101 REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
9913
d3f5a70dc1ba Make truncl work on OSF/1 4.0.
Bruno Haible <bruno@clisp.org>
parents: 9900
diff changeset
102 REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
8186
c115624bf99a New module 'math'. <math.h> replaces mathl.h.
Bruno Haible <bruno@clisp.org>
parents:
diff changeset
103 ])