* include/std/complex (complex): Define copy constructor and
[official-gcc.git] / config / math.m4
blob23835f230cb42ecb05612590708551bc8646a86c
1 dnl GCC_CHECK_LIBM
2 dnl
3 dnl Check whether -lm is available.  This is a pre-requisite for
4 dnl GCC_CHECK_MATH_FUNC so that it will link with -lm.
5 AC_DEFUN([GCC_CHECK_LIBM],
6 [AC_CHECK_LIB([m],[sin])])
8 dnl GCC_CHECK_MATH_HEADERS
9 dnl
10 dnl Check for math.h and complex.h.  This is a pre-requisite for
11 dnl GCC_CHECK_MATH_FUNC so that it includes the right headers.
12 dnl (Some systems, such as AIX or OpenVMS may define macro for math
13 dnl  functions).
14 AC_DEFUN([GCC_CHECK_MATH_HEADERS],
15 [AC_CHECK_HEADERS_ONCE(math.h complex.h)])
17 dnl GCC_CHECK_MATH_FUNC([name])
18 dnl
19 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.
21 dnl
22 dnl Note that OpenVMS system insists on including complex.h before math.h
23 AC_DEFUN([GCC_CHECK_MATH_FUNC],
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
36 int (*ptr)() = (int (*)())$1;
38 int
39 main ()
41   return 0;
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