Merge branch 'collectd-4.5'
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sat, 8 Nov 2008 08:00:00 +0000 (09:00 +0100)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sat, 8 Nov 2008 08:00:00 +0000 (09:00 +0100)
1  2 
configure.in
src/Makefile.am
src/filecount.c
src/libiptc/Makefile.am
src/perl.c

diff --combined configure.in
  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")
 +
 +# --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"
 +      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_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"
 +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_nlist' symbol (-lkvm)])
 -      with_libkvm="yes"
 +      collect_libesmtp=1
 +else
 +      collect_libesmtp=0
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBKVM_NLIST, test "x$with_kvm_nlist" = "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=""
  
        if test $mysql_config_status -ne 0
        then
-               with_libmysql="no"
+               with_libmysql="no ($with_mysql_config failed)"
        else
                SAVE_CPPFLAGS="$CPPFLAGS"
                CPPFLAGS="$CPPFLAGS $with_mysql_cflags"
  
-               AC_CHECK_HEADERS(mysql/mysql.h, [], [with_libmysql="no (mysql/mysql.h not found)"], [])
+               have_mysql_h="no"
+               have_mysql_mysql_h="no"
+               AC_CHECK_HEADERS(mysql.h, [have_mysql_h="yes"])
+               if test "x$have_mysql_h" = "xno"
+               then
+                       AC_CHECK_HEADERS(mysql/mysql.h, [have_mysql_mysql_h="yes"])
+               fi
+               if test "x$have_mysql_h$have_mysql_mysql_h" = "xnono"
+               then
+                       with_libmysql="no (mysql.h not found)"
+               fi
  
                CPPFLAGS="$SAVE_CPPFLAGS"
        fi
@@@ -1263,7 -1388,7 +1275,7 @@@ the
  
        if test $mysql_config_status -ne 0
        then
-               with_libmysql="no"
+               with_libmysql="no ($with_mysql_config failed)"
        else
                AC_CHECK_LIB(mysqlclient, mysql_init,
                 [with_libmysql="yes"],
        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"
 -      then
 -              if test -d "$withval/lib"
 -              then
 -                      liboping_LDFLAGS="$LDFLAGS -L$withval/lib"
 -              fi
 -              if test -d "$withval/include"
 -              then
 -                      liboping_CPPFLAGS="$CPPFLAGS -I$withval/include"
 -              fi
 -      fi
        if test "x$withval" = "xno"
        then
 -              with_liboping="no"
 -              with_own_liboping="no"
 +              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
 +              if test -d "$withval/include"
 +              then
 +                      liboping_CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              fi
 +      fi
 +      if test "x$withval" = "xno"
 +      then
 +              with_liboping="no"
 +              with_own_liboping="no"
        else if test "x$withval" = "xyes"
        then
                with_liboping="yes"
  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.])],
