2 dnl Copyright (C) 2007-2012 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.
9 AC_REQUIRE([gl_MATH_H_DEFAULTS])
10 gl_CHECK_NEXT_HEADERS([math.h])
11 AC_REQUIRE([AC_C_INLINE])
13 AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
14 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
15 [[/* Solaris 10 has a broken definition of NAN. Other platforms
16 fail to provide NAN, or provide it only in C99 mode; this
17 test only needs to fail when NAN is provided but wrong. */
23 [gl_cv_header_math_nan_works=yes],
24 [gl_cv_header_math_nan_works=no])])
25 if test $gl_cv_header_math_nan_works = no; then
28 AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
29 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
30 [[/* Solaris 10 has a broken definition of HUGE_VAL. */
33 [gl_cv_header_math_huge_val_works=yes],
34 [gl_cv_header_math_huge_val_works=no])])
35 if test $gl_cv_header_math_huge_val_works = no; then
39 dnl Check for declarations of anything we want to poison if the
40 dnl corresponding gnulib module is not in use.
41 gl_WARN_ON_USE_PREPARE([[#include <math.h>]],
42 [acosf acosl asinf asinl atanf atanl
43 cbrt cbrtf cbrtl ceilf ceill copysign copysignf copysignl cosf cosl coshf
44 expf expl exp2 exp2f exp2l expm1 expm1f expm1l
45 fabsf fabsl floorf floorl fma fmaf fmal
46 fmod fmodf fmodl frexpf frexpl hypotf hypotl
49 log logf logl log10 log10f log10l log1p log1pf log1pl log2 log2f log2l
52 remainder remainderf remainderl
53 rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
54 tanf tanl tanhf trunc truncf truncl])
57 AC_DEFUN([gl_MATH_MODULE_INDICATOR],
59 dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
60 AC_REQUIRE([gl_MATH_H_DEFAULTS])
61 gl_MODULE_INDICATOR_SET_VARIABLE([$1])
62 dnl Define it also as a C macro, for the benefit of the unit tests.
63 gl_MODULE_INDICATOR_FOR_TESTS([$1])
66 AC_DEFUN([gl_MATH_H_DEFAULTS],
68 GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF])
69 GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL])
70 GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF])
71 GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL])
72 GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF])
73 GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL])
74 GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F])
75 GNULIB_CBRT=0; AC_SUBST([GNULIB_CBRT])
76 GNULIB_CBRTF=0; AC_SUBST([GNULIB_CBRTF])
77 GNULIB_CBRTL=0; AC_SUBST([GNULIB_CBRTL])
78 GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL])
79 GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF])
80 GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL])
81 GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN])
82 GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF])
83 GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL])
84 GNULIB_COSF=0; AC_SUBST([GNULIB_COSF])
85 GNULIB_COSL=0; AC_SUBST([GNULIB_COSL])
86 GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF])
87 GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF])
88 GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL])
89 GNULIB_EXP2=0; AC_SUBST([GNULIB_EXP2])
90 GNULIB_EXP2F=0; AC_SUBST([GNULIB_EXP2F])
91 GNULIB_EXP2L=0; AC_SUBST([GNULIB_EXP2L])
92 GNULIB_EXPM1=0; AC_SUBST([GNULIB_EXPM1])
93 GNULIB_EXPM1F=0; AC_SUBST([GNULIB_EXPM1F])
94 GNULIB_EXPM1L=0; AC_SUBST([GNULIB_EXPM1L])
95 GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF])
96 GNULIB_FABSL=0; AC_SUBST([GNULIB_FABSL])
97 GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR])
98 GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF])
99 GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL])
100 GNULIB_FMA=0; AC_SUBST([GNULIB_FMA])
101 GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF])
102 GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL])
103 GNULIB_FMOD=0; AC_SUBST([GNULIB_FMOD])
104 GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF])
105 GNULIB_FMODL=0; AC_SUBST([GNULIB_FMODL])
106 GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF])
107 GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP])
108 GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL])
109 GNULIB_HYPOT=0; AC_SUBST([GNULIB_HYPOT])
110 GNULIB_HYPOTF=0; AC_SUBST([GNULIB_HYPOTF])
111 GNULIB_HYPOTL=0; AC_SUBST([GNULIB_HYPOTL])
112 GNULIB_ILOGB=0; AC_SUBST([GNULIB_ILOGB])
113 GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
114 GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
115 GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
116 GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
117 GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
118 GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
119 GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF])
120 GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
121 GNULIB_LOG=0; AC_SUBST([GNULIB_LOG])
122 GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF])
123 GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL])
124 GNULIB_LOG10=0; AC_SUBST([GNULIB_LOG10])
125 GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F])
126 GNULIB_LOG10L=0; AC_SUBST([GNULIB_LOG10L])
127 GNULIB_LOG1P=0; AC_SUBST([GNULIB_LOG1P])
128 GNULIB_LOG1PF=0; AC_SUBST([GNULIB_LOG1PF])
129 GNULIB_LOG1PL=0; AC_SUBST([GNULIB_LOG1PL])
130 GNULIB_LOG2=0; AC_SUBST([GNULIB_LOG2])
131 GNULIB_LOG2F=0; AC_SUBST([GNULIB_LOG2F])
132 GNULIB_LOG2L=0; AC_SUBST([GNULIB_LOG2L])
133 GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB])
134 GNULIB_LOGBF=0; AC_SUBST([GNULIB_LOGBF])
135 GNULIB_LOGBL=0; AC_SUBST([GNULIB_LOGBL])
136 GNULIB_MODF=0; AC_SUBST([GNULIB_MODF])
137 GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF])
138 GNULIB_MODFL=0; AC_SUBST([GNULIB_MODFL])
139 GNULIB_POWF=0; AC_SUBST([GNULIB_POWF])
140 GNULIB_REMAINDER=0; AC_SUBST([GNULIB_REMAINDER])
141 GNULIB_REMAINDERF=0; AC_SUBST([GNULIB_REMAINDERF])
142 GNULIB_REMAINDERL=0; AC_SUBST([GNULIB_REMAINDERL])
143 GNULIB_RINT=0; AC_SUBST([GNULIB_RINT])
144 GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF])
145 GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL])
146 GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
147 GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
148 GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
149 GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
150 GNULIB_SINF=0; AC_SUBST([GNULIB_SINF])
151 GNULIB_SINL=0; AC_SUBST([GNULIB_SINL])
152 GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF])
153 GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF])
154 GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL])
155 GNULIB_TANF=0; AC_SUBST([GNULIB_TANF])
156 GNULIB_TANL=0; AC_SUBST([GNULIB_TANL])
157 GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF])
158 GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
159 GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
160 GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
161 dnl Assume proper GNU behavior unless another module says otherwise.
162 HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
163 HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
164 HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
165 HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
166 HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
167 HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
168 HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
169 HAVE_CBRT=1; AC_SUBST([HAVE_CBRT])
170 HAVE_CBRTF=1; AC_SUBST([HAVE_CBRTF])
171 HAVE_CBRTL=1; AC_SUBST([HAVE_CBRTL])
172 HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
173 HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
174 HAVE_COSF=1; AC_SUBST([HAVE_COSF])
175 HAVE_COSL=1; AC_SUBST([HAVE_COSL])
176 HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
177 HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
178 HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
179 HAVE_EXPM1=1; AC_SUBST([HAVE_EXPM1])
180 HAVE_EXPM1F=1; AC_SUBST([HAVE_EXPM1F])
181 HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
182 HAVE_FABSL=1; AC_SUBST([HAVE_FABSL])
183 HAVE_FMA=1; AC_SUBST([HAVE_FMA])
184 HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
185 HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
186 HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
187 HAVE_FMODL=1; AC_SUBST([HAVE_FMODL])
188 HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
189 HAVE_HYPOTF=1; AC_SUBST([HAVE_HYPOTF])
190 HAVE_HYPOTL=1; AC_SUBST([HAVE_HYPOTL])
191 HAVE_ILOGB=1; AC_SUBST([HAVE_ILOGB])
192 HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
193 HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
194 HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
195 HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
196 HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
197 HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
198 HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
199 HAVE_LOG10L=1; AC_SUBST([HAVE_LOG10L])
200 HAVE_LOG1P=1; AC_SUBST([HAVE_LOG1P])
201 HAVE_LOG1PF=1; AC_SUBST([HAVE_LOG1PF])
202 HAVE_LOG1PL=1; AC_SUBST([HAVE_LOG1PL])
203 HAVE_LOGBF=1; AC_SUBST([HAVE_LOGBF])
204 HAVE_LOGBL=1; AC_SUBST([HAVE_LOGBL])
205 HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
206 HAVE_MODFL=1; AC_SUBST([HAVE_MODFL])
207 HAVE_POWF=1; AC_SUBST([HAVE_POWF])
208 HAVE_REMAINDER=1; AC_SUBST([HAVE_REMAINDER])
209 HAVE_REMAINDERF=1; AC_SUBST([HAVE_REMAINDERF])
210 HAVE_RINT=1; AC_SUBST([HAVE_RINT])
211 HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
212 HAVE_SINF=1; AC_SUBST([HAVE_SINF])
213 HAVE_SINL=1; AC_SUBST([HAVE_SINL])
214 HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
215 HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
216 HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
217 HAVE_TANF=1; AC_SUBST([HAVE_TANF])
218 HAVE_TANL=1; AC_SUBST([HAVE_TANL])
219 HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
220 HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
221 HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
222 HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
223 HAVE_DECL_CBRTF=1; AC_SUBST([HAVE_DECL_CBRTF])
224 HAVE_DECL_CBRTL=1; AC_SUBST([HAVE_DECL_CBRTL])
225 HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
226 HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
227 HAVE_DECL_COPYSIGNF=1; AC_SUBST([HAVE_DECL_COPYSIGNF])
228 HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
229 HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
230 HAVE_DECL_EXP2=1; AC_SUBST([HAVE_DECL_EXP2])
231 HAVE_DECL_EXP2F=1; AC_SUBST([HAVE_DECL_EXP2F])
232 HAVE_DECL_EXP2L=1; AC_SUBST([HAVE_DECL_EXP2L])
233 HAVE_DECL_EXPM1L=1; AC_SUBST([HAVE_DECL_EXPM1L])
234 HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
235 HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
236 HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
237 HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
238 HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
239 HAVE_DECL_LOG10L=1; AC_SUBST([HAVE_DECL_LOG10L])
240 HAVE_DECL_LOG2=1; AC_SUBST([HAVE_DECL_LOG2])
241 HAVE_DECL_LOG2F=1; AC_SUBST([HAVE_DECL_LOG2F])
242 HAVE_DECL_LOG2L=1; AC_SUBST([HAVE_DECL_LOG2L])
243 HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
244 HAVE_DECL_REMAINDER=1; AC_SUBST([HAVE_DECL_REMAINDER])
245 HAVE_DECL_REMAINDERL=1; AC_SUBST([HAVE_DECL_REMAINDERL])
246 HAVE_DECL_RINTF=1; AC_SUBST([HAVE_DECL_RINTF])
247 HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
248 HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
249 HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
250 HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
251 HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
252 HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
253 HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
254 HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
255 HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
256 REPLACE_CBRTF=0; AC_SUBST([REPLACE_CBRTF])
257 REPLACE_CBRTL=0; AC_SUBST([REPLACE_CBRTL])
258 REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
259 REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
260 REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
261 REPLACE_EXPM1=0; AC_SUBST([REPLACE_EXPM1])
262 REPLACE_EXPM1F=0; AC_SUBST([REPLACE_EXPM1F])
263 REPLACE_EXP2=0; AC_SUBST([REPLACE_EXP2])
264 REPLACE_EXP2L=0; AC_SUBST([REPLACE_EXP2L])
265 REPLACE_FABSL=0; AC_SUBST([REPLACE_FABSL])
266 REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
267 REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
268 REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
269 REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
270 REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
271 REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
272 REPLACE_FMOD=0; AC_SUBST([REPLACE_FMOD])
273 REPLACE_FMODF=0; AC_SUBST([REPLACE_FMODF])
274 REPLACE_FMODL=0; AC_SUBST([REPLACE_FMODL])
275 REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
276 REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
277 REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
278 REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
279 REPLACE_HYPOT=0; AC_SUBST([REPLACE_HYPOT])
280 REPLACE_HYPOTF=0; AC_SUBST([REPLACE_HYPOTF])
281 REPLACE_HYPOTL=0; AC_SUBST([REPLACE_HYPOTL])
282 REPLACE_ILOGB=0; AC_SUBST([REPLACE_ILOGB])
283 REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
284 REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
285 REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
286 REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
287 REPLACE_LOG=0; AC_SUBST([REPLACE_LOG])
288 REPLACE_LOGF=0; AC_SUBST([REPLACE_LOGF])
289 REPLACE_LOGL=0; AC_SUBST([REPLACE_LOGL])
290 REPLACE_LOG10=0; AC_SUBST([REPLACE_LOG10])
291 REPLACE_LOG10F=0; AC_SUBST([REPLACE_LOG10F])
292 REPLACE_LOG10L=0; AC_SUBST([REPLACE_LOG10L])
293 REPLACE_LOG1P=0; AC_SUBST([REPLACE_LOG1P])
294 REPLACE_LOG1PF=0; AC_SUBST([REPLACE_LOG1PF])
295 REPLACE_LOG1PL=0; AC_SUBST([REPLACE_LOG1PL])
296 REPLACE_LOG2=0; AC_SUBST([REPLACE_LOG2])
297 REPLACE_LOG2F=0; AC_SUBST([REPLACE_LOG2F])
298 REPLACE_LOG2L=0; AC_SUBST([REPLACE_LOG2L])
299 REPLACE_LOGB=0; AC_SUBST([REPLACE_LOGB])
300 REPLACE_LOGBF=0; AC_SUBST([REPLACE_LOGBF])
301 REPLACE_LOGBL=0; AC_SUBST([REPLACE_LOGBL])
302 REPLACE_MODF=0; AC_SUBST([REPLACE_MODF])
303 REPLACE_MODFF=0; AC_SUBST([REPLACE_MODFF])
304 REPLACE_MODFL=0; AC_SUBST([REPLACE_MODFL])
305 REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
306 REPLACE_REMAINDER=0; AC_SUBST([REPLACE_REMAINDER])
307 REPLACE_REMAINDERF=0; AC_SUBST([REPLACE_REMAINDERF])
308 REPLACE_REMAINDERL=0; AC_SUBST([REPLACE_REMAINDERL])
309 REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
310 REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
311 REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
312 REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
313 REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
314 REPLACE_SQRTL=0; AC_SUBST([REPLACE_SQRTL])
315 REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
316 REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
317 REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
320 # gl_LONG_DOUBLE_VS_DOUBLE
321 # determines whether 'long double' and 'double' have the same representation.
322 # Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
323 # HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
324 # The currently known platforms where this is the case are:
325 # Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
326 AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
328 AC_CACHE_CHECK([whether long double and double are the same],
329 [gl_cv_long_double_equals_double],
331 [AC_LANG_PROGRAM([[#include <float.h>]],
332 [[typedef int check[sizeof (long double) == sizeof (double)
333 && LDBL_MANT_DIG == DBL_MANT_DIG
334 && LDBL_MAX_EXP == DBL_MAX_EXP
335 && LDBL_MIN_EXP == DBL_MIN_EXP
338 [gl_cv_long_double_equals_double=yes],
339 [gl_cv_long_double_equals_double=no])
341 if test $gl_cv_long_double_equals_double = yes; then
342 AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
343 [Define to 1 if 'long double' and 'double' have the same representation.])
344 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
346 HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
348 AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])