From 31604b175ea62f9af1b0e36a1f32a77ba0712808 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Tue, 19 Aug 2008 09:34:08 +0200 Subject: [PATCH] build system: Check for `kvm_getprocs'. Link the processes plugin with the `kvm' library if it provides this symbol. --- configure.in | 8 ++++++++ src/Makefile.am | 4 ++++ src/processes.c | 20 ++++++++++++++------ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/configure.in b/configure.in index 4a7fdfb2..02e06fe6 100644 --- a/configure.in +++ b/configure.in @@ -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 diff --git a/src/Makefile.am b/src/Makefile.am index 8d8845ed..789f7f8a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -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 diff --git a/src/processes.c b/src/processes.c index 7531a6ae..257f5bb7 100644 --- a/src/processes.c +++ b/src/processes.c @@ -84,14 +84,14 @@ # endif /* #endif KERNEL_LINUX */ -#elif HAVE_KVM_H +#elif HAVE_LIBKVM_GETPROCS # include # include # include # if HAVE_SYS_SYSCTL_H # include # 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 */ -- 2.11.0