uuid plugin: Pass `int' to `isxdigit'.
[collectd.git] / configure.in
index 7a4c151..df1b187 100644 (file)
@@ -405,7 +405,7 @@ AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr
 AC_FUNC_STRERROR_R
 
 AC_CACHE_CHECK([for strtok_r],
-  [have_strtok_r_default],
+  [c_cv_have_strtok_r_default],
   AC_LINK_IFELSE(
     AC_LANG_PROGRAM(
     [[[[
@@ -427,18 +427,18 @@ AC_CACHE_CHECK([for strtok_r],
         printf ("token = %s;\n", token);
       }
     ]]]]),
-    [have_strtok_r_default="yes"],
-    [have_strtok_r_default="no"]
+    [c_cv_have_strtok_r_default="yes"],
+    [c_cv_have_strtok_r_default="no"]
   )
 )
 
-if test "x$have_strtok_r_default" = "xno"
+if test "x$c_cv_have_strtok_r_default" = "xno"
 then
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -D_REENTRANT=1"
 
   AC_CACHE_CHECK([if strtok_r needs _REENTRANT],
-    [have_strtok_r_reentrant],
+    [c_cv_have_strtok_r_reentrant],
     AC_LINK_IFELSE(
       AC_LANG_PROGRAM(
       [[[[
@@ -460,7 +460,7 @@ then
           printf ("token = %s;\n", token);
         }
       ]]]]),
-      [have_strtok_r_reentrant="yes"],
+      [c_cv_have_strtok_r_reentrant="yes"],
       [AC_MSG_FAILURE([strtok_r isn't available. Please file a bugreport!])]
     )
   )
@@ -504,7 +504,7 @@ AC_ARG_WITH(nan-emulation, [AS_HELP_STRING([--with-nan-emulation], [use emulated
 [nan_type="none"])
 if test "x$nan_type" = "xnone"; then
   AC_CACHE_CHECK([whether NAN is defined by default],
-    [have_nan_default],
+    [c_cv_have_nan_default],
     AC_COMPILE_IFELSE(
       AC_LANG_PROGRAM(
       [[
@@ -518,18 +518,18 @@ static float foo = NAN;
        else
        return 1;
       ]]),
-      [have_nan_default="yes"],
-      [have_nan_default="no"]
+      [c_cv_have_nan_default="yes"],
+      [c_cv_have_nan_default="no"]
     )
   )
-  if test "x$have_nan_default" = "xyes"
+  if test "x$c_cv_have_nan_default" = "xyes"
   then
     nan_type="default"
   fi
 fi
 if test "x$nan_type" = "xnone"; then
   AC_CACHE_CHECK([whether NAN is defined by __USE_ISOC99],
-    [have_nan_isoc],
+    [c_cv_have_nan_isoc],
     AC_COMPILE_IFELSE(
       AC_LANG_PROGRAM(
       [[
@@ -544,18 +544,18 @@ static float foo = NAN;
        else
        return 1;
       ]]),
-      [have_nan_isoc="yes"],
-      [have_nan_isoc="no"]
+      [c_cv_have_nan_isoc="yes"],
+      [c_cv_have_nan_isoc="no"]
     )
   )
-  if test "x$have_nan_isoc" = "xyes"
+  if test "x$c_cv_have_nan_isoc" = "xyes"
   then
     nan_type="isoc99"
   fi
 fi
 if test "x$nan_type" = "xnone"; then
   AC_CACHE_CHECK([whether NAN can be defined by 0/0],
-    [have_nan_zero],
+    [c_cv_have_nan_zero],
     AC_RUN_IFELSE(
       AC_LANG_PROGRAM(
       [[
@@ -576,11 +576,11 @@ static float foo = NAN;
        else
        return 1;
       ]]),
-      [have_nan_zero="yes"],
-      [have_nan_zero="no"]
+      [c_cv_have_nan_zero="yes"],
+      [c_cv_have_nan_zero="no"]
     )
   )
-  if test "x$have_nan_zero" = "xyes"
+  if test "x$c_cv_have_nan_zero" = "xyes"
   then
     nan_type="zero"
   fi
@@ -615,7 +615,7 @@ fi; fi; fi
 
 if test "x$fp_layout_type" = "xunknown"; then
   AC_CACHE_CHECK([if doubles are stored in x86 representation],
-    [fp_layout_need_nothing],
+    [c_cv_fp_layout_need_nothing],
     AC_RUN_IFELSE(
       AC_LANG_PROGRAM(
       [[[[
@@ -644,17 +644,17 @@ if test "x$fp_layout_type" = "xunknown"; then
        else
                return (1);
       ]]]]),
-      [fp_layout_need_nothing="yes"],
-      [fp_layout_need_nothing="no"]
+      [c_cv_fp_layout_need_nothing="yes"],
+      [c_cv_fp_layout_need_nothing="no"]
     )
   )
-  if test "x$fp_layout_need_nothing" = "xyes"; then
+  if test "x$c_cv_fp_layout_need_nothing" = "xyes"; then
     fp_layout_type="nothing"
   fi
 fi
 if test "x$fp_layout_type" = "xunknown"; then
   AC_CACHE_CHECK([if endianflip converts to x86 representation],
-    [fp_layout_need_endianflip],
+    [c_cv_fp_layout_need_endianflip],
     AC_RUN_IFELSE(
       AC_LANG_PROGRAM(
       [[[[
@@ -691,17 +691,17 @@ if test "x$fp_layout_type" = "xunknown"; then
        else
                return (1);
       ]]]]),
-      [fp_layout_need_endianflip="yes"],
-      [fp_layout_need_endianflip="no"]
+      [c_cv_fp_layout_need_endianflip="yes"],
+      [c_cv_fp_layout_need_endianflip="no"]
     )
   )
-  if test "x$fp_layout_need_endianflip" = "xyes"; then
+  if test "x$c_cv_fp_layout_need_endianflip" = "xyes"; then
     fp_layout_type="endianflip"
   fi
 fi
 if test "x$fp_layout_type" = "xunknown"; then
   AC_CACHE_CHECK([if intswap converts to x86 representation],
-    [fp_layout_need_intswap],
+    [c_cv_fp_layout_need_intswap],
     AC_RUN_IFELSE(
       AC_LANG_PROGRAM(
       [[[[
@@ -732,11 +732,11 @@ if test "x$fp_layout_type" = "xunknown"; then
        else
                return (1);
       ]]]]),
-      [fp_layout_need_intswap="yes"],
-      [fp_layout_need_intswap="no"]
+      [c_cv_fp_layout_need_intswap="yes"],
+      [c_cv_fp_layout_need_intswap="no"]
     )
   )
-  if test "x$fp_layout_need_intswap" = "xyes"; then
+  if test "x$c_cv_fp_layout_need_intswap" = "xyes"; then
     fp_layout_type="intswap"
   fi
 fi
@@ -775,7 +775,7 @@ fi
 
 if test "x$have_getmntent" = "xc"; then
        AC_CACHE_CHECK([whether getmntent takes one argument],
-               [have_one_getmntent],
+               [c_cv_have_one_getmntent],
                AC_COMPILE_IFELSE(
                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
 #include <mntent.h>
@@ -787,12 +787,12 @@ if test "x$have_getmntent" = "xc"; then
                                 me = getmntent (fh);
                                ]]
                        ),
-                       [have_one_getmntent="yes"],
-                       [have_one_getmntent="no"]
+                       [c_cv_have_one_getmntent="yes"],
+                       [c_cv_have_one_getmntent="no"]
                )
        )
        AC_CACHE_CHECK([whether getmntent takes two arguments],
-               [have_two_getmntent],
+               [c_cv_have_two_getmntent],
                AC_COMPILE_IFELSE(
                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
 #include <sys/mnttab.h>
@@ -805,8 +805,8 @@ if test "x$have_getmntent" = "xc"; then
                                 status = getmntent (fh, &mt);
                                ]]
                        ),
-                       [have_two_getmntent="yes"],
-                       [have_two_getmntent="no"]
+                       [c_cv_have_two_getmntent="yes"],
+                       [c_cv_have_two_getmntent="no"]
                )
        )
 fi