@@@ -1668,9 -1547,8 +1680,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")
 +# }}}
 +
 +# --with-libpcre {{{
 +with_pcre_config="pcre-config"
 +with_pcre_cflags=""
 +with_pcre_libs=""
 +AC_ARG_WITH(libpcre, [AS_HELP_STRING([--with-libpcre@<:@=PREFIX@:>@],
 +      [Path to libpcre.])],
 +      [
 +              if test "x$withval" = "xno"
 +              then
 +                      with_libpcre="no"
 +              else if test "x$withval" = "xyes"
 +              then
 +                      with_libpcre="yes"
 +              else
 +                      if test -f "$withval" && test -x "$withval"
 +                      then
 +                              with_pcre_config="$withval"
 +                      else if test -x "$withval/bin/pcre-config"
 +                      then
 +                              with_pcre_config="$withval/bin/pcre-config"
 +                      fi; fi
 +                      with_libpcre="yes"
 +              fi; fi
 +      ],
 +      [
 +              with_libpcre="yes"
 +      ])
  
 -AC_ARG_WITH(libesmtp, [AS_HELP_STRING([--with-libesmtp@<:@=PREFIX@:>@], [Path to libesmtp.])],
 -[
 -      if test "x$withval" != "xno" && test "x$withval" != "xyes"
 +if test "x$with_libpcre" = "xyes"
 +then
 +      with_pcre_cflags=`$with_pcre_config --cflags 2>/dev/null`
 +      pcre_config_status=$?
 +
 +      if test $pcre_config_status -ne 0
        then
 -              LDFLAGS="$LDFLAGS -L$withval/lib"
 -              CPPFLAGS="$CPPFLAGS -I$withval/include -D_THREAD_SAFE"
 -              with_libesmtp="yes"
 +              with_libpcre="no ($with_pcre_config failed)"
        else
 -              with_libesmtp="$withval"
 +              SAVE_CPPFLAGS="$CPPFLAGS"
 +              CPPFLAGS="$CPPFLAGS $with_pcre_cflags"
 +
 +              AC_CHECK_HEADERS(pcre.h, [], [with_libpcre="no (pcre.h not found)"], [])
 +
 +              CPPFLAGS="$SAVE_CPPFLAGS"
        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"
 +
 +if test "x$with_libpcre" = "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)"])
 +      with_pcre_libs=`$with_pcre_config --libs 2>/dev/null`
 +      pcre_config_status=$?
 +
 +      if test $pcre_config_status -ne 0
 +      then
 +              with_libpcre="no ($with_pcre_config failed)"
 +      else
 +              AC_CHECK_LIB(pcre, pcre_compile,
 +                      [with_libpcre="yes"],
 +                      [with_libpcre="no (symbol 'pcre_compile' not found)"],
 +                      [$with_pcre_libs])
 +      fi
  fi
 -if test "x$with_libesmtp" = "xyes"
 +
 +if test "x$with_libpcre" = "xyes"
  then
 -      collect_libesmtp=1
 -else
 -      collect_libesmtp=0
 +      BUILD_WITH_LIBPCRE_CFLAGS="$with_pcre_cflags"
 +      BUILD_WITH_LIBPCRE_LIBS="$with_pcre_libs"
 +      AC_SUBST(BUILD_WITH_LIBPCRE_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBPCRE_LIBS)
  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")
 +AM_CONDITIONAL(BUILD_WITH_LIBPCRE, test "x$with_libpcre" = "xyes")
 +# }}}
  
 +# --with-libperl {{{
  perl_interpreter="perl"
  AC_ARG_WITH(libperl, [AS_HELP_STRING([--with-libperl@<:@=PREFIX@:>@], [Path to libperl.])],
  [
        CFLAGS=$SAVE_CFLAGS
        LDFLAGS=$SAVE_LDFLAGS
  fi
 +# }}}
  
 -with_own_libiptc="no"
 -AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
 +# --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" && test "x$withval" != "xyes"
 +      if test "x$withval" = "xno"
        then
 -              LDFLAGS="$LDFLAGS -L$withval/lib"
 -              CPPFLAGS="$CPPFLAGS -I$withval/include"
 -              with_libiptc="yes"
 +              with_libpq="no"
 +      else if test "x$withval" = "xyes"
 +      then
 +              with_libpq="yes"
        else
 -              with_libiptc="$withval"
 -      fi
 +              if test -f "$withval" && test -x "$withval";
 +              then
 +                      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
  ],
  [
 -      if test "x$ac_system" = "xLinux"
 +      with_libpq="yes"
 +])
 +if test "x$with_libpq" = "xyes"
 +then
 +      with_libpq_includedir=`$with_pg_config --includedir 2> /dev/null`
 +      pg_config_status=$?
 +
 +      if test $pg_config_status -eq 0
        then
 -              with_libiptc="yes"
 +              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
 -              with_libiptc="no (Linux only)"
 +              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
        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"
 -      ])
 +
 +      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_libiptc" = "xyes"
 +if test "x$with_libpq" = "xyes"
  then
 -      SAVE_CFLAGS=$CFLAGS
 -      CFLAGS="$CFLAGS $KERNEL_CFLAGS"
 +      with_libpq_libdir=`$with_pg_config --libdir 2> /dev/null`
 +      pg_config_status=$?
  
 -      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"
 -      ])
 +      if test $pg_config_status -eq 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])
 +      fi
  
 -      CFLAGS=$SAVE_CFLAGS
 +      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
 -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"
 +if test "x$with_libpq" = "xyes"
  then
 -      AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.])
 +      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_LIBPQ, test "x$with_libpq" = "xyes")
 +# }}}
  
 -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"
 -      then
 -              with_libnetsnmp="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_libnetsnmp="yes"
 +              LDFLAGS="$LDFLAGS -L$withval/lib"
 +              CPPFLAGS="$CPPFLAGS -I$withval/include"
 +              with_libpthread="yes"
        else
 -              if test -x "$withval"
 +              if test "x$withval" = "xno"
                then
 -                      with_snmp_config="$withval"
 -                      with_libnetsnmp="yes"
 -              else
 -                      with_snmp_config="$withval/bin/net-snmp-config"
 -                      with_libnetsnmp="yes"
 +                      with_libpthread="no (disabled)"
                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
 +], [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_libnetsnmp" = "xyes"
 +if test "x$with_libpthread" = "xyes"
  then
 -      with_snmp_libs=`$with_snmp_config --libs 2>/dev/null`
 -      snmp_config_status=$?
 +      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 $snmp_config_status -ne 0
 +# --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_libnetsnmp="no ($with_snmp_config failed)"
 +              librrd_cflags="-I$withval/include"
 +              librrd_ldflags="-L$withval/lib"
 +              with_librrd="yes"
        else
 -              AC_CHECK_LIB(netsnmp, init_snmp,
 -              [with_libnetsnmp="yes"],
 -              [with_libnetsnmp="no (libnetsnmp not found)"],
 -              [$with_snmp_libs])
 +              with_librrd="$withval"
        fi
 -fi
 -if test "x$with_libnetsnmp" = "xyes"
 +], [with_librrd="yes"])
 +if test "x$with_librrd" = "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")
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      SAVE_LDFLAGS="$LDFLAGS"
  
 -PKG_CHECK_MODULES([LIBNOTIFY], [libnotify],
 -              [with_libnotify="yes"],
 -              [with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"])
 +      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 +      LDFLAGS="$LDFLAGS $librrd_ldflags"
  
 -with_libupsclient="no (pkg-config isn't available)"
 -with_libupsclient_cflags=""
 -with_libupsclient_libs=""
 -if test "x$PKG_CONFIG" != "x"
 +      AC_CHECK_HEADERS(rrd.h,, [with_librrd="no (rrd.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      LDFLAGS="$SAVE_LDFLAGS"
 +fi
 +if test "x$with_librrd" = "xyes"
  then
 -      pkg-config --exists 'libupsclient' 2>/dev/null
 -      if test "$?" = "0"
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      SAVE_LDFLAGS="$LDFLAGS"
 +
 +      CPPFLAGS="$CPPFLAGS $librrd_cflags"
 +      LDFLAGS="$LDFLAGS $librrd_ldflags"
 +
 +      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
 -              with_libupsclient="yes"
 +              AC_CHECK_LIB(rrd_th, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"])
        else
 -              with_libupsclient="no (pkg-config doesn't know library)"
 +              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_libupsclient" = "xyes"
 +if test "x$with_librrd" = "xyes"
  then
 -      with_libupsclient_cflags="`pkg-config --cflags 'libupsclient'`"
 -      if test $? -ne 0
 +      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
 +# }}}
 +
 +# --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"
        then
 -              with_libupsclient="no"
 +              with_libsensors="no"
 +      else
 +              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_libupsclient_libs="`pkg-config --libs 'libupsclient'`"
 -      if test $? -ne 0
 +],
 +[
 +      if test "x$ac_system" = "xLinux"
        then
 -              with_libupsclient="no"
 +              with_libsensors="yes"
 +      else
 +              with_libsensors="no (Linux only library)"
        fi
 -fi
 -if test "x$with_libupsclient" = "xyes"
 +])
 +if test "x$with_libsensors" = "xyes"
  then
        SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
  
 -      AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"])
 +#     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_libupsclient" = "xyes"
 +if test "x$with_libsensors" = "xyes"
  then
        SAVE_CPPFLAGS="$CPPFLAGS"
        SAVE_LDFLAGS="$LDFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_sensors_cflags"
 +      LDFLAGS="$LDFLAGS $with_sensors_ldflags"
  
 -      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)"])
 +      AC_CHECK_LIB(sensors, sensors_init,
 +      [
 +              AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).])
 +      ],
 +      [with_libsensors="no (libsensors not found)"])
  
        CPPFLAGS="$SAVE_CPPFLAGS"
        LDFLAGS="$SAVE_LDFLAGS"
  fi
 -if test "x$with_libupsclient" = "xyes"
 +if test "x$with_libsensors" = "xyes"
  then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +      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
 +AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_libsensors" = "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_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
 -
 -### 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-libstatgrab {{{
 +with_libstatgrab_cflags=""
 +with_libstatgrab_ldflags=""
 +AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])],
  [
        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"
 -      then
 -              with_libxmms="no"
 +              with_libstatgrab_cflags="-I$withval/include"
 +              with_libstatgrab_ldflags="-L$withval/lib"
 +              with_libstatgrab="yes"
        else
 -              with_libxmms="yes"
 -      fi; fi
 +              with_libstatgrab="$withval"
 +      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
 -      then
 -              with_libxmms="no"
 -      fi
 -fi
 -if test "x$with_libxmms" = "xyes"
 -then
 -      with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
 -      xmms_config_status=$?
 -
 -      if test $xmms_config_status -ne 0
 +      if test "x$ac_system" = "xunknown"
        then
 -              with_libxmms="no"
 +              with_libstatgrab="yes"
 +      else
 +              with_libstatgrab="no"
        fi
 -fi
 -if test "x$with_libxmms" = "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)
 -      ],
 -      [
 -              with_libxmms="no"
 -      ],
 -      [$with_xmms_libs])
 -fi
 -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")
 -### END of check for libxmms ###
 -
 -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
 -],
 -[
 - 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"
 -
 -      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>])
 -
 -      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
 -      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_libopenipmipthread="yes"
 -with_libopenipmipthread_cflags=""
 -with_libopenipmipthread_libs=""
 -
 -AC_MSG_CHECKING([for pkg-config])
 -temp_result="no"
 -if test "x$PKG_CONFIG" = "x"
 +with_libstatgrab_pkg_config="yes"
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$PKG_CONFIG" != "x"
  then
 -      with_libopenipmipthread="no"
 -      temp_result="no"
 +  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
 -      temp_result="$PKG_CONFIG"
 +  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
 -AC_MSG_RESULT([$temp_result])
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 +  && test "x$with_libstatgrab_cflags" = "x"
  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])
 +  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
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libstatgrab" = "xyes" \
 +  && test "x$with_libstatgrab_pkg_config" = "xyes" \
 +  && test "x$with_libstatgrab_ldflags" = "x"
  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])
 +  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
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libstatgrab" = "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])
 +  SAVE_CPPFLAGS="$CPPFLAGS"
 +  CPPFLAGS="$CPPFLAGS $with_libstatgrab_cflags"
 +
 +  AC_CHECK_HEADERS(statgrab.h,
 +                 [with_libstatgrab="yes"],
 +                 [with_libstatgrab="no (statgrab.h not found)"])
 +
 +  CPPFLAGS="$SAVE_CPPFLAGS"
  fi
  
 -if test "x$with_libopenipmipthread" = "xyes"
 +if test "x$with_libstatgrab" = "xyes"
  then
 -      SAVE_CPPFLAGS="$CPPFLAGS"
 -      CPPFLAGS="$CPPFLAGS $with_libopenipmipthread_cflags"
 +  SAVE_CFLAGS="$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>
 -])
 +  CFLAGS="$CFLAGS $with_libstatgrab_cflags"
 +  LDFLAGS="$LDFLAGS $with_libstatgrab_ldflags"
  
 -      CPPFLAGS="$SAVE_CPPFLAGS"
 +  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_libopenipmipthread" = "xyes"
 +AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes")
 +if test "x$with_libstatgrab" = "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)
 +  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
 +# }}}
  
 -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
 +fi
 +if test "x$with_libxmms" = "xyes"
 +then
 +      with_xmms_libs=`$with_xmms_config --libs 2>/dev/null`
 +      xmms_config_status=$?
  
 -      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"
 +      if test $xmms_config_status -ne 0
 +      then
 +              with_libxmms="no"
 +      fi
  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=$?
 +      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
 +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")
 +# }}}
  
 -      if test $pg_config_status -eq 0
 +# pkg-config --exists 'libupsclient' {{{
 +with_libupsclient="no (pkg-config isn't available)"
 +with_libupsclient_cflags=""
 +with_libupsclient_libs=""
 +if test "x$PKG_CONFIG" != "x"
 +then
 +      pkg-config --exists 'libupsclient' 2>/dev/null
 +      if test "$?" = "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
 +              with_libupsclient="yes"
        else
 -              AC_MSG_WARN([$with_pg_config returned with status $pg_config_status])
 +              with_libupsclient="no (pkg-config doesn't know library)"
 +      fi
 +fi
 +if test "x$with_libupsclient" = "xyes"
 +then
 +      with_libupsclient_cflags="`pkg-config --cflags 'libupsclient'`"
 +      if test $? -ne 0
 +      then
 +              with_libupsclient="no"
 +      fi
 +      with_libupsclient_libs="`pkg-config --libs 'libupsclient'`"
 +      if test $? -ne 0
 +      then
 +              with_libupsclient="no"
        fi
 +fi
 +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"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
        SAVE_LDFLAGS="$LDFLAGS"
 -      LDFLAGS="$LDFLAGS $with_libpq_ldflags"
  
 -      AC_CHECK_LIB(pq, PQconnectdb,
 -              [with_libpq="yes"],
 -              [with_libpq="no (symbol 'PQconnectdb' not found)"])
 +      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_libpq" = "xyes"
 +if test "x$with_libupsclient" = "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)
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
 +
 +      AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [],
 +[#include <stdlib.h>
 +#include <stdio.h>
 +#include <upsclient.h>])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
  fi
 -AM_CONDITIONAL(BUILD_WITH_LIBPQ, test "x$with_libpq" = "xyes")
 +if test "x$with_libupsclient" = "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)
 +fi
 +# }}}
  
 -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=""
@@@ -2532,92 -2399,8 +2544,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
  #
@@@ -2924,7 -2707,6 +2936,7 @@@ AC_PLUGIN([cpu],         [$plugin_cpu]
  AC_PLUGIN([cpufreq],     [$plugin_cpufreq],    [CPU frequency statistics])
  AC_PLUGIN([csv],         [yes],                [CSV output plugin])
  AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications])
 +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])
