math.m4 1.3 KB
Newer Older
Tristan Gingold committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
dnl GCC_CHECK_LIBM
dnl
dnl Check whether -lm is available.  This is a pre-requisite for
dnl GCC_CHECK_MATH_FUNC so that it will link with -lm.
AC_DEFUN([GCC_CHECK_LIBM],
[AC_CHECK_LIB([m],[sin])])

dnl GCC_CHECK_MATH_HEADERS
dnl
dnl Check for math.h and complex.h.  This is a pre-requisite for
dnl GCC_CHECK_MATH_FUNC so that it includes the right headers.
dnl (Some systems, such as AIX or OpenVMS may define macro for math
dnl  functions).
AC_DEFUN([GCC_CHECK_MATH_HEADERS],
[AC_CHECK_HEADERS_ONCE(math.h complex.h)])

17
dnl GCC_CHECK_MATH_FUNC([name])
Tristan Gingold committed
18 19
dnl
dnl Check whether math function NAME is available on the system (by compiling
20
dnl and linking a C program) and run define HAVE_name on success.
Tristan Gingold committed
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
dnl
dnl Note that OpenVMS system insists on including complex.h before math.h
AC_DEFUN([GCC_CHECK_MATH_FUNC],
[
  AC_REQUIRE([GCC_CHECK_LIBM])
  AC_REQUIRE([GCC_CHECK_MATH_HEADERS])
  AC_CACHE_CHECK([for $1], [gcc_cv_math_func_$1],
		 [AC_LINK_IFELSE([
#ifdef HAVE_COMPLEX_H
#include <complex.h>
#endif
#ifdef HAVE_MATH_H
#include <math.h>
#endif

int (*ptr)() = (int (*)())$1;

int
main ()
{
  return 0;
}
],
[gcc_cv_math_func_$1=yes],
[gcc_cv_math_func_$1=no])])
  if test $gcc_cv_math_func_$1 = yes; then
47 48
    AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1),[1],
                       [Define to 1 if you have the `$1' function.])
Tristan Gingold committed
49 50
  fi
])