@@ -814,11 +814,11 @@ fi
 # Check for different versions of `getmntent' here..
 
 if test "x$have_getmntent" = "xc"; then
-       if test "x$have_one_getmntent" = "xyes"; then
+       if test "x$c_cv_have_one_getmntent" = "xyes"; then
                AC_DEFINE(HAVE_ONE_GETMNTENT, 1,
                          [Define if the function getmntent exists and takes one argument.])
        fi
-       if test "x$have_two_getmntent" = "xyes"; then
+       if test "x$c_cv_have_two_getmntent" = "xyes"; then
                AC_DEFINE(HAVE_TWO_GETMNTENT, 1,
                          [Define if the function getmntent exists and takes two arguments.])
        fi
@@ -855,6 +855,37 @@ AC_CHECK_MEMBERS([struct net_device_stats.rx_bytes, struct net_device_stats.tx_p
        #include <linux/netdevice.h>
        ])
 
+AC_CHECK_MEMBERS([struct kinfo_proc.ki_pid, struct kinfo_proc.ki_rssize, struct kinfo_proc.ki_rusage],
+       [
+               AC_DEFINE(HAVE_STRUCT_KINFO_PROC_FREEBSD, 1,
+                       [Define if struct kinfo_proc exists in the FreeBSD variant.])
+               have_struct_kinfo_proc_freebsd="yes"
+       ],
+       [
+               have_struct_kinfo_proc_freebsd="no"
+       ],
+       [
+#include <kvm.h>
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <sys/user.h>
+       ])
+
+AC_CHECK_MEMBERS([struct kinfo_proc.kp_proc, struct kinfo_proc.kp_eproc],
+       [
+               AC_DEFINE(HAVE_STRUCT_KINFO_PROC_OPENBSD, 1,
+                       [Define if struct kinfo_proc exists in the OpenBSD variant.])
+               have_struct_kinfo_proc_openbsd="yes"
+       ],
+       [
+               have_struct_kinfo_proc_openbsd="no"
+       ],
+       [
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <kvm.h>
+       ])
+
 AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
 [#if HAVE_STDINT_H
 # include <stdint.h>
@@ -1683,13 +1714,14 @@ if test "x$with_libperl" = "xyes" \
 then
   SAVE_CFLAGS=$CFLAGS
   SAVE_LDFLAGS=$LDFLAGS
-  PERL_CFLAGS=`$perl_interpreter -MExtUtils::Embed -e ccopts`
-  PERL_LDFLAGS=`$perl_interpreter -MExtUtils::Embed -e ldopts`
+dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string)
+  PERL_CFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ccopts`
+  PERL_LDFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ldopts`
   CFLAGS="$CFLAGS $PERL_CFLAGS"
   LDFLAGS="$LDFLAGS $PERL_LDFLAGS"
 
   AC_CACHE_CHECK([for libperl],
-    [have_libperl],
+    [c_cv_have_libperl],
     AC_LINK_IFELSE(
       AC_LANG_PROGRAM(
       [[
@@ -1704,12 +1736,12 @@ then
                         newSVpv ("Collectd::Plugin::FooBar", 24),
                         Nullsv);
       ]]),
-      [have_libperl="yes"],
-      [have_libperl="no"]
+      [c_cv_have_libperl="yes"],
+      [c_cv_have_libperl="no"]
     )
   )
 
