dnl ASSUMES argument is a math function with ONE parameter
dnl
dnl GLIBCXX_CHECK_MATH_DECL_1
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_1, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_1], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl ASSUMES argument is a math function with ONE parameter
dnl
dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1], [
GLIBCXX_CHECK_MATH_DECL_1($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
dnl of functions at once. It's an all-or-nothing check -- either
dnl HAVE_XYZ is defined for each of the functions, or for none of them.
dnl Doing it this way saves significant configure time.
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1], [
AC_MSG_CHECKING([for $1 functions])
AC_CACHE_VAL(glibcxx_cv_func_$2_use, [
AC_LANG_SAVE
dnl ASSUMES argument is a math function with TWO parameters
dnl
dnl GLIBCXX_CHECK_MATH_DECL_2
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_2, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_2], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl ASSUMES argument is a math function with TWO parameters
dnl
dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2], [
GLIBCXX_CHECK_MATH_DECL_2($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
dnl ASSUMES argument is a math function with THREE parameters
dnl
dnl GLIBCXX_CHECK_MATH_DECL_3
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_3, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_3], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl ASSUMES argument is a math function with THREE parameters
dnl
dnl GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3
-AC_DEFUN(GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3], [
GLIBCXX_CHECK_MATH_DECL_3($1)
if test x$glibcxx_cv_func_$1_use = x"yes"; then
AC_CHECK_FUNCS($1)
])
+dnl
+dnl Check to see if the (stdlib function) argument passed is
+dnl 1) declared when using the c++ compiler
+dnl 2) has "C" linkage
+dnl
+dnl argument 1 is name of function to check
+dnl
+dnl ASSUMES argument is a stdlib function without parameters
+dnl
+dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_0], [
+ AC_MSG_CHECKING([for $1 declaration])
+ if test x${glibcxx_cv_func_$1_use+set} != xset; then
+ AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([#include <stdlib.h>],
+ [ $1();],
+ [glibcxx_cv_func_$1_use=yes], [glibcxx_cv_func_$1_use=no])
+ AC_LANG_RESTORE
+ ])
+ fi
+ AC_MSG_RESULT($glibcxx_cv_func_$1_use)
+ if test x$glibcxx_cv_func_$1_use = x"yes"; then
+ AC_CHECK_FUNCS($1)
+ fi
+])
+
+
dnl
dnl Check to see if the (stdlib function) argument passed is
dnl 1) declared when using the c++ compiler
dnl ASSUMES argument is a math function with TWO parameters
dnl
dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2
-AC_DEFUN(GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2, [
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl ASSUMES argument is a function with THREE parameters
dnl
dnl GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3
-AC_DEFUN(GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3, [
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_3], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl ASSUMES argument is a math function with ONE parameter
dnl
dnl GLIBCXX_CHECK_BUILTIN_MATH_DECL_LINKAGE_1
-AC_DEFUN(GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1, [
+AC_DEFUN([GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1], [
AC_MSG_CHECKING([for $1 declaration])
if test x${glibcxx_cv_func_$1_use+set} != xset; then
AC_CACHE_VAL(glibcxx_cv_func_$1_use, [
dnl check for __builtin_cosl
dnl
dnl GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT
-AC_DEFUN(GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT, [
+AC_DEFUN([GLIBCXX_CHECK_BUILTIN_MATH_SUPPORT], [
dnl Test for builtin math functions.
dnl These are made in gcc/c-common.c
GLIBCXX_CHECK_BUILTIN_MATH_DECL_AND_LINKAGE_1(__builtin_abs)
dnl
dnl Define HAVE_STRTOLD if "strtold" is declared and links
dnl Define HAVE_STRTOF if "strtof" is declared and links
-dnl Define HAVE_DRAND48 if "drand48" is declared and links
dnl
dnl GLIBCXX_CHECK_STDLIB_SUPPORT
-AC_DEFUN(GLIBCXX_CHECK_STDLIB_SUPPORT, [
+AC_DEFUN([GLIBCXX_CHECK_STDLIB_SUPPORT], [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtold)
GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2(strtof)
- AC_CHECK_FUNCS(drand48)
CXXFLAGS="$ac_save_CXXFLAGS"
])
dnl Define HAVE_CARGF etc if "cargf" is found.
dnl
dnl GLIBCXX_CHECK_MATH_SUPPORT
-AC_DEFUN(GLIBCXX_CHECK_MATH_SUPPORT, [
+AC_DEFUN([GLIBCXX_CHECK_MATH_SUPPORT], [
ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS='-fno-builtin -D_GNU_SOURCE'
ac_save_LIBS="$LIBS"
LIBS="$LIBS $libm"
+ dnl Check libmx
+ AC_CHECK_LIB(mx, sqrtf, libmx="-lmx")
+ dnl ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $libmx"
+
dnl Check to see if certain C math functions exist.
GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isinf)
GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1(isnan)
dnl Define USE_COMPLEX_LONG_DOUBLE etc if "copysignl" is found.
dnl
dnl GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
-AC_DEFUN(GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT, [
+AC_DEFUN([GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT], [
dnl Check for complex versions of math functions of platform. This will
dnl always pass if libm is available, and fail if it isn't. If it is
dnl available, we assume we'll need it later, so add it to LIBS.
AC_CHECK_LIB(m, main)
- AC_REPLACE_MATHFUNCS(nan copysignf)
+ AC_REPLACE_MATHFUNCS(copysignf)
dnl For __signbit to signbit conversions.
AC_CHECK_FUNCS([__signbit], , [LIBMATHOBJS="$LIBMATHOBJS signbit.lo"])
AC_CHECK_FUNCS([__signbitl], , [LIBMATHOBJS="$LIBMATHOBJS signbitl.lo"])
fi
+ # XXX Review this. Nothing uses it.
if test -n "$LIBMATHOBJS"; then
need_libmath=yes
fi
# serial 1
#
dnl AC_REPLACE_MATHFUNCS(FUNCTION...)
-AC_DEFUN(AC_REPLACE_MATHFUNCS,
+AC_DEFUN([AC_REPLACE_MATHFUNCS],
[AC_CHECK_FUNCS([$1], , [LIBMATHOBJS="$LIBMATHOBJS ${ac_func}.lo"])])
dnl vim:et:ts=2