build system: Check for `kvm_getprocs'.
authorFlorian Forster <octo@huhu.verplant.org>
Tue, 19 Aug 2008 07:34:08 +0000 (09:34 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Tue, 19 Aug 2008 07:34:08 +0000 (09:34 +0200)
Link the processes plugin with the `kvm' library if it provides this symbol.

configure.in
src/Makefile.am
src/processes.c

index 4a7fdfb..02e06fe 100644 (file)
@@ -1232,6 +1232,14 @@ then
   AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
 fi
 
+AC_CHECK_LIB(kvm, kvm_getprocs, [with_kvm_getprocs="yes"], [with_kvm_getprocs="no"])
+if test "x$with_kvm_getprocs" = "xyes"
+then
+       AC_DEFINE(HAVE_LIBKVM_GETPROCS, 1,
+                 [Define to 1 if you have the 'kvm' library with the 'kvm_getprocs' symbol (-lkvm)])
+fi
+AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETPROCS, test "x$with_kvm_getprocs" = "xyes")
+
 AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_kvm_getswapinfo="yes"], [with_kvm_getswapinfo="no"])
 if test "x$with_kvm_getswapinfo" = "xyes"
 then
index 8d8845e..789f7f8 100644 (file)
@@ -571,8 +571,12 @@ if BUILD_PLUGIN_PROCESSES
 pkglib_LTLIBRARIES += processes.la
 processes_la_SOURCES = processes.c
 processes_la_LDFLAGS = -module -avoid-version
+processes_la_LIBADD =
 collectd_LDADD += "-dlopen" processes.la
 collectd_DEPENDENCIES += processes.la
+if BUILD_WITH_LIBKVM_GETPROCS
+processes_la_LIBADD += -lkvm
+endif
 endif
 
 if BUILD_PLUGIN_QMAIL
index 7531a6a..257f5bb 100644 (file)
 #  endif
 /* #endif KERNEL_LINUX */
 
-#elif HAVE_KVM_H
+#elif HAVE_LIBKVM_GETPROCS
 #  include <kvm.h>
 #  include <sys/user.h>
 #  include <sys/proc.h>
 #  if HAVE_SYS_SYSCTL_H
 #    include <sys/sysctl.h>
 #  endif
-/* #endif HAVE_KVM_H */
+/* #endif HAVE_LIBKVM_GETPROCS */
 
 #else
 # error "No applicable input method."
@@ -167,7 +167,11 @@ static mach_msg_type_number_t     pset_list_len;
 
 #elif KERNEL_LINUX
 static long pagesize_g;
-#endif /* KERNEL_LINUX */
+/* #endif KERNEL_LINUX */
+
+#elif HAVE_LIBKVM_GETPROCS
+/* no global variables */
+#endif /* HAVE_LIBKVM_GETPROCS */
 
 /* put name of process from config to list_head_g tree
    list_head_g is a list of 'procstat_t' structs with
@@ -508,7 +512,11 @@ static int ps_init (void)
        pagesize_g = sysconf(_SC_PAGESIZE);
        DEBUG ("pagesize_g = %li; CONFIG_HZ = %i;",
                        pagesize_g, CONFIG_HZ);
-#endif /* KERNEL_LINUX */
+/* #endif KERNEL_LINUX */
+
+#elif HAVE_LIBKVM_GETPROCS
+/* no initialization */
+#endif /* HAVE_LIBKVM_GETPROCS */
 
        return (0);
 } /* int ps_init */
@@ -1131,7 +1139,7 @@ static int ps_read (void)
                ps_submit_proc_list (ps_ptr);
 /* #endif KERNEL_LINUX */
 
-#elif HAVE_LIBKVM
+#elif HAVE_LIBKVM_GETPROCS
        int running  = 0;
        int sleeping = 0;
        int zombies  = 0;
@@ -1251,7 +1259,7 @@ static int ps_read (void)
 
        for (ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next)
                ps_submit_proc_list (ps_ptr);
-#endif /* HAVE_LIBKVM */
+#endif /* HAVE_LIBKVM_GETPROCS */
 
        return (0);
 } /* int ps_read */