make sure all elements required in the definition of isinf are defined in their turn
[rrdtool.git] / m4 / acinclude.m4
index 5ea34f0..01eb4a4 100644 (file)
@@ -289,7 +289,7 @@ if test "x$acx_pthread_ok" = xyes; then
         case "${host_cpu}-${host_os}" in
             *-aix* | *-freebsd* | *-darwin*) x_rflag="-D_THREAD_SAFE";;
             *solaris* | *-osf* | *-hpux*) x_rflag="-D_REENTRANT";;
-            *-linux*)
+            *-linux* | *-k*bsd*-gnu*)                
             if test x"$PTHREAD_CFLAGS" = "x-pthread"; then
                 # For Linux/gcc "-pthread" implies "-lpthread". We need, however, to make this explicit
                 # in PTHREAD_LIBS such that a shared library to be built properly depends on libpthread.
@@ -363,13 +363,13 @@ AC_CACHE_VAL([rd_cv_ieee_$2],
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif 
@@ -390,6 +390,10 @@ AC_CACHE_VAL([rd_cv_ieee_$2],
 #  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
 #include <stdio.h>
 int main(void){
     double rrdnan,rrdinf,rrdc,rrdzero;