1dnl GCC_CHECK_LIBM
2dnl
3dnl Check whether -lm is available.  This is a pre-requisite for
4dnl GCC_CHECK_MATH_FUNC so that it will link with -lm.
5AC_DEFUN([GCC_CHECK_LIBM],
6[AC_CHECK_LIB([m],[sin])])
7
8dnl GCC_CHECK_MATH_HEADERS
9dnl
10dnl Check for math.h and complex.h.  This is a pre-requisite for
11dnl GCC_CHECK_MATH_FUNC so that it includes the right headers.
12dnl (Some systems, such as AIX or OpenVMS may define macro for math
13dnl  functions).
14AC_DEFUN([GCC_CHECK_MATH_HEADERS],
15[AC_CHECK_HEADERS_ONCE(math.h complex.h)])
16
17dnl GCC_CHECK_MATH_FUNC([name])
18dnl
19dnl Check whether math function NAME is available on the system (by compiling
20dnl and linking a C program) and run define HAVE_name on success.
21dnl
22dnl Note that OpenVMS system insists on including complex.h before math.h
23AC_DEFUN([GCC_CHECK_MATH_FUNC],
24[
25  AC_REQUIRE([GCC_CHECK_LIBM])
26  AC_REQUIRE([GCC_CHECK_MATH_HEADERS])
27  AC_CACHE_CHECK([for $1], [gcc_cv_math_func_$1],
28		 [AC_LINK_IFELSE([
29#ifdef HAVE_COMPLEX_H
30#include <complex.h>
31#endif
32#ifdef HAVE_MATH_H
33#include <math.h>
34#endif
35
36int (*ptr)() = (int (*)())$1;
37
38int
39main ()
40{
41  return 0;
42}
43],
44[gcc_cv_math_func_$1=yes],
45[gcc_cv_math_func_$1=no])])
46  if test $gcc_cv_math_func_$1 = yes; then
47    AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1),[1],
48                       [Define to 1 if you have the `$1' function.])
49  fi
50])
51