Merge branch 'collectd-4.5' into collectd-4.6
authorFlorian Forster <octo@huhu.verplant.org>
Wed, 6 May 2009 14:37:18 +0000 (16:37 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Wed, 6 May 2009 14:37:18 +0000 (16:37 +0200)
Conflicts:

src/Makefile.am

1  2 
configure.in
src/Makefile.am

diff --combined configure.in
@@@ -70,10 -70,6 +70,10 @@@ the
        CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
  fi
  
 +# Where to install .pc files.
 +pkgconfigdir="${libdir}/pkgconfig"
 +AC_SUBST(pkgconfigdir)
 +
  #
  # Checks for header files.
  #
@@@ -404,7 -400,7 +404,7 @@@ AC_HEADER_TIM
  # Checks for library functions.
  #
  AC_PROG_GCC_TRADITIONAL
 -AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog)
 +AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog sysconf)
  
  AC_FUNC_STRERROR_R
  
@@@ -480,7 -476,6 +480,7 @@@ nanosleep_needs_rt="no
  AC_CHECK_FUNCS(nanosleep, [], AC_CHECK_LIB(rt, nanosleep, [nanosleep_needs_rt="yes"], AC_MSG_ERROR(cannot find nanosleep)))
  AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes")
  
 +AC_CHECK_FUNCS(sysctl, [have_sysctl="yes"], [have_sysctl="no"])
  AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"])
  AC_CHECK_FUNCS(host_statistics, [have_host_statistics="yes"], [have_host_statistics="no"])
  AC_CHECK_FUNCS(processor_info, [have_processor_info="yes"], [have_processor_info="no"])