@@@ -2932,8 -2714,6 +2944,8 @@@ AC_PLUGIN([email],       [yes]
  AC_PLUGIN([entropy],     [$plugin_entropy],    [Entropy statistics])
  AC_PLUGIN([exec],        [yes],                [Execution of external programs])
  AC_PLUGIN([filecount],   [yes],                [Count files in directories])
 +AC_PLUGIN([filter_ignore], [yes],                [Ignore specific values])
 +AC_PLUGIN([filter_pcre], [$with_libpcre],      [Filter based on PCRE])
  AC_PLUGIN([hddtemp],     [yes],                [Query hddtempd])
  AC_PLUGIN([interface],   [$plugin_interface],  [Interface traffic statistics])
  AC_PLUGIN([iptables],    [$with_libiptc],      [IPTables rule counters])
@@@ -2956,15 -2736,13 +2968,15 @@@ AC_PLUGIN([notify_email], [$with_libesm
  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([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([rrdtool],     [$with_librrd],       [RRDTool output plugin])
 +AC_PLUGIN([rrdcached],   [$librrd_rrdc_update], [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])
@@@ -3021,10 -2799,10 +3033,10 @@@ AC_SUBST(PERL_BINDINGS_OPTIONS
  
  AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile)
  
 -if test "x$with_rrdtool" = "xyes" \
 +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" \
@@@ -3056,7 -2834,6 +3068,7 @@@ cat <<EOF
  Configuration:
    Libraries:
      libcurl . . . . . . . $with_libcurl
 +    libdbi  . . . . . . . $with_libdbi
      libesmtp  . . . . . . $with_libesmtp
      libiokit  . . . . . . $with_libiokit
      libiptc . . . . . . . $with_libiptc
      libopenipmi . . . . . $with_libopenipmipthread
      liboping  . . . . . . $with_liboping
      libpcap . . . . . . . $with_libpcap
 +    libpcre . . . . . . . $with_libpcre
      libperl . . . . . . . $with_libperl
      libpthread  . . . . . $with_libpthread
      libpq . . . . . . . . $with_libpq
 -    librrd  . . . . . . . $with_rrdtool
 -    libsensors  . . . . . $with_lm_sensors
 +    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
      cpu . . . . . . . . . $enable_cpu
      cpufreq . . . . . . . $enable_cpufreq
      csv . . . . . . . . . $enable_csv
 +    dbi . . . . . . . . . $enable_dbi
      df  . . . . . . . . . $enable_df
      disk  . . . . . . . . $enable_disk
      dns . . . . . . . . . $enable_dns
      entropy . . . . . . . $enable_entropy
      exec  . . . . . . . . $enable_exec
      filecount . . . . . . $enable_filecount
 +    filter_ignore . . . . $enable_filter_ignore
 +    filter_pcre . . . . . $enable_filter_pcre
      hddtemp . . . . . . . $enable_hddtemp
      interface . . . . . . $enable_interface
      iptables  . . . . . . $enable_iptables
      ntpd  . . . . . . . . $enable_ntpd
      nut . . . . . . . . . $enable_nut
      onewire . . . . . . . $enable_onewire
 +    oracle  . . . . . . . $enable_oracle
      perl  . . . . . . . . $enable_perl
      ping  . . . . . . . . $enable_ping
      postgresql  . . . . . $enable_postgresql
      powerdns  . . . . . . $enable_powerdns
      processes . . . . . . $enable_processes
      rrdtool . . . . . . . $enable_rrdtool
 +    rrdcached . . . . . . $enable_rrdcached
      sensors . . . . . . . $enable_sensors
      serial  . . . . . . . $enable_serial
      snmp  . . . . . . . . $enable_snmp
@@@ -3163,5 -2933,3 +3175,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
@@@ -38,7 -38,6 +38,7 @@@ collectd_SOURCES = collectd.c collectd.
                   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
@@@ -185,16 -184,6 +185,16 @@@ collectd_LDADD += "-dlopen" csv.l
  collectd_DEPENDENCIES += csv.la
  endif
  
 +if BUILD_PLUGIN_DBI
 +pkglib_LTLIBRARIES += dbi.la
 +dbi_la_SOURCES = dbi.c
 +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
@@@ -275,24 -264,6 +275,24 @@@ collectd_LDADD += "-dlopen" filecount.l
  collectd_DEPENDENCIES += filecount.la
  endif
  
 +if BUILD_PLUGIN_FILTER_IGNORE
 +pkglib_LTLIBRARIES += filter_ignore.la
 +filter_ignore_la_SOURCES = filter_ignore.c
 +filter_ignore_la_LDFLAGS = -module -avoid-version
 +collectd_LDADD += "-dlopen" filter_ignore.la
 +collectd_DEPENDENCIES += filter_ignore.la
 +endif
 +
 +if BUILD_PLUGIN_FILTER_PCRE
 +pkglib_LTLIBRARIES += filter_pcre.la
 +filter_pcre_la_SOURCES = filter_pcre.c
 +filter_pcre_la_CPPFLAGS = $(BUILD_WITH_LIBPCRE_CFLAGS)
 +filter_pcre_la_LDFLAGS = -module -avoid-version \
 +              $(BUILD_WITH_LIBPCRE_LIBS)
 +collectd_LDADD += "-dlopen" filter_pcre.la
 +collectd_DEPENDENCIES += filter_pcre.la
 +endif
 +
  if BUILD_PLUGIN_HDDTEMP
  pkglib_LTLIBRARIES += hddtemp.la
  hddtemp_la_SOURCES = hddtemp.c
@@@ -352,7 -323,7 +352,7 @@@ endi
  if BUILD_PLUGIN_IPVS
  pkglib_LTLIBRARIES += ipvs.la
  ipvs_la_SOURCES = ipvs.c
- ipvs_la_CFLAGS = $(KERNEL_CFLAGS)
+ ipvs_la_CFLAGS = $(AM_CFLAGS) $(KERNEL_CFLAGS)
  ipvs_la_LDFLAGS = -module -avoid-version
  collectd_LDADD += "-dlopen" ipvs.la
  collectd_DEPENDENCIES += ipvs.la
@@@ -558,17 -529,6 +558,17 @@@ collectd_LDADD += "-dlopen" onewire.l
  collectd_DEPENDENCIES += onewire.la
  endif
  
 +if BUILD_PLUGIN_ORACLE
 +pkglib_LTLIBRARIES += oracle.la
 +oracle_la_SOURCES = oracle.c
 +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
@@@ -628,19 -588,9 +628,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)
@@@ -789,7 -739,7 +789,7 @@@ endi
  if BUILD_PLUGIN_UUID
  pkglib_LTLIBRARIES += uuid.la
  uuid_la_SOURCES = uuid.c
- uuid_la_CFLAGS  = $(BUILD_WITH_LIBHAL_CFLAGS)
+ uuid_la_CFLAGS  = $(AM_CFLAGS) $(BUILD_WITH_LIBHAL_CFLAGS)
  uuid_la_LIBADD  = $(BUILD_WITH_LIBHAL_LIBS)
  uuid_la_LDFLAGS = -module -avoid-version
  collectd_LDADD += "-dlopen" uuid.la
diff --combined src/filecount.c
  #include <dirent.h>
  #include <fnmatch.h>
  
 +#define FC_RECURSIVE 1
 +
  struct fc_directory_conf_s
  {
    char *path;
    char *instance;
  
 +  int options;
 +
    /* Data counters */
    uint64_t files_num;
    uint64_t files_size;
@@@ -311,25 -307,6 +311,25 @@@ static int fc_config_add_dir_size (fc_d
    return (0);
  } /* int fc_config_add_dir_size */
  
 +static int fc_config_add_dir_recursive (fc_directory_conf_t *dir,
 +    oconfig_item_t *ci)
 +{
 +  if ((ci->values_num != 1)
 +      || (ci->values[0].type != OCONFIG_TYPE_BOOLEAN))
 +  {
 +    WARNING ("filecount plugin: The `Recursive' config options needs exactly "
 +        "one boolean argument.");
 +    return (-1);
 +  }
 +
 +  if (ci->values[0].value.boolean)
 +    dir->options |= FC_RECURSIVE;
 +  else
 +    dir->options &= ~FC_RECURSIVE;
 +
 +  return (0);
 +} /* int fc_config_add_dir_recursive */
 +
  static int fc_config_add_dir (oconfig_item_t *ci)
  {
    fc_directory_conf_t *dir;
  
    fc_config_set_instance (dir, dir->path);
  
 +  dir->options = FC_RECURSIVE;
 +
    dir->name = NULL;
    dir->mtime = 0;
    dir->size = 0;
        status = fc_config_add_dir_mtime (dir, option);
      else if (strcasecmp ("Size", option->key) == 0)
        status = fc_config_add_dir_size (dir, option);
 +    else if (strcasecmp ("Recursive", option->key) == 0)
 +      status = fc_config_add_dir_recursive (dir, option);
      else
      {
        WARNING ("filecount plugin: fc_config_add_dir: "
      fc_directory_conf_t **temp;
  
      temp = (fc_directory_conf_t **) realloc (directories,
-         sizeof (*directories) * directories_num);
+         sizeof (*directories) * (directories_num + 1));
      if (temp == NULL)
      {
        ERROR ("filecount plugin: realloc failed.");
@@@ -474,7 -447,7 +474,7 @@@ static int fc_read_dir_callback (const 
      return (-1);
    }
  
 -  if (S_ISDIR (statbuf.st_mode))
 +  if (S_ISDIR (statbuf.st_mode) && (dir->options & FC_RECURSIVE))
    {
      status = walk_directory (abs_path, fc_read_dir_callback, dir);
      return (status);
diff --combined src/libiptc/Makefile.am
@@@ -1,6 -1,6 +1,6 @@@
  AUTOMAKE_OPTIONS = foreign no-dependencies
  
 -EXTRA_DIST = libiptc.c
 +EXTRA_DIST = libiptc.c README.collectd
  
  if COMPILER_IS_GCC
  AM_CFLAGS = -Wall -Werror
@@@ -8,7 -8,8 +8,8 @@@ endi
  
  noinst_LTLIBRARIES = libiptc.la
  
 -libiptc_la_CFLAGS = -DIPTABLES_VERSION=\"1.4.0\" -I$(KERNEL_DIR)/include
 +libiptc_la_CFLAGS = -I$(KERNEL_DIR)/include
  libiptc_la_SOURCES = libip4tc.c libip6tc.c \
-               ipt_kernel_headers.h libip6tc.h libiptc.h linux_list.h
+               ipt_kernel_headers.h libip6tc.h libiptc.h linux_list.h \
+               xtables.h libxtc.h
  
diff --combined src/perl.c
@@@ -1790,7 -1790,7 +1790,7 @@@ static int perl_config (oconfig_item_t 
  
        for (i = 0; i < ci->children_num; ++i) {
                oconfig_item_t *c = ci->children + i;
-               int current_status;
+               int current_status = 0;
  
                if (NULL != perl_threads)
                        aTHX = PERL_GET_CONTEXT;
                else if (0 == strcasecmp (c->key, "Plugin"))
                        current_status = perl_config_plugin (aTHX_ c);
                else
 +              {
                        log_warn ("Ignoring unknown config key \"%s\".", c->key);
 +                      current_status = 0;
 +              }
  
                /* fatal error - it's up to perl_config_* to clean up */
                if (0 > current_status) {