X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.in;h=07a4e2986b4b79d0f9f49409fbee219acadbb41a;hb=bc51ef217e871b80152eccd4e5f32659500f75f3;hp=55ce936bd0a519952c63a7101e82df808550020c;hpb=02ea8fa749d3225f2e4dbb7e00198abc3990e523;p=collectd.git diff --git a/configure.in b/configure.in index 55ce936b..07a4e298 100644 --- a/configure.in +++ b/configure.in @@ -67,9 +67,27 @@ fi if test "x$ac_system" = "xSolaris" then - CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS" + AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Define to enforce POSIX thread semantics under Solaris.]) fi +# Where to install .pc files. +pkgconfigdir="${libdir}/pkgconfig" +AC_SUBST(pkgconfigdir) + +# Check for standards compliance mode +AC_ARG_ENABLE(standards, + AS_HELP_STRING([--enable-standards], [Enable standards compliance mode]), + [enable_standards="$enableval"], + [enable_standards="no"]) +if test "x$enable_standards" = "xyes" +then + AC_DEFINE(_ISOC99_SOURCE, 1, [Define to enforce ISO C99 compliance.]) + AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Define to enforce POSIX.1-2001 compliance.]) + AC_DEFINE(_XOPEN_SOURCE, 600, [Define to enforce X/Open 6 (XSI) compliance.]) + AC_DEFINE(_REENTRANT, 1, [Define to enable reentrancy interfaces.]) +fi +AM_CONDITIONAL(BUILD_FEATURE_STANDARDS, test "x$enable_standards" = "xyes") + # # Checks for header files. # @@ -343,7 +361,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 wordexp.h) +AC_CHECK_HEADERS(pwd.h grp.h sys/un.h ctype.h limits.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) @@ -400,12 +418,12 @@ AC_HEADER_TIME # Checks for library functions. # AC_PROG_GCC_TRADITIONAL -AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog) +AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog sysconf) AC_FUNC_STRERROR_R AC_CACHE_CHECK([for strtok_r], - [have_strtok_r_default], + [c_cv_have_strtok_r_default], AC_LINK_IFELSE( AC_LANG_PROGRAM( [[[[ @@ -427,18 +445,18 @@ AC_CACHE_CHECK([for strtok_r], printf ("token = %s;\n", token); } ]]]]), - [have_strtok_r_default="yes"], - [have_strtok_r_default="no"] + [c_cv_have_strtok_r_default="yes"], + [c_cv_have_strtok_r_default="no"] ) ) -if test "x$have_strtok_r_default" = "xno" +if test "x$c_cv_have_strtok_r_default" = "xno" then SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -D_REENTRANT=1" AC_CACHE_CHECK([if strtok_r needs _REENTRANT], - [have_strtok_r_reentrant], + [c_cv_have_strtok_r_reentrant], AC_LINK_IFELSE( AC_LANG_PROGRAM( [[[[ @@ -460,7 +478,7 @@ then printf ("token = %s;\n", token); } ]]]]), - [have_strtok_r_reentrant="yes"], + [c_cv_have_strtok_r_reentrant="yes"], [AC_MSG_FAILURE([strtok_r isn't available. Please file a bugreport!])] ) ) @@ -476,6 +494,7 @@ nanosleep_needs_rt="no" AC_CHECK_FUNCS(nanosleep, [], AC_CHECK_LIB(rt, nanosleep, [nanosleep_needs_rt="yes"], AC_MSG_ERROR(cannot find nanosleep))) AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes") +AC_CHECK_FUNCS(sysctl, [have_sysctl="yes"], [have_sysctl="no"]) AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"]) AC_CHECK_FUNCS(host_statistics, [have_host_statistics="yes"], [have_host_statistics="no"]) AC_CHECK_FUNCS(processor_info, [have_processor_info="yes"], [have_processor_info="no"]) @@ -486,6 +505,7 @@ AC_CHECK_FUNCS(getifaddrs, [have_getifaddrs="yes"], [have_getifaddrs="no"]) AC_CHECK_FUNCS(syslog, [have_syslog="yes"], [have_syslog="no"]) AC_CHECK_FUNCS(getutent, [have_getutent="yes"], [have_getutent="no"]) AC_CHECK_FUNCS(getutxent, [have_getutxent="yes"], [have_getutxent="no"]) +AC_CHECK_FUNCS(swapctl, [have_swapctl="yes"], [have_swapctl="no"]) # For load module AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"]) @@ -504,7 +524,7 @@ AC_ARG_WITH(nan-emulation, [AS_HELP_STRING([--with-nan-emulation], [use emulated [nan_type="none"]) if test "x$nan_type" = "xnone"; then AC_CACHE_CHECK([whether NAN is defined by default], - [have_nan_default], + [c_cv_have_nan_default], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [[ @@ -518,18 +538,18 @@ static float foo = NAN; else return 1; ]]), - [have_nan_default="yes"], - [have_nan_default="no"] + [c_cv_have_nan_default="yes"], + [c_cv_have_nan_default="no"] ) ) - if test "x$have_nan_default" = "xyes" + if test "x$c_cv_have_nan_default" = "xyes" then nan_type="default" fi fi if test "x$nan_type" = "xnone"; then AC_CACHE_CHECK([whether NAN is defined by __USE_ISOC99], - [have_nan_isoc], + [c_cv_have_nan_isoc], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [[ @@ -544,18 +564,18 @@ static float foo = NAN; else return 1; ]]), - [have_nan_isoc="yes"], - [have_nan_isoc="no"] + [c_cv_have_nan_isoc="yes"], + [c_cv_have_nan_isoc="no"] ) ) - if test "x$have_nan_isoc" = "xyes" + if test "x$c_cv_have_nan_isoc" = "xyes" then nan_type="isoc99" fi fi if test "x$nan_type" = "xnone"; then AC_CACHE_CHECK([whether NAN can be defined by 0/0], - [have_nan_zero], + [c_cv_have_nan_zero], AC_RUN_IFELSE( AC_LANG_PROGRAM( [[ @@ -576,11 +596,11 @@ static float foo = NAN; else return 1; ]]), - [have_nan_zero="yes"], - [have_nan_zero="no"] + [c_cv_have_nan_zero="yes"], + [c_cv_have_nan_zero="no"] ) ) - if test "x$have_nan_zero" = "xyes" + if test "x$c_cv_have_nan_zero" = "xyes" then nan_type="zero" fi @@ -615,7 +635,7 @@ fi; fi; fi if test "x$fp_layout_type" = "xunknown"; then AC_CACHE_CHECK([if doubles are stored in x86 representation], - [fp_layout_need_nothing], + [c_cv_fp_layout_need_nothing], AC_RUN_IFELSE( AC_LANG_PROGRAM( [[[[ @@ -649,17 +669,17 @@ if test "x$fp_layout_type" = "xunknown"; then else return (1); ]]]]), - [fp_layout_need_nothing="yes"], - [fp_layout_need_nothing="no"] + [c_cv_fp_layout_need_nothing="yes"], + [c_cv_fp_layout_need_nothing="no"] ) ) - if test "x$fp_layout_need_nothing" = "xyes"; then + if test "x$c_cv_fp_layout_need_nothing" = "xyes"; then fp_layout_type="nothing" fi fi if test "x$fp_layout_type" = "xunknown"; then AC_CACHE_CHECK([if endianflip converts to x86 representation], - [fp_layout_need_endianflip], + [c_cv_fp_layout_need_endianflip], AC_RUN_IFELSE( AC_LANG_PROGRAM( [[[[ @@ -701,17 +721,17 @@ if test "x$fp_layout_type" = "xunknown"; then else return (1); ]]]]), - [fp_layout_need_endianflip="yes"], - [fp_layout_need_endianflip="no"] + [c_cv_fp_layout_need_endianflip="yes"], + [c_cv_fp_layout_need_endianflip="no"] ) ) - if test "x$fp_layout_need_endianflip" = "xyes"; then + if test "x$c_cv_fp_layout_need_endianflip" = "xyes"; then fp_layout_type="endianflip" fi fi if test "x$fp_layout_type" = "xunknown"; then AC_CACHE_CHECK([if intswap converts to x86 representation], - [fp_layout_need_intswap], + [c_cv_fp_layout_need_intswap], AC_RUN_IFELSE( AC_LANG_PROGRAM( [[[[ @@ -747,11 +767,11 @@ if test "x$fp_layout_type" = "xunknown"; then else return (1); ]]]]), - [fp_layout_need_intswap="yes"], - [fp_layout_need_intswap="no"] + [c_cv_fp_layout_need_intswap="yes"], + [c_cv_fp_layout_need_intswap="no"] ) ) - if test "x$fp_layout_need_intswap" = "xyes"; then + if test "x$c_cv_fp_layout_need_intswap" = "xyes"; then fp_layout_type="intswap" fi fi @@ -790,7 +810,7 @@ fi if test "x$have_getmntent" = "xc"; then AC_CACHE_CHECK([whether getmntent takes one argument], - [have_one_getmntent], + [c_cv_have_one_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT #include @@ -802,12 +822,12 @@ if test "x$have_getmntent" = "xc"; then me = getmntent (fh); ]] ), - [have_one_getmntent="yes"], - [have_one_getmntent="no"] + [c_cv_have_one_getmntent="yes"], + [c_cv_have_one_getmntent="no"] ) ) AC_CACHE_CHECK([whether getmntent takes two arguments], - [have_two_getmntent], + [c_cv_have_two_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT #include @@ -820,8 +840,8 @@ if test "x$have_getmntent" = "xc"; then status = getmntent (fh, &mt); ]] ), - [have_two_getmntent="yes"], - [have_two_getmntent="no"] + [c_cv_have_two_getmntent="yes"], + [c_cv_have_two_getmntent="no"] ) ) fi @@ -829,11 +849,11 @@ fi # Check for different versions of `getmntent' here.. if test "x$have_getmntent" = "xc"; then - if test "x$have_one_getmntent" = "xyes"; then + if test "x$c_cv_have_one_getmntent" = "xyes"; then AC_DEFINE(HAVE_ONE_GETMNTENT, 1, [Define if the function getmntent exists and takes one argument.]) fi - if test "x$have_two_getmntent" = "xyes"; then + if test "x$c_cv_have_two_getmntent" = "xyes"; then AC_DEFINE(HAVE_TWO_GETMNTENT, 1, [Define if the function getmntent exists and takes two arguments.]) fi @@ -870,8 +890,40 @@ AC_CHECK_MEMBERS([struct net_device_stats.rx_bytes, struct net_device_stats.tx_p #include ]) +AC_CHECK_MEMBERS([struct kinfo_proc.ki_pid, struct kinfo_proc.ki_rssize, struct kinfo_proc.ki_rusage], + [ + AC_DEFINE(HAVE_STRUCT_KINFO_PROC_FREEBSD, 1, + [Define if struct kinfo_proc exists in the FreeBSD variant.]) + have_struct_kinfo_proc_freebsd="yes" + ], + [ + have_struct_kinfo_proc_freebsd="no" + ], + [ +#include +#include +#include +#include + ]) + +AC_CHECK_MEMBERS([struct kinfo_proc.kp_proc, struct kinfo_proc.kp_eproc], + [ + AC_DEFINE(HAVE_STRUCT_KINFO_PROC_OPENBSD, 1, + [Define if struct kinfo_proc exists in the OpenBSD variant.]) + have_struct_kinfo_proc_openbsd="yes" + ], + [ + have_struct_kinfo_proc_openbsd="no" + ], + [ +#include +#include +#include + ]) + AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [], -[#if HAVE_STDINT_H +[#define _BSD_SOURCE +#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H @@ -891,7 +943,8 @@ AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [], #endif ]) AC_CHECK_MEMBERS([struct udphdr.dest, struct udphdr.source], [], [], -[#if HAVE_STDINT_H +[#define _BSD_SOURCE +#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H @@ -1181,6 +1234,171 @@ AC_DEFINE_UNQUOTED(COLLECT_LIBESMTP, [$collect_libesmtp], AM_CONDITIONAL(BUILD_WITH_LIBESMTP, test "x$with_libesmtp" = "xyes") # }}} +# --with-libganglia {{{ +AC_ARG_WITH(libganglia, [AS_HELP_STRING([--with-libganglia@<:@=PREFIX@:>@], [Path to libganglia.])], +[ + if test -f "$withval" && test -x "$withval" + then + with_libganglia_config="$withval" + with_libganglia="yes" + else if test -f "$withval/bin/ganglia-config" && test -x "$withval/bin/ganglia-config" + then + with_libganglia_config="$withval/bin/ganglia-config" + with_libganglia="yes" + else if test -d "$withval" + then + GANGLIA_CPPFLAGS="-I$withval/include" + GANGLIA_LDFLAGS="-L$withval/lib" + with_libganglia="yes" + else + with_libganglia_config="ganglia-config" + with_libganglia="$withval" + fi; fi; fi +], +[ + with_libganglia_config="ganglia-config" + with_libganglia="yes" +]) + +if test "x$with_libganglia" = "xyes" && test "x$with_libganglia_config" != "x" +then + if test "x$GANGLIA_CPPFLAGS" = "x" + then + GANGLIA_CPPFLAGS=`"$with_libganglia_config" --cflags 2>/dev/null` + fi + + if test "x$GANGLIA_LDFLAGS" = "x" + then + GANGLIA_LDFLAGS=`"$with_libganglia_config" --ldflags 2>/dev/null` + fi + + if test "x$GANGLIA_LIBS" = "x" + then + GANGLIA_LIBS=`"$with_libganglia_config" --libs 2>/dev/null` + fi +fi + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $GANGLIA_CPPFLAGS" +LDFLAGS="$LDFLAGS $GANGLIA_LDFLAGS" + +if test "x$with_libganglia" = "xyes" +then + AC_CHECK_HEADERS(gm_protocol.h, + [ + AC_DEFINE(HAVE_GM_PROTOCOL_H, 1, + [Define to 1 if you have the header file.]) + ], [with_libganglia="no (gm_protocol.h not found)"]) +fi + +if test "x$with_libganglia" = "xyes" +then + AC_CHECK_LIB(ganglia, xdr_Ganglia_value_msg, + [ + AC_DEFINE(HAVE_LIBGANGLIA, 1, + [Define to 1 if you have the ganglia library (-lganglia).]) + ], [with_libganglia="no (symbol xdr_Ganglia_value_msg not found)"]) +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" + +AC_SUBST(GANGLIA_CPPFLAGS) +AC_SUBST(GANGLIA_LDFLAGS) +AC_SUBST(GANGLIA_LIBS) +AM_CONDITIONAL(BUILD_WITH_LIBGANGLIA, test "x$with_libganglia" = "xyes") +# }}} + +# --with-libgcrypt {{{ +GCRYPT_CPPFLAGS="$GCRYPT_CPPFLAGS" +GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS" +GCRYPT_LIBS="$GCRYPT_LIBS" +AC_ARG_WITH(libgcrypt, [AS_HELP_STRING([--with-libgcrypt@<:@=PREFIX@:>@], [Path to libgcrypt.])], +[ + if test -f "$withval" && test -x "$withval" + then + with_libgcrypt_config="$withval" + with_libgcrypt="yes" + else if test -f "$withval/bin/gcrypt-config" && test -x "$withval/bin/gcrypt-config" + then + with_libgcrypt_config="$withval/bin/gcrypt-config" + with_libgcrypt="yes" + else if test -d "$withval" + then + GCRYPT_CPPFLAGS="$GCRYPT_CPPFLAGS -I$withval/include" + GCRYPT_LDFLAGS="$GCRYPT_LDFLAGS -L$withval/lib" + with_libgcrypt="yes" + else + with_libgcrypt_config="gcrypt-config" + with_libgcrypt="$withval" + fi; fi; fi +], +[ + with_libgcrypt_config="libgcrypt-config" + with_libgcrypt="yes" +]) + +if test "x$with_libgcrypt" = "xyes" && test "x$with_libgcrypt_config" != "x" +then + if test "x$GCRYPT_CPPFLAGS" = "x" + then + GCRYPT_CPPFLAGS=`"$with_libgcrypt_config" --cflags 2>/dev/null` + fi + + if test "x$GCRYPT_LDFLAGS" = "x" + then + gcrypt_exec_prefix=`"$with_libgcrypt_config" --exec-prefix 2>/dev/null` + GCRYPT_LDFLAGS="-L$gcrypt_exec_prefix/lib" + fi + + if test "x$GCRYPT_LIBS" = "x" + then + GCRYPT_LIBS=`"$with_libgcrypt_config" --libs 2>/dev/null` + fi +fi + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $GCRYPT_CPPFLAGS" +LDFLAGS="$LDFLAGS $GCRYPT_LDFLAGS" + +if test "x$with_libgcrypt" = "xyes" +then + if test "x$GCRYPT_CPPFLAGS" != "x" + then + AC_MSG_NOTICE([gcrypt CPPFLAGS: $GCRYPT_CPPFLAGS]) + fi + AC_CHECK_HEADERS(gcrypt.h, + [with_libgcrypt="yes"], + [with_libgcrypt="no (gcrypt.h not found)"]) +fi + +if test "x$with_libgcrypt" = "xyes" +then + if test "x$GCRYPT_LDFLAGS" != "x" + then + AC_MSG_NOTICE([gcrypt LDFLAGS: $GCRYPT_LDFLAGS]) + fi + AC_CHECK_LIB(gcrypt, gcry_md_hash_buffer, + [with_libgcrypt="yes"], + [with_libgcrypt="no (symbol gcry_md_hash_buffer not found)"]) +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" + +if test "x$with_libgcrypt" = "xyes" +then + AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to 1 if you have the gcrypt library (-lgcrypt).]) +fi + +AC_SUBST(GCRYPT_CPPFLAGS) +AC_SUBST(GCRYPT_LDFLAGS) +AC_SUBST(GCRYPT_LIBS) +AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes") +# }}} + # --with-libiptc {{{ with_own_libiptc="no" AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])], @@ -1248,6 +1466,163 @@ then fi # }}} +# --with-java {{{ +with_java_home="$JAVA_HOME" +with_java_vmtype="client" +with_java_cflags="" +with_java_libs="" +AC_ARG_WITH(java, [AS_HELP_STRING([--with-java@<:@=PREFIX@:>@], [Path to Java home.])], +[ + if test "x$withval" = "xno" + then + with_java="no" + else if test "x$withval" = "xyes" + then + with_java="yes" + else + with_java_home="$withval" + with_java="yes" + fi; fi +], +[with_java="yes"]) +if test "x$with_java" = "xyes" +then + if test -d "$with_java_home" + then + AC_MSG_CHECKING([for jni.h]) + TMPDIR=`find -L "$with_java_home" -name jni.h -exec 'dirname' '{}' ';' | head -n 1` + if test "x$TMPDIR" != "x" + then + AC_MSG_RESULT([found in $TMPDIR]) + JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPDIR" + else + AC_MSG_RESULT([not found]) + fi + + AC_MSG_CHECKING([for jni_md.h]) + TMPDIR=`find -L "$with_java_home" -name jni_md.h -exec 'dirname' '{}' ';' | head -n 1` + if test "x$TMPDIR" != "x" + then + AC_MSG_RESULT([found in $TMPDIR]) + JAVA_CPPFLAGS="$JAVA_CPPFLAGS -I$TMPDIR" + else + AC_MSG_RESULT([not found]) + fi + + AC_MSG_CHECKING([for libjvm.so]) + TMPDIR=`find -L "$with_java_home" -name libjvm.so -exec 'dirname' '{}' ';' | head -n 1` + if test "x$TMPDIR" != "x" + then + AC_MSG_RESULT([found in $TMPDIR]) + JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPDIR" + else + AC_MSG_RESULT([not found]) + fi + else if test "x$with_java_home" != "x" + then + AC_MSG_WARN([JAVA_HOME: No such directory: $with_java_home]) + fi; fi +fi + +if test "x$JAVA_CPPFLAGS" != "x" +then + AC_MSG_NOTICE([Building with JAVA_CPPFLAGS set to: $JAVA_CPPFLAGS]) +fi +if test "x$JAVA_CFLAGS" != "x" +then + AC_MSG_NOTICE([Building with JAVA_CFLAGS set to: $JAVA_CFLAGS]) +fi +if test "x$JAVA_LDFLAGS" != "x" +then + AC_MSG_NOTICE([Building with JAVA_LDFLAGS set to: $JAVA_LDFLAGS]) +fi + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_CFLAGS="$CFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $JAVA_CPPFLAGS" +CFLAGS="$CFLAGS $JAVA_CFLAGS" +LDFLAGS="$LDFLAGS $JAVA_LDFLAGS" + +if test "x$with_java" = "xyes" +then + AC_CHECK_HEADERS(jni.h, [], [with_java="no (jni.h not found)"]) +fi +if test "x$with_java" = "xyes" +then + AC_CHECK_LIB(jvm, JNI_CreateJavaVM, + [with_java="yes"], + [with_java="no (libjvm not found)"], + [$JAVA_LIBS]) +fi +if test "x$with_java" = "xyes" +then + JAVA_LIBS="$JAVA_LIBS -ljvm" + AC_MSG_NOTICE([Building with JAVA_LIBS set to: $JAVA_LIBS]) +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +CFLAGS="$SAVE_CFLAGS" +LDFLAGS="$SAVE_LDFLAGS" + +AC_SUBST(JAVA_CPPFLAGS) +AC_SUBST(JAVA_CFLAGS) +AC_SUBST(JAVA_LDFLAGS) +AC_SUBST(JAVA_LIBS) +AM_CONDITIONAL(BUILD_WITH_JAVA, test "x$with_java" = "xyes") +# }}} + +# --with-libmemcached {{{ +with_libmemcached_cppflags="" +with_libmemcached_ldflags="" +AC_ARG_WITH(libmemcached, [AS_HELP_STRING([--with-libmemcached@<:@=PREFIX@:>@], [Path to libmemcached.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + with_libmemcached_cppflags="-I$withval/include" + with_libmemcached_ldflags="-L$withval/lib" + with_libmemcached="yes" + else + with_libmemcached="$withval" + fi +], +[ + with_libmemcached="yes" +]) +if test "x$with_libmemcached" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libmemcached_cppflags" + + AC_CHECK_HEADERS(libmemcached/memcached.h, [with_libmemcached="yes"], [with_libmemcached="no (libmemcached/memcached.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libmemcached" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS $with_libmemcached_cppflags" + LDFLAGS="$LDFLAGS $with_libmemcached_ldflags" + + AC_CHECK_LIB(memcached, memcached_create, [with_libmemcached="yes"], [with_libmemcached="no (Symbol 'memcached_create' not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +if test "x$with_libmemcached" = "xyes" +then + BUILD_WITH_LIBMEMCACHED_CPPFLAGS="$with_libmemcached_cppflags" + BUILD_WITH_LIBMEMCACHED_LDFLAGS="$with_libmemcached_ldflags" + BUILD_WITH_LIBMEMCACHED_LIBS="-lmemcached" + AC_SUBST(BUILD_WITH_LIBMEMCACHED_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBMEMCACHED_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBMEMCACHED_LIBS) + AC_DEFINE(HAVE_LIBMEMCACHED, 1, [Define if libmemcached is present and usable.]) +fi +AM_CONDITIONAL(BUILD_WITH_LIBMEMCACHED, test "x$with_libmemcached" = "xyes") +# }}} + # --with-libmysql {{{ with_mysql_config="mysql_config" with_mysql_cflags="" @@ -1550,55 +1925,60 @@ 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" + if test "x$withval" = "xyes" + then + with_liboping="yes" + else if test "x$withval" = "xno" + then + with_liboping="no" + else + with_liboping="yes" + LIBOPING_CPPFLAGS="$LIBOPING_CPPFLAGS -I$withval/include" + LIBOPING_LDFLAGS="$LIBOPING_LDFLAGS -L$withval/lib" + fi; fi +], +[with_liboping="yes"]) + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" + +CPPFLAGS="$CPPFLAGS $LIBOPING_CPPFLAGS" +LDFLAGS="$LDFLAGS $LIBOPING_LDFLAGS" + +if test "x$with_liboping" = "xyes" +then + if test "x$LIBOPING_CPPFLAGS" != "x" 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 + AC_MSG_NOTICE([liboping CPPFLAGS: $LIBOPING_CPPFLAGS]) fi - if test "x$withval" = "xno" - then - with_liboping="no" - with_own_liboping="no" - else if test "x$withval" = "xyes" + AC_CHECK_HEADERS(oping.h, + [with_liboping="yes"], + [with_liboping="no ('oping.h' not found)"]) +fi +if test "x$with_liboping" = "xyes" +then + if test "x$LIBOPING_LDFLAGS" != "x" then - with_liboping="yes" - fi; fi -], -[ - with_liboping="yes" -]) + AC_MSG_NOTICE([liboping LDFLAGS: $LIBOPING_LDFLAGS]) + fi + AC_CHECK_LIB(oping, ping_construct, + [with_liboping="yes"], + [with_liboping="no (symbol 'ping_construct' not found)"]) +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" if test "x$with_liboping" = "xyes" then - save_LDFLAGS="$LDFLAGS" - save_CPPFLAGS="$CPPFLAGS" - LDFLAGS="$liboping_LDFLAGS" - CPPFLAGS="$liboping_CPPFLAGS" - AC_CHECK_LIB(oping, ping_construct, - [ - with_liboping="yes" - with_own_liboping="no" - ], - [ - with_liboping="yes" - with_own_liboping="yes" - LDFLAGS="$save_LDFLAGS" - CPPFLAGS="$save_CPPFLAGS" - ]) + BUILD_WITH_LIBOPING_CPPFLAGS="$LIBOPING_CPPFLAGS" + BUILD_WITH_LIBOPING_LDFLAGS="$LIBOPING_LDFLAGS" + AC_SUBST(BUILD_WITH_LIBOPING_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBOPING_LDFLAGS) 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 {{{ @@ -1757,78 +2137,6 @@ AC_DEFINE_UNQUOTED(COLLECT_LIBPCAP, [$collect_libpcap], 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" - ]) - -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 - with_libpcre="no ($with_pcre_config failed)" - else - SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $with_pcre_cflags" - - AC_CHECK_HEADERS(pcre.h, [], [with_libpcre="no (pcre.h not found)"], []) - - CPPFLAGS="$SAVE_CPPFLAGS" - fi -fi - -if test "x$with_libpcre" = "xyes" -then - 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_libpcre" = "xyes" -then - 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 -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.])], @@ -1868,13 +2176,14 @@ if test "x$with_libperl" = "xyes" \ then SAVE_CFLAGS=$CFLAGS SAVE_LDFLAGS=$LDFLAGS - PERL_CFLAGS=`$perl_interpreter -MExtUtils::Embed -e ccopts` - PERL_LDFLAGS=`$perl_interpreter -MExtUtils::Embed -e ldopts` +dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string) + PERL_CFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ccopts` + PERL_LDFLAGS=`ARCHFLAGS="" $perl_interpreter -MExtUtils::Embed -e ldopts` CFLAGS="$CFLAGS $PERL_CFLAGS" LDFLAGS="$LDFLAGS $PERL_LDFLAGS" AC_CACHE_CHECK([for libperl], - [have_libperl], + [c_cv_have_libperl], AC_LINK_IFELSE( AC_LANG_PROGRAM( [[ @@ -1889,12 +2198,12 @@ then newSVpv ("Collectd::Plugin::FooBar", 24), Nullsv); ]]), - [have_libperl="yes"], - [have_libperl="no"] + [c_cv_have_libperl="yes"], + [c_cv_have_libperl="no"] ) ) - if test "x$have_libperl" = "xyes" + if test "x$c_cv_have_libperl" = "xyes" then AC_DEFINE(HAVE_LIBPERL, 1, [Define if libperl is present and usable.]) AC_SUBST(PERL_CFLAGS) @@ -1907,7 +2216,7 @@ then LDFLAGS=$SAVE_LDFLAGS else if test -z "$perl_interpreter"; then with_libperl="no (no perl interpreter found)" - have_libperl="no" + c_cv_have_libperl="no" fi; fi AM_CONDITIONAL(BUILD_WITH_LIBPERL, test "x$with_libperl" = "xyes") @@ -1919,7 +2228,7 @@ then LDFLAGS="$LDFLAGS $PERL_LDFLAGS" AC_CACHE_CHECK([if perl supports ithreads], - [have_perl_ithreads], + [c_cv_have_perl_ithreads], AC_LINK_IFELSE( AC_LANG_PROGRAM( [[ @@ -1932,12 +2241,12 @@ then #endif /* !defined(USE_ITHREADS) */ ]], [[ ]]), - [have_perl_ithreads="yes"], - [have_perl_ithreads="no"] + [c_cv_have_perl_ithreads="yes"], + [c_cv_have_perl_ithreads="no"] ) ) - if test "x$have_perl_ithreads" = "xyes" + if test "x$c_cv_have_perl_ithreads" = "xyes" then AC_DEFINE(HAVE_PERL_ITHREADS, 1, [Define if Perl supports ithreads.]) fi @@ -1945,6 +2254,69 @@ then CFLAGS=$SAVE_CFLAGS LDFLAGS=$SAVE_LDFLAGS fi + +if test "x$with_libperl" = "xyes" +then + SAVE_CFLAGS=$CFLAGS + SAVE_LDFLAGS=$LDFLAGS + # trigger an error if Perl_load_module*() uses __attribute__nonnull__(3) + # (see issues #41 and #42) + CFLAGS="$CFLAGS $PERL_CFLAGS -Wall -Werror" + LDFLAGS="$LDFLAGS $PERL_LDFLAGS" + + AC_CACHE_CHECK([for broken Perl_load_module()], + [c_cv_have_broken_perl_load_module], + AC_LINK_IFELSE( + AC_LANG_PROGRAM( + [[ +#define PERL_NO_GET_CONTEXT +#include +#include +#include + ]], + [[ + dTHX; + load_module (PERL_LOADMOD_NOIMPORT, + newSVpv ("Collectd::Plugin::FooBar", 24), + Nullsv); + ]]), + [c_cv_have_broken_perl_load_module="no"], + [c_cv_have_broken_perl_load_module="yes"] + ) + ) + + CFLAGS=$SAVE_CFLAGS + LDFLAGS=$SAVE_LDFLAGS +fi +AM_CONDITIONAL(HAVE_BROKEN_PERL_LOAD_MODULE, + test "x$c_cv_have_broken_perl_load_module" = "xyes") + +if test "x$with_libperl" = "xyes" +then + SAVE_CFLAGS=$CFLAGS + SAVE_LDFLAGS=$LDFLAGS + CFLAGS="$CFLAGS $PERL_CFLAGS" + LDFLAGS="$LDFLAGS $PERL_LDFLAGS" + + AC_CHECK_MEMBER( + [struct mgvtbl.svt_local], + [have_struct_mgvtbl_svt_local="yes"], + [have_struct_mgvtbl_svt_local="no"], + [ +#include +#include +#include + ]) + + if test "x$have_struct_mgvtbl_svt_local" = "xyes" + then + AC_DEFINE(HAVE_PERL_STRUCT_MGVTBL_SVT_LOCAL, 1, + [Define if Perl's struct mgvtbl has member svt_local.]) + fi + + CFLAGS=$SAVE_CFLAGS + LDFLAGS=$SAVE_LDFLAGS +fi # }}} # --with-libpq {{{ @@ -2023,6 +2395,10 @@ then [with_libpq="yes"], [with_libpq="no (symbol 'PQconnectdb' not found)"]) + AC_CHECK_LIB(pq, PQserverVersion, + [with_libpq="yes"], + [with_libpq="no (symbol 'PQserverVersion' not found)"]) + LDFLAGS="$SAVE_LDFLAGS" fi if test "x$with_libpq" = "xyes" @@ -2054,6 +2430,7 @@ 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)"]) @@ -2214,41 +2591,43 @@ 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 - with_libstatgrab_cflags="-I$withval/include" - with_libstatgrab_ldflags="-L$withval/lib" - with_libstatgrab="yes" - else - with_libstatgrab="$withval" - fi -], + if test "x$withval" != "xno" \ + && test "x$withval" != "xyes" + then + with_libstatgrab_cflags="-I$withval/include" + with_libstatgrab_ldflags="-L$withval/lib -lstatgrab" + with_libstatgrab="yes" + with_libstatgrab_pkg_config="no" + else + with_libstatgrab="$withval" + with_libstatgrab_pkg_config="yes" + fi + ], [ - if test "x$ac_system" = "xunknown" - then - with_libstatgrab="yes" - else - with_libstatgrab="no" - fi + with_libstatgrab="yes" + with_libstatgrab_pkg_config="yes" ]) -with_libstatgrab_pkg_config="yes" + if test "x$with_libstatgrab" = "xyes" \ - && test "x$PKG_CONFIG" != "x" + && test "x$with_libstatgrab_pkg_config" = "xyes" then - AC_MSG_CHECKING([pkg-config for libstatgrab]) - temp_result="found" - $PKG_CONFIG --exists libstatgrab 2>/dev/null - if test "$?" != "0" + if test "x$PKG_CONFIG" != "x" then + AC_MSG_CHECKING([pkg-config for libstatgrab]) + temp_result="found" + $PKG_CONFIG --exists libstatgrab 2>/dev/null + if test "$?" != "0" + then + with_libstatgrab_pkg_config="no" + with_libstatgrab="no ($PKG_CONFIG doesn't know libstatgrab)" + temp_result="not found" + fi + AC_MSG_RESULT([$temp_result]) + else + AC_MSG_NOTICE([pkg-config not available, trying to guess flags for the statgrab library.]) with_libstatgrab_pkg_config="no" - temp_result="not found" + with_libstatgrab_ldflags="$with_libstatgrab_ldflags -lstatgrab" 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 if test "x$with_libstatgrab" = "xyes" \ @@ -2322,6 +2701,139 @@ then fi # }}} +# --with-libupsclient {{{ +with_libupsclient_config="" +with_libupsclient_cflags="" +with_libupsclient_libs="" +AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])], +[ + if test "x$withval" = "xno" + then + with_libupsclient="no" + else if test "x$withval" = "xyes" + then + with_libupsclient="use_pkgconfig" + else + if test -x "$withval" + then + with_libupsclient_config="$withval" + with_libupsclient="use_libupsclient_config" + else if test -x "$withval/bin/libupsclient-config" + then + with_libupsclient_config="$withval/bin/net-snmp-config" + with_libupsclient="use_libupsclient_config" + else + AC_MSG_NOTICE([Not checking for libupsclient: Manually configured]) + with_libupsclient_cflags="-I$withval/include" + with_libupsclient_libs="-L$withval/lib -lupsclient" + with_libupsclient="yes" + fi; fi + fi; fi +], +[with_libupsclient="use_pkgconfig"]) + +# configure using libupsclient-config +if test "x$with_libupsclient" = "xuse_libupsclient_config" +then + AC_MSG_NOTICE([Checking for libupsclient using $with_libupsclient_config]) + with_libupsclient_cflags="`$with_libupsclient_config --cflags`" + if test $? -ne 0 + then + with_libupsclient="no ($with_libupsclient_config failed)" + fi + with_libupsclient_libs="`$with_libupsclient_config --libs`" + if test $? -ne 0 + then + with_libupsclient="no ($with_libupsclient_config failed)" + fi +fi +if test "x$with_libupsclient" = "xuse_libupsclient_config" +then + with_libupsclient="yes" +fi + +# 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 ($PKG_CONFIG failed)" + fi +fi +if test "x$with_libupsclient" = "xuse_pkgconfig" +then + with_libupsclient="yes" +fi + +# with_libupsclient_cflags and with_libupsclient_libs are set up now, let's do +# the actual checks. +if test "x$with_libupsclient" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" + + AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libupsclient" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$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)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +if test "x$with_libupsclient" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" + + AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [], +[#include +#include +#include ]) + + 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 +# }}} + # --with-libxmms {{{ with_xmms_config="xmms-config" with_xmms_cflags="" @@ -2392,76 +2904,55 @@ AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you ha AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes") # }}} -# 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" +# --with-libyajl {{{ +with_libyajl_cppflags="" +with_libyajl_ldflags="" +AC_ARG_WITH(libyajl, [AS_HELP_STRING([--with-libyajl@<:@=PREFIX@:>@], [Path to libyajl.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" then - with_libupsclient="yes" + with_libyajl_cppflags="-I$withval/include" + with_libyajl_ldflags="-L$withval/lib" + with_libyajl="yes" else - 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" + with_libyajl="$withval" fi - with_libupsclient_libs="`pkg-config --libs 'libupsclient'`" - if test $? -ne 0 - then - with_libupsclient="no" - fi -fi -if test "x$with_libupsclient" = "xyes" +], +[ + with_libyajl="yes" +]) +if test "x$with_libyajl" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" + CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags" - AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"]) + AC_CHECK_HEADERS(yajl/yajl_parse.h, [with_libyajl="yes"], [with_libyajl="no (yajl/yajl_parse.h not found)"]) CPPFLAGS="$SAVE_CPPFLAGS" fi -if test "x$with_libupsclient" = "xyes" +if test "x$with_libyajl" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags" + LDFLAGS="$LDFLAGS $with_libyajl_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(yajl, yajl_alloc, [with_libyajl="yes"], [with_libyajl="no (Symbol 'yajl_alloc' not found)"]) CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" fi -if test "x$with_libupsclient" = "xyes" -then - SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags" - - AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [], -[#include -#include -#include ]) - - CPPFLAGS="$SAVE_CPPFLAGS" -fi -if test "x$with_libupsclient" = "xyes" +if test "x$with_libyajl" = "xyes" then - BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags" - BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs" - AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS) - AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS) + BUILD_WITH_LIBYAJL_CPPFLAGS="$with_libyajl_cppflags" + BUILD_WITH_LIBYAJL_LDFLAGS="$with_libyajl_ldflags" + BUILD_WITH_LIBYAJL_LIBS="-lyajl" + AC_SUBST(BUILD_WITH_LIBYAJL_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBYAJL_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBYAJL_LIBS) + AC_DEFINE(HAVE_LIBYAJL, 1, [Define if libyajl is present and usable.]) fi +AM_CONDITIONAL(BUILD_WITH_LIBYAJL, test "x$with_libyajl" = "xyes") # }}} # pkg-config --exists 'libxml-2.0'; pkg-config --exists libvirt {{{ @@ -2778,6 +3269,9 @@ AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux]) dependency_error="no" plugin_ascent="no" plugin_battery="no" +plugin_bind="no" +plugin_conntrack="no" +plugin_couchdb="no" plugin_cpu="no" plugin_cpufreq="no" plugin_df="no" @@ -2792,14 +3286,18 @@ plugin_load="no" plugin_memory="no" plugin_multimeter="no" plugin_nfs="no" +plugin_fscache="no" plugin_perl="no" plugin_processes="no" +plugin_protocols="no" plugin_serial="no" plugin_swap="no" plugin_tape="no" plugin_tcpconns="no" +plugin_ted="no" plugin_thermal="no" plugin_users="no" +plugin_uptime="no" plugin_vmem="no" plugin_vserver="no" plugin_wireless="no" @@ -2808,6 +3306,7 @@ plugin_wireless="no" if test "x$ac_system" = "xLinux" then plugin_battery="yes" + plugin_conntrack="yes" plugin_cpu="yes" plugin_cpufreq="yes" plugin_disk="yes" @@ -2817,11 +3316,14 @@ then plugin_load="yes" plugin_memory="yes" plugin_nfs="yes" + plugin_fscache="yes" plugin_processes="yes" + plugin_protocols="yes" plugin_serial="yes" plugin_swap="yes" plugin_tcpconns="yes" plugin_thermal="yes" + plugin_uptime="yes" plugin_vmem="yes" plugin_vserver="yes" plugin_wireless="yes" @@ -2845,6 +3347,11 @@ then fi # Solaris +if test "x$with_kstat" = "xyes" +then + plugin_uptime="yes" +fi + if test "x$with_devinfo$with_kstat" = "xyesyes" then plugin_cpu="yes" @@ -2874,6 +3381,7 @@ fi if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes" then plugin_ascent="yes" + plugin_bind="yes" fi if test "x$with_libopenipmipthread" = "xyes" @@ -2881,10 +3389,22 @@ then plugin_ipmi="yes" fi +if test "x$with_libcurl" = "xyes" && test "x$with_libyajl" = "xyes" +then + plugin_couchdb="yes" +fi + if test "x$have_processor_info" = "xyes" then plugin_cpu="yes" fi +if test "x$have_sysctl" = "xyes" +then + plugin_cpu="yes" + plugin_memory="yes" + plugin_swap="yes" + plugin_uptime="yes" +fi if test "x$have_sysctlbyname" = "xyes" then plugin_cpu="yes" @@ -2916,7 +3436,7 @@ then plugin_load="yes" fi -if test "x$have_libperl$have_perl_ithreads" = "xyesyes" +if test "x$c_cv_have_libperl$c_cv_have_perl_ithreads" = "xyesyes" then plugin_perl="yes" fi @@ -2930,6 +3450,7 @@ fi if test "x$have_termios_h" = "xyes" then plugin_multimeter="yes" + plugin_ted="yes" fi if test "x$have_thread_info" = "xyes" @@ -2937,7 +3458,7 @@ then plugin_processes="yes" fi -if test "x$with_kvm_getprocs" = "xyes" +if test "x$with_kvm_getprocs" = "xyes" && test "x$have_struct_kinfo_proc_freebsd" = "xyes" then plugin_processes="yes" fi @@ -2947,6 +3468,11 @@ then plugin_swap="yes" fi +if test "x$have_swapctl" = "xyes" +then + plugin_swap="yes" +fi + if test "x$with_kvm_openfiles$with_kvm_nlist" = "xyesyes" then plugin_tcpconns="yes" @@ -2961,8 +3487,6 @@ then plugin_users="yes" fi -# FIXME: sysctl for swap plugin - m4_divert_once([HELP_ENABLE], [ collectd plugins:]) @@ -2971,10 +3495,13 @@ 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([bind], [$plugin_bind], [ISC Bind nameserver statistics]) +AC_PLUGIN([conntrack], [$plugin_conntrack], [nf_conntrack statistics]) +AC_PLUGIN([couchdb], [$plugin_couchdb], [CouchDB statistics]) AC_PLUGIN([cpufreq], [$plugin_cpufreq], [CPU frequency statistics]) +AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics]) AC_PLUGIN([csv], [yes], [CSV output plugin]) -AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications]) +AC_PLUGIN([curl], [$with_libcurl], [CURL generic web statistics]) AC_PLUGIN([dbi], [$with_libdbi], [General database statistics]) AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics]) AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics]) @@ -2983,19 +3510,22 @@ 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([filter_ignore], [yes], [Ignore specific values]) +AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin]) AC_PLUGIN([hddtemp], [yes], [Query hddtempd]) AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics]) -AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters]) AC_PLUGIN([ipmi], [$plugin_ipmi], [IPMI sensor statistics]) +AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters]) AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics]) AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics]) +AC_PLUGIN([java], [$with_java], [Embed the Java Virtual Machine]) AC_PLUGIN([libvirt], [$plugin_libvirt], [Virtual machine statistics]) AC_PLUGIN([load], [$plugin_load], [System load]) AC_PLUGIN([logfile], [yes], [File logging plugin]) AC_PLUGIN([match_regex], [yes], [The regex match]) +AC_PLUGIN([match_timediff], [yes], [The timediff match]) AC_PLUGIN([match_value], [yes], [The value match]) AC_PLUGIN([mbmon], [yes], [Query mbmond]) +AC_PLUGIN([memcachec], [$with_libmemcached], [memcachec statistics]) AC_PLUGIN([memcached], [yes], [memcached statistics]) AC_PLUGIN([memory], [$plugin_memory], [Memory usage]) AC_PLUGIN([multimeter], [$plugin_multimeter], [Read multimeter values]) @@ -3003,7 +3533,9 @@ AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics]) AC_PLUGIN([netlink], [$with_libnetlink], [Enhanced Linux network statistics]) AC_PLUGIN([network], [yes], [Network communication plugin]) AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics]) +AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics]) AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics]) +AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications]) AC_PLUGIN([notify_email], [$with_libesmtp], [Email notifier]) AC_PLUGIN([ntpd], [yes], [NTPd statistics]) AC_PLUGIN([nut], [$with_libupsclient], [Network UPS tools statistics]) @@ -3015,13 +3547,15 @@ 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_librrd], [RRDTool output plugin]) +AC_PLUGIN([protocols], [$plugin_protocols], [Protocol (IP, TCP, ...) statistics]) AC_PLUGIN([rrdcached], [$librrd_rrdc_update], [RRDTool output plugin]) +AC_PLUGIN([rrdtool], [$with_librrd], [RRDTool output plugin]) AC_PLUGIN([sensors], [$with_libsensors], [lm_sensors statistics]) AC_PLUGIN([serial], [$plugin_serial], [serial port traffic]) AC_PLUGIN([snmp], [$with_libnetsnmp], [SNMP querying plugin]) AC_PLUGIN([swap], [$plugin_swap], [Swap usage statistics]) AC_PLUGIN([syslog], [$have_syslog], [Syslog logging plugin]) +AC_PLUGIN([table], [yes], [Parsing of tabular data]) AC_PLUGIN([tail], [yes], [Parsing of logfiles]) AC_PLUGIN([tape], [$plugin_tape], [Tape drive statistics]) AC_PLUGIN([target_notification], [yes], [The notification target]) @@ -3029,8 +3563,10 @@ AC_PLUGIN([target_replace], [yes], [The replace target]) AC_PLUGIN([target_set], [yes], [The set target]) AC_PLUGIN([tcpconns], [$plugin_tcpconns], [TCP connection statistics]) AC_PLUGIN([teamspeak2], [yes], [TeamSpeak2 server statistics]) +AC_PLUGIN([ted], [$plugin_ted], [Read The Energy Detective values]) AC_PLUGIN([thermal], [$plugin_thermal], [Linux ACPI thermal zone statistics]) AC_PLUGIN([unixsock], [yes], [Unixsock communication plugin]) +AC_PLUGIN([uptime], [$plugin_uptime], [Uptime statistics]) AC_PLUGIN([users], [$plugin_users], [User statistics]) AC_PLUGIN([uuid], [yes], [UUID as hostname plugin]) AC_PLUGIN([vmem], [$plugin_vmem], [Virtual memory statistics]) @@ -3038,6 +3574,86 @@ AC_PLUGIN([vserver], [$plugin_vserver], [Linux VServer statistics]) AC_PLUGIN([wireless], [$plugin_wireless], [Wireless statistics]) AC_PLUGIN([xmms], [$with_libxmms], [XMMS statistics]) +dnl Default configuration file +# Load either syslog or logfile +LOAD_PLUGIN_SYSLOG="" +LOAD_PLUGIN_LOGFILE="" + +AC_MSG_CHECKING([which default log plugin to load]) +default_log_plugin="none" +if test "x$enable_syslog" = "xyes" +then + default_log_plugin="syslog" +else + LOAD_PLUGIN_SYSLOG="##" +fi + +if test "x$enable_logfile" = "xyes" +then + if test "x$default_log_plugin" = "xnone" + then + default_log_plugin="logfile" + else + LOAD_PLUGIN_LOGFILE="#" + fi +else + LOAD_PLUGIN_LOGFILE="##" +fi +AC_MSG_RESULT([$default_log_plugin]) + +AC_SUBST(LOAD_PLUGIN_SYSLOG) +AC_SUBST(LOAD_PLUGIN_LOGFILE) + +DEFAULT_LOG_LEVEL="info" +if test "x$enable_debug" = "xyes" +then + DEFAULT_LOG_LEVEL="debug" +fi +AC_SUBST(DEFAULT_LOG_LEVEL) + +# Load only one of rrdtool, network, csv in the default config. +LOAD_PLUGIN_RRDTOOL="" +LOAD_PLUGIN_NETWORK="" +LOAD_PLUGIN_CSV="" + +AC_MSG_CHECKING([which default write plugin to load]) +default_write_plugin="none" +if test "x$enable_rrdtool" = "xyes" +then + default_write_plugin="rrdtool" +else + LOAD_PLUGIN_RRDTOOL="##" +fi + +if test "x$enable_network" = "xyes" +then + if test "x$default_write_plugin" = "xnone" + then + default_write_plugin="network" + else + LOAD_PLUGIN_NETWORK="#" + fi +else + LOAD_PLUGIN_NETWORK="##" +fi + +if test "x$enable_csv" = "xyes" +then + if test "x$default_write_plugin" = "xnone" + then + default_write_plugin="csv" + else + LOAD_PLUGIN_CSV="#" + fi +else + LOAD_PLUGIN_CSV="##" +fi +AC_MSG_RESULT([$default_write_plugin]) + +AC_SUBST(LOAD_PLUGIN_RRDTOOL) +AC_SUBST(LOAD_PLUGIN_NETWORK) +AC_SUBST(LOAD_PLUGIN_CSV) + dnl ip_vs.h if test "x$ac_system" = "xLinux" \ && test "x$have_net_ip_vs_h$have_ip_vs_h" = "xnono" @@ -3075,7 +3691,24 @@ fi AC_SUBST(PERL_BINDINGS) AC_SUBST(PERL_BINDINGS_OPTIONS) -AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/libcollectdclient/Makefile src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile) +dnl libcollectdclient +LCC_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -d'.' -f1` +LCC_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -d'.' -f2` +LCC_VERSION_PATCH=`echo $PACKAGE_VERSION | cut -d'.' -f3` + +LCC_VERSION_EXTRA=`echo $PACKAGE_VERSION | cut -d'.' -f4-` + +LCC_VERSION_STRING="$LCC_VERSION_MAJOR.$LCC_VERSION_MINOR.$LCC_VERSION_PATCH" + +AC_SUBST(LCC_VERSION_MAJOR) +AC_SUBST(LCC_VERSION_MINOR) +AC_SUBST(LCC_VERSION_PATCH) +AC_SUBST(LCC_VERSION_EXTRA) +AC_SUBST(LCC_VERSION_STRING) + +AC_CONFIG_FILES(src/libcollectdclient/lcc_features.h) + +AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile) if test "x$with_librrd" = "xyes" \ && test "x$librrd_threadsafe" != "xyes" @@ -3083,12 +3716,6 @@ then with_librrd="yes (warning: librrd is not thread-safe)" fi -if test "x$with_liboping" = "xyes" \ - && test "x$with_own_liboping" = "xyes" -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)" @@ -3114,8 +3741,10 @@ Configuration: libcurl . . . . . . . $with_libcurl libdbi . . . . . . . $with_libdbi libesmtp . . . . . . $with_libesmtp + libgcrypt . . . . . . $with_libgcrypt libiokit . . . . . . $with_libiokit libiptc . . . . . . . $with_libiptc + libjvm . . . . . . . $with_java libkstat . . . . . . $with_kstat libkvm . . . . . . . $with_libkvm libmysql . . . . . . $with_libmysql @@ -3126,10 +3755,9 @@ Configuration: libopenipmi . . . . . $with_libopenipmipthread liboping . . . . . . $with_liboping libpcap . . . . . . . $with_libpcap - libpcre . . . . . . . $with_libpcre libperl . . . . . . . $with_libperl - libpthread . . . . . $with_libpthread libpq . . . . . . . . $with_libpq + libpthread . . . . . $with_libpthread librrd . . . . . . . $with_librrd libsensors . . . . . $with_libsensors libstatgrab . . . . . $with_libstatgrab @@ -3152,9 +3780,13 @@ Configuration: apple_sensors . . . . $enable_apple_sensors ascent . . . . . . . $enable_ascent battery . . . . . . . $enable_battery + bind . . . . . . . . $enable_bind + conntrack . . . . . . $enable_conntrack + couchdb . . . . . . . $enable_couchdb cpu . . . . . . . . . $enable_cpu cpufreq . . . . . . . $enable_cpufreq csv . . . . . . . . . $enable_csv + curl . . . . . . . . $enable_curl dbi . . . . . . . . . $enable_dbi df . . . . . . . . . $enable_df disk . . . . . . . . $enable_disk @@ -3163,19 +3795,22 @@ Configuration: entropy . . . . . . . $enable_entropy exec . . . . . . . . $enable_exec filecount . . . . . . $enable_filecount - filter_ignore . . . . $enable_filter_ignore + gmond . . . . . . . . $enable_gmond hddtemp . . . . . . . $enable_hddtemp interface . . . . . . $enable_interface - iptables . . . . . . $enable_iptables ipmi . . . . . . . . $enable_ipmi + iptables . . . . . . $enable_iptables ipvs . . . . . . . . $enable_ipvs irq . . . . . . . . . $enable_irq + java . . . . . . . . $enable_java libvirt . . . . . . . $enable_libvirt load . . . . . . . . $enable_load logfile . . . . . . . $enable_logfile match_regex . . . . . $enable_match_regex + match_timediff . . . $enable_match_timediff match_value . . . . . $enable_match_value mbmon . . . . . . . . $enable_mbmon + memcachec . . . . . . $enable_memcachec memcached . . . . . . $enable_memcached memory . . . . . . . $enable_memory multimeter . . . . . $enable_multimeter @@ -3183,6 +3818,7 @@ Configuration: netlink . . . . . . . $enable_netlink network . . . . . . . $enable_network nfs . . . . . . . . . $enable_nfs + fscache . . . . . . . $enable_fscache nginx . . . . . . . . $enable_nginx notify_desktop . . . $enable_notify_desktop notify_email . . . . $enable_notify_email @@ -3196,13 +3832,15 @@ Configuration: postgresql . . . . . $enable_postgresql powerdns . . . . . . $enable_powerdns processes . . . . . . $enable_processes - rrdtool . . . . . . . $enable_rrdtool + protocols . . . . . . $enable_protocols rrdcached . . . . . . $enable_rrdcached + rrdtool . . . . . . . $enable_rrdtool sensors . . . . . . . $enable_sensors serial . . . . . . . $enable_serial snmp . . . . . . . . $enable_snmp swap . . . . . . . . $enable_swap syslog . . . . . . . $enable_syslog + table . . . . . . . . $enable_table tail . . . . . . . . $enable_tail tape . . . . . . . . $enable_tape target_notification . $enable_target_notification @@ -3210,8 +3848,10 @@ Configuration: target_set . . . . . $enable_target_set tcpconns . . . . . . $enable_tcpconns teamspeak2 . . . . . $enable_teamspeak2 + ted . . . . . . . . . $enable_ted thermal . . . . . . . $enable_thermal unixsock . . . . . . $enable_unixsock + uptime . . . . . . . $enable_uptime users . . . . . . . . $enable_users uuid . . . . . . . . $enable_uuid vmem . . . . . . . . $enable_vmem