@@@ -491,7 -486,6 +491,7 @@@ AC_CHECK_FUNCS(getifaddrs, [have_getifa
  AC_CHECK_FUNCS(syslog, [have_syslog="yes"], [have_syslog="no"])
  AC_CHECK_FUNCS(getutent, [have_getutent="yes"], [have_getutent="no"])
  AC_CHECK_FUNCS(getutxent, [have_getutxent="yes"], [have_getutxent="no"])
 +AC_CHECK_FUNCS(swapctl, [have_swapctl="yes"], [have_swapctl="no"])
  
  # For load module
  AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
@@@ -627,13 -621,8 +627,13 @@@ if test "x$fp_layout_type" = "xunknown"
        [[[[
  #include <stdlib.h>
  #include <stdio.h>
 -#include <stdint.h>
  #include <string.h>
 +#if HAVE_STDINT_H
 +# include <stdint.h>
 +#endif
 +#if HAVE_STDBOOL_H
 +# include <stdbool.h>
 +#endif
        ]]]],
        [[[[
        uint64_t i0;
@@@ -671,13 -660,8 +671,13 @@@ if test "x$fp_layout_type" = "xunknown"
        [[[[
  #include <stdlib.h>
  #include <stdio.h>
 -#include <stdint.h>
  #include <string.h>
 +#if HAVE_STDINT_H
 +# include <stdint.h>
 +#endif
 +#if HAVE_STDBOOL_H
 +# include <stdbool.h>
 +#endif
  #define endianflip(A) ((((uint64_t)(A) & 0xff00000000000000LL) >> 56) | \
                         (((uint64_t)(A) & 0x00ff000000000000LL) >> 40) | \
                         (((uint64_t)(A) & 0x0000ff0000000000LL) >> 24) | \
@@@ -723,13 -707,8 +723,13 @@@ if test "x$fp_layout_type" = "xunknown"
        [[[[
  #include <stdlib.h>
  #include <stdio.h>
 -#include <stdint.h>
  #include <string.h>
 +#if HAVE_STDINT_H
 +# include <stdint.h>
 +#endif
 +#if HAVE_STDBOOL_H
 +# include <stdbool.h>
 +#endif
  #define intswap(A)    ((((uint64_t)(A) & 0xffffffff00000000LL) >> 32) | \
                         (((uint64_t)(A) & 0x00000000ffffffffLL) << 32))
        ]]]],
@@@ -799,7 -778,6 +799,6 @@@ if test "x$have_getmntent" = "xc"; the
                [c_cv_have_one_getmntent],
                AC_COMPILE_IFELSE(
                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
- #include <mntent.h>
  #include "$srcdir/src/utils_mount.h"]],
                                [[
                                 FILE *fh;
                [c_cv_have_two_getmntent],
                AC_COMPILE_IFELSE(
                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
- #include <sys/mnttab.h>
  #include "$srcdir/src/utils_mount.h"]],
                                [[
                                 FILE *fh;
  m4_divert_once([HELP_WITH], [
  collectd additional packages:])
  
 -# AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
 -librrd_cflags=""
 -librrd_ldflags=""
 -librrd_threadsafe="yes"
 -AC_ARG_WITH(rrdtool, [AS_HELP_STRING([--with-rrdtool@<:@=PREFIX@:>@], [Path to rrdtool.])],
 -[     if test "x$withval" != "xno" && test "x$withval" != "xyes"
 -      then
 -              librrd_cflags="-I$withval/include"
 -              librrd_ldflags="-L$withval/lib"
 -              with_rrdtool="yes"
 -      else
 -              with_rrdtool="$withval"
 -      fi
 -], [with_rrdtool="yes"])
 -if test "x$with_rrdtool" = "xyes"
 -then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      SAVE_LDFLAGS="$LDFLAGS"
 -
 -      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 -      LDFLAGS="$LDFLAGS $librrd_ldflags"
 -
 -      AC_CHECK_HEADERS(rrd.h,, [with_rrdtool="no (rrd.h not found)"])
 -
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 -      LDFLAGS="$SAVE_LDFLAGS"
 -fi
 -if test "x$with_rrdtool" = "xyes"
 -then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      SAVE_LDFLAGS="$LDFLAGS"
 -
 -      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 -      LDFLAGS="$LDFLAGS $librrd_ldflags"
 -
 -      AC_CHECK_LIB(rrd_th, rrd_update_r,
 -      [with_rrdtool="yes"
 -       librrd_ldflags="$librrd_ldflags -lrrd_th -lm"
 -      ],
 -      [librrd_threadsafe="no"
 -       AC_CHECK_LIB(rrd, rrd_update,
 -       [with_rrdtool="yes"
 -        librrd_ldflags="$librrd_ldflags -lrrd -lm"
 -       ],
 -       [with_rrdtool="no (symbol 'rrd_update' not found)"],
 -       [-lm])
 -      ],
 -      [-lm])
 -
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 -      LDFLAGS="$SAVE_LDFLAGS"
 -fi
 -if test "x$with_rrdtool" = "xyes"
 -then
 -      BUILD_WITH_LIBRRD_CFLAGS="$librrd_cflags"
 -      BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags"
 -      AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS)
 -fi
 -if test "x$librrd_threadsafe" = "xyes"
 -then
 -      AC_DEFINE(HAVE_THREADSAFE_LIBRRD, 1, [Define to 1 if you have the threadsafe rrd library (-lrrd_th).])
 -fi
 -
 -AC_ARG_WITH(libpthread, [AS_HELP_STRING([--with-libpthread=@<:@=PREFIX@:>@], [Path to libpthread.])],
 -[     if test "x$withval" != "xno" \
 -              && test "x$withval" != "xyes"
 -      then
 -              LDFLAGS="$LDFLAGS -L$withval/lib"
 -              CPPFLAGS="$CPPFLAGS -I$withval/include"
 -              with_libpthread="yes"
 -      else
 -              if test "x$withval" = "xno"
 -              then
 -                      with_libpthread="no (disabled)"
 -              fi
 -      fi
 -], [with_libpthread="yes"])
 -if test "x$with_libpthread" = "xyes"
 -then
 -      AC_CHECK_LIB(pthread, pthread_create, [with_libpthread="yes"], [with_libpthread="no (libpthread not found)"], [])
 -fi
 -if test "x$with_libpthread" = "xyes"
 -then
 -      AC_CHECK_HEADERS(pthread.h,, [with_libpthread="no (pthread.h not found)"])
 -fi
 -if test "x$with_libpthread" = "xyes"
 -then
 -      collect_pthread=1
 -else
 -      collect_pthread=0
 -fi
 -AC_DEFINE_UNQUOTED(HAVE_LIBPTHREAD, [$collect_pthread],
 -      [Wether or not to use pthread (POSIX threads) library])
 -AM_CONDITIONAL(BUILD_WITH_LIBPTHREAD, test "x$with_libpthread" = "xyes")
 -
  if test "x$ac_system" = "xSolaris"
  then
        with_kstat="yes"
  AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes")
  AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes")
  
 -### BEGIN of check for libcurl ###
 +with_libiokit="no"
 +AC_CHECK_LIB(IOKit, IOServiceGetMatchingServices,
 +[
 +      with_libiokit="yes"
 +], 
 +[
 +      with_libiokit="no"
 +])
 +AM_CONDITIONAL(BUILD_WITH_LIBIOKIT, test "x$with_libiokit" = "xyes")
 +
 +with_libkvm="no"
 +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)])
 +      with_libkvm="yes"
 +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
 +      AC_DEFINE(HAVE_LIBKVM_GETSWAPINFO, 1,
 +                [Define to 1 if you have the 'kvm' library with the 'kvm_getswapinfo' symbol (-lkvm)])
 +      with_libkvm="yes"
 +fi
 +AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETSWAPINFO, test "x$with_kvm_getswapinfo" = "xyes")
 +
 +AC_CHECK_LIB(kvm, kvm_nlist, [with_kvm_nlist="yes"], [with_kvm_nlist="no"])
 +if test "x$with_kvm_nlist" = "xyes"
 +then
 +      AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
 +                [Define to 1 if you have the 'kvm' library with the 'kvm_nlist' symbol (-lkvm)])
 +      with_libkvm="yes"
 +fi
 +AM_CONDITIONAL(BUILD_WITH_LIBKVM_NLIST, test "x$with_kvm_nlist" = "xyes")
 +
 +AC_CHECK_LIB(kvm, kvm_openfiles, [with_kvm_openfiles="yes"], [with_kvm_openfiles="no"])
 +if test "x$with_kvm_openfiles" = "xyes"
 +then
 +      AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
 +                [Define to 1 if you have the 'kvm' library with the 'kvm_openfiles' symbol (-lkvm)])
 +      with_libkvm="yes"
 +fi
 +AM_CONDITIONAL(BUILD_WITH_LIBKVM_OPENFILES, test "x$with_kvm_openfiles" = "xyes")
 +
 +# --with-libcurl {{{
  with_curl_config="curl-config"
  with_curl_cflags=""
  with_curl_libs=""
        AC_SUBST(BUILD_WITH_LIBCURL_LIBS)
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes")
 -### END of check for libcurl ###
 -
 -with_libiokit="no"
 -AC_CHECK_LIB(IOKit, IOServiceGetMatchingServices,
 -[
 -      with_libiokit="yes"
 -], 
 -[
 -      with_libiokit="no"
 -])
 -AM_CONDITIONAL(BUILD_WITH_LIBIOKIT, test "x$with_libiokit" = "xyes")
 +# }}}
  
 -with_libstatgrab_cflags=""
 -with_libstatgrab_ldflags=""
 -AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])],
 +# --with-libdbi {{{
 +with_libdbi_cppflags=""
 +with_libdbi_ldflags=""
 +AC_ARG_WITH(libdbi, [AS_HELP_STRING([--with-libdbi@<:@=PREFIX@:>@], [Path to libdbi.])],
  [
 -      if test "x$withval" != "xno" \
 -              && test "x$withval" != "xyes"
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
        then
 -              with_libstatgrab_cflags="-I$withval/include"
 -              with_libstatgrab_ldflags="-L$withval/lib"
 -              with_libstatgrab="yes"
 +              with_libdbi_cppflags="-I$withval/include"
 +              with_libdbi_ldflags="-L$withval/lib"
 +              with_libdbi="yes"
        else
 -              with_libstatgrab="$withval"
 +              with_libdbi="$withval"
        fi
  ],
  [
 -      if test "x$ac_system" = "xunknown"
 -      then
 -              with_libstatgrab="yes"
 -      else
 -              with_libstatgrab="no"
 -      fi
 +      with_libdbi="yes"
  ])
 -with_libstatgrab_pkg_config="yes"
 -if test "x$with_libstatgrab" = "xyes" \
 -  && test "x$PKG_CONFIG" != "x"
 +if test "x$with_libdbi" = "xyes"
  then
 -  AC_MSG_CHECKING([pkg-config for libstatgrab])
 -  temp_result="found"
 -  $PKG_CONFIG --exists libstatgrab 2>/dev/null
 -  if test "$?" != "0"
 -  then
 -    with_libstatgrab_pkg_config="no"
 -    temp_result="not found"
 -  fi
 -  AC_MSG_RESULT([$temp_result])
 -else
 -  AC_MSG_NOTICE([pkg-config not available, trying to guess flags for the statgrab library.])
 -  with_libstatgrab_pkg_config="no"
 -  with_libstatgrab_ldflags="$with_libstatgrab_ldflags -lstatgrab"
 -fi
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libdbi_cppflags"
  
 -if test "x$with_libstatgrab" = "xyes" \
 -  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 -  && test "x$with_libstatgrab_cflags" = "x"
 -then
 -  AC_MSG_CHECKING([for libstatgrab CFLAGS])
 -  temp_result="`$PKG_CONFIG --cflags libstatgrab`"
 -  if test "$?" = "0"
 -  then
 -    with_libstatgrab_cflags="$temp_result"
 -  else
 -    with_libstatgrab="no ($PKG_CONFIG --cflags libstatgrab failed)"
 -    temp_result="$PKG_CONFIG --cflags libstatgrab failed"
 -  fi
 -  AC_MSG_RESULT([$temp_result])
 -fi
 +      AC_CHECK_HEADERS(dbi/dbi.h, [with_libdbi="yes"], [with_libdbi="no (dbi/dbi.h not found)"])
  
 -if test "x$with_libstatgrab" = "xyes" \
 -  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 -  && test "x$with_libstatgrab_ldflags" = "x"
 -then
 -  AC_MSG_CHECKING([for libstatgrab LDFLAGS])
 -  temp_result="`$PKG_CONFIG --libs libstatgrab`"
 -  if test "$?" = "0"
 -  then
 -    with_libstatgrab_ldflags="$temp_result"
 -  else
 -    with_libstatgrab="no ($PKG_CONFIG --libs libstatgrab failed)"
 -    temp_result="$PKG_CONFIG --libs libstatgrab failed"
 -  fi
 -  AC_MSG_RESULT([$temp_result])
 +      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -
 -if test "x$with_libstatgrab" = "xyes"
 +if test "x$with_libdbi" = "xyes"
  then
 -  SAVE_CPPFLAGS="$CPPFLAGS"
 -  CPPFLAGS="$CPPFLAGS $with_libstatgrab_cflags"
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      SAVE_LDFLAGS="$LDFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libdbi_cppflags"
 +      LDFLAGS="$LDFLAGS $with_libdbi_ldflags"
  
 -  AC_CHECK_HEADERS(statgrab.h,
 -                 [with_libstatgrab="yes"],
 -                 [with_libstatgrab="no (statgrab.h not found)"])
 +      AC_CHECK_LIB(dbi, dbi_initialize, [with_libdbi="yes"], [with_libdbi="no (Symbol 'dbi_initialize' not found)"])
  
 -  CPPFLAGS="$SAVE_CPPFLAGS"
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
  fi
 -
 -if test "x$with_libstatgrab" = "xyes"
 +if test "x$with_libdbi" = "xyes"
  then
 -  SAVE_CFLAGS="$CFLAGS"
 -  SAVE_LDFLAGS="$LDFLAGS"
 -
 -  CFLAGS="$CFLAGS $with_libstatgrab_cflags"
 -  LDFLAGS="$LDFLAGS $with_libstatgrab_ldflags"
 -
 -  AC_CHECK_LIB(statgrab, sg_init,
 -             [with_libstatgrab="yes"],
 -             [with_libstatgrab="no (symbol sg_init not found)"])
 -
 -  CFLAGS="$SAVE_CFLAGS"
 -  LDFLAGS="$SAVE_LDFLAGS"
 +      BUILD_WITH_LIBDBI_CPPFLAGS="$with_libdbi_cppflags"
 +      BUILD_WITH_LIBDBI_LDFLAGS="$with_libdbi_ldflags"
 +      BUILD_WITH_LIBDBI_LIBS="-ldbi"
 +      AC_SUBST(BUILD_WITH_LIBDBI_CPPFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBDBI_LDFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBDBI_LIBS)
  fi
 +AM_CONDITIONAL(BUILD_WITH_LIBDBI, test "x$with_libdbi" = "xyes")
 +# }}}
  
 -AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes")
 -if test "x$with_libstatgrab" = "xyes"
 +# --with-libesmtp {{{
 +AC_ARG_WITH(libesmtp, [AS_HELP_STRING([--with-libesmtp@<:@=PREFIX@:>@], [Path to libesmtp.])],
 +[
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +      then
 +              LDFLAGS="$LDFLAGS -L$withval/lib"
 +              CPPFLAGS="$CPPFLAGS -I$withval/include -D_THREAD_SAFE"
 +              with_libesmtp="yes"
 +      else
 +              with_libesmtp="$withval"
 +      fi
 +],
 +[
 +      with_libesmtp="yes"
 +])
 +if test "x$with_libesmtp" = "xyes"
  then
 -  AC_DEFINE(HAVE_LIBSTATGRAB, 1, [Define to 1 if you have the 'statgrab' library (-lstatgrab)])
 -  BUILD_WITH_LIBSTATGRAB_CFLAGS="$with_libstatgrab_cflags"
 -  BUILD_WITH_LIBSTATGRAB_LDFLAGS="$with_libstatgrab_ldflags"
 -  AC_SUBST(BUILD_WITH_LIBSTATGRAB_CFLAGS)
 -  AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
 +      AC_CHECK_LIB(esmtp, smtp_create_session,
 +      [
 +              AC_DEFINE(HAVE_LIBESMTP, 1, [Define to 1 if you have the esmtp library (-lesmtp).])
 +      ], [with_libesmtp="no (libesmtp not found)"])
  fi
 -
 -with_libkvm="no"
 -AC_CHECK_LIB(kvm, kvm_getprocs, [with_kvm_getprocs="yes"], [with_kvm_getprocs="no"])
 -if test "x$with_kvm_getprocs" = "xyes"
 +if test "x$with_libesmtp" = "xyes"
  then
 -      AC_DEFINE(HAVE_LIBKVM_GETPROCS, 1,
 -                [Define to 1 if you have the 'kvm' library with the 'kvm_getprocs' symbol (-lkvm)])
 -      with_libkvm="yes"
 -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
 -      AC_DEFINE(HAVE_LIBKVM_GETSWAPINFO, 1,
 -                [Define to 1 if you have the 'kvm' library with the 'kvm_getswapinfo' symbol (-lkvm)])
 -      with_libkvm="yes"
 -fi
 -AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETSWAPINFO, test "x$with_kvm_getswapinfo" = "xyes")
 -
 -AC_CHECK_LIB(kvm, kvm_nlist, [with_kvm_nlist="yes"], [with_kvm_nlist="no"])
 -if test "x$with_kvm_nlist" = "xyes"
 -then
 -      AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
 -                [Define to 1 if you have the 'kvm' library with the 'kvm_nlist' symbol (-lkvm)])
 -      with_libkvm="yes"
 +      AC_CHECK_HEADERS(libesmtp.h,
 +      [
 +              AC_DEFINE(HAVE_LIBESMTP_H, 1, [Define to 1 if you have the <libesmtp.h> header file.])
 +      ], [with_libesmtp="no (libesmtp.h not found)"])
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBKVM_NLIST, test "x$with_kvm_nlist" = "xyes")
 -
 -AC_CHECK_LIB(kvm, kvm_openfiles, [with_kvm_openfiles="yes"], [with_kvm_openfiles="no"])
 -if test "x$with_kvm_openfiles" = "xyes"
 +if test "x$with_libesmtp" = "xyes"
  then
 -      AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
 -                [Define to 1 if you have the 'kvm' library with the 'kvm_openfiles' symbol (-lkvm)])
 -      with_libkvm="yes"
 +      collect_libesmtp=1
 +else
 +      collect_libesmtp=0
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBKVM_OPENFILES, test "x$with_kvm_openfiles" = "xyes")
 +AC_DEFINE_UNQUOTED(COLLECT_LIBESMTP, [$collect_libesmtp],
 +      [Wether or not to use the esmtp library])
 +AM_CONDITIONAL(BUILD_WITH_LIBESMTP, test "x$with_libesmtp" = "xyes")
 +# }}}
  
 -with_sensors_cflags=""
 -with_sensors_ldflags=""
 -AC_ARG_WITH(lm-sensors, [AS_HELP_STRING([--with-lm-sensors@<:@=PREFIX@:>@], [Path to lm_sensors.])],
 +# --with-libiptc {{{
 +with_own_libiptc="no"
 +AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
  [
 -      if test "x$withval" = "xno"
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
        then
 -              with_lm_sensors="no"
 +              LDFLAGS="$LDFLAGS -L$withval/lib"
 +              CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              with_libiptc="yes"
        else
 -              with_lm_sensors="yes"
 -              if test "x$withval" != "xyes"
 -              then
 -                      with_sensors_cflags="-I$withval/include"
 -                      with_sensors_ldflags="-L$withval/lib"
 -                      with_lm_sensors="yes"
 -              fi
 +              with_libiptc="$withval"
        fi
  ],
  [
        if test "x$ac_system" = "xLinux"
        then
 -              with_lm_sensors="yes"
 +              with_libiptc="yes"
        else
 -              with_lm_sensors="no (Linux only library)"
 +              with_libiptc="no (Linux only)"
        fi
  ])
 -if test "x$with_lm_sensors" = "xyes"
 +if test "x$with_libiptc" = "xyes"
  then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
 -
 -#     AC_CHECK_HEADERS(sensors/sensors.h,
 -#     [
 -#             AC_DEFINE(HAVE_SENSORS_SENSORS_H, 1, [Define to 1 if you have the <sensors/sensors.h> header file.])
 -#     ],
 -#     [with_lm_sensors="no (sensors/sensors.h not found)"])
 -      AC_CHECK_HEADERS(sensors/sensors.h, [], [with_lm_sensors="no (sensors/sensors.h not found)"])
 -
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 +      AC_CHECK_LIB(iptc, iptc_init,
 +      [
 +              AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).])
 +      ],
 +      [
 +              with_libiptc="yes"
 +              with_own_libiptc="yes"
 +      ])
  fi
 -if test "x$with_lm_sensors" = "xyes"
 +if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" != "xyes"
  then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      SAVE_LDFLAGS="$LDFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
 -      LDFLAGS="$LDFLAGS $with_sensors_ldflags"
 +      AC_CHECK_HEADERS(libiptc/libiptc.h,
 +      [
 +              AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the <libiptc/libiptc.h> header file.])
 +      ],
 +      [
 +              with_libiptc="yes"
 +              with_own_libiptc="yes"
 +      ])
 +fi
 +if test "x$with_libiptc" = "xyes"
 +then
 +      SAVE_CFLAGS=$CFLAGS
 +      CFLAGS="$CFLAGS $KERNEL_CFLAGS"
  
 -      AC_CHECK_LIB(sensors, sensors_init,
 +      AC_CHECK_HEADERS(linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h, [],
        [
 -              AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
 +              with_libiptc="no (Linux iptables headers not found - check KERNEL_DIR)"
 +              with_own_libiptc="no"
        ],
 -      [with_lm_sensors="no (libsensors not found)"])
 +      [
 +#include "$srcdir/src/libiptc/ipt_kernel_headers.h"
 +      ])
  
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 -      LDFLAGS="$SAVE_LDFLAGS"
 +      CFLAGS=$SAVE_CFLAGS
  fi
 -if test "x$with_lm_sensors" = "xyes"
 +AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
 +AM_CONDITIONAL(BUILD_WITH_OWN_LIBIPTC, test "x$with_own_libiptc" = "xyes")
 +if test "x$with_own_libiptc" = "xyes"
  then
 -      BUILD_WITH_LIBSENSORS_CFLAGS="$with_sensors_cflags"
 -      BUILD_WITH_LIBSENSORS_LDFLAGS="$with_sensors_ldflags"
 -      AC_SUBST(BUILD_WITH_LIBSENSORS_CFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBSENSORS_LDFLAGS)
 +      AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.])
  fi
 -AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_lm_sensors" = "xyes")
 +# }}}
  
 +# --with-libmysql {{{
  with_mysql_config="mysql_config"
  with_mysql_cflags=""
  with_mysql_libs=""
        AC_SUBST(BUILD_WITH_LIBMYSQL_LIBS)
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBMYSQL, test "x$with_libmysql" = "xyes")
 +# }}}
  
 -with_own_liboconfig="no"
 -liboconfig_LDFLAGS="$LDFLAGS"
 -liboconfig_CPPFLAGS="$CPPFLAGS"
 -AC_ARG_WITH(liboconfig, [AS_HELP_STRING([--with-liboconfig@<:@=PREFIX@:>@], [Path to liboconfig.])],
 +# --with-libnetlink {{{
 +with_libnetlink_cflags=""
 +with_libnetlink_libs="-lnetlink"
 +AC_ARG_WITH(libnetlink, [AS_HELP_STRING([--with-libnetlink@<:@=PREFIX@:>@], [Path to libnetlink.])],
  [
 -      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 -      then
 -              if test -d "$withval/lib"
 -              then
 -                      liboconfig_LDFLAGS="$LDFLAGS -L$withval/lib"
 -              fi
 -              if test -d "$withval/include"
 -              then
 -                      liboconfig_CPPFLAGS="$CPPFLAGS -I$withval/include"
 -              fi
 -      fi
 -      if test "x$withval" = "xno"
 -      then
 -              AC_MSG_ERROR("liboconfig is required")
 -      fi
 + echo "libnetlink: withval = $withval"
 + if test "x$withval" = "xyes"
 + then
 +       with_libnetlink="yes"
 + else if test "x$withval" = "xno"
 + then
 +       with_libnetlink="no"
 + else
 +       if test -d "$withval/include"
 +       then
 +               with_libnetlink_cflags="-I$withval/include"
 +               with_libnetlink_libs="-L$withval/lib -lnetlink"
 +               with_libnetlink="yes"
 +       else
 +               AC_MSG_ERROR("no such directory: $withval/include")
 +       fi
 + fi; fi
  ],
  [
 -      with_liboconfig="yes"
 + if test "x$ac_system" = "xLinux"
 + then
 +       with_libnetlink="yes"
 + else
 +       with_libnetlink="no (Linux only library)"
 + fi
  ])
 +if test "x$with_libnetlink" = "xyes"
 +then
 +      SAVE_CFLAGS=$CFLAGS
 +      CFLAGS="$CFLAGS $with_libnetlink_cflags"
  
 -save_LDFLAGS="$LDFLAGS"
 -save_CPPFLAGS="$CPPFLAGS"
 -LDFLAGS="$liboconfig_LDFLAGS"
 -CPPFLAGS="$liboconfig_CPPFLAGS"
 -AC_CHECK_LIB(oconfig, oconfig_parse_fh,
 -[
 -      with_liboconfig="yes"
 -      with_own_liboconfig="no"
 -],
 -[
 -      with_liboconfig="yes"
 -      with_own_liboconfig="yes"
 -      LDFLAGS="$save_LDFLAGS"
 -      CPPFLAGS="$save_CPPFLAGS"
 -])
 +      with_libnetlink="no (libnetlink.h not found)"
  
 -AM_CONDITIONAL(BUILD_WITH_OWN_LIBOCONFIG, test "x$with_own_liboconfig" = "xyes")
 -if test "x$with_own_liboconfig" = "xyes"
 +      AC_CHECK_HEADERS(libnetlink.h iproute/libnetlink.h linux/libnetlink.h,
 +      [
 +       with_libnetlink="yes"
 +       break
 +      ], [],
 +[#include <stdio.h>
 +#include <sys/types.h>
 +#include <asm/types.h>
 +#include <sys/socket.h>
 +#include <linux/netlink.h>
 +#include <linux/rtnetlink.h>])
 +      AC_CHECK_HEADERS(linux/gen_stats.h linux/pkt_sched.h, [], [],
 +[#include <stdio.h>
 +#include <sys/types.h>
 +#include <asm/types.h>
 +#include <sys/socket.h>])
 +
 +      AC_COMPILE_IFELSE(
 +[#include <stdio.h>
 +#include <sys/types.h>
 +#include <asm/types.h>
 +#include <sys/socket.h>
 +#include <linux/netlink.h>
 +#include <linux/rtnetlink.h>
 +
 +int main (void)
 +{
 +      int retval = TCA_STATS2;
 +      return (retval);
 +}],
 +      [AC_DEFINE([HAVE_TCA_STATS2], 1, [True if the enum-member TCA_STATS2 exists])]
 +      []);
 +
 +      AC_COMPILE_IFELSE(
 +[#include <stdio.h>
 +#include <sys/types.h>
 +#include <asm/types.h>
 +#include <sys/socket.h>
 +#include <linux/netlink.h>
 +#include <linux/rtnetlink.h>
 +
 +int main (void)
 +{
 +      int retval = TCA_STATS;
 +      return (retval);
 +}],
 +      [AC_DEFINE([HAVE_TCA_STATS], 1, [True if the enum-member TCA_STATS exists])]
 +      []);
 +
 +      CFLAGS="$SAVE_CFLAGS"
 +fi
 +if test "x$with_libnetlink" = "xyes"
  then
 -      with_liboconfig="yes (shipped version)"
 +      AC_CHECK_LIB(netlink, rtnl_open,
 +                   [with_libnetlink="yes"],
 +                   [with_libnetlink="no (symbol 'rtnl_open' not found)"],
 +                   [$with_libnetlink_libs])
 +fi
 +if test "x$with_libnetlink" = "xyes"
 +then
 +      BUILD_WITH_LIBNETLINK_CFLAGS="$with_libnetlink_cflags"
 +      BUILD_WITH_LIBNETLINK_LIBS="$with_libnetlink_libs"
 +      AC_SUBST(BUILD_WITH_LIBNETLINK_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBNETLINK_LIBS)
  fi
 +AM_CONDITIONAL(BUILD_WITH_LIBNETLINK, test "x$with_libnetlink" = "xyes")
 +# }}}
  
 -#with_liboping="yes"
 -with_own_liboping="no"
 -liboping_LDFLAGS="$LDFLAGS"
 -liboping_CPPFLAGS="$CPPFLAGS"
 -AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to liboping.])],
 +# --with-libnetsnmp {{{
 +with_snmp_config="net-snmp-config"
 +with_snmp_cflags=""
 +with_snmp_libs=""
 +AC_ARG_WITH(libnetsnmp, [AS_HELP_STRING([--with-libnetsnmp@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
  [
 -      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +      if test "x$withval" = "xno"
        then
 -              if test -d "$withval/lib"
 +              with_libnetsnmp="no"
 +      else if test "x$withval" = "xyes"
 +      then
 +              with_libnetsnmp="yes"
 +      else
 +              if test -x "$withval"
 +              then
 +                      with_snmp_config="$withval"
 +                      with_libnetsnmp="yes"
 +              else
 +                      with_snmp_config="$withval/bin/net-snmp-config"
 +                      with_libnetsnmp="yes"
 +              fi
 +      fi; fi
 +],
 +[with_libnetsnmp="yes"])
 +if test "x$with_libnetsnmp" = "xyes"
 +then
 +      with_snmp_cflags=`$with_snmp_config --cflags 2>/dev/null`
 +      snmp_config_status=$?
 +
 +      if test $snmp_config_status -ne 0
 +      then
 +              with_libnetsnmp="no ($with_snmp_config failed)"
 +      else
 +              SAVE_CPPFLAGS="$CPPFLAGS"
 +              CPPFLAGS="$CPPFLAGS $with_snmp_cflags"
 +              
 +              AC_CHECK_HEADERS(net-snmp/net-snmp-config.h, [], [with_libnetsnmp="no (net-snmp/net-snmp-config.h not found)"])
 +
 +              CPPFLAGS="$SAVE_CPPFLAGS"
 +      fi
 +fi
 +if test "x$with_libnetsnmp" = "xyes"
 +then
 +      with_snmp_libs=`$with_snmp_config --libs 2>/dev/null`
 +      snmp_config_status=$?
 +
 +      if test $snmp_config_status -ne 0
 +      then
 +              with_libnetsnmp="no ($with_snmp_config failed)"
 +      else
 +              AC_CHECK_LIB(netsnmp, init_snmp,
 +              [with_libnetsnmp="yes"],
 +              [with_libnetsnmp="no (libnetsnmp not found)"],
 +              [$with_snmp_libs])
 +      fi
 +fi
 +if test "x$with_libnetsnmp" = "xyes"
 +then
 +      BUILD_WITH_LIBSNMP_CFLAGS="$with_snmp_cflags"
 +      BUILD_WITH_LIBSNMP_LIBS="$with_snmp_libs"
 +      AC_SUBST(BUILD_WITH_LIBSNMP_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBSNMP_LIBS)
 +fi
 +AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes")
 +# }}}
 +
 +# --with-liboconfig {{{
 +with_own_liboconfig="no"
 +liboconfig_LDFLAGS="$LDFLAGS"
 +liboconfig_CPPFLAGS="$CPPFLAGS"
 +AC_ARG_WITH(liboconfig, [AS_HELP_STRING([--with-liboconfig@<:@=PREFIX@:>@], [Path to liboconfig.])],
 +[
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +      then
 +              if test -d "$withval/lib"
 +              then
 +                      liboconfig_LDFLAGS="$LDFLAGS -L$withval/lib"
 +              fi
 +              if test -d "$withval/include"
 +              then
 +                      liboconfig_CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              fi
 +      fi
 +      if test "x$withval" = "xno"
 +      then
 +              AC_MSG_ERROR("liboconfig is required")
 +      fi
 +],
 +[
 +      with_liboconfig="yes"
 +])
 +
 +save_LDFLAGS="$LDFLAGS"
 +save_CPPFLAGS="$CPPFLAGS"
 +LDFLAGS="$liboconfig_LDFLAGS"
 +CPPFLAGS="$liboconfig_CPPFLAGS"
 +AC_CHECK_LIB(oconfig, oconfig_parse_fh,
 +[
 +      with_liboconfig="yes"
 +      with_own_liboconfig="no"
 +],
 +[
 +      with_liboconfig="yes"
 +      with_own_liboconfig="yes"
 +      LDFLAGS="$save_LDFLAGS"
 +      CPPFLAGS="$save_CPPFLAGS"
 +])
 +
 +AM_CONDITIONAL(BUILD_WITH_OWN_LIBOCONFIG, test "x$with_own_liboconfig" = "xyes")
 +if test "x$with_own_liboconfig" = "xyes"
 +then
 +      with_liboconfig="yes (shipped version)"
 +fi
 +# }}}
 +
 +# --with-liboping {{{
 +with_own_liboping="no"
 +liboping_LDFLAGS="$LDFLAGS"
 +liboping_CPPFLAGS="$CPPFLAGS"
 +AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to liboping.])],
 +[
 +      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +      then
 +              if test -d "$withval/lib"
                then
                        liboping_LDFLAGS="$LDFLAGS -L$withval/lib"
                fi
  fi
  AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes")
  AM_CONDITIONAL(BUILD_WITH_OWN_LIBOPING, test "x$with_own_liboping" = "xyes")
 +# }}}
 +
 +# --with-oracle {{{
 +with_oracle_cppflags=""
 +with_oracle_libs=""
 +AC_ARG_WITH(oracle, [AS_HELP_STRING([--with-oracle@<:@=ORACLE_HOME@:>@], [Path to Oracle.])],
 +[
 +      if test "x$withval" = "xyes"
 +      then
 +              if test "x$ORACLE_HOME" = "x"
 +              then
 +                      AC_MSG_WARN([Use of the Oracle library has been forced, but the environment variable ORACLE_HOME is not set.])
 +              fi
 +              with_oracle="yes"
 +      else if test "x$withval" = "xno"
 +      then
 +              with_oracle="no"
 +      else
 +              with_oracle="yes"
 +              ORACLE_HOME="$withval"
 +      fi; fi
 +],
 +[
 +      if test "x$ORACLE_HOME" = "x"
 +      then
 +              with_oracle="no (ORACLE_HOME is not set)"
 +      else
 +              with_oracle="yes"
 +      fi
 +])
 +if test "x$ORACLE_HOME" != "x"
 +then
 +      with_oracle_cppflags="-I$ORACLE_HOME/rdbms/public"
  
 +      if test -e "$ORACLE_HOME/lib/ldflags"
 +      then
 +              with_oracle_libs=`cat "$ORACLE_HOME/lib/ldflags"`
 +      fi
 +      #with_oracle_libs="-L$ORACLE_HOME/lib $with_oracle_libs -lclntsh"
 +      with_oracle_libs="-L$ORACLE_HOME/lib -lclntsh"
 +fi
 +if test "x$with_oracle" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_oracle_cppflags"
 +
 +      AC_CHECK_HEADERS(oci.h, [with_oracle="yes"], [with_oracle="no (oci.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +if test "x$with_oracle" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      SAVE_LDFLAGS="$LDFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_oracle_cppflags"
 +      LDFLAGS="$LDFLAGS $with_oracle_libs"
 +
 +      AC_CHECK_FUNC(OCIEnvCreate, [with_oracle="yes"], [with_oracle="no (Symbol 'OCIEnvCreate' not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
 +fi
 +if test "x$with_oracle" = "xyes"
 +then
 +      BUILD_WITH_ORACLE_CFLAGS="$with_oracle_cppflags"
 +      BUILD_WITH_ORACLE_LIBS="$with_oracle_libs"
 +      AC_SUBST(BUILD_WITH_ORACLE_CFLAGS)
 +      AC_SUBST(BUILD_WITH_ORACLE_LIBS)
 +fi
 +# }}}
 +
 +# --with-libowcapi {{{
  with_libowcapi_cppflags=""
  with_libowcapi_libs="-lowcapi"
  AC_ARG_WITH(libowcapi, [AS_HELP_STRING([--with-libowcapi@<:@=PREFIX@:>@], [Path to libowcapi.])],
@@@ -1752,9 -1596,8 +1750,9 @@@ the
        AC_SUBST(BUILD_WITH_LIBOWCAPI_CPPFLAGS)
        AC_SUBST(BUILD_WITH_LIBOWCAPI_LIBS)
  fi
 +# }}}
  
 -
 +# --with-libpcap {{{
  AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])],
  [
        if test "x$withval" != "xno" && test "x$withval" != "xyes"
  AC_DEFINE_UNQUOTED(COLLECT_LIBPCAP, [$collect_libpcap],
        [Wether or not to use the pcap library])
  AM_CONDITIONAL(BUILD_WITH_LIBPCAP, test "x$with_libpcap" = "xyes")
 +# }}}
  
 -AC_ARG_WITH(libesmtp, [AS_HELP_STRING([--with-libesmtp@<:@=PREFIX@:>@], [Path to libesmtp.])],
 -[
 -      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 -      then
 -              LDFLAGS="$LDFLAGS -L$withval/lib"
 -              CPPFLAGS="$CPPFLAGS -I$withval/include -D_THREAD_SAFE"
 -              with_libesmtp="yes"
 -      else
 -              with_libesmtp="$withval"
 -      fi
 -],
 -[
 -      with_libesmtp="yes"
 -])
 -if test "x$with_libesmtp" = "xyes"
 -then
 -      AC_CHECK_LIB(esmtp, smtp_create_session,
 -      [
 -              AC_DEFINE(HAVE_LIBESMTP, 1, [Define to 1 if you have the esmtp library (-lesmtp).])
 -      ], [with_libesmtp="no (libesmtp not found)"])
 -fi
 -if test "x$with_libesmtp" = "xyes"
 -then
 -      AC_CHECK_HEADERS(libesmtp.h,
 -      [
 -              AC_DEFINE(HAVE_LIBESMTP_H, 1, [Define to 1 if you have the <libesmtp.h> header file.])
 -      ], [with_libesmtp="no (libesmtp.h not found)"])
 -fi
 -if test "x$with_libesmtp" = "xyes"
 -then
 -      collect_libesmtp=1
 -else
 -      collect_libesmtp=0
 -fi
 -AC_DEFINE_UNQUOTED(COLLECT_LIBESMTP, [$collect_libesmtp],
 -      [Wether or not to use the esmtp library])
 -AM_CONDITIONAL(BUILD_WITH_LIBESMTP, test "x$with_libesmtp" = "xyes")
 -
 +# --with-libperl {{{
  perl_interpreter="perl"
  AC_ARG_WITH(libperl, [AS_HELP_STRING([--with-libperl@<:@=PREFIX@:>@], [Path to libperl.])],
  [
        LDFLAGS=$SAVE_LDFLAGS
  fi
  
 -with_own_libiptc="no"
 -AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
 -[
 -      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 -      then
 -              LDFLAGS="$LDFLAGS -L$withval/lib"
 -              CPPFLAGS="$CPPFLAGS -I$withval/include"
 -              with_libiptc="yes"
 -      else
 -              with_libiptc="$withval"
 -      fi
 -],
 -[
 -      if test "x$ac_system" = "xLinux"
 -      then
 -              with_libiptc="yes"
 -      else
 -              with_libiptc="no (Linux only)"
 -      fi
 -])
 -if test "x$with_libiptc" = "xyes"
 -then
 -      AC_CHECK_LIB(iptc, iptc_init,
 -      [
 -              AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).])
 -      ],
 -      [
 -              with_libiptc="yes"
 -              with_own_libiptc="yes"
 -      ])
 -fi
 -if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" != "xyes"
 -then
 -      AC_CHECK_HEADERS(libiptc/libiptc.h,
 -      [
 -              AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the <libiptc/libiptc.h> header file.])
 -      ],
 -      [
 -              with_libiptc="yes"
 -              with_own_libiptc="yes"
 -      ])
 -fi
 -if test "x$with_libiptc" = "xyes"
 +c_cv_have_broken_perl_load_module="no"
 +if test "x$with_libperl" = "xyes"
  then
        SAVE_CFLAGS=$CFLAGS
 -      CFLAGS="$CFLAGS $KERNEL_CFLAGS"
 +      SAVE_LDFLAGS=$LDFLAGS
 +      # trigger an error if Perl_load_module*() uses __attribute__nonnull__(3)
 +      # (see issues #41 and #42)
 +      CFLAGS="$CFLAGS $PERL_CFLAGS -Wall -Werror"
 +      LDFLAGS="$LDFLAGS $PERL_LDFLAGS"
  
 -      AC_CHECK_HEADERS(linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h, [],
 -      [
 -              with_libiptc="no (Linux iptables headers not found - check KERNEL_DIR)"
 -              with_own_libiptc="no"
 -      ],
 -      [
 -#include "$srcdir/src/libiptc/ipt_kernel_headers.h"
 -      ])
 +      AC_CACHE_CHECK([for broken Perl_load_module()],
 +              [c_cv_have_broken_perl_load_module],
 +              AC_LINK_IFELSE(
 +                      AC_LANG_PROGRAM(
 +                      [[
 +#define PERL_NO_GET_CONTEXT
 +#include <EXTERN.h>
 +#include <perl.h>
 +#include <XSUB.h>
 +                      ]],
 +                      [[
 +                       dTHX;
 +                       load_module (PERL_LOADMOD_NOIMPORT,
 +                           newSVpv ("Collectd::Plugin::FooBar", 24),
 +                           Nullsv);
 +                      ]]),
 +                      [c_cv_have_broken_perl_load_module="no"],
 +                      [c_cv_have_broken_perl_load_module="yes"]
 +              )
 +      )
  
        CFLAGS=$SAVE_CFLAGS
 +      LDFLAGS=$SAVE_LDFLAGS
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
 -AM_CONDITIONAL(BUILD_WITH_OWN_LIBIPTC, test "x$with_own_libiptc" = "xyes")
 -if test "x$with_own_libiptc" = "xyes"
 +AM_CONDITIONAL(HAVE_BROKEN_PERL_LOAD_MODULE,
 +              test "x$c_cv_have_broken_perl_load_module" = "xyes")
 +
 +if test "x$with_libperl" = "xyes"
  then
 -      AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.])
 +      SAVE_CFLAGS=$CFLAGS
 +      SAVE_LDFLAGS=$LDFLAGS
 +      CFLAGS="$CFLAGS $PERL_CFLAGS"
 +      LDFLAGS="$LDFLAGS $PERL_LDFLAGS"
 +
 +      AC_CHECK_MEMBER(
 +              [struct mgvtbl.svt_local],
 +              [have_struct_mgvtbl_svt_local="yes"],
 +              [have_struct_mgvtbl_svt_local="no"],
 +              [
 +#include <EXTERN.h>
 +#include <perl.h>
 +#include <XSUB.h>
 +              ])
 +
 +      if test "x$have_struct_mgvtbl_svt_local" = "xyes"
 +      then
 +              AC_DEFINE(HAVE_PERL_STRUCT_MGVTBL_SVT_LOCAL, 1,
 +                                [Define if Perl's struct mgvtbl has member svt_local.])
 +      fi
 +
 +      CFLAGS=$SAVE_CFLAGS
 +      LDFLAGS=$SAVE_LDFLAGS
  fi
 +# }}}
  
 -with_snmp_config="net-snmp-config"
 -with_snmp_cflags=""
 -with_snmp_libs=""
 -AC_ARG_WITH(libnetsnmp, [AS_HELP_STRING([--with-libnetsnmp@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
 +# --with-libpq {{{
 +with_pg_config="pg_config"
 +with_libpq_includedir=""
 +with_libpq_libdir=""
 +with_libpq_cppflags=""
 +with_libpq_ldflags=""
 +AC_ARG_WITH(libpq, [AS_HELP_STRING([--with-libpq@<:@=PREFIX@:>@],
 +      [Path to libpq.])],
  [
        if test "x$withval" = "xno"
        then
 -              with_libnetsnmp="no"
 +              with_libpq="no"
        else if test "x$withval" = "xyes"
        then
 -              with_libnetsnmp="yes"
 +              with_libpq="yes"
        else
 -              if test -x "$withval"
 +              if test -f "$withval" && test -x "$withval";
                then
 -                      with_snmp_config="$withval"
 -                      with_libnetsnmp="yes"
 -              else
 -                      with_snmp_config="$withval/bin/net-snmp-config"
 -                      with_libnetsnmp="yes"
 -              fi
 +                      with_pg_config="$withval"
 +              else if test -x "$withval/bin/pg_config"
 +              then
 +                      with_pg_config="$withval/bin/pg_config"
 +              fi; fi
 +              with_libpq="yes"
        fi; fi
  ],
 -[with_libnetsnmp="yes"])
 -if test "x$with_libnetsnmp" = "xyes"
 +[
 +      with_libpq="yes"
 +])
 +if test "x$with_libpq" = "xyes"
  then
 -      with_snmp_cflags=`$with_snmp_config --cflags 2>/dev/null`
 -      snmp_config_status=$?
 +      with_libpq_includedir=`$with_pg_config --includedir 2> /dev/null`
 +      pg_config_status=$?
  
 -      if test $snmp_config_status -ne 0
 +      if test $pg_config_status -eq 0
        then
 -              with_libnetsnmp="no ($with_snmp_config failed)"
 +              if test -n "$with_libpq_includedir"; then
 +                      for dir in $with_libpq_includedir; do
 +                              with_libpq_cppflags="$with_libpq_cppflags -I$dir"
 +                      done
 +              fi
        else
 -              SAVE_CPPFLAGS="$CPPFLAGS"
 -              CPPFLAGS="$CPPFLAGS $with_snmp_cflags"
 -              
 -              AC_CHECK_HEADERS(net-snmp/net-snmp-config.h, [], [with_libnetsnmp="no (net-snmp/net-snmp-config.h not found)"])
 -
 -              CPPFLAGS="$SAVE_CPPFLAGS"
 +              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
        fi
 +
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libpq_cppflags"
 +
 +      AC_CHECK_HEADERS(libpq-fe.h, [],
 +              [with_libpq="no (libpq-fe.h not found)"], [])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -if test "x$with_libnetsnmp" = "xyes"
 +if test "x$with_libpq" = "xyes"
  then
 -      with_snmp_libs=`$with_snmp_config --libs 2>/dev/null`
 -      snmp_config_status=$?
 +      with_libpq_libdir=`$with_pg_config --libdir 2> /dev/null`
 +      pg_config_status=$?
  
 -      if test $snmp_config_status -ne 0
 +      if test $pg_config_status -eq 0
        then
 -              with_libnetsnmp="no ($with_snmp_config failed)"
 +              if test -n "$with_libpq_libdir"; then
 +                      for dir in $with_libpq_libdir; do
 +                              with_libpq_ldflags="$with_libpq_ldflags -L$dir"
 +                      done
 +              fi
        else
 -              AC_CHECK_LIB(netsnmp, init_snmp,
 -              [with_libnetsnmp="yes"],
 -              [with_libnetsnmp="no (libnetsnmp not found)"],
 -              [$with_snmp_libs])
 +              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
        fi
 +
 +      SAVE_LDFLAGS="$LDFLAGS"
 +      LDFLAGS="$LDFLAGS $with_libpq_ldflags"
 +
 +      AC_CHECK_LIB(pq, PQconnectdb,
 +              [with_libpq="yes"],
 +              [with_libpq="no (symbol 'PQconnectdb' not found)"])
 +
 +      LDFLAGS="$SAVE_LDFLAGS"
  fi
 -if test "x$with_libnetsnmp" = "xyes"
 +if test "x$with_libpq" = "xyes"
  then
 -      BUILD_WITH_LIBSNMP_CFLAGS="$with_snmp_cflags"
 -      BUILD_WITH_LIBSNMP_LIBS="$with_snmp_libs"
 -      AC_SUBST(BUILD_WITH_LIBSNMP_CFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBSNMP_LIBS)
 +      BUILD_WITH_LIBPQ_CPPFLAGS="$with_libpq_cppflags"
 +      BUILD_WITH_LIBPQ_LDFLAGS="$with_libpq_ldflags"
 +      AC_SUBST(BUILD_WITH_LIBPQ_CPPFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBPQ_LDFLAGS)
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes")
 -
 -PKG_CHECK_MODULES([LIBNOTIFY], [libnotify],
 -              [with_libnotify="yes"],
 -              [with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"])
 +AM_CONDITIONAL(BUILD_WITH_LIBPQ, test "x$with_libpq" = "xyes")
 +# }}}
  
 -with_libupsclient_config=""
 -with_libupsclient_cflags=""
 -with_libupsclient_libs=""
 -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"
 +# --with-libpthread {{{
 +AC_ARG_WITH(libpthread, [AS_HELP_STRING([--with-libpthread=@<:@=PREFIX@:>@], [Path to libpthread.])],
 +[     if test "x$withval" != "xno" \
 +              && test "x$withval" != "xyes"
        then
 -              with_libupsclient="use_pkgconfig"
 +              LDFLAGS="$LDFLAGS -L$withval/lib"
 +              CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              with_libpthread="yes"
        else
 -              if test -x "$withval"
 -              then
 -                      with_libupsclient_config="$withval"
 -                      with_libupsclient="use_libupsclient_config"
 -              else if test -x "$withval/bin/libupsclient-config"
 +              if test "x$withval" = "xno"
                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)"
 +                      with_libpthread="no (disabled)"
 +              fi
        fi
 -fi
 -if test "x$with_libupsclient" = "xuse_libupsclient_config"
 +], [with_libpthread="yes"])
 +if test "x$with_libpthread" = "xyes"
  then
 -      with_libupsclient="yes"
 +      AC_CHECK_LIB(pthread, pthread_create, [with_libpthread="yes"], [with_libpthread="no (libpthread not found)"], [])
  fi
  
 -# configure using pkg-config
 -if test "x$with_libupsclient" = "xuse_pkgconfig"
 +if test "x$with_libpthread" = "xyes"
  then
 -      if test "x$PKG_CONFIG" = "x"
 -      then
 -              with_libupsclient="no (Don't have pkg-config)"
 -      fi
 +      AC_CHECK_HEADERS(pthread.h,, [with_libpthread="no (pthread.h not found)"])
  fi
 -if test "x$with_libupsclient" = "xuse_pkgconfig"
 +if test "x$with_libpthread" = "xyes"
  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
 +      collect_pthread=1
 +else
 +      collect_pthread=0
  fi
 -if test "x$with_libupsclient" = "xuse_pkgconfig"
 -then
 -      with_libupsclient_cflags="`$PKG_CONFIG --cflags 'libupsclient'`"
 -      if test $? -ne 0
 -      then
 -              with_libupsclient="no ($PKG_CONFIG failed)"
 -      fi
 -      with_libupsclient_libs="`$PKG_CONFIG --libs 'libupsclient'`"
 -      if test $? -ne 0
 +AC_DEFINE_UNQUOTED(HAVE_LIBPTHREAD, [$collect_pthread],
 +      [Wether or not to use pthread (POSIX threads) library])
 +AM_CONDITIONAL(BUILD_WITH_LIBPTHREAD, test "x$with_libpthread" = "xyes")
 +# }}}
 +
 +# --with-librrd {{{
 +# AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given])
 +librrd_cflags=""
 +librrd_ldflags=""
 +librrd_threadsafe="yes"
 +librrd_rrdc_update="no"
 +AC_ARG_WITH(librrd, [AS_HELP_STRING([--with-librrd@<:@=PREFIX@:>@], [Path to rrdtool.])],
 +[     if test "x$withval" != "xno" && test "x$withval" != "xyes"
        then
 -              with_libupsclient="no ($PKG_CONFIG failed)"
 +              librrd_cflags="-I$withval/include"
 +              librrd_ldflags="-L$withval/lib"
 +              with_librrd="yes"
 +      else
 +              with_librrd="$withval"
        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"
 -      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 -
 -      AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"])
 -
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 -fi
 -if test "x$with_libupsclient" = "xyes"
 +], [with_librrd="yes"])
 +if test "x$with_librrd" = "xyes"
  then
        SAVE_CPPFLAGS="$CPPFLAGS"
        SAVE_LDFLAGS="$LDFLAGS"
  
 -      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 -      LDFLAGS="$LDFLAGS $with_libupsclient_libs"
 +      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 +      LDFLAGS="$LDFLAGS $librrd_ldflags"
  
 -      AC_CHECK_LIB(upsclient, upscli_connect,
 -                   [with_libupsclient="yes"],
 -                   [with_libupsclient="no (symbol upscli_connect not found)"])
 +      AC_CHECK_HEADERS(rrd.h,, [with_librrd="no (rrd.h not found)"])
  
        CPPFLAGS="$SAVE_CPPFLAGS"
        LDFLAGS="$SAVE_LDFLAGS"
  fi
 -if test "x$with_libupsclient" = "xyes"
 +if test "x$with_librrd" = "xyes"
  then
        SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +      SAVE_LDFLAGS="$LDFLAGS"
  
 -      AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [],
 -[#include <stdlib.h>
 -#include <stdio.h>
 -#include <upsclient.h>])
 +      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 +      LDFLAGS="$LDFLAGS $librrd_ldflags"
  
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 -fi
 -if test "x$with_libupsclient" = "xyes"
 +      AC_CHECK_LIB(rrd_th, rrd_update_r,
 +      [with_librrd="yes"
 +       librrd_ldflags="$librrd_ldflags -lrrd_th -lm"
 +      ],
 +      [librrd_threadsafe="no"
 +       AC_CHECK_LIB(rrd, rrd_update,
 +       [with_librrd="yes"
 +        librrd_ldflags="$librrd_ldflags -lrrd -lm"
 +       ],
 +       [with_librrd="no (symbol 'rrd_update' not found)"],
 +       [-lm])
 +      ],
 +      [-lm])
 +
 +      if test "x$librrd_threadsafe" = "xyes"
 +      then
 +              AC_CHECK_LIB(rrd_th, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"])
 +      else
 +              AC_CHECK_LIB(rrd, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"])
 +      fi
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
 +fi
 +if test "x$with_librrd" = "xyes"
  then
 -      BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags"
 -      BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs"
 -      AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
 +      BUILD_WITH_LIBRRD_CFLAGS="$librrd_cflags"
 +      BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags"
 +      AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS)
  fi
 +if test "x$librrd_threadsafe" = "xyes"
 +then
 +      AC_DEFINE(HAVE_THREADSAFE_LIBRRD, 1, [Define to 1 if you have the threadsafe rrd library (-lrrd_th).])
 +fi
 +# }}}
  
 -### BEGIN of check for libxmms ###
 -with_xmms_config="xmms-config"
 -with_xmms_cflags=""
 -with_xmms_libs=""
 -AC_ARG_WITH(libxmms, [AS_HELP_STRING([--with-libxmms@<:@=PREFIX@:>@], [Path to libxmms.])],
 +# --with-libsensors {{{
 +with_sensors_cflags=""
 +with_sensors_ldflags=""
 +AC_ARG_WITH(libsensors, [AS_HELP_STRING([--with-libsensors@<:@=PREFIX@:>@], [Path to lm_sensors.])],
  [
 -      if test "x$withval" != "xno" \
 -              && test "x$withval" != "xyes"
 -      then
 -              if test -f "$withval" && test -x "$withval";
 -              then
 -                      with_xmms_config="$withval"
 -              else if test -x "$withval/bin/xmms-config"
 -              then
 -                      with_xmms_config="$withval/bin/xmms-config"
 -              fi; fi
 -              with_libxmms="yes"
 -      else if test "x$withval" = "xno"
 +      if test "x$withval" = "xno"
        then
 -              with_libxmms="no"
 +              with_libsensors="no"
        else
 -              with_libxmms="yes"
 -      fi; fi
 +              with_libsensors="yes"
 +              if test "x$withval" != "xyes"
 +              then
 +                      with_sensors_cflags="-I$withval/include"
 +                      with_sensors_ldflags="-L$withval/lib"
 +                      with_libsensors="yes"
 +              fi
 +      fi
  ],
  [
 -      with_libxmms="yes"
 -])
 -if test "x$with_libxmms" = "xyes"
 -then
 -      with_xmms_cflags=`$with_xmms_config --cflags 2>/dev/null`
 -      xmms_config_status=$?
 -
 -      if test $xmms_config_status -ne 0
 +      if test "x$ac_system" = "xLinux"
        then
 -              with_libxmms="no"
 +              with_libsensors="yes"
 +      else
 +              with_libsensors="no (Linux only library)"
        fi
 -fi
 -if test "x$with_libxmms" = "xyes"
 +])
 +if test "x$with_libsensors" = "xyes"
  then
 -      with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
 -      xmms_config_status=$?
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
  
 -      if test $xmms_config_status -ne 0
 -      then
 -              with_libxmms="no"
 -      fi
 +#     AC_CHECK_HEADERS(sensors/sensors.h,
 +#     [
 +#             AC_DEFINE(HAVE_SENSORS_SENSORS_H, 1, [Define to 1 if you have the <sensors/sensors.h> header file.])
 +#     ],
 +#     [with_libsensors="no (sensors/sensors.h not found)"])
 +      AC_CHECK_HEADERS(sensors/sensors.h, [], [with_libsensors="no (sensors/sensors.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -if test "x$with_libxmms" = "xyes"
 +if test "x$with_libsensors" = "xyes"
  then
 -      AC_CHECK_LIB(xmms, xmms_remote_get_info,
 -      [
 -              BUILD_WITH_LIBXMMS_CFLAGS="$with_xmms_cflags"
 -              BUILD_WITH_LIBXMMS_LIBS="$with_xmms_libs"
 -              AC_SUBST(BUILD_WITH_LIBXMMS_CFLAGS)
 -              AC_SUBST(BUILD_WITH_LIBXMMS_LIBS)
 -      ],
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      SAVE_LDFLAGS="$LDFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
 +      LDFLAGS="$LDFLAGS $with_sensors_ldflags"
 +
 +      AC_CHECK_LIB(sensors, sensors_init,
        [
 -              with_libxmms="no"
 +              AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
        ],
 -      [$with_xmms_libs])
 +      [with_libsensors="no (libsensors not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
  fi
 -with_libxmms_numeric=0
 -if test "x$with_libxmms" = "xyes"
 +if test "x$with_libsensors" = "xyes"
  then
 -      with_libxmms_numeric=1
 +      BUILD_WITH_LIBSENSORS_CFLAGS="$with_sensors_cflags"
 +      BUILD_WITH_LIBSENSORS_LDFLAGS="$with_sensors_ldflags"
 +      AC_SUBST(BUILD_WITH_LIBSENSORS_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBSENSORS_LDFLAGS)
  fi
 -AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you have the 'xmms' library (-lxmms).])
 -AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes")
 -### END of check for libxmms ###
 +AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_libsensors" = "xyes")
 +# }}}
  
 -with_libnetlink_cflags=""
 -with_libnetlink_libs="-lnetlink"
 -AC_ARG_WITH(libnetlink, [AS_HELP_STRING([--with-libnetlink@<:@=PREFIX@:>@], [Path to libnetlink.])],
 -[
 - echo "libnetlink: withval = $withval"
 - if test "x$withval" = "xyes"
 - then
 -       with_libnetlink="yes"
 - else if test "x$withval" = "xno"
 - then
 -       with_libnetlink="no"
 - else
 -       if test -d "$withval/include"
 -       then
 -               with_libnetlink_cflags="-I$withval/include"
 -               with_libnetlink_libs="-L$withval/lib -lnetlink"
 -               with_libnetlink="yes"
 -       else
 -               AC_MSG_ERROR("no such directory: $withval/include")
 -       fi
 - fi; fi
 -],
 +# --with-libstatgrab {{{
 +with_libstatgrab_cflags=""
 +with_libstatgrab_ldflags=""
 +AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])],
  [
 - if test "x$ac_system" = "xLinux"
 + if test "x$withval" != "xno" \
 +   && test "x$withval" != "xyes"
   then
 -       with_libnetlink="yes"
 +   with_libstatgrab_cflags="-I$withval/include"
 +   with_libstatgrab_ldflags="-L$withval/lib -lstatgrab"
 +   with_libstatgrab="yes"
 +   with_libstatgrab_pkg_config="no"
   else
 -       with_libnetlink="no (Linux only library)"
 +   with_libstatgrab="$withval"
 +   with_libstatgrab_pkg_config="yes"
   fi
 + ],
 +[
 + with_libstatgrab="yes"
 + with_libstatgrab_pkg_config="yes"
  ])
 -if test "x$with_libnetlink" = "xyes"
 -then
 -      SAVE_CFLAGS=$CFLAGS
 -      CFLAGS="$CFLAGS $with_libnetlink_cflags"
 -
 -      with_libnetlink="no (libnetlink.h not found)"
  
 -      AC_CHECK_HEADERS(libnetlink.h iproute/libnetlink.h linux/libnetlink.h,
 -      [
 -       with_libnetlink="yes"
 -       break
 -      ], [],
 -[#include <stdio.h>
 -#include <sys/types.h>
 -#include <asm/types.h>
 -#include <sys/socket.h>
 -#include <linux/netlink.h>
 -#include <linux/rtnetlink.h>])
 -      AC_CHECK_HEADERS(linux/gen_stats.h linux/pkt_sched.h, [], [],
 -[#include <stdio.h>
 -#include <sys/types.h>
 -#include <asm/types.h>
 -#include <sys/socket.h>])
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$with_libstatgrab_pkg_config" = "xyes"
 +then
 +  if test "x$PKG_CONFIG" != "x"
 +  then
 +    AC_MSG_CHECKING([pkg-config for libstatgrab])
 +    temp_result="found"
 +    $PKG_CONFIG --exists libstatgrab 2>/dev/null
 +    if test "$?" != "0"
 +    then
 +      with_libstatgrab_pkg_config="no"
 +      with_libstatgrab="no ($PKG_CONFIG doesn't know libstatgrab)"
 +      temp_result="not found"
 +    fi
 +    AC_MSG_RESULT([$temp_result])
 +  else
 +    AC_MSG_NOTICE([pkg-config not available, trying to guess flags for the statgrab library.])
 +    with_libstatgrab_pkg_config="no"
 +    with_libstatgrab_ldflags="$with_libstatgrab_ldflags -lstatgrab"
 +  fi
 +fi
  
 -      AC_COMPILE_IFELSE(
 -[#include <stdio.h>
 -#include <sys/types.h>
 -#include <asm/types.h>
 -#include <sys/socket.h>
 -#include <linux/netlink.h>
 -#include <linux/rtnetlink.h>
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 +  && test "x$with_libstatgrab_cflags" = "x"
 +then
 +  AC_MSG_CHECKING([for libstatgrab CFLAGS])
 +  temp_result="`$PKG_CONFIG --cflags libstatgrab`"
 +  if test "$?" = "0"
 +  then
 +    with_libstatgrab_cflags="$temp_result"
 +  else
 +    with_libstatgrab="no ($PKG_CONFIG --cflags libstatgrab failed)"
 +    temp_result="$PKG_CONFIG --cflags libstatgrab failed"
 +  fi
 +  AC_MSG_RESULT([$temp_result])
 +fi
  
 -int main (void)
 -{
 -      int retval = TCA_STATS2;
 -      return (retval);
 -}],
 -      [AC_DEFINE([HAVE_TCA_STATS2], 1, [True if the enum-member TCA_STATS2 exists])]
 -      []);
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 +  && test "x$with_libstatgrab_ldflags" = "x"
 +then
 +  AC_MSG_CHECKING([for libstatgrab LDFLAGS])
 +  temp_result="`$PKG_CONFIG --libs libstatgrab`"
 +  if test "$?" = "0"
 +  then
 +    with_libstatgrab_ldflags="$temp_result"
 +  else
 +    with_libstatgrab="no ($PKG_CONFIG --libs libstatgrab failed)"
 +    temp_result="$PKG_CONFIG --libs libstatgrab failed"
 +  fi
 +  AC_MSG_RESULT([$temp_result])
 +fi
  
 -      AC_COMPILE_IFELSE(
 -[#include <stdio.h>
 -#include <sys/types.h>
 -#include <asm/types.h>
 -#include <sys/socket.h>
 -#include <linux/netlink.h>
 -#include <linux/rtnetlink.h>
 +if test "x$with_libstatgrab" = "xyes"
 +then
 +  SAVE_CPPFLAGS="$CPPFLAGS"
 +  CPPFLAGS="$CPPFLAGS $with_libstatgrab_cflags"
  
 -int main (void)
 -{
 -      int retval = TCA_STATS;
 -      return (retval);
 -}],
 -      [AC_DEFINE([HAVE_TCA_STATS], 1, [True if the enum-member TCA_STATS exists])]
 -      []);
 +  AC_CHECK_HEADERS(statgrab.h,
 +                 [with_libstatgrab="yes"],
 +                 [with_libstatgrab="no (statgrab.h not found)"])
  
 -      CFLAGS="$SAVE_CFLAGS"
 +  CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -if test "x$with_libnetlink" = "xyes"
 +
 +if test "x$with_libstatgrab" = "xyes"
  then
 -      AC_CHECK_LIB(netlink, rtnl_open,
 -                   [with_libnetlink="yes"],
 -                   [with_libnetlink="no (symbol 'rtnl_open' not found)"],
 -                   [$with_libnetlink_libs])
 +  SAVE_CFLAGS="$CFLAGS"
 +  SAVE_LDFLAGS="$LDFLAGS"
 +
 +  CFLAGS="$CFLAGS $with_libstatgrab_cflags"
 +  LDFLAGS="$LDFLAGS $with_libstatgrab_ldflags"
 +
 +  AC_CHECK_LIB(statgrab, sg_init,
 +             [with_libstatgrab="yes"],
 +             [with_libstatgrab="no (symbol sg_init not found)"])
 +
 +  CFLAGS="$SAVE_CFLAGS"
 +  LDFLAGS="$SAVE_LDFLAGS"
  fi
 -if test "x$with_libnetlink" = "xyes"
 +
 +AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes")
 +if test "x$with_libstatgrab" = "xyes"
  then
 -      BUILD_WITH_LIBNETLINK_CFLAGS="$with_libnetlink_cflags"
 -      BUILD_WITH_LIBNETLINK_LIBS="$with_libnetlink_libs"
 -      AC_SUBST(BUILD_WITH_LIBNETLINK_CFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBNETLINK_LIBS)
 +  AC_DEFINE(HAVE_LIBSTATGRAB, 1, [Define to 1 if you have the 'statgrab' library (-lstatgrab)])
 +  BUILD_WITH_LIBSTATGRAB_CFLAGS="$with_libstatgrab_cflags"
 +  BUILD_WITH_LIBSTATGRAB_LDFLAGS="$with_libstatgrab_ldflags"
 +  AC_SUBST(BUILD_WITH_LIBSTATGRAB_CFLAGS)
 +  AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBNETLINK, test "x$with_libnetlink" = "xyes")
 +# }}}
  
 -with_libopenipmipthread="yes"
 -with_libopenipmipthread_cflags=""
 -with_libopenipmipthread_libs=""
 +# --with-libupsclient {{{
 +with_libupsclient_config=""
 +with_libupsclient_cflags=""
 +with_libupsclient_libs=""
 +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="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"])
  
 -AC_MSG_CHECKING([for pkg-config])
 -temp_result="no"
 -if test "x$PKG_CONFIG" = "x"
 +# configure using libupsclient-config
 +if test "x$with_libupsclient" = "xuse_libupsclient_config"
  then
 -      with_libopenipmipthread="no"
 -      temp_result="no"
 -else
 -      temp_result="$PKG_CONFIG"
 +      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
 -AC_MSG_RESULT([$temp_result])
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +# configure using pkg-config
 +if test "x$with_libupsclient" = "xuse_pkgconfig"
  then
 -      AC_MSG_CHECKING([for libOpenIPMIpthread])
 -      $PKG_CONFIG --exists OpenIPMIpthread 2>/dev/null
 -      if test "$?" != "0"
 +      if test "x$PKG_CONFIG" = "x"
        then
 -              with_libopenipmipthread="no ($PKG_CONFIG doesn't know OpenIPMIpthread)"
 +              with_libupsclient="no (Don't have pkg-config)"
        fi
 -      AC_MSG_RESULT([$with_libopenipmipthread])
  fi
 -
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libupsclient" = "xuse_pkgconfig"
  then
 -      AC_MSG_CHECKING([for libOpenIPMIpthread CFLAGS])
 -      temp_result="`$PKG_CONFIG --cflags OpenIPMIpthread`"
 -      if test "$?" = "0"
 +      AC_MSG_NOTICE([Checking for libupsclient using $PKG_CONFIG])
 +      $PKG_CONFIG --exists 'libupsclient' 2>/dev/null
 +      if test $? -ne 0
        then
 -              with_libopenipmipthread_cflags="$temp_result"
 -      else
 -              with_libopenipmipthread="no ($PKG_CONFIG --cflags OpenIPMIpthread failed)"
 -              temp_result="$PKG_CONFIG --cflags OpenIPMIpthread failed"
 +              with_libupsclient="no (pkg-config doesn't know library)"
        fi
 -      AC_MSG_RESULT([$temp_result])
  fi
 -
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libupsclient" = "xuse_pkgconfig"
  then
 -      AC_MSG_CHECKING([for libOpenIPMIpthread LDFLAGS])
 -      temp_result="`$PKG_CONFIG --libs OpenIPMIpthread`"
 -      if test "$?" = "0"
 +      with_libupsclient_cflags="`$PKG_CONFIG --cflags 'libupsclient'`"
 +      if test $? -ne 0
        then
 -              with_libopenipmipthread_ldflags="$temp_result"
 -      else
 -              with_libopenipmipthread="no ($PKG_CONFIG --libs OpenIPMIpthread failed)"
 -              temp_result="$PKG_CONFIG --libs OpenIPMIpthread failed"
 +              with_libupsclient="no ($PKG_CONFIG failed)"
        fi
 -      AC_MSG_RESULT([$temp_result])
 +      with_libupsclient_libs="`$PKG_CONFIG --libs 'libupsclient'`"
 +      if test $? -ne 0
 +      then
 +              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"
 +      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +
 +      AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libupsclient" = "xyes"
  then
        SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libopenipmipthread_cflags"
 +      SAVE_LDFLAGS="$LDFLAGS"
  
 -      AC_CHECK_HEADERS(OpenIPMI/ipmi_smi.h,
 -                       [with_libopenipmipthread="yes"],
 -                       [with_libopenipmipthread="no (OpenIPMI/ipmi_smi.h not found)"],
 -[#include <OpenIPMI/ipmiif.h>
 -#include <OpenIPMI/ipmi_err.h>
 -#include <OpenIPMI/ipmi_posix.h>
 -#include <OpenIPMI/ipmi_conn.h>
 -])
 +      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +      LDFLAGS="$LDFLAGS $with_libupsclient_libs"
 +
 +      AC_CHECK_LIB(upsclient, upscli_connect,
 +                   [with_libupsclient="yes"],
 +                   [with_libupsclient="no (symbol upscli_connect not found)"])
  
        CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
  fi
 +if test "x$with_libupsclient" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +      AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [],
 +[#include <stdlib.h>
 +#include <stdio.h>
 +#include <upsclient.h>])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +if test "x$with_libupsclient" = "xyes"
  then
 -      BUILD_WITH_OPENIPMI_CFLAGS="$with_libopenipmipthread_cflags"
 -      BUILD_WITH_OPENIPMI_LIBS="$with_libopenipmipthread_ldflags"
 -      AC_SUBST(BUILD_WITH_OPENIPMI_CFLAGS)
 -      AC_SUBST(BUILD_WITH_OPENIPMI_LIBS)
 +      BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags"
 +      BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs"
 +      AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
  fi
 +# }}}
  
 -dnl Check for libpq.
 -with_pg_config="pg_config"
 -with_libpq_includedir=""
 -with_libpq_libdir=""
 -with_libpq_cppflags=""
 -with_libpq_ldflags=""
 -AC_ARG_WITH(libpq, [AS_HELP_STRING([--with-libpq@<:@=PREFIX@:>@],
 -      [Path to libpq.])],
 +# --with-libxmms {{{
 +with_xmms_config="xmms-config"
 +with_xmms_cflags=""
 +with_xmms_libs=""
 +AC_ARG_WITH(libxmms, [AS_HELP_STRING([--with-libxmms@<:@=PREFIX@:>@], [Path to libxmms.])],
  [
 -      if test "x$withval" = "xno"
 -      then
 -              with_libpq="no"
 -      else if test "x$withval" = "xyes"
 +      if test "x$withval" != "xno" \
 +              && test "x$withval" != "xyes"
        then
 -              with_libpq="yes"
 -      else
                if test -f "$withval" && test -x "$withval";
                then
 -                      with_pg_config="$withval"
 -              else if test -x "$withval/bin/pg_config"
 +                      with_xmms_config="$withval"
 +              else if test -x "$withval/bin/xmms-config"
                then
 -                      with_pg_config="$withval/bin/pg_config"
 +                      with_xmms_config="$withval/bin/xmms-config"
                fi; fi
 -              with_libpq="yes"
 +              with_libxmms="yes"
 +      else if test "x$withval" = "xno"
 +      then
 +              with_libxmms="no"
 +      else
 +              with_libxmms="yes"
        fi; fi
  ],
  [
 -      with_libpq="yes"
 +      with_libxmms="yes"
  ])
 -if test "x$with_libpq" = "xyes"
 +if test "x$with_libxmms" = "xyes"
  then
 -      with_libpq_includedir=`$with_pg_config --includedir 2> /dev/null`
 -      pg_config_status=$?
 +      with_xmms_cflags=`$with_xmms_config --cflags 2>/dev/null`
 +      xmms_config_status=$?
  
 -      if test $pg_config_status -eq 0
 +      if test $xmms_config_status -ne 0
        then
 -              if test -n "$with_libpq_includedir"; then
 -                      for dir in $with_libpq_includedir; do
 -                              with_libpq_cppflags="$with_libpq_cppflags -I$dir"
 -                      done
 -              fi
 -      else
 -              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
 +              with_libxmms="no"
        fi
 -
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libpq_cppflags"
 -
 -      AC_CHECK_HEADERS(libpq-fe.h, [],
 -              [with_libpq="no (libpq-fe.h not found)"], [])
 -
 -      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -if test "x$with_libpq" = "xyes"
 +if test "x$with_libxmms" = "xyes"
  then
 -      with_libpq_libdir=`$with_pg_config --libdir 2> /dev/null`
 -      pg_config_status=$?
 +      with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
 +      xmms_config_status=$?
  
 -      if test $pg_config_status -eq 0
 +      if test $xmms_config_status -ne 0
        then
 -              if test -n "$with_libpq_libdir"; then
 -                      for dir in $with_libpq_libdir; do
 -                              with_libpq_ldflags="$with_libpq_ldflags -L$dir"
 -                      done
 -              fi
 -      else
 -              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
 +              with_libxmms="no"
        fi
 -
 -      SAVE_LDFLAGS="$LDFLAGS"
 -      LDFLAGS="$LDFLAGS $with_libpq_ldflags"
 -
 -      AC_CHECK_LIB(pq, PQconnectdb,
 -              [with_libpq="yes"],
 -              [with_libpq="no (symbol 'PQconnectdb' not found)"])
 -
 -      LDFLAGS="$SAVE_LDFLAGS"
  fi
 -if test "x$with_libpq" = "xyes"
 +if test "x$with_libxmms" = "xyes"
  then
 -      BUILD_WITH_LIBPQ_CPPFLAGS="$with_libpq_cppflags"
 -      BUILD_WITH_LIBPQ_LDFLAGS="$with_libpq_ldflags"
 -      AC_SUBST(BUILD_WITH_LIBPQ_CPPFLAGS)
 -      AC_SUBST(BUILD_WITH_LIBPQ_LDFLAGS)
 +      AC_CHECK_LIB(xmms, xmms_remote_get_info,
 +      [
 +              BUILD_WITH_LIBXMMS_CFLAGS="$with_xmms_cflags"
 +              BUILD_WITH_LIBXMMS_LIBS="$with_xmms_libs"
 +              AC_SUBST(BUILD_WITH_LIBXMMS_CFLAGS)
 +              AC_SUBST(BUILD_WITH_LIBXMMS_LIBS)
 +      ],
 +      [
 +              with_libxmms="no"
 +      ],
 +      [$with_xmms_libs])
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBPQ, test "x$with_libpq" = "xyes")
 +with_libxmms_numeric=0
 +if test "x$with_libxmms" = "xyes"
 +then
 +      with_libxmms_numeric=1
 +fi
 +AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you have the 'xmms' library (-lxmms).])
 +AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes")
 +# }}}
  
 -dnl Check for libvirt and libxml2 libraries.
 +# pkg-config --exists 'libxml-2.0'; pkg-config --exists libvirt {{{
  with_libxml2="no (pkg-config isn't available)"
  with_libxml2_cflags=""
  with_libxml2_ldflags=""
@@@ -2673,92 -2510,8 +2671,92 @@@ if test "x$with_libvirt" = "xyes"; the
        AC_SUBST(BUILD_WITH_LIBVIRT_CFLAGS)
        AC_SUBST(BUILD_WITH_LIBVIRT_LIBS)
  fi
 +# }}}
 +
 +# $PKG_CONFIG --exists OpenIPMIpthread {{{
 +with_libopenipmipthread="yes"
 +with_libopenipmipthread_cflags=""
 +with_libopenipmipthread_libs=""
 +
 +AC_MSG_CHECKING([for pkg-config])
 +temp_result="no"
 +if test "x$PKG_CONFIG" = "x"
 +then
 +      with_libopenipmipthread="no"
 +      temp_result="no"
 +else
 +      temp_result="$PKG_CONFIG"
 +fi
 +AC_MSG_RESULT([$temp_result])
 +
 +if test "x$with_libopenipmipthread" = "xyes"
 +then
 +      AC_MSG_CHECKING([for libOpenIPMIpthread])
 +      $PKG_CONFIG --exists OpenIPMIpthread 2>/dev/null
 +      if test "$?" != "0"
 +      then
 +              with_libopenipmipthread="no ($PKG_CONFIG doesn't know OpenIPMIpthread)"
 +      fi
 +      AC_MSG_RESULT([$with_libopenipmipthread])
 +fi
 +
 +if test "x$with_libopenipmipthread" = "xyes"
 +then
 +      AC_MSG_CHECKING([for libOpenIPMIpthread CFLAGS])
 +      temp_result="`$PKG_CONFIG --cflags OpenIPMIpthread`"
 +      if test "$?" = "0"
 +      then
 +              with_libopenipmipthread_cflags="$temp_result"
 +      else
 +              with_libopenipmipthread="no ($PKG_CONFIG --cflags OpenIPMIpthread failed)"
 +              temp_result="$PKG_CONFIG --cflags OpenIPMIpthread failed"
 +      fi
 +      AC_MSG_RESULT([$temp_result])
 +fi
 +
 +if test "x$with_libopenipmipthread" = "xyes"
 +then
 +      AC_MSG_CHECKING([for libOpenIPMIpthread LDFLAGS])
 +      temp_result="`$PKG_CONFIG --libs OpenIPMIpthread`"
 +      if test "$?" = "0"
 +      then
 +              with_libopenipmipthread_ldflags="$temp_result"
 +      else
 +              with_libopenipmipthread="no ($PKG_CONFIG --libs OpenIPMIpthread failed)"
 +              temp_result="$PKG_CONFIG --libs OpenIPMIpthread failed"
 +      fi
 +      AC_MSG_RESULT([$temp_result])
 +fi
 +
 +if test "x$with_libopenipmipthread" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libopenipmipthread_cflags"
 +
 +      AC_CHECK_HEADERS(OpenIPMI/ipmi_smi.h,
 +                       [with_libopenipmipthread="yes"],
 +                       [with_libopenipmipthread="no (OpenIPMI/ipmi_smi.h not found)"],
 +[#include <OpenIPMI/ipmiif.h>
 +#include <OpenIPMI/ipmi_err.h>
 +#include <OpenIPMI/ipmi_posix.h>
 +#include <OpenIPMI/ipmi_conn.h>
 +])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +
 +if test "x$with_libopenipmipthread" = "xyes"
 +then
 +      BUILD_WITH_OPENIPMI_CFLAGS="$with_libopenipmipthread_cflags"
 +      BUILD_WITH_OPENIPMI_LIBS="$with_libopenipmipthread_ldflags"
 +      AC_SUBST(BUILD_WITH_OPENIPMI_CFLAGS)
 +      AC_SUBST(BUILD_WITH_OPENIPMI_LIBS)
 +fi
 +# }}}
  
 -dnl End of check for libvirt and libxml2 libraries.
 +PKG_CHECK_MODULES([LIBNOTIFY], [libnotify],
 +              [with_libnotify="yes"],
 +              [with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"])
  
  # Check for enabled/disabled features
  #
@@@ -2872,7 -2625,6 +2870,7 @@@ AC_COLLECTD([getifaddrs],[enable],  [fe
  dependency_error="no"
  plugin_ascent="no"
  plugin_battery="no"
 +plugin_bind="no"
  plugin_cpu="no"
  plugin_cpufreq="no"
  plugin_df="no"
  if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"
  then
        plugin_ascent="yes"
 +      plugin_bind="yes"
  fi
  
  if test "x$with_libopenipmipthread" = "xyes"
@@@ -2981,11 -2732,6 +2979,11 @@@ if test "x$have_processor_info" = "xyes
  then
        plugin_cpu="yes"
  fi
 +if test "x$have_sysctl" = "xyes"
 +then
 +      plugin_cpu="yes"
 +      plugin_swap="yes"
 +fi
  if test "x$have_sysctlbyname" = "xyes"
  then
        plugin_cpu="yes"
        plugin_tcpconns="yes"
  fi
  
- if test "x$have_statfs" = "xyes"
+ # Df plugin: Check if we know how to determine mount points first.
+ #if test "x$have_listmntent" = "xyes"; then
+ #     plugin_df="yes"
+ #fi
+ if test "x$have_getvfsstat" = "xyes" || test "x$have_getfsstat" = "xyes"
  then
        plugin_df="yes"
  fi
- if test "x$have_statvfs" = "xyes"
+ if test "x$c_cv_have_two_getmntent" = "xyes" || test "x$have_getmntent" = "xgen" || test "x$have_getmntent" = "xsun"
  then
        plugin_df="yes"
  fi
+ #if test "x$have_getmntent" = "xseq"
+ #then
+ #     plugin_df="yes"
+ #fi
+ if test "x$c_cv_have_one_getmntent" = "xyes"
+ then
+       plugin_df="yes"
+ fi
+ # Df plugin: Check if we have either `statfs' or `statvfs' second.
+ if test "x$plugin_df" = "xyes"
+ then
+       plugin_df="no"
+       if test "x$have_statfs" = "xyes"
+       then
+               plugin_df="yes"
+       fi
+       if test "x$have_statvfs" = "xyes"
+       then
+               plugin_df="yes"
+       fi
+ fi
  
  if test "x$have_getifaddrs" = "xyes"
  then
        plugin_swap="yes"
  fi
  
 +if test "x$have_swapctl" = "xyes"
 +then
 +      plugin_swap="yes"
 +fi
 +
  if test "x$with_kvm_openfiles$with_kvm_nlist" = "xyesyes"
  then
        plugin_tcpconns="yes"
@@@ -3067,6 -2834,8 +3091,6 @@@ the
        plugin_users="yes"
  fi
  
 -# FIXME: sysctl for swap plugin
 -
  m4_divert_once([HELP_ENABLE], [
  collectd plugins:])
  
@@@ -3075,12 -2844,10 +3099,12 @@@ AC_PLUGIN([apcups],      [yes]
  AC_PLUGIN([apple_sensors], [$with_libiokit],   [Apple's hardware sensors])
  AC_PLUGIN([ascent],      [$plugin_ascent],     [AscentEmu player statistics])
  AC_PLUGIN([battery],     [$plugin_battery],    [Battery statistics])
 -AC_PLUGIN([cpu],         [$plugin_cpu],        [CPU usage statistics])
 +AC_PLUGIN([bind],        [$plugin_bind],       [ISC Bind nameserver statistics])
  AC_PLUGIN([cpufreq],     [$plugin_cpufreq],    [CPU frequency statistics])
 +AC_PLUGIN([cpu],         [$plugin_cpu],        [CPU usage statistics])
  AC_PLUGIN([csv],         [yes],                [CSV output plugin])
 -AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications])
 +AC_PLUGIN([curl],        [$with_libcurl],      [CURL generic web statistics])
 +AC_PLUGIN([dbi],         [$with_libdbi],       [General database statistics])
  AC_PLUGIN([df],          [$plugin_df],         [Filesystem usage statistics])
  AC_PLUGIN([disk],        [$plugin_disk],       [Disk usage statistics])
  AC_PLUGIN([dns],         [$with_libpcap],      [DNS traffic analysis])
@@@ -3090,16 -2857,13 +3114,16 @@@ AC_PLUGIN([exec],        [yes]
  AC_PLUGIN([filecount],   [yes],                [Count files in directories])
  AC_PLUGIN([hddtemp],     [yes],                [Query hddtempd])
  AC_PLUGIN([interface],   [$plugin_interface],  [Interface traffic statistics])
 -AC_PLUGIN([iptables],    [$with_libiptc],      [IPTables rule counters])
  AC_PLUGIN([ipmi],        [$plugin_ipmi],       [IPMI sensor statistics])
 +AC_PLUGIN([iptables],    [$with_libiptc],      [IPTables rule counters])
  AC_PLUGIN([ipvs],        [$plugin_ipvs],       [IPVS connection statistics])
  AC_PLUGIN([irq],         [$plugin_irq],        [IRQ statistics])
  AC_PLUGIN([libvirt],     [$plugin_libvirt],    [Virtual machine statistics])
  AC_PLUGIN([load],        [$plugin_load],       [System load])
  AC_PLUGIN([logfile],     [yes],                [File logging plugin])
 +AC_PLUGIN([match_regex], [yes],                [The regex match])
 +AC_PLUGIN([match_timediff], [yes],             [The timediff match])
 +AC_PLUGIN([match_value], [yes],                [The value match])
  AC_PLUGIN([mbmon],       [yes],                [Query mbmond])
  AC_PLUGIN([memcached],   [yes],                [memcached statistics])
  AC_PLUGIN([memory],      [$plugin_memory],     [Memory usage])
@@@ -3109,30 -2873,23 +3133,30 @@@ AC_PLUGIN([netlink],     [$with_libnetl
  AC_PLUGIN([network],     [yes],                [Network communication plugin])
  AC_PLUGIN([nfs],         [$plugin_nfs],        [NFS statistics])
  AC_PLUGIN([nginx],       [$with_libcurl],      [nginx statistics])
 +AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications])
  AC_PLUGIN([notify_email], [$with_libesmtp],    [Email notifier])
  AC_PLUGIN([ntpd],        [yes],                [NTPd statistics])
  AC_PLUGIN([nut],         [$with_libupsclient], [Network UPS tools statistics])
  AC_PLUGIN([onewire],     [$with_libowcapi],    [OneWire sensor statistics])
 +AC_PLUGIN([openvpn],     [yes],                [OpenVPN client statistics])
 +AC_PLUGIN([oracle],      [$with_oracle],       [Oracle plugin])
  AC_PLUGIN([perl],        [$plugin_perl],       [Embed a Perl interpreter])
  AC_PLUGIN([ping],        [$with_liboping],     [Network latency statistics])
  AC_PLUGIN([postgresql],  [$with_libpq],        [PostgreSQL database statistics])
  AC_PLUGIN([powerdns],    [yes],                [PowerDNS statistics])
  AC_PLUGIN([processes],   [$plugin_processes],  [Process statistics])
 -AC_PLUGIN([rrdtool],     [$with_rrdtool],      [RRDTool output plugin])
 -AC_PLUGIN([sensors],     [$with_lm_sensors],   [lm_sensors statistics])
 +AC_PLUGIN([rrdcached],   [$librrd_rrdc_update], [RRDTool output plugin])
 +AC_PLUGIN([rrdtool],     [$with_librrd],       [RRDTool output plugin])
 +AC_PLUGIN([sensors],     [$with_libsensors],   [lm_sensors statistics])
  AC_PLUGIN([serial],      [$plugin_serial],     [serial port traffic])
  AC_PLUGIN([snmp],        [$with_libnetsnmp],   [SNMP querying plugin])
  AC_PLUGIN([swap],        [$plugin_swap],       [Swap usage statistics])
  AC_PLUGIN([syslog],      [$have_syslog],       [Syslog logging plugin])
  AC_PLUGIN([tail],        [yes],                [Parsing of logfiles])
  AC_PLUGIN([tape],        [$plugin_tape],       [Tape drive statistics])
 +AC_PLUGIN([target_notification], [yes],        [The notification target])
 +AC_PLUGIN([target_replace], [yes],             [The replace target])
 +AC_PLUGIN([target_set],  [yes],                [The set target])
  AC_PLUGIN([tcpconns],    [$plugin_tcpconns],   [TCP connection statistics])
  AC_PLUGIN([teamspeak2],  [yes],                [TeamSpeak2 server statistics])
  AC_PLUGIN([thermal],     [$plugin_thermal],    [Linux ACPI thermal zone statistics])
  AC_SUBST(PERL_BINDINGS)
  AC_SUBST(PERL_BINDINGS_OPTIONS)
  
 -AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile)
 +dnl libcollectdclient
 +LCC_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -d'.' -f1`
 +LCC_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -d'.' -f2`
 +LCC_VERSION_PATCH=`echo $PACKAGE_VERSION | cut -d'.' -f3`
 +
 +LCC_VERSION_EXTRA=`echo $PACKAGE_VERSION | cut -d'.' -f4-`
 +
 +LCC_VERSION_STRING="$LCC_VERSION_MAJOR.$LCC_VERSION_MINOR.$LCC_VERSION_PATCH"
  
 -if test "x$with_rrdtool" = "xyes" \
 +AC_SUBST(LCC_VERSION_MAJOR)
 +AC_SUBST(LCC_VERSION_MINOR)
 +AC_SUBST(LCC_VERSION_PATCH)
 +AC_SUBST(LCC_VERSION_EXTRA)
 +AC_SUBST(LCC_VERSION_STRING)
 +
 +AC_CONFIG_FILES(src/libcollectdclient/lcc_features.h)
 +
 +AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile)
 +
 +if test "x$with_librrd" = "xyes" \
        && test "x$librrd_threadsafe" != "xyes"
  then
 -      with_rrdtool="yes (warning: librrd is not thread-safe)"
 +      with_librrd="yes (warning: librrd is not thread-safe)"
  fi
  
  if test "x$with_liboping" = "xyes" \
@@@ -3235,7 -2975,6 +3259,7 @@@ cat <<EOF
  Configuration:
    Libraries:
      libcurl . . . . . . . $with_libcurl
 +    libdbi  . . . . . . . $with_libdbi
      libesmtp  . . . . . . $with_libesmtp
      libiokit  . . . . . . $with_libiokit
      libiptc . . . . . . . $with_libiptc
      liboping  . . . . . . $with_liboping
      libpcap . . . . . . . $with_libpcap
      libperl . . . . . . . $with_libperl
 -    libpthread  . . . . . $with_libpthread
      libpq . . . . . . . . $with_libpq
 -    librrd  . . . . . . . $with_rrdtool
 -    libsensors  . . . . . $with_lm_sensors
 +    libpthread  . . . . . $with_libpthread
 +    librrd  . . . . . . . $with_librrd
 +    libsensors  . . . . . $with_libsensors
      libstatgrab . . . . . $with_libstatgrab
      libupsclient  . . . . $with_libupsclient
      libvirt . . . . . . . $with_libvirt
      libxml2 . . . . . . . $with_libxml2
      libxmms . . . . . . . $with_libxmms
 +    oracle  . . . . . . . $with_oracle
  
    Features:
      daemon mode . . . . . $enable_daemon
      apple_sensors . . . . $enable_apple_sensors
      ascent  . . . . . . . $enable_ascent
      battery . . . . . . . $enable_battery
 +    bind  . . . . . . . . $enable_bind
      cpu . . . . . . . . . $enable_cpu
      cpufreq . . . . . . . $enable_cpufreq
      csv . . . . . . . . . $enable_csv
 +    curl  . . . . . . . . $enable_curl
 +    dbi . . . . . . . . . $enable_dbi
      df  . . . . . . . . . $enable_df
      disk  . . . . . . . . $enable_disk
      dns . . . . . . . . . $enable_dns
      filecount . . . . . . $enable_filecount
      hddtemp . . . . . . . $enable_hddtemp
      interface . . . . . . $enable_interface
 -    iptables  . . . . . . $enable_iptables
      ipmi  . . . . . . . . $enable_ipmi
 +    iptables  . . . . . . $enable_iptables
      ipvs  . . . . . . . . $enable_ipvs
      irq . . . . . . . . . $enable_irq
      libvirt . . . . . . . $enable_libvirt
      load  . . . . . . . . $enable_load
      logfile . . . . . . . $enable_logfile
 +    match_regex . . . . . $enable_match_regex
 +    match_timediff  . . . $enable_match_timediff
 +    match_value . . . . . $enable_match_value
      mbmon . . . . . . . . $enable_mbmon
      memcached . . . . . . $enable_memcached
      memory  . . . . . . . $enable_memory
      ntpd  . . . . . . . . $enable_ntpd
      nut . . . . . . . . . $enable_nut
      onewire . . . . . . . $enable_onewire
 +    openvpn . . . . . . . $enable_openvpn
 +    oracle  . . . . . . . $enable_oracle
      perl  . . . . . . . . $enable_perl
      ping  . . . . . . . . $enable_ping
      postgresql  . . . . . $enable_postgresql
      powerdns  . . . . . . $enable_powerdns
      processes . . . . . . $enable_processes
 +    rrdcached . . . . . . $enable_rrdcached
      rrdtool . . . . . . . $enable_rrdtool
      sensors . . . . . . . $enable_sensors
      serial  . . . . . . . $enable_serial
      syslog  . . . . . . . $enable_syslog
      tail  . . . . . . . . $enable_tail
      tape  . . . . . . . . $enable_tape
 +    target_notification . $enable_target_notification
 +    target_replace  . . . $enable_target_replace
 +    target_set  . . . . . $enable_target_set
      tcpconns  . . . . . . $enable_tcpconns
      teamspeak2  . . . . . $enable_teamspeak2
      thermal . . . . . . . $enable_thermal
@@@ -3348,5 -3074,3 +3372,5 @@@ EO
  if test "x$dependency_error" = "xyes"; then
        AC_MSG_ERROR("Some plugins are missing dependencies - see above summary for details")
  fi
 +
 +# vim: set fdm=marker :
diff --combined src/Makefile.am
@@@ -1,4 -1,4 +1,4 @@@
 -SUBDIRS =
 +SUBDIRS = libcollectdclient
  if BUILD_WITH_OWN_LIBIPTC
  SUBDIRS += libiptc
  endif
@@@ -29,19 -29,14 +29,18 @@@ bin_PROGRAMS = collectd-nagio
  collectd_SOURCES = collectd.c collectd.h \
                   common.c common.h \
                   configfile.c configfile.h \
 +                 filter_chain.c filter_chain.h \
 +                 meta_data.c meta_data.h \
                   plugin.c plugin.h \
                   utils_avltree.c utils_avltree.h \
                   utils_cache.c utils_cache.h \
                   utils_complain.c utils_complain.h \
                   utils_ignorelist.c utils_ignorelist.h \
                   utils_llist.c utils_llist.h \
 +                 utils_parse_option.c utils_parse_option.h \
                   utils_tail_match.c utils_tail_match.h \
                   utils_match.c utils_match.h \
-                  utils_mount.c utils_mount.h \
 +                 utils_subst.c utils_subst.h \
                   utils_tail.c utils_tail.h \
                   utils_threshold.c utils_threshold.h \
                   types_list.c types_list.h
@@@ -94,8 -89,6 +93,8 @@@ collectd_nagios_LDFLAGS 
  if BUILD_WITH_LIBSOCKET
  collectd_nagios_LDFLAGS += -lsocket
  endif
 +collectd_nagios_LDADD = libcollectdclient/libcollectdclient.la
 +collectd_nagios_DEPENDENCIES = libcollectdclient/libcollectdclient.la
  
  pkglib_LTLIBRARIES = 
  
@@@ -154,17 -147,6 +153,17 @@@ collectd_LDADD += "-dlopen" battery.l
  collectd_DEPENDENCIES += battery.la
  endif
  
 +if BUILD_PLUGIN_BIND
 +pkglib_LTLIBRARIES += bind.la
 +bind_la_SOURCES = bind.c
 +bind_la_LDFLAGS = -module -avoid-version
 +bind_la_CFLAGS = $(AM_CFLAGS) \
 +              $(BUILD_WITH_LIBCURL_CFLAGS) $(BUILD_WITH_LIBXML2_CFLAGS)
 +bind_la_LIBADD = $(BUILD_WITH_LIBCURL_LIBS) $(BUILD_WITH_LIBXML2_LIBS)
 +collectd_LDADD += "-dlopen" bind.la
 +collectd_DEPENDENCIES += bind.la
 +endif
 +
  if BUILD_PLUGIN_CPU
  pkglib_LTLIBRARIES += cpu.la
  cpu_la_SOURCES = cpu.c
@@@ -201,34 -183,9 +200,34 @@@ collectd_LDADD += "-dlopen" csv.l
  collectd_DEPENDENCIES += csv.la
  endif
  
 +if BUILD_PLUGIN_CURL
 +pkglib_LTLIBRARIES += curl.la
 +curl_la_SOURCES = curl.c
 +curl_la_LDFLAGS = -module -avoid-version
 +curl_la_CFLAGS = $(AM_CFLAGS)
 +curl_la_LIBADD =
 +collectd_LDADD += "-dlopen" curl.la
 +if BUILD_WITH_LIBCURL
 +curl_la_CFLAGS += $(BUILD_WITH_LIBCURL_CFLAGS)
 +curl_la_LIBADD += $(BUILD_WITH_LIBCURL_LIBS)
 +endif
 +collectd_DEPENDENCIES += curl.la
 +endif
 +
 +if BUILD_PLUGIN_DBI
 +pkglib_LTLIBRARIES += dbi.la
 +dbi_la_SOURCES = dbi.c \
 +               utils_db_query.c utils_db_query.h
 +dbi_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBDBI_CPPFLAGS)
 +dbi_la_LDFLAGS = -module -avoid-version $(BUILD_WITH_LIBDBI_LDFLAGS)
 +dbi_la_LIBADD = $(BUILD_WITH_LIBDBI_LIBS)
 +collectd_LDADD += "-dlopen" dbi.la
 +collectd_DEPENDENCIES += dbi.la
 +endif
 +
  if BUILD_PLUGIN_DF
  pkglib_LTLIBRARIES += df.la
- df_la_SOURCES = df.c
+ df_la_SOURCES = df.c utils_mount.c utils_mount.h
  df_la_LDFLAGS = -module -avoid-version
  collectd_LDADD += "-dlopen" df.la
  collectd_DEPENDENCIES += df.la
@@@ -287,6 -244,7 +286,6 @@@ endi
  if BUILD_PLUGIN_EXEC
  pkglib_LTLIBRARIES += exec.la
  exec_la_SOURCES = exec.c \
 -                utils_parse_option.h utils_parse_option.c \
                  utils_cmd_putnotif.c utils_cmd_putnotif.h \
                  utils_cmd_putval.c utils_cmd_putval.h
  exec_la_LDFLAGS = -module -avoid-version
@@@ -411,30 -369,6 +410,30 @@@ collectd_LDADD += "-dlopen" logfile.l
  collectd_DEPENDENCIES += logfile.la
  endif
  
 +if BUILD_PLUGIN_MATCH_REGEX
 +pkglib_LTLIBRARIES += match_regex.la
 +match_regex_la_SOURCES = match_regex.c
 +match_regex_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" match_regex.la
 +collectd_DEPENDENCIES += match_regex.la
 +endif
 +
 +if BUILD_PLUGIN_MATCH_TIMEDIFF
 +pkglib_LTLIBRARIES += match_timediff.la
 +match_timediff_la_SOURCES = match_timediff.c
 +match_timediff_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" match_timediff.la
 +collectd_DEPENDENCIES += match_timediff.la
 +endif
 +
 +if BUILD_PLUGIN_MATCH_VALUE
 +pkglib_LTLIBRARIES += match_value.la
 +match_value_la_SOURCES = match_value.c
 +match_value_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" match_value.la
 +collectd_DEPENDENCIES += match_value.la
 +endif
 +
  if BUILD_PLUGIN_MBMON
  pkglib_LTLIBRARIES += mbmon.la
  mbmon_la_SOURCES = mbmon.c
@@@ -594,27 -528,6 +593,27 @@@ collectd_LDADD += "-dlopen" onewire.l
  collectd_DEPENDENCIES += onewire.la
  endif
  
 +if BUILD_PLUGIN_OPENVPN
 +pkglib_LTLIBRARIES += openvpn.la
 +openvpn_la_SOURCES = openvpn.c
 +openvpn_la_CFLAGS = $(AM_CFLAGS)
 +openvpn_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" openvpn.la
 +collectd_DEPENDENCIES += openvpn.la
 +endif
 +
 +if BUILD_PLUGIN_ORACLE
 +pkglib_LTLIBRARIES += oracle.la
 +oracle_la_SOURCES = oracle.c \
 +      utils_db_query.c utils_db_query.h
 +oracle_la_CFLAGS = $(AM_CFLAGS)
 +oracle_la_CPPFLAGS = $(BUILD_WITH_ORACLE_CFLAGS)
 +oracle_la_LIBADD = $(BUILD_WITH_ORACLE_LIBS)
 +oracle_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" oracle.la
 +collectd_DEPENDENCIES += oracle.la
 +endif
 +
  if BUILD_PLUGIN_PERL
  pkglib_LTLIBRARIES += perl.la
  perl_la_SOURCES = perl.c
@@@ -624,11 -537,6 +623,11 @@@ perl_la_CPPFLAGS = $(AM_CPPFLAGS) -DHAS
  perl_la_CFLAGS  = $(AM_CFLAGS) \
                $(PERL_CFLAGS) \
                -DXS_VERSION=\"$(VERSION)\" -DVERSION=\"$(VERSION)\"
 +# Work-around for issues #41 and #42 - Perl 5.10 incorrectly introduced
 +# __attribute__nonnull__(3) for Perl_load_module().
 +if HAVE_BROKEN_PERL_LOAD_MODULE
 +perl_la_CFLAGS += -Wno-nonnull
 +endif
  perl_la_LDFLAGS = -module -avoid-version \
                $(PERL_LDFLAGS)
  collectd_LDADD += "-dlopen" perl.la
@@@ -651,8 -559,7 +650,8 @@@ endi
  
  if BUILD_PLUGIN_POSTGRESQL
  pkglib_LTLIBRARIES += postgresql.la
 -postgresql_la_SOURCES = postgresql.c
 +postgresql_la_SOURCES = postgresql.c \
 +               utils_db_query.c utils_db_query.h
  postgresql_la_CPPFLAGS = $(AM_CPPFLAGS) $(BUILD_WITH_LIBPQ_CPPFLAGS)
  postgresql_la_LDFLAGS = -module -avoid-version \
                $(BUILD_WITH_LIBPQ_LDFLAGS) -lpq
@@@ -680,19 -587,9 +679,19 @@@ processes_la_LIBADD += -lkv
  endif
  endif
  
 +if BUILD_PLUGIN_RRDCACHED
 +pkglib_LTLIBRARIES += rrdcached.la
 +rrdcached_la_SOURCES = rrdcached.c utils_rrdcreate.c utils_rrdcreate.h
 +rrdcached_la_LDFLAGS = -module -avoid-version
 +rrdcached_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBRRD_CFLAGS)
 +rrdcached_la_LIBADD = $(BUILD_WITH_LIBRRD_LDFLAGS)
 +collectd_LDADD += "-dlopen" rrdcached.la
 +collectd_DEPENDENCIES += rrdcached.la
 +endif
 +
  if BUILD_PLUGIN_RRDTOOL
  pkglib_LTLIBRARIES += rrdtool.la
 -rrdtool_la_SOURCES = rrdtool.c
 +rrdtool_la_SOURCES = rrdtool.c utils_rrdcreate.c utils_rrdcreate.h
  rrdtool_la_LDFLAGS = -module -avoid-version
  rrdtool_la_CFLAGS = $(AM_CFLAGS) $(BUILD_WITH_LIBRRD_CFLAGS)
  rrdtool_la_LIBADD = $(BUILD_WITH_LIBRRD_LDFLAGS)
@@@ -782,30 -679,6 +781,30 @@@ collectd_LDADD += "-dlopen" tape.l
  collectd_DEPENDENCIES += tape.la
  endif
  
 +if BUILD_PLUGIN_TARGET_NOTIFICATION
 +pkglib_LTLIBRARIES += target_notification.la
 +target_notification_la_SOURCES = target_notification.c
 +target_notification_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" target_notification.la
 +collectd_DEPENDENCIES += target_notification.la
 +endif
 +
 +if BUILD_PLUGIN_TARGET_REPLACE
 +pkglib_LTLIBRARIES += target_replace.la
 +target_replace_la_SOURCES = target_replace.c
 +target_replace_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" target_replace.la
 +collectd_DEPENDENCIES += target_replace.la
 +endif
 +
 +if BUILD_PLUGIN_TARGET_SET
 +pkglib_LTLIBRARIES += target_set.la
 +target_set_la_SOURCES = target_set.c
 +target_set_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" target_set.la
 +collectd_DEPENDENCIES += target_set.la
 +endif
 +
  if BUILD_PLUGIN_TCPCONNS
  pkglib_LTLIBRARIES += tcpconns.la
  tcpconns_la_SOURCES = tcpconns.c
@@@ -837,6 -710,7 +836,6 @@@ endi
  if BUILD_PLUGIN_UNIXSOCK
  pkglib_LTLIBRARIES += unixsock.la
  unixsock_la_SOURCES = unixsock.c \
 -                    utils_parse_option.h utils_parse_option.c \
                      utils_cmd_flush.h utils_cmd_flush.c \
                      utils_cmd_getval.h utils_cmd_getval.c \
                      utils_cmd_listval.h utils_cmd_listval.c \
@@@ -943,7 -817,7 +942,7 @@@ install-exec-hook
        else \
                $(INSTALL) -m 0640 collectd.conf $(DESTDIR)$(sysconfdir)/collectd.conf; \
        fi; \
 -      cp -f $(srcdir)/types.db $(DESTDIR)$(pkglibdir)/;
        $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
 +      $(INSTALL) -m 0644 $(srcdir)/types.db $(DESTDIR)$(pkgdatadir)/types.db;
        $(INSTALL) -m 0644 $(srcdir)/postgresql_default.conf \
                $(DESTDIR)$(pkgdatadir)/postgresql_default.conf;