-  if test "x$have_libperl" = "xyes"
+  if test "x$c_cv_have_libperl" = "xyes"
   then
          AC_DEFINE(HAVE_LIBPERL, 1, [Define if libperl is present and usable.])
          AC_SUBST(PERL_CFLAGS)
@@ -1722,7 +1754,7 @@ then
   LDFLAGS=$SAVE_LDFLAGS
 else if test -z "$perl_interpreter"; then
   with_libperl="no (no perl interpreter found)"
-  have_libperl="no"
+  c_cv_have_libperl="no"
 fi; fi
 AM_CONDITIONAL(BUILD_WITH_LIBPERL, test "x$with_libperl" = "xyes")
 
@@ -1734,7 +1766,7 @@ then
        LDFLAGS="$LDFLAGS $PERL_LDFLAGS"
 
        AC_CACHE_CHECK([if perl supports ithreads],
-               [have_perl_ithreads],
+               [c_cv_have_perl_ithreads],
                AC_LINK_IFELSE(
                        AC_LANG_PROGRAM(
                        [[
@@ -1747,12 +1779,12 @@ then
 #endif /* !defined(USE_ITHREADS) */
                        ]],
                        [[ ]]),
-                       [have_perl_ithreads="yes"],
-                       [have_perl_ithreads="no"]
+                       [c_cv_have_perl_ithreads="yes"],
+                       [c_cv_have_perl_ithreads="no"]
                )
        )
 
-       if test "x$have_perl_ithreads" = "xyes"
+       if test "x$c_cv_have_perl_ithreads" = "xyes"
        then
                AC_DEFINE(HAVE_PERL_ITHREADS, 1, [Define if Perl supports ithreads.])
        fi
