X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.in;h=2bab6b32cab6f2cbbd7390d1fbdd06f9bf226f38;hb=4e57613ae19a71a0f180f0648223a139f48c932c;hp=d9dd13a37b60116df5437fa34e3a393c97ad8293;hpb=d45c77caacd134faa08f87cf8f5206499c5b1958;p=collectd.git diff --git a/configure.in b/configure.in index d9dd13a3..2bab6b32 100644 --- a/configure.in +++ b/configure.in @@ -17,6 +17,7 @@ AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET +AM_PROG_CC_C_O AM_CONDITIONAL(COMPILER_IS_GCC, test "x$GCC" = "xyes") dnl configure libtool @@ -44,11 +45,31 @@ case $host_os in *darwin*) ac_system="Darwin" ;; + *openbsd*) + ac_system="OpenBSD" + ;; *) ac_system="unknown" esac AC_MSG_RESULT([$ac_system]) +if test "x$ac_system" = "xLinux" +then + AC_ARG_VAR([KERNEL_DIR], [path to Linux kernel sources]) + if test -z "$KERNEL_DIR" + then + KERNEL_DIR="/lib/modules/`uname -r`/source" + fi + + KERNEL_CFLAGS="-I$KERNEL_DIR/include" + AC_SUBST(KERNEL_CFLAGS) +fi + +if test "x$ac_system" = "xSolaris" +then + CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS" +fi + # # Checks for header files. # @@ -56,7 +77,7 @@ AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_DIRENT -AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h) +AC_CHECK_HEADERS(stdio.h stdint.h stdbool.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h sys/isa_defs.h) # For ping library AC_CHECK_HEADERS(netinet/in_systm.h, [], [], @@ -224,7 +245,8 @@ AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [], ]) # For the swap module -AC_CHECK_HEADERS(sys/swap.h, [], [], +have_sys_swap_h="yes" +AC_CHECK_HEADERS(sys/swap.h, [], [have_sys_swap_h="no"], [ #if HAVE_SYS_TYPES_H # include @@ -234,6 +256,11 @@ AC_CHECK_HEADERS(sys/swap.h, [], [], #endif ]) +if test "x$have_sys_swap_h$ac_system" = "xnoSolaris" +then + AC_MSG_NOTICE([Solaris detected and sys/swap.h not found: Try building a 64bit binary.]) +fi + # For load module # For the processes plugin # For users module @@ -277,8 +304,13 @@ have_net_ip_vs_h="no" have_ip_vs_h="no" if test "x$ac_system" = "xLinux" then + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $KERNEL_CFLAGS" + AC_CHECK_HEADERS(net/ip_vs.h, [have_net_ip_vs_h="yes"]) AC_CHECK_HEADERS(ip_vs.h, [have_ip_vs_h="yes"]) + + CFLAGS=$SAVE_CFLAGS fi # For quota module @@ -311,7 +343,7 @@ AC_CHECK_HEADERS(linux/un.h, [], [], #endif ]) -AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.h sys/quota.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h kvm.h) +AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.h sys/quota.h xfs/xqm.h fs_info.h fshelp.h paths.h mntent.h mnttab.h sys/fstyp.h sys/fs_types.h sys/mntent.h sys/mnttab.h sys/statfs.h sys/statvfs.h sys/vfs.h sys/vfstab.h kvm.h wordexp.h) # For the dns plugin AC_CHECK_HEADERS(arpa/nameser.h) @@ -884,6 +916,19 @@ AC_CHECK_LIB(resolv, res_search, [with_libresolv="no"]) AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes") +dnl Check for HAL (hardware abstraction library) +with_libhal="yes" +AC_CHECK_LIB(hal,libhal_device_property_exists, + [AC_DEFINE(HAVE_LIBHAL, 1, [Define to 1 if you have 'hal' library])], + [with_libhal="no"]) +if test "x$with_libhal" = "xyes"; then + if test "x$PKG_CONFIG" != "x"; then + BUILD_WITH_LIBHAL_CFLAGS="`pkg-config --cflags hal`" + BUILD_WITH_LIBHAL_LIBS="`pkg-config --libs hal`" + AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS) + AC_SUBST(BUILD_WITH_LIBHAL_LIBS) + fi +fi m4_divert_once([HELP_WITH], [ collectd additional packages:]) @@ -898,6 +943,8 @@ AC_ARG_WITH(rrdtool, [AS_HELP_STRING([--with-rrdtool@<:@=PREFIX@:>@], [Path to r 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" @@ -1098,6 +1145,8 @@ AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [P with_libstatgrab_cflags="-I$withval/include" with_libstatgrab_ldflags="-L$withval/lib" with_libstatgrab="yes" + else + with_libstatgrab="$withval" fi ], [ @@ -1197,12 +1246,42 @@ then AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS) fi -AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_libkvm="yes"], [with_libkvm="no"]) -if test "x$with_libkvm" = "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, 1, [Define to 1 if you have the 'kvm' library (-lkvm)]) + 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, test "x$with_libkvm" = "xyes") +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_sensors_cflags="" with_sensors_ldflags="" @@ -1300,12 +1379,24 @@ then 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 @@ -1317,7 +1408,7 @@ then 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"], @@ -1402,10 +1493,12 @@ AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to then with_liboping="no" with_own_liboping="no" - fi + else if test "x$withval" = "xyes" + then + with_liboping="yes" + fi; fi ], [ - #753 with_liboping="yes" ]) @@ -1430,6 +1523,52 @@ fi AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes") AM_CONDITIONAL(BUILD_WITH_OWN_LIBOPING, test "x$with_own_liboping" = "xyes") +with_libowcapi_cppflags="" +with_libowcapi_libs="-lowcapi" +AC_ARG_WITH(libowcapi, [AS_HELP_STRING([--with-libowcapi@<:@=PREFIX@:>@], [Path to libowcapi.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + with_libowcapi_cppflags="-I$withval/include" + with_libowcapi_libs="-L$withval/lib -lowcapi" + with_libowcapi="yes" + else + with_libowcapi="$withval" + fi +], +[ + with_libowcapi="yes" +]) +if test "x$with_libowcapi" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$with_libowcapi_cppflags" + + AC_CHECK_HEADERS(owcapi.h, [with_libowcapi="yes"], [with_libowcapi="no (owcapi.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libowcapi" = "xyes" +then + SAVE_LDFLAGS="$LDFLAGS" + SAVE_CPPFLAGS="$CPPFLAGS" + LDFLAGS="$with_libowcapi_libs" + CPPFLAGS="$with_libowcapi_cppflags" + + AC_CHECK_LIB(owcapi, OW_get, [with_libowcapi="yes"], [with_libowcapi="no (libowcapi not found)"]) + + LDFLAGS="$SAVE_LDFLAGS" + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libowcapi" = "xyes" +then + BUILD_WITH_LIBOWCAPI_CPPFLAGS="$with_libowcapi_cppflags" + BUILD_WITH_LIBOWCAPI_LIBS="$with_libowcapi_libs" + AC_SUBST(BUILD_WITH_LIBOWCAPI_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBOWCAPI_LIBS) +fi + + AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" @@ -1437,6 +1576,8 @@ AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to l LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libpcap="yes" + else + with_libpcap="$withval" fi ], [ @@ -1466,16 +1607,60 @@ 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 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") + perl_interpreter="perl" AC_ARG_WITH(libperl, [AS_HELP_STRING([--with-libperl@<:@=PREFIX@:>@], [Path to libperl.])], [ - if test "x$withval" != "xno" && test "x$withval" != "xyes" + if test -x "$withval" + then + perl_interpreter="$withval" + with_libperl="yes" + else if test "x$withval" != "xno" && test "x$withval" != "xyes" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" perl_interpreter="$withval/bin/perl" with_libperl="yes" - fi + else + with_libperl="$withval" + fi; fi ], [ with_libperl="yes" @@ -1485,7 +1670,7 @@ AC_MSG_CHECKING([for perl]) perl_interpreter=`which "$perl_interpreter" 2> /dev/null` if test -x "$perl_interpreter" then - AC_MSG_RESULT([yes]) + AC_MSG_RESULT([yes ($perl_interpreter)]) else perl_interpreter="" AC_MSG_RESULT([no]) @@ -1508,13 +1693,14 @@ then AC_LINK_IFELSE( AC_LANG_PROGRAM( [[ +#define PERL_NO_GET_CONTEXT #include #include #include ]], [[ - PerlInterpreter *perl = NULL; - Perl_load_module (perl, PERL_LOADMOD_NOIMPORT, + dTHX; + load_module (PERL_LOADMOD_NOIMPORT, newSVpv ("Collectd::Plugin::FooBar", 24), Nullsv); ]]), @@ -1540,6 +1726,42 @@ else if test -z "$perl_interpreter"; then fi; fi AM_CONDITIONAL(BUILD_WITH_LIBPERL, test "x$with_libperl" = "xyes") +if test "x$with_libperl" = "xyes" +then + SAVE_CFLAGS=$CFLAGS + SAVE_LDFLAGS=$LDFLAGS + CFLAGS="$CFLAGS $PERL_CFLAGS" + LDFLAGS="$LDFLAGS $PERL_LDFLAGS" + + AC_CACHE_CHECK([if perl supports ithreads], + [have_perl_ithreads], + AC_LINK_IFELSE( + AC_LANG_PROGRAM( + [[ +#include +#include +#include + +#if !defined(USE_ITHREADS) +# error "Perl does not support ithreads!" +#endif /* !defined(USE_ITHREADS) */ + ]], + [[ ]]), + [have_perl_ithreads="yes"], + [have_perl_ithreads="no"] + ) + ) + + if test "x$have_perl_ithreads" = "xyes" + then + AC_DEFINE(HAVE_PERL_ITHREADS, 1, [Define if Perl supports ithreads.]) + fi + + CFLAGS=$SAVE_CFLAGS + 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" @@ -1547,10 +1769,12 @@ AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to l LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libiptc="yes" + else + with_libiptc="$withval" fi ], [ - if test "x$ac_system" = "xLinux" + if test "x$ac_system" = "xLinux" then with_libiptc="yes" else @@ -1562,36 +1786,59 @@ then AC_CHECK_LIB(iptc, iptc_init, [ AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).]) - ], [with_libiptc="no (libiptc not found)"]) + ], + [ + with_libiptc="yes" + with_own_libiptc="yes" + ]) fi -if test "x$with_libiptc" = "xyes" +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 header file.]) - ], [with_libiptc="no (libiptc/libiptc.h not found)"]) + ], + [ + with_libiptc="yes" + with_own_libiptc="yes" + ]) fi if test "x$with_libiptc" = "xyes" then - collect_libiptc=1 -else - collect_libiptc=0 + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $KERNEL_CFLAGS" + + 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" + ]) + + CFLAGS=$SAVE_CFLAGS 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" +then + AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.]) +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.])], [ - if test "x$withval" = "xno" + if test "x$withval" = "xno" then with_libnetsnmp="no" else if test "x$withval" = "xyes" then with_libnetsnmp="yes" else - if test -x "$withval" + if test -x "$withval" then with_snmp_config="$withval" with_libnetsnmp="yes" @@ -1643,44 +1890,101 @@ then fi AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes") -with_upsclient_config="libupsclient-config" -with_upsclient_cflags="" -with_upsclient_libs="" -AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to libupsclient.])], +PKG_CHECK_MODULES([LIBNOTIFY], [libnotify], + [with_libnotify="yes"], + [with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"]) + +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" != "xyes" + if test -x "$withval" then - if test -f "$withval" && test -x "$withval"; - then - with_upsclient_config="$withval" - else - with_upsclient_config="$withval/bin/libupsclient-config" - fi - fi - with_libupsclient="yes" - fi + 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="yes" -]) -if test "x$with_libupsclient" = "xyes" +[with_libupsclient="use_pkgconfig"]) + +# configure using libupsclient-config +if test "x$with_libupsclient" = "xuse_libupsclient_config" then - with_upsclient_cflags=`$with_upsclient_config --cflags 2>/dev/null` - upsclient_config_status=$? + 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 - if test $upsclient_config_status -ne 0 +# configure using pkg-config +if test "x$with_libupsclient" = "xuse_pkgconfig" +then + if test "x$PKG_CONFIG" = "x" + then + with_libupsclient="no (Don't have pkg-config)" + fi +fi +if test "x$with_libupsclient" = "xuse_pkgconfig" +then + AC_MSG_NOTICE([Checking for libupsclient using $PKG_CONFIG]) + $PKG_CONFIG --exists 'libupsclient' 2>/dev/null + if test $? -ne 0 + then + with_libupsclient="no (pkg-config doesn't know library)" + fi +fi +if test "x$with_libupsclient" = "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 then - with_libupsclient="no ($with_upsclient_config failed)" + 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_upsclient_cflags" + CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"]) @@ -1688,40 +1992,38 @@ then fi if test "x$with_libupsclient" = "xyes" then - with_upsclient_libs=`$with_upsclient_config --libs 2>/dev/null` - upsclient_config_status=$? + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + + CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" + LDFLAGS="$LDFLAGS $with_libupsclient_libs" - if test $upsclient_config_status -ne 0 - then - with_libupsclient="no ($with_upsclient_config failed)" - fi -fi -if test "x$with_libupsclient" = "xyes" -then AC_CHECK_LIB(upsclient, upscli_connect, - [ - BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_upsclient_cflags" - BUILD_WITH_LIBUPSCLIENT_LIBS="$with_upsclient_libs" - AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS) - AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS) - ], - [ - with_libupsclient="no (symbol 'upscli_connect' not found)" - ], [$with_upsclient_libs]) + [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_upsclient_cflags" + CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" - AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [], + AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [], [#include #include #include ]) CPPFLAGS="$SAVE_CPPFLAGS" fi -AM_CONDITIONAL(BUILD_WITH_LIBUPSCLIENT, test "x$with_libupsclient" = "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 ### BEGIN of check for libxmms ### with_xmms_config="xmms-config" @@ -1897,6 +2199,290 @@ then 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" +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 +#include +#include +#include +]) + + 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 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.])], +[ + if test "x$withval" = "xno" + then + with_libpq="no" + else if 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" + then + with_pg_config="$withval/bin/pg_config" + fi; fi + with_libpq="yes" + fi; fi +], +[ + 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 + 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]) + 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" +then + with_libpq_libdir=`$with_pg_config --libdir 2> /dev/null` + pg_config_status=$? + + 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 + + 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" +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) +fi +AM_CONDITIONAL(BUILD_WITH_LIBPQ, test "x$with_libpq" = "xyes") + +dnl Check for libvirt and libxml2 libraries. +with_libxml2="no (pkg-config isn't available)" +with_libxml2_cflags="" +with_libxml2_ldflags="" +with_libvirt="no (pkg-config isn't available)" +with_libvirt_cflags="" +with_libvirt_ldflags="" +if test "x$PKG_CONFIG" != "x" +then + pkg-config --exists 'libxml-2.0' 2>/dev/null + if test "$?" = "0" + then + with_libxml2="yes" + else + with_libxml2="no (pkg-config doesn't know library)" + fi + + pkg-config --exists libvirt 2>/dev/null + if test "$?" = "0" + then + with_libvirt="yes" + else + with_libvirt="no (pkg-config doesn't know library)" + fi +fi +if test "x$with_libxml2" = "xyes" +then + with_libxml2_cflags="`pkg-config --cflags libxml-2.0`" + if test $? -ne 0 + then + with_libxml2="no" + fi + with_libxml2_ldflags="`pkg-config --libs libxml-2.0`" + if test $? -ne 0 + then + with_libxml2="no" + fi +fi +if test "x$with_libxml2" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libxml2_cflags" + + AC_CHECK_HEADERS(libxml/parser.h, [], + [with_libxml2="no (libxml/parser.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libxml2" = "xyes" +then + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + + CFLAGS="$CFLAGS $with_libxml2_cflags" + LDFLAGS="$LDFLAGS $with_libxml2_ldflags" + + AC_CHECK_LIB(xml2, xmlXPathEval, + [with_libxml2="yes"], + [with_libxml2="no (symbol xmlXPathEval not found)"]) + + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +dnl Add the right compiler flags and libraries. +if test "x$with_libxml2" = "xyes"; then + BUILD_WITH_LIBXML2_CFLAGS="$with_libxml2_cflags" + BUILD_WITH_LIBXML2_LIBS="$with_libxml2_ldflags" + AC_SUBST(BUILD_WITH_LIBXML2_CFLAGS) + AC_SUBST(BUILD_WITH_LIBXML2_LIBS) +fi +if test "x$with_libvirt" = "xyes" +then + with_libvirt_cflags="`pkg-config --cflags libvirt`" + if test $? -ne 0 + then + with_libvirt="no" + fi + with_libvirt_ldflags="`pkg-config --libs libvirt`" + if test $? -ne 0 + then + with_libvirt="no" + fi +fi +if test "x$with_libvirt" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libvirt_cflags" + + AC_CHECK_HEADERS(libvirt/libvirt.h, [], + [with_libvirt="no (libvirt/libvirt.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libvirt" = "xyes" +then + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + + CFLAGS="$CFLAGS $with_libvirt_cflags" + LDFLAGS="$LDFLAGS $with_libvirt_ldflags" + + AC_CHECK_LIB(virt, virDomainBlockStats, + [with_libvirt="yes"], + [with_libvirt="no (symbol virDomainBlockStats not found)"]) + + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +dnl Add the right compiler flags and libraries. +if test "x$with_libvirt" = "xyes"; then + BUILD_WITH_LIBVIRT_CFLAGS="$with_libvirt_cflags" + BUILD_WITH_LIBVIRT_LIBS="$with_libvirt_ldflags" + AC_SUBST(BUILD_WITH_LIBVIRT_CFLAGS) + AC_SUBST(BUILD_WITH_LIBVIRT_LIBS) +fi + +dnl End of check for libvirt and libxml2 libraries. + # Check for enabled/disabled features # @@ -1986,7 +2572,13 @@ AC_DEFUN( ]) if test "x$enable_plugin" = "xyes" then - AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.]) + if test "x$2" = "xyes" + then + AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.]) + else # User passed "yes" but dependency checking yielded "no" => Dependency problem. + dependency_error="yes" + enable_plugin="no (dependency error)" + fi fi AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes") enable_$1="$enable_plugin" @@ -2000,6 +2592,8 @@ AC_COLLECTD([debug], [enable], [feature], [debugging]) AC_COLLECTD([daemon], [disable], [feature], [daemon mode]) AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux]) +dependency_error="no" +plugin_ascent="no" plugin_battery="no" plugin_cpu="no" plugin_cpufreq="no" @@ -2007,18 +2601,23 @@ plugin_df="no" plugin_disk="no" plugin_entropy="no" plugin_interface="no" +plugin_ipmi="no" plugin_ipvs="no" plugin_irq="no" +plugin_libvirt="no" plugin_load="no" plugin_memory="no" plugin_multimeter="no" plugin_nfs="no" +plugin_perl="no" plugin_processes="no" plugin_serial="no" plugin_swap="no" plugin_tape="no" plugin_tcpconns="no" +plugin_thermal="no" plugin_users="no" +plugin_vmem="no" plugin_vserver="no" plugin_wireless="no" @@ -2039,6 +2638,8 @@ then plugin_serial="yes" plugin_swap="yes" plugin_tcpconns="yes" + plugin_thermal="yes" + plugin_vmem="yes" plugin_vserver="yes" plugin_wireless="yes" @@ -2048,6 +2649,11 @@ then fi fi +if test "x$ac_system" = "xOpenBSD" +then + plugin_tcpconns="yes" +fi + # Mac OS X devices if test "x$with_libiokit" = "xyes" then @@ -2062,17 +2668,34 @@ then plugin_disk="yes" plugin_interface="yes" plugin_memory="yes" - plugin_swap="yes" plugin_tape="yes" fi +if test "x$have_sys_swap_h$with_kstat$ac_system" = "xyesyesSolaris" +then + plugin_swap="yes" +fi + # libstatgrab if test "x$with_libstatgrab" = "xyes" then + plugin_cpu="yes" + plugin_disk="yes" plugin_interface="yes" plugin_load="yes" plugin_memory="yes" plugin_swap="yes" + plugin_users="yes" +fi + +if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes" +then + plugin_ascent="yes" +fi + +if test "x$with_libopenipmipthread" = "xyes" +then + plugin_ipmi="yes" fi if test "x$have_processor_info" = "xyes" @@ -2100,11 +2723,21 @@ then plugin_interface="yes" fi +if test "x$with_libxml2" = "xyes" && test "x$with_libvirt" = "xyes" +then + plugin_libvirt="yes" +fi + if test "x$have_getloadavg" = "xyes" then plugin_load="yes" fi +if test "x$have_libperl$have_perl_ithreads" = "xyesyes" +then + plugin_perl="yes" +fi + # Mac OS X memory interface if test "x$have_host_statistics" = "xyes" then @@ -2121,11 +2754,21 @@ then plugin_processes="yes" fi -if test "x$with_libkvm" = "xyes" +if test "x$with_kvm_getprocs" = "xyes" +then + plugin_processes="yes" +fi + +if test "x$with_kvm_getswapinfo" = "xyes" then plugin_swap="yes" fi +if test "x$with_kvm_openfiles$with_kvm_nlist" = "xyesyes" +then + plugin_tcpconns="yes" +fi + if test "x$have_getutent" = "xyes" then plugin_users="yes" @@ -2143,21 +2786,26 @@ collectd plugins:]) AC_PLUGIN([apache], [$with_libcurl], [Apache httpd statistics]) AC_PLUGIN([apcups], [yes], [Statistics of UPSes by APC]) 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([cpufreq], [$plugin_cpufreq], [CPU frequency statistics]) AC_PLUGIN([csv], [yes], [CSV output plugin]) +AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications]) AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics]) AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics]) AC_PLUGIN([dns], [$with_libpcap], [DNS traffic analysis]) AC_PLUGIN([email], [yes], [EMail statistics]) 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([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([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([mbmon], [yes], [Query mbmond]) @@ -2169,10 +2817,14 @@ AC_PLUGIN([netlink], [$with_libnetlink], [Enhanced Linux network statistic AC_PLUGIN([network], [yes], [Network communication plugin]) AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics]) AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics]) +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([perl], [$with_libperl], [Embed a Perl interpreter]) +AC_PLUGIN([onewire], [$with_libowcapi], [OneWire sensor statistics]) +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]) @@ -2180,10 +2832,15 @@ 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([tcpconns], [$plugin_tcpconns], [TCP connection statistics]) +AC_PLUGIN([teamspeak2], [yes], [TeamSpeak2 server statistics]) +AC_PLUGIN([thermal], [$plugin_thermal], [Linux ACPI thermal zone statistics]) AC_PLUGIN([unixsock], [yes], [Unixsock communication plugin]) AC_PLUGIN([users], [$plugin_users], [User statistics]) +AC_PLUGIN([uuid], [yes], [UUID as hostname plugin]) +AC_PLUGIN([vmem], [$plugin_vmem], [Virtual memory statistics]) AC_PLUGIN([vserver], [$plugin_vserver], [Linux VServer statistics]) AC_PLUGIN([wireless], [$plugin_wireless], [Wireless statistics]) AC_PLUGIN([xmms], [$with_libxmms], [XMMS statistics]) @@ -2225,7 +2882,13 @@ fi AC_SUBST(PERL_BINDINGS) AC_SUBST(PERL_BINDINGS_OPTIONS) -AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile) +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" \ + && test "x$librrd_threadsafe" != "xyes" +then + with_rrdtool="yes (warning: librrd is not thread-safe)" +fi if test "x$with_liboping" = "xyes" \ && test "x$with_own_liboping" = "xyes" @@ -2233,6 +2896,11 @@ then with_liboping="yes (shipped version)" fi +if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" = "xyes" +then + with_libiptc="yes (shipped version)" +fi + if test "x$with_libperl" = "xyes" then with_libperl="yes (version `$perl_interpreter -MConfig -e 'print $Config{version};'`)" @@ -2250,79 +2918,103 @@ cat <