linkage.m4 revision 146897
1dnl 2dnl This file contains macros for testing linkage. 3dnl 4 5dnl 6dnl Check to see if the (math function) argument passed is 7dnl declared when using the c++ compiler 8dnl ASSUMES argument is a math function with ONE parameter 9dnl 10dnl GLIBCXX_CHECK_MATH_DECL_1 11AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [ 12 AC_MSG_CHECKING([for $1 declaration]) 13 if test x${glibcxx_cv_func_$1_use+set} != xset; then 14 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 15 AC_LANG_SAVE 16 AC_LANG_CPLUSPLUS 17 AC_TRY_COMPILE([#include <math.h> 18 #ifdef HAVE_IEEEFP_H 19 #include <ieeefp.h> 20 #endif 21 ], 22 [ $1(0);], 23 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 24 AC_LANG_RESTORE 25 ]) 26 fi 27 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 28]) 29 30dnl 31dnl Check to see if the (math function) argument passed is 32dnl 1) declared when using the c++ compiler 33dnl 2) has "C" linkage 34dnl 3) if not, see if 1) and 2) for argument prepended with '_' 35dnl 36dnl Define HAVE_CARGF etc if "cargf" is declared and links 37dnl 38dnl argument 1 is name of function to check 39dnl 40dnl ASSUMES argument is a math function with ONE parameter 41dnl 42dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1 43AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1], [ 44 GLIBCXX_CHECK_MATH_DECL_1($1) 45 if test x$glibcxx_cv_func_$1_use = x"yes"; then 46 AC_CHECK_FUNCS($1) 47 else 48 GLIBCXX_CHECK_MATH_DECL_1(_$1) 49 if test x$glibcxx_cv_func__$1_use = x"yes"; then 50 AC_CHECK_FUNCS(_$1) 51 fi 52 fi 53]) 54 55 56dnl 57dnl Like GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1, but does a bunch of 58dnl of functions at once. It's an all-or-nothing check -- either 59dnl HAVE_XYZ is defined for each of the functions, or for none of them. 60dnl Doing it this way saves significant configure time. 61AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [ 62 AC_MSG_CHECKING([for $1 functions]) 63 AC_CACHE_VAL(glibcxx_cv_func_$2_use, [ 64 AC_LANG_SAVE 65 AC_LANG_CPLUSPLUS 66 AC_TRY_COMPILE([#include <math.h>], 67 [ `for x in $3; do echo "$x (0);"; done` ], 68 [glibcxx_cv_func_$2_use=yes], 69 [glibcxx_cv_func_$2_use=no]) 70 AC_LANG_RESTORE]) 71 AC_MSG_RESULT($glibcxx_cv_func_$2_use) 72 if test x$glibcxx_cv_func_$2_use = x"yes"; then 73 AC_CHECK_FUNCS($3) 74 fi 75]) 76 77dnl 78dnl Check to see if the (math function) argument passed is 79dnl declared when using the c++ compiler 80dnl ASSUMES argument is a math function with TWO parameters 81dnl 82dnl GLIBCXX_CHECK_MATH_DECL_2 83AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_2], [ 84 AC_MSG_CHECKING([for $1 declaration]) 85 if test x${glibcxx_cv_func_$1_use+set} != xset; then 86 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 87 AC_LANG_SAVE 88 AC_LANG_CPLUSPLUS 89 AC_TRY_COMPILE([#include <math.h>], 90 [ $1(0, 0);], 91 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 92 AC_LANG_RESTORE 93 ]) 94 fi 95 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 96]) 97 98dnl 99dnl Check to see if the (math function) argument passed is 100dnl 1) declared when using the c++ compiler 101dnl 2) has "C" linkage 102dnl 103dnl Define HAVE_CARGF etc if "cargf" is declared and links 104dnl 105dnl argument 1 is name of function to check 106dnl 107dnl ASSUMES argument is a math function with TWO parameters 108dnl 109dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2 110AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2], [ 111 GLIBCXX_CHECK_MATH_DECL_2($1) 112 if test x$glibcxx_cv_func_$1_use = x"yes"; then 113 AC_CHECK_FUNCS($1) 114 else 115 GLIBCXX_CHECK_MATH_DECL_2(_$1) 116 if test x$glibcxx_cv_func__$1_use = x"yes"; then 117 AC_CHECK_FUNCS(_$1) 118 fi 119 fi 120]) 121 122 123dnl 124dnl Check to see if the (math function) argument passed is 125dnl declared when using the c++ compiler 126dnl ASSUMES argument is a math function with THREE parameters 127dnl 128dnl GLIBCXX_CHECK_MATH_DECL_3 129AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_3], [ 130 AC_MSG_CHECKING([for $1 declaration]) 131 if test x${glibcxx_cv_func_$1_use+set} != xset; then 132 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 133 AC_LANG_SAVE 134 AC_LANG_CPLUSPLUS 135 AC_TRY_COMPILE([#include <math.h>], 136 [ $1(0, 0, 0);], 137 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 138 AC_LANG_RESTORE 139 ]) 140 fi 141 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 142]) 143 144dnl 145dnl Check to see if the (math function) argument passed is 146dnl 1) declared when using the c++ compiler 147dnl 2) has "C" linkage 148dnl 149dnl Define HAVE_CARGF etc if "cargf" is declared and links 150dnl 151dnl argument 1 is name of function to check 152dnl 153dnl ASSUMES argument is a math function with THREE parameters 154dnl 155dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3 156AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3], [ 157 GLIBCXX_CHECK_MATH_DECL_3($1) 158 if test x$glibcxx_cv_func_$1_use = x"yes"; then 159 AC_CHECK_FUNCS($1) 160 else 161 GLIBCXX_CHECK_MATH_DECL_3(_$1) 162 if test x$glibcxx_cv_func__$1_use = x"yes"; then 163 AC_CHECK_FUNCS(_$1) 164 fi 165 fi 166]) 167 168 169dnl 170dnl Check to see if the (stdlib function) argument passed is 171dnl 1) declared when using the c++ compiler 172dnl 2) has "C" linkage 173dnl 174dnl argument 1 is name of function to check 175dnl 176dnl ASSUMES argument is a stdlib function without parameters 177dnl 178dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0 179AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0], [ 180 AC_MSG_CHECKING([for $1 declaration]) 181 if test x${glibcxx_cv_func_$1_use+set} != xset; then 182 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 183 AC_LANG_SAVE 184 AC_LANG_CPLUSPLUS 185 AC_TRY_COMPILE([#include <stdlib.h>], 186 [ $1();], 187 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 188 AC_LANG_RESTORE 189 ]) 190 fi 191 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 192 if test x$glibcxx_cv_func_$1_use = x"yes"; then 193 AC_CHECK_FUNCS($1) 194 fi 195]) 196 197 198dnl 199dnl Check to see if the (stdlib function) argument passed is 200dnl 1) declared when using the c++ compiler 201dnl 2) has "C" linkage 202dnl 203dnl argument 1 is name of function to check 204dnl 205dnl ASSUMES argument is a stdlib function with TWO parameters 206dnl 207dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2 208AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2], [ 209 AC_MSG_CHECKING([for $1 declaration]) 210 if test x${glibcxx_cv_func_$1_use+set} != xset; then 211 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 212 AC_LANG_SAVE 213 AC_LANG_CPLUSPLUS 214 AC_TRY_COMPILE([#include <stdlib.h>], 215 [ $1(0, 0);], 216 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 217 AC_LANG_RESTORE 218 ]) 219 fi 220 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 221 if test x$glibcxx_cv_func_$1_use = x"yes"; then 222 AC_CHECK_FUNCS($1) 223 fi 224]) 225 226 227dnl 228dnl Check to see if the (stdlib function) argument passed is 229dnl 1) declared when using the c++ compiler 230dnl 2) has "C" linkage 231dnl 232dnl argument 1 is name of function to check 233dnl 234dnl ASSUMES argument is a stdlib function with THREE parameters 235dnl 236dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3 237AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3], [ 238 AC_MSG_CHECKING([for $1 declaration]) 239 if test x${glibcxx_cv_func_$1_use+set} != xset; then 240 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 241 AC_LANG_SAVE 242 AC_LANG_CPLUSPLUS 243 AC_TRY_COMPILE([#include <stdlib.h>], 244 [ $1(0, 0, 0);], 245 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 246 AC_LANG_RESTORE 247 ]) 248 fi 249 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 250 if test x$glibcxx_cv_func_$1_use = x"yes"; then 251 AC_CHECK_FUNCS($1) 252 fi 253]) 254 255dnl 256dnl Because the builtins are picky picky picky about the arguments they take, 257dnl do an explict linkage tests here. 258dnl Check to see if the (math function) argument passed is 259dnl 1) declared when using the c++ compiler 260dnl 2) has "C" linkage 261dnl 262dnl Define HAVE_CARGF etc if "cargf" is declared and links 263dnl 264dnl argument 1 is name of function to check 265dnl 266dnl ASSUMES argument is a math function with ONE parameter 267dnl 268dnl GLIBCXX_CHECK_BUILTIN_MATH_DECL_LINKAGE_1 269AC_DEFUN([GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1], [ 270 AC_MSG_CHECKING([for $1 declaration]) 271 if test x${glibcxx_cv_func_$1_use+set} != xset; then 272 AC_CACHE_VAL(glibcxx_cv_func_$1_use, [ 273 AC_LANG_SAVE 274 AC_LANG_CPLUSPLUS 275 AC_TRY_COMPILE([#include <math.h>], 276 [ $1(0);], 277 [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no]) 278 AC_LANG_RESTORE 279 ]) 280 fi 281 AC_MSG_RESULT($glibcxx_cv_func_$1_use) 282 if test x$glibcxx_cv_func_$1_use = x"yes"; then 283 AC_MSG_CHECKING([for $1 linkage]) 284 if test x${glibcxx_cv_func_$1_link+set} != xset; then 285 AC_CACHE_VAL(glibcxx_cv_func_$1_link, [ 286 AC_TRY_LINK([#include <math.h>], 287 [ $1(0);], 288 [glibcxx_cv_func_$1_link=yes], [glibcxx_cv_func_$1_link=no]) 289 ]) 290 fi 291 AC_MSG_RESULT($glibcxx_cv_func_$1_link) 292 if test x$glibcxx_cv_func_$1_link = x"yes"; then 293 ac_tr_func=HAVE_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` 294 AC_DEFINE_UNQUOTED(${ac_tr_func}, 1, [Defined if $1 exists.]) 295 fi 296 fi 297]) 298 299 300dnl 301dnl Check to see what builtin math functions are supported 302dnl 303dnl check for __builtin_abs 304dnl check for __builtin_fabsf 305dnl check for __builtin_fabs 306dnl check for __builtin_fabl 307dnl check for __builtin_labs 308dnl check for __builtin_sqrtf 309dnl check for __builtin_sqrtl 310dnl check for __builtin_sqrt 311dnl check for __builtin_sinf 312dnl check for __builtin_sin 313dnl check for __builtin_sinl 314dnl check for __builtin_cosf 315dnl check for __builtin_cos 316dnl check for __builtin_cosl 317dnl 318dnl GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT 319AC_DEFUN([GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT], [ 320 dnl Test for builtin math functions. 321 dnl These are made in gcc/c-common.c 322 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs) 323 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsf) 324 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabs) 325 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_fabsl) 326 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_labs) 327 328 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtf) 329 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrt) 330 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sqrtl) 331 332 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinf) 333 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sin) 334 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_sinl) 335 336 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosf) 337 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cos) 338 GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_cosl) 339]) 340 341dnl 342dnl Check to see what the underlying c library is like 343dnl These checks need to do two things: 344dnl 1) make sure the name is declared when using the c++ compiler 345dnl 2) make sure the name has "C" linkage 346dnl This might seem like overkill but experience has shown that it's not... 347dnl 348dnl Define HAVE_STRTOLD if "strtold" is declared and links 349dnl Define HAVE_STRTOF if "strtof" is declared and links 350dnl 351dnl GLIBCXX_CHECK_STDLIB_SUPPORT 352AC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [ 353 ac_test_CXXFLAGS="${CXXFLAGS+set}" 354 ac_save_CXXFLAGS="$CXXFLAGS" 355 CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 356 357 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold) 358 GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof) 359 360 CXXFLAGS="$ac_save_CXXFLAGS" 361]) 362 363dnl 364dnl Check to see what the underlying c library or math library is like. 365dnl These checks need to do two things: 366dnl 1) make sure the name is declared when using the c++ compiler 367dnl 2) make sure the name has "C" linkage 368dnl This might seem like overkill but experience has shown that it's not... 369dnl 370dnl Define HAVE_CARGF etc if "cargf" is found. 371dnl 372dnl GLIBCXX_CHECK_MATH_SUPPORT 373AC_DEFUN([GLIBCXX_CHECK_MATH_SUPPORT], [ 374 ac_test_CXXFLAGS="${CXXFLAGS+set}" 375 ac_save_CXXFLAGS="$CXXFLAGS" 376 CXXFLAGS='-fno-builtin -D_GNU_SOURCE' 377 378 dnl Check libm 379 AC_CHECK_LIB(m, sin, libm="-lm") 380 ac_save_LIBS="$LIBS" 381 LIBS="$LIBS $libm" 382 383 dnl Check to see if certain C math functions exist. 384 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinf) 385 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnan) 386 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finite) 387 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(copysign) 388 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincos) 389 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fpclass) 390 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(qfpclass) 391 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypot) 392 393 dnl Check to see if basic C math functions have float versions. 394 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float trig, 395 float_trig, 396 acosf asinf atanf \ 397 cosf sinf tanf \ 398 coshf sinhf tanhf) 399 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(float round, 400 float_round, 401 ceilf floorf) 402 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expf) 403 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanf) 404 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinff) 405 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2f) 406 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsf) 407 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodf) 408 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpf) 409 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotf) 410 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpf) 411 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logf) 412 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10f) 413 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modff) 414 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powf) 415 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtf) 416 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosf) 417 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitef) 418 419 dnl Check to see if basic C math functions have long double versions. 420 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double trig, 421 long_double_trig, 422 acosl asinl atanl \ 423 cosl sinl tanl \ 424 coshl sinhl tanhl) 425 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(long double round, 426 long_double_round, 427 ceill floorl) 428 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnanl) 429 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinfl) 430 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(copysignl) 431 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(atan2l) 432 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(expl) 433 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(fabsl) 434 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(fmodl) 435 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(frexpl) 436 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(hypotl) 437 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(ldexpl) 438 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(logl) 439 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(log10l) 440 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(modfl) 441 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2(powl) 442 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(sqrtl) 443 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3(sincosl) 444 GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(finitel) 445 446 dnl Some runtimes have these functions with a preceding underscore. Please 447 dnl keep this sync'd with the one above. And if you add any new symbol, 448 dnl please add the corresponding block in the @BOTTOM@ section of acconfig.h. 449 dnl Check to see if certain C math functions exist. 450 451 dnl Check to see if basic C math functions have float versions. 452 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_float trig, 453 _float_trig, 454 _acosf _asinf _atanf \ 455 _cosf _sinf _tanf \ 456 _coshf _sinhf _tanhf) 457 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_float round, 458 _float_round, 459 _ceilf _floorf) 460 461 dnl Check to see if basic C math functions have long double versions. 462 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double trig, 463 _long_double_trig, 464 _acosl _asinl _atanl \ 465 _cosl _sinl _tanl \ 466 _coshl _sinhl _tanhl) 467 GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1(_long double round, 468 _long_double_round, 469 _ceill _floorl) 470 471 LIBS="$ac_save_LIBS" 472 CXXFLAGS="$ac_save_CXXFLAGS" 473]) 474 475 476dnl 477dnl Check to see if there is native support for complex 478dnl 479dnl Don't compile bits in math/* if native support exits. 480dnl 481dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found. 482dnl 483dnl GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT 484AC_DEFUN([GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT], [ 485 dnl Check for complex versions of math functions of platform. This will 486 dnl always pass if libm is available, and fail if it isn't. If it is 487 dnl available, we assume we'll need it later, so add it to LIBS. 488 AC_CHECK_LIB(m, main) 489 AC_REPLACE_MATHFUNCS(copysignf) 490 491 dnl For __signbit to signbit conversions. 492 dnl Not sure why this is done, as these will be macros mostly. 493 dnl Should probably coordinate this with std_cmath.h. 494 AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"]) 495 496 AC_CHECK_FUNCS([__signbitf], , [LIBMATHOBJS="$LIBMATHOBJS signbitf.lo"]) 497 498 dnl Compile the long double complex functions only if the function 499 dnl provides the non-complex long double functions that are needed. 500 dnl Currently this includes copysignl, which should be 501 dnl cached from the GLIBCXX_CHECK_MATH_SUPPORT macro, above. 502 if test x$ac_cv_func_copysignl = x"yes"; then 503 AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"]) 504 fi 505 506 # Used in libmath/Makefile.am. 507 if test -n "$LIBMATHOBJS"; then 508 need_libmath=yes 509 fi 510 AC_SUBST(LIBMATHOBJS) 511]) 512 513 514# Check for functions in math library. 515# Ulrich Drepper <drepper@cygnus.com>, 1998. 516# 517# This file can be copied and used freely without restrictions. It can 518# be used in projects which are not available under the GNU Public License 519# but which still want to provide support for the GNU gettext functionality. 520# Please note that the actual code is *not* freely available. 521# 522# serial 1 523# 524dnl AC_REPLACE_MATHFUNCS(FUNCTION...) 525AC_DEFUN([AC_REPLACE_MATHFUNCS], 526[AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])]) 527