@@ -1894,32 +1926,93 @@ PKG_CHECK_MODULES([LIBNOTIFY], [libnotify],
                [with_libnotify="yes"],
                [with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"])
 
-with_libupsclient="no (pkg-config isn't available)"
+with_libupsclient_config=""
 with_libupsclient_cflags=""
 with_libupsclient_libs=""
-if test "x$PKG_CONFIG" != "x"
-then
-       pkg-config --exists 'libupsclient' 2>/dev/null
-       if test "$?" = "0"
+AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
+[
+       if test "x$withval" = "xno"
+       then
+               with_libupsclient="no"
+       else if test "x$withval" = "xyes"
        then
-               with_libupsclient="yes"
+               with_libupsclient="use_pkgconfig"
        else
+               if test -x "$withval"
+               then
+                       with_libupsclient_config="$withval"
+                       with_libupsclient="use_libupsclient_config"
+               else if test -x "$withval/bin/libupsclient-config"
+               then
+                       with_libupsclient_config="$withval/bin/net-snmp-config"
+                       with_libupsclient="use_libupsclient_config"
+               else
+                       AC_MSG_NOTICE([Not checking for libupsclient: Manually configured])
+                       with_libupsclient_cflags="-I$withval/include"
+                       with_libupsclient_libs="-L$withval/lib -lupsclient"
+                       with_libupsclient="yes"
+               fi; fi
+       fi; fi
+],
+[with_libupsclient="use_pkgconfig"])
+
+# configure using libupsclient-config
+if test "x$with_libupsclient" = "xuse_libupsclient_config"
+then
+       AC_MSG_NOTICE([Checking for libupsclient using $with_libupsclient_config])
+       with_libupsclient_cflags="`$with_libupsclient_config --cflags`"
+       if test $? -ne 0
+       then
+               with_libupsclient="no ($with_libupsclient_config failed)"
+       fi
+       with_libupsclient_libs="`$with_libupsclient_config --libs`"
+       if test $? -ne 0
+       then
+               with_libupsclient="no ($with_libupsclient_config failed)"
+       fi
+fi
+if test "x$with_libupsclient" = "xuse_libupsclient_config"
+then
+       with_libupsclient="yes"
+fi
+
+# configure using pkg-config
+if test "x$with_libupsclient" = "xuse_pkgconfig"
+then
+       if test "x$PKG_CONFIG" = "x"
+       then
+               with_libupsclient="no (Don't have pkg-config)"
+       fi
+fi
+if test "x$with_libupsclient" = "xuse_pkgconfig"
+then
+       AC_MSG_NOTICE([Checking for libupsclient using $PKG_CONFIG])
+       $PKG_CONFIG --exists 'libupsclient' 2>/dev/null
+       if test $? -ne 0
+       then
                with_libupsclient="no (pkg-config doesn't know library)"
        fi
 fi
-if test "x$with_libupsclient" = "xyes"
+if test "x$with_libupsclient" = "xuse_pkgconfig"
 then
-       with_libupsclient_cflags="`pkg-config --cflags 'libupsclient'`"
+       with_libupsclient_cflags="`$PKG_CONFIG --cflags 'libupsclient'`"
        if test $? -ne 0
        then
-               with_libupsclient="no"
+               with_libupsclient="no ($PKG_CONFIG failed)"
        fi
-       with_libupsclient_libs="`pkg-config --libs 'libupsclient'`"
+       with_libupsclient_libs="`$PKG_CONFIG --libs 'libupsclient'`"
        if test $? -ne 0
        then
-               with_libupsclient="no"
+               with_libupsclient="no ($PKG_CONFIG failed)"
        fi
 fi
+if test "x$with_libupsclient" = "xuse_pkgconfig"
+then
+       with_libupsclient="yes"
+fi
+
+# with_libupsclient_cflags and with_libupsclient_libs are set up now, let's do
+# the actual checks.
 if test "x$with_libupsclient" = "xyes"
 then
        SAVE_CPPFLAGS="$CPPFLAGS"
@@ -2672,7 +2765,7 @@ then
        plugin_load="yes"
 fi
 
-if test "x$have_libperl$have_perl_ithreads" = "xyesyes"
+if test "x$c_cv_have_libperl$c_cv_have_perl_ithreads" = "xyesyes"
 then
        plugin_perl="yes"
 fi
@@ -2693,7 +2786,7 @@ then
        plugin_processes="yes"
 fi
 
-if test "x$with_kvm_getprocs" = "xyes"
+if test "x$with_kvm_getprocs" = "xyes" && test "x$have_struct_kinfo_proc_freebsd" = "xyes"
 then
        plugin_processes="yes"
 fi