X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.in;h=8f6eadeedfc825cc74cf60a20b5d6f4d339712fd;hb=b86dd62eef146a35d43b60efa20d30756ce78d00;hp=d30fe845646865abc8d11a7a31bb261e3bc0e954;hpb=9ae852ac617479e55d10604166deed22ccaf1b3d;p=collectd.git diff --git a/configure.in b/configure.in index d30fe845..8f6eadee 100644 --- a/configure.in +++ b/configure.in @@ -9,6 +9,7 @@ m4_ifdef([LT_PACKAGE_VERSION], LT_CONFIG_LTDL_DIR([libltdl]) LT_INIT([dlopen]) LTDL_INIT([convenience]) + AC_DEFINE(LIBTOOL_VERSION, 2, [Define to used libtool version.]) ] , # libtool <= 1.5 @@ -18,6 +19,7 @@ m4_ifdef([LT_PACKAGE_VERSION], AC_SUBST(LIBLTDL) AC_LIBTOOL_DLOPEN AC_CONFIG_SUBDIRS(libltdl) + AC_DEFINE(LIBTOOL_VERSION, 1, [Define to used libtool version.]) ] ) @@ -61,6 +63,10 @@ case $host_os in *openbsd*) ac_system="OpenBSD" ;; + *aix*) + AC_DEFINE([KERNEL_AIX], 1, [True if program is to be compiled for a AIX kernel]) + ac_system="AIX" + ;; *) ac_system="unknown" esac @@ -82,6 +88,10 @@ if test "x$ac_system" = "xSolaris" then AC_DEFINE(_POSIX_PTHREAD_SEMANTICS, 1, [Define to enforce POSIX thread semantics under Solaris.]) fi +if test "x$ac_system" = "xAIX" +then + AC_DEFINE(_THREAD_SAFE_ERRNO, 1, [Define to use the thread-safe version of errno under AIX.]) +fi # Where to install .pc files. pkgconfigdir="${libdir}/pkgconfig" @@ -109,7 +119,7 @@ AC_HEADER_SYS_WAIT AC_HEADER_DIRENT AC_HEADER_STDBOOL -AC_CHECK_HEADERS(stdio.h stdint.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) +AC_CHECK_HEADERS(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 sys/isa_defs.h) # For ping library AC_CHECK_HEADERS(netinet/in_systm.h, [], [], @@ -262,6 +272,22 @@ AC_CHECK_HEADERS(sys/sysctl.h, [], [], #endif ]) +AC_MSG_CHECKING([for sysctl kern.cp_times]) +if test -x /sbin/sysctl +then + /sbin/sysctl kern.cp_times 2>/dev/null + if test $? -eq 0 + then + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_SYSCTL_KERN_CP_TIMES, 1, + [Define if sysctl supports kern.cp_times]) + else + AC_MSG_RESULT([no]) + fi +else + AC_MSG_RESULT([no]) +fi + # For hddtemp module AC_CHECK_HEADERS(linux/major.h libgen.h) @@ -359,13 +385,13 @@ have_net_ip_vs_h="no" have_ip_vs_h="no" if test "x$ac_system" = "xLinux" then - SAVE_CFLAGS=$CFLAGS + 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 + CFLAGS="$SAVE_CFLAGS" fi # For quota module @@ -455,10 +481,17 @@ 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 sysconf) +AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog sysconf setenv) AC_FUNC_STRERROR_R +SAVE_CFLAGS="$CFLAGS" +# Emulate behavior of src/Makefile.am +if test "x$GCC" = "xyes" +then + CFLAGS="$CFLAGS -Wall -Werror" +fi + AC_CACHE_CHECK([for strtok_r], [c_cv_have_strtok_r_default], AC_LINK_IFELSE( @@ -489,7 +522,6 @@ AC_CACHE_CHECK([for strtok_r], 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], @@ -521,6 +553,12 @@ then ) fi +CFLAGS="$SAVE_CFLAGS" +if test "x$c_cv_have_strtok_r_reentrant" = "xyes" +then + CFLAGS="$CFLAGS -D_REENTRANT=1" +fi + AC_CHECK_FUNCS(getpwnam_r getgrnam_r setgroups regcomp regerror regexec regfree) socket_needs_socket="no" @@ -528,8 +566,16 @@ AC_CHECK_FUNCS(socket, [], AC_CHECK_LIB(socket, socket, [socket_needs_socket="ye AM_CONDITIONAL(BUILD_WITH_LIBSOCKET, test "x$socket_needs_socket" = "xyes") nanosleep_needs_rt="no" -AC_CHECK_FUNCS(nanosleep, [], AC_CHECK_LIB(rt, nanosleep, [nanosleep_needs_rt="yes"], AC_MSG_ERROR(cannot find nanosleep))) +nanosleep_needs_posix4="no" +AC_CHECK_FUNCS(nanosleep, + [], + AC_CHECK_LIB(rt, nanosleep, + [nanosleep_needs_rt="yes"], + AC_CHECK_LIB(posix4, nanosleep, + [nanosleep_needs_posix4="yes"], + AC_MSG_ERROR(cannot find nanosleep)))) AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes") +AM_CONDITIONAL(BUILD_WITH_LIBPOSIX4, test "x$nanosleep_needs_posix4" = "xyes") AC_CHECK_FUNCS(sysctl, [have_sysctl="yes"], [have_sysctl="no"]) AC_CHECK_FUNCS(sysctlbyname, [have_sysctlbyname="yes"], [have_sysctlbyname="no"]) @@ -611,6 +657,8 @@ static float foo = NAN; fi fi if test "x$nan_type" = "xnone"; then + SAVE_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -lm" AC_CACHE_CHECK([whether NAN can be defined by 0/0], [c_cv_have_nan_zero], AC_RUN_IFELSE( @@ -637,6 +685,7 @@ static float foo = NAN; [c_cv_have_nan_zero="no"] ) ) + LDFLAGS=$SAVE_LDFLAGS if test "x$c_cv_have_nan_zero" = "xyes" then nan_type="zero" @@ -682,6 +731,9 @@ if test "x$fp_layout_type" = "xunknown"; then #if HAVE_STDINT_H # include #endif +#if HAVE_INTTYPES_H +# include +#endif #if HAVE_STDBOOL_H # include #endif @@ -726,6 +778,9 @@ if test "x$fp_layout_type" = "xunknown"; then #if HAVE_STDINT_H # include #endif +#if HAVE_INTTYPES_H +# include +#endif #if HAVE_STDBOOL_H # include #endif @@ -778,6 +833,9 @@ if test "x$fp_layout_type" = "xunknown"; then #if HAVE_STDINT_H # include #endif +#if HAVE_INTTYPES_H +# include +#endif #if HAVE_STDBOOL_H # include #endif @@ -906,6 +964,27 @@ if test "x$have_getmntent" = "xgen"; then [Define if the function getmntent exists. It's the version from libgen.]) fi +# Check for htonll +AC_MSG_CHECKING([if have htonll defined]) + + have_htonll="no" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([ +#include +#include +#if HAVE_INTTYPES_H +# include +#endif + ], [ + return htonll(0); + ]) + ], [ + have_htonll="yes" + AC_DEFINE(HAVE_HTONLL, 1, [Define if the function htonll exists.]) + ]) + +AC_MSG_RESULT([$have_htonll]) + # Check for structures AC_CHECK_MEMBERS([struct if_data.ifi_ibytes, struct if_data.ifi_opackets, struct if_data.ifi_ierrors], [AC_DEFINE(HAVE_STRUCT_IF_DATA, 1, [Define if struct if_data exists and is usable.])], @@ -1036,6 +1115,38 @@ fi m4_divert_once([HELP_WITH], [ collectd additional packages:]) +AM_CONDITIONAL([BUILD_AIX],[test "x$x$ac_system" = "xAIX"]) + +if test "x$ac_system" = "xAIX" +then + with_perfstat="yes" + with_procinfo="yes" +else + with_perfstat="no (AIX only)" + with_procinfo="no (AIX only)" +fi + +if test "x$with_perfstat" = "xyes" +then + AC_CHECK_LIB(perfstat, perfstat_reset, [with_perfstat="yes"], [with_perfstat="no (perfstat not found)"], []) +# AC_CHECK_HEADERS(sys/protosw.h libperfstat.h,, [with_perfstat="no (perfstat not found)"]) +fi +if test "x$with_perfstat" = "xyes" +then + AC_DEFINE(HAVE_PERFSTAT, 1, [Define to 1 if you have the 'perfstat' library (-lperfstat)]) +fi +AM_CONDITIONAL(BUILD_WITH_PERFSTAT, test "x$with_perfstat" = "xyes") + +# Processes plugin under AIX. +if test "x$with_procinfo" = "xyes" +then + AC_CHECK_HEADERS(procinfo.h,, [with_procinfo="no (procinfo.h not found)"]) +fi +if test "x$with_procinfo" = "xyes" +then + AC_DEFINE(HAVE_PROCINFO_H, 1, [Define to 1 if you have the procinfo.h]) +fi + if test "x$ac_system" = "xSolaris" then with_kstat="yes" @@ -1442,14 +1553,18 @@ AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes") 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" + if test "x$withval" = "xshipped" then - LDFLAGS="$LDFLAGS -L$withval/lib" - CPPFLAGS="$CPPFLAGS -I$withval/include" + with_own_libiptc="yes" + with_libiptc="yes" + else if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + LIBIPTC_CPPFLAGS="$LIBIPTC_CPPFLAGS -I$withval/include" + LIBIPTC_LDFLAGS="$LIBIPTC_LDFLAGS -L$withval/lib" with_libiptc="yes" else with_libiptc="$withval" - fi + fi; fi ], [ if test "x$ac_system" = "xLinux" @@ -1459,50 +1574,89 @@ AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to l with_libiptc="no (Linux only)" fi ]) -if test "x$with_libiptc" = "xyes" +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $LIBIPTC_CPPFLAGS" +LDFLAGS="$LDFLAGS $LIBIPTC_LDFLAGS" +# check whether the header file for libiptc is available. +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xno" then - AC_CHECK_LIB(iptc, iptc_init, + AC_CHECK_HEADERS(libiptc/libiptc.h, [ - AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).]) + AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the header file.]) ], [ with_libiptc="yes" with_own_libiptc="yes" ]) fi -if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" != "xyes" +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xno" then - AC_CHECK_HEADERS(libiptc/libiptc.h, + AC_CHECK_HEADERS(libiptc/libip6tc.h, [ - AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the header file.]) + AC_DEFINE(HAVE_LIBIPTC_LIBIP6TC_H, 1, [Define to 1 if you have the header file.]) ], [ with_libiptc="yes" with_own_libiptc="yes" ]) fi -if test "x$with_libiptc" = "xyes" +# If the header file is available, check for the required type declaractions. +# They may be missing in old versions of libiptc. In that case, they will be +# declared in the iptables plugin. +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xno" then - SAVE_CFLAGS=$CFLAGS - CFLAGS="$CFLAGS $KERNEL_CFLAGS" - - AC_CHECK_HEADERS(linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h, [], + AC_CHECK_TYPES([iptc_handle_t, ip6tc_handle_t], [], [], + [ +#if OWN_LIBIPTC +# include "$srcdir/src/owniptc/libiptc.h" +# include "$srcdir/src/owniptc/libip6tc.h" +#else +# include +# include +#endif + ]) +fi +# Check for the iptc_init symbol in the library. +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xno" +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 +# The system wide version failed for some reason. Check if we have the required +# headers to build the shipped version. +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xyes" +then + AC_CHECK_HEADERS(linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h linux/netfilter/x_tables.h, [], [ - with_libiptc="no (Linux iptables headers not found - check KERNEL_DIR)" + with_libiptc="no (Linux iptables headers not found)" with_own_libiptc="no" ], [ -#include "$srcdir/src/libiptc/ipt_kernel_headers.h" +#include "$srcdir/src/owniptc/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_libiptc" = "xyes" +then + BUILD_WITH_LIBIPTC_CPPFLAGS="$LIBIPTC_CPPFLAGS" + BUILD_WITH_LIBIPTC_LDFLAGS="$LIBIPTC_LDFLAGS" + AC_SUBST(BUILD_WITH_LIBIPTC_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBIPTC_LDFLAGS) +fi if test "x$with_own_libiptc" = "xyes" then AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.]) fi +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" # }}} # --with-java {{{ @@ -1511,6 +1665,7 @@ with_java_vmtype="client" with_java_cflags="" with_java_libs="" JAVAC="$JAVAC" +JAR="$JAR" AC_ARG_WITH(java, [AS_HELP_STRING([--with-java@<:@=PREFIX@:>@], [Path to Java home.])], [ if test "x$withval" = "xno" @@ -1530,7 +1685,7 @@ then if test -d "$with_java_home" then AC_MSG_CHECKING([for jni.h]) - TMPDIR=`find -L "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find "$with_java_home" -name jni.h -type f -exec 'dirname' '{}' ';' | head -n 1` if test "x$TMPDIR" != "x" then AC_MSG_RESULT([found in $TMPDIR]) @@ -1540,7 +1695,7 @@ then fi AC_MSG_CHECKING([for jni_md.h]) - TMPDIR=`find -L "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find "$with_java_home" -name jni_md.h -type f -exec 'dirname' '{}' ';' | head -n 1` if test "x$TMPDIR" != "x" then AC_MSG_RESULT([found in $TMPDIR]) @@ -1550,7 +1705,7 @@ then fi AC_MSG_CHECKING([for libjvm.so]) - TMPDIR=`find -L "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find "$with_java_home" -name libjvm.so -type f -exec 'dirname' '{}' ';' | head -n 1` if test "x$TMPDIR" != "x" then AC_MSG_RESULT([found in $TMPDIR]) @@ -1562,7 +1717,7 @@ then if test "x$JAVAC" = "x" then AC_MSG_CHECKING([for javac]) - TMPDIR=`find -L "$with_java_home" -name javac -type f | head -n 1` + TMPDIR=`find "$with_java_home" -name javac -type f | head -n 1` if test "x$TMPDIR" != "x" then JAVAC="$TMPDIR" @@ -1571,6 +1726,18 @@ then AC_MSG_RESULT([not found]) fi fi + if test "x$JAR" = "x" + then + AC_MSG_CHECKING([for jar]) + TMPDIR=`find "$with_java_home" -name jar -type f | head -n 1` + if test "x$TMPDIR" != "x" + then + JAR="$TMPDIR" + AC_MSG_RESULT([$JAR]) + else + AC_MSG_RESULT([not found]) + fi + fi else if test "x$with_java_home" != "x" then AC_MSG_WARN([JAVA_HOME: No such directory: $with_java_home]) @@ -1607,6 +1774,24 @@ if test "x$JAVAC" = "x" then with_java="no (javac not found)" fi +if test "x$JAR" = "x" +then + with_jar_path="$PATH" + if test "x$with_java_home" != "x" + then + with_jar_path="$with_java_home:$with_jar_path" + if test -d "$with_java_home/bin" + then + with_jar_path="$with_java_home/bin:$with_jar_path" + fi + fi + + AC_PATH_PROG(JAR, jar, [], "$with_jar_path") +fi +if test "x$JAR" = "x" +then + with_java="no (jar not found)" +fi SAVE_CPPFLAGS="$CPPFLAGS" SAVE_CFLAGS="$CFLAGS" @@ -1812,7 +1997,7 @@ AC_ARG_WITH(libnetlink, [AS_HELP_STRING([--with-libnetlink@<:@=PREFIX@:>@], [Pat ]) if test "x$with_libnetlink" = "xyes" then - SAVE_CFLAGS=$CFLAGS + SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $with_libnetlink_cflags" with_libnetlink="no (libnetlink.h not found)" @@ -1885,6 +2070,78 @@ fi AM_CONDITIONAL(BUILD_WITH_LIBNETLINK, test "x$with_libnetlink" = "xyes") # }}} +# --with-libnetapp {{{ +AC_ARG_VAR([LIBNETAPP_CPPFLAGS], [C preprocessor flags required to build with libnetapp]) +AC_ARG_VAR([LIBNETAPP_LDFLAGS], [Linker flags required to build with libnetapp]) +AC_ARG_VAR([LIBNETAPP_LIBS], [Other libraries required to link against libnetapp]) +LIBNETAPP_CPPFLAGS="$LIBNETAPP_CPPFLAGS" +LIBNETAPP_LDFLAGS="$LIBNETAPP_LDFLAGS" +LIBNETAPP_LIBS="$LIBNETAPP_LIBS" +AC_ARG_WITH(libnetapp, [AS_HELP_STRING([--with-libnetapp@<:@=PREFIX@:>@], [Path to libnetapp.])], +[ + if test -d "$withval" + then + LIBNETAPP_CPPFLAGS="$LIBNETAPP_CPPFLAGS -I$withval/include" + LIBNETAPP_LDFLAGS="$LIBNETAPP_LDFLAGS -L$withval/lib" + with_libnetapp="yes" + else + with_libnetapp="$withval" + fi +], +[ + with_libnetapp="yes" +]) + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +CPPFLAGS="$CPPFLAGS $LIBNETAPP_CPPFLAGS" +LDFLAGS="$LDFLAGS $LIBNETAPP_LDFLAGS" + +if test "x$with_libnetapp" = "xyes" +then + if test "x$LIBNETAPP_CPPFLAGS" != "x" + then + AC_MSG_NOTICE([netapp CPPFLAGS: $LIBNETAPP_CPPFLAGS]) + fi + AC_CHECK_HEADERS(netapp_api.h, + [with_libnetapp="yes"], + [with_libnetapp="no (netapp_api.h not found)"]) +fi + +if test "x$with_libnetapp" = "xyes" +then + if test "x$LIBNETAPP_LDFLAGS" != "x" + then + AC_MSG_NOTICE([netapp LDFLAGS: $LIBNETAPP_LDFLAGS]) + fi + + if test "x$LIBNETAPP_LIBS" = "x" + then + LIBNETAPP_LIBS="-lpthread -lxml -ladt -lssl -lm -lcrypto -lz" + fi + AC_MSG_NOTICE([netapp LIBS: $LIBNETAPP_LIBS]) + + AC_CHECK_LIB(netapp, na_server_invoke_elem, + [with_libnetapp="yes"], + [with_libnetapp="no (symbol na_server_invoke_elem not found)"], + [$LIBNETAPP_LIBS]) + LIBNETAPP_LIBS="-lnetapp $LIBNETAPP_LIBS" +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" + +if test "x$with_libnetapp" = "xyes" +then + AC_DEFINE(HAVE_LIBNETAPP, 1, [Define to 1 if you have the netapp library (-lnetapp).]) +fi + +AC_SUBST(LIBNETAPP_CPPFLAGS) +AC_SUBST(LIBNETAPP_LDFLAGS) +AC_SUBST(LIBNETAPP_LIBS) +AM_CONDITIONAL(BUILD_WITH_LIBNETAPP, test "x$with_libnetapp" = "xyes") +# }}} + # --with-libnetsnmp {{{ with_snmp_config="net-snmp-config" with_snmp_cflags="" @@ -2250,8 +2507,8 @@ AC_SUBST(PERL, "$perl_interpreter") if test "x$with_libperl" = "xyes" \ && test -n "$perl_interpreter" then - SAVE_CFLAGS=$CFLAGS - SAVE_LDFLAGS=$LDFLAGS + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" 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` @@ -2288,8 +2545,8 @@ dnl ARCHFLAGS="" -> disable multi -arch on OSX (see Config_heavy.pl:fetch_string with_libperl="no" fi - CFLAGS=$SAVE_CFLAGS - LDFLAGS=$SAVE_LDFLAGS + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" else if test -z "$perl_interpreter"; then with_libperl="no (no perl interpreter found)" c_cv_have_libperl="no" @@ -2298,8 +2555,8 @@ AM_CONDITIONAL(BUILD_WITH_LIBPERL, test "x$with_libperl" = "xyes") if test "x$with_libperl" = "xyes" then - SAVE_CFLAGS=$CFLAGS - SAVE_LDFLAGS=$LDFLAGS + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS $PERL_CFLAGS" LDFLAGS="$LDFLAGS $PERL_LDFLAGS" @@ -2327,14 +2584,14 @@ then AC_DEFINE(HAVE_PERL_ITHREADS, 1, [Define if Perl supports ithreads.]) fi - CFLAGS=$SAVE_CFLAGS - LDFLAGS=$SAVE_LDFLAGS + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" fi if test "x$with_libperl" = "xyes" then - SAVE_CFLAGS=$CFLAGS - SAVE_LDFLAGS=$LDFLAGS + 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" @@ -2361,16 +2618,16 @@ then ) ) - CFLAGS=$SAVE_CFLAGS - LDFLAGS=$SAVE_LDFLAGS + 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 + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS $PERL_CFLAGS" LDFLAGS="$LDFLAGS $PERL_LDFLAGS" @@ -2390,8 +2647,8 @@ then [Define if Perl's struct mgvtbl has member svt_local.]) fi - CFLAGS=$SAVE_CFLAGS - LDFLAGS=$SAVE_LDFLAGS + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" fi # }}} @@ -2522,6 +2779,184 @@ AC_DEFINE_UNQUOTED(HAVE_LIBPTHREAD, [$collect_pthread], AM_CONDITIONAL(BUILD_WITH_LIBPTHREAD, test "x$with_libpthread" = "xyes") # }}} +# --with-python {{{ +with_python_prog="" +with_python_path="$PATH" +AC_ARG_WITH(python, [AS_HELP_STRING([--with-python@<:@=PREFIX@:>@], [Path to the python interpreter.])], +[ + if test "x$withval" = "xyes" || test "x$withval" = "xno" + then + with_python="$withval" + else if test -x "$withval" + then + with_python_prog="$withval" + with_python_path="`dirname \"$withval\"`$PATH_SEPARATOR$with_python_path" + with_python="yes" + else if test -d "$withval" + then + with_python_path="$withval$PATH_SEPARATOR$with_python_path" + with_python="yes" + else + AC_MSG_WARN([Argument not recognized: $withval]) + fi; fi; fi +], [with_python="yes"]) + +SAVE_PATH="$PATH" +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" +SAVE_LIBS="$LIBS" + +PATH="$with_python_path" + +if test "x$with_python" = "xyes" && test "x$with_python_prog" = "x" +then + AC_MSG_CHECKING([for python]) + with_python_prog="`which python 2>/dev/null`" + if test "x$with_python_prog" = "x" + then + AC_MSG_RESULT([not found]) + with_python="no (interpreter not found)" + else + AC_MSG_RESULT([$with_python_prog]) + fi +fi + +if test "x$with_python" = "xyes" +then + AC_MSG_CHECKING([for Python CPPFLAGS]) + python_include_path=`echo "import distutils.sysconfig;print distutils.sysconfig.get_python_inc()" | "$with_python_prog" 2>&1` + python_config_status=$? + + if test "$python_config_status" -ne 0 || test "x$python_include_path" = "x" + then + AC_MSG_RESULT([failed with status $python_config_status (output: $python_include_path)]) + with_python="no" + else + AC_MSG_RESULT([$python_include_path]) + fi +fi + +if test "x$with_python" = "xyes" +then + CPPFLAGS="-I$python_include_path $CPPFLAGS" + AC_CHECK_HEADERS(Python.h, + [with_python="yes"], + [with_python="no ('Python.h' not found)"]) +fi + +if test "x$with_python" = "xyes" +then + AC_MSG_CHECKING([for Python LDFLAGS]) + python_library_path=`echo "import distutils.sysconfig;print distutils.sysconfig.get_config_vars(\"LIBDIR\").__getitem__(0)" | "$with_python_prog" 2>&1` + python_config_status=$? + + if test "$python_config_status" -ne 0 || test "x$python_library_path" = "x" + then + AC_MSG_RESULT([failed with status $python_config_status (output: $python_library_path)]) + with_python="no" + else + AC_MSG_RESULT([$python_library_path]) + fi +fi + +if test "x$with_python" = "xyes" +then + AC_MSG_CHECKING([for Python LIBS]) + python_library_flags=`echo "import distutils.sysconfig;print distutils.sysconfig.get_config_vars(\"BLDLIBRARY\").__getitem__(0)" | "$with_python_prog" 2>&1` + python_config_status=$? + + if test "$python_config_status" -ne 0 || test "x$python_library_flags" = "x" + then + AC_MSG_RESULT([failed with status $python_config_status (output: $python_library_flags)]) + with_python="no" + else + AC_MSG_RESULT([$python_library_flags]) + fi +fi + +if test "x$with_python" = "xyes" +then + LDFLAGS="-L$python_library_path $LDFLAGS" + LIBS="$python_library_flags $LIBS" + + AC_CHECK_FUNC(PyObject_CallFunction, + [with_python="yes"], + [with_python="no (Symbol 'PyObject_CallFunction' not found)"]) +fi + +PATH="$SAVE_PATH" +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" +LIBS="$SAVE_LIBS" + +if test "x$with_python" = "xyes" +then + BUILD_WITH_PYTHON_CPPFLAGS="-I$python_include_path" + BUILD_WITH_PYTHON_LDFLAGS="-L$python_library_path" + BUILD_WITH_PYTHON_LIBS="$python_library_flags" + AC_SUBST(BUILD_WITH_PYTHON_CPPFLAGS) + AC_SUBST(BUILD_WITH_PYTHON_LDFLAGS) + AC_SUBST(BUILD_WITH_PYTHON_LIBS) +fi +# }}} --with-python + +# --with-librouteros {{{ +AC_ARG_WITH(librouteros, [AS_HELP_STRING([--with-librouteros@<:@=PREFIX@:>@], [Path to librouteros.])], +[ + if test "x$withval" = "xyes" + then + with_librouteros="yes" + else if test "x$withval" = "xno" + then + with_librouteros="no" + else + with_librouteros="yes" + LIBROUTEROS_CPPFLAGS="$LIBROUTEROS_CPPFLAGS -I$withval/include" + LIBROUTEROS_LDFLAGS="$LIBROUTEROS_LDFLAGS -L$withval/lib" + fi; fi +], +[with_librouteros="yes"]) + +SAVE_CPPFLAGS="$CPPFLAGS" +SAVE_LDFLAGS="$LDFLAGS" + +CPPFLAGS="$CPPFLAGS $LIBROUTEROS_CPPFLAGS" +LDFLAGS="$LDFLAGS $LIBROUTEROS_LDFLAGS" + +if test "x$with_librouteros" = "xyes" +then + if test "x$LIBROUTEROS_CPPFLAGS" != "x" + then + AC_MSG_NOTICE([librouteros CPPFLAGS: $LIBROUTEROS_CPPFLAGS]) + fi + AC_CHECK_HEADERS(routeros_api.h, + [with_librouteros="yes"], + [with_librouteros="no ('routeros_api.h' not found)"]) +fi +if test "x$with_librouteros" = "xyes" +then + if test "x$LIBROUTEROS_LDFLAGS" != "x" + then + AC_MSG_NOTICE([librouteros LDFLAGS: $LIBROUTEROS_LDFLAGS]) + fi + AC_CHECK_LIB(routeros, ros_interface, + [with_librouteros="yes"], + [with_librouteros="no (symbol 'ros_interface' not found)"]) +fi + +CPPFLAGS="$SAVE_CPPFLAGS" +LDFLAGS="$SAVE_LDFLAGS" + +if test "x$with_librouteros" = "xyes" +then + BUILD_WITH_LIBROUTEROS_CPPFLAGS="$LIBROUTEROS_CPPFLAGS" + BUILD_WITH_LIBROUTEROS_LDFLAGS="$LIBROUTEROS_LDFLAGS" + AC_SUBST(BUILD_WITH_LIBROUTEROS_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBROUTEROS_LDFLAGS) +fi +AM_CONDITIONAL(BUILD_WITH_LIBROUTEROS, test "x$with_librouteros" = "xyes") +# }}} + # --with-librrd {{{ # AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given]) librrd_cflags="" @@ -2869,7 +3304,7 @@ AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], with_libupsclient="use_libupsclient_config" else if test -x "$withval/bin/libupsclient-config" then - with_libupsclient_config="$withval/bin/net-snmp-config" + with_libupsclient_config="$withval/bin/libupsclient-config" with_libupsclient="use_libupsclient_config" else AC_MSG_NOTICE([Not checking for libupsclient: Manually configured]) @@ -3436,6 +3871,7 @@ plugin_ascent="no" plugin_battery="no" plugin_bind="no" plugin_conntrack="no" +plugin_contextswitch="no" plugin_cpu="no" plugin_cpufreq="no" plugin_curl_json="no" @@ -3473,6 +3909,7 @@ if test "x$ac_system" = "xLinux" then plugin_battery="yes" plugin_conntrack="yes" + plugin_contextswitch="yes" plugin_cpu="yes" plugin_cpufreq="yes" plugin_disk="yes" @@ -3494,7 +3931,7 @@ then plugin_vserver="yes" plugin_wireless="yes" - if test "x$have_net_ip_vs_h" = "xyes" -o "x$have_ip_vs_h" = "xyes" + if test "x$have_net_ip_vs_h" = "xyes" || test "x$have_ip_vs_h" = "xyes" then plugin_ipvs="yes" fi @@ -3512,6 +3949,22 @@ then plugin_disk="yes" fi +# AIX +if test "x$with_perfstat" = "xyes" +then + plugin_cpu="yes" + plugin_disk="yes" + plugin_memory="yes" + plugin_swap="yes" + plugin_interface="yes" + plugin_load="yes" +fi + +if test "x$with_procinfo" = "xyes" +then + plugin_processes="yes" +fi + # Solaris if test "x$with_kstat" = "xyes" then @@ -3708,6 +4161,7 @@ AC_PLUGIN([ascent], [$plugin_ascent], [AscentEmu player statistics]) AC_PLUGIN([battery], [$plugin_battery], [Battery statistics]) AC_PLUGIN([bind], [$plugin_bind], [ISC Bind nameserver statistics]) AC_PLUGIN([conntrack], [$plugin_conntrack], [nf_conntrack statistics]) +AC_PLUGIN([contextswitch], [$plugin_contextswitch], [context switch statistics]) AC_PLUGIN([cpufreq], [$plugin_cpufreq], [CPU frequency statistics]) AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics]) AC_PLUGIN([csv], [yes], [CSV output plugin]) @@ -3735,6 +4189,7 @@ AC_PLUGIN([load], [$plugin_load], [System load]) AC_PLUGIN([logfile], [yes], [File logging plugin]) AC_PLUGIN([madwifi], [$have_linux_wireless_h], [Madwifi wireless statistics]) AC_PLUGIN([match_empty_counter], [yes], [The empty counter match]) +AC_PLUGIN([match_hashed], [yes], [The hashed match]) AC_PLUGIN([match_regex], [yes], [The regex match]) AC_PLUGIN([match_timediff], [yes], [The timediff match]) AC_PLUGIN([match_value], [yes], [The value match]) @@ -3744,6 +4199,7 @@ AC_PLUGIN([memcached], [yes], [memcached statistics]) AC_PLUGIN([memory], [$plugin_memory], [Memory usage]) AC_PLUGIN([multimeter], [$plugin_multimeter], [Read multimeter values]) AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics]) +AC_PLUGIN([netapp], [$with_libnetapp], [NetApp plugin]) AC_PLUGIN([netlink], [$with_libnetlink], [Enhanced Linux network statistics]) AC_PLUGIN([network], [yes], [Network communication plugin]) AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics]) @@ -3762,6 +4218,8 @@ AC_PLUGIN([postgresql], [$with_libpq], [PostgreSQL database statistics]) AC_PLUGIN([powerdns], [yes], [PowerDNS statistics]) AC_PLUGIN([processes], [$plugin_processes], [Process statistics]) AC_PLUGIN([protocols], [$plugin_protocols], [Protocol (IP, TCP, ...) statistics]) +AC_PLUGIN([python], [$with_python], [Embed a Python interpreter]) +AC_PLUGIN([routeros], [$with_librouteros], [RouterOS plugin]) 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]) @@ -3926,7 +4384,7 @@ 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 bindings/java/Makefile) +AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/owniptc/Makefile src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile) if test "x$with_librrd" = "xyes" \ && test "x$librrd_threadsafe" != "xyes" @@ -3934,7 +4392,7 @@ then with_librrd="yes (warning: librrd is not thread-safe)" fi -if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" = "xyes" +if test "x$with_libiptc" = "xyes" && test "x$with_own_libiptc" = "xyes" then with_libiptc="yes (shipped version)" fi @@ -3973,6 +4431,7 @@ Configuration: libkvm . . . . . . . $with_libkvm libmemcached . . . . $with_libmemcached libmysql . . . . . . $with_libmysql + libnetapp . . . . . . $with_libnetapp libnetlink . . . . . $with_libnetlink libnetsnmp . . . . . $with_libnetsnmp libnotify . . . . . . $with_libnotify @@ -3980,9 +4439,11 @@ Configuration: libopenipmi . . . . . $with_libopenipmipthread liboping . . . . . . $with_liboping libpcap . . . . . . . $with_libpcap + libperfstat . . . . . $with_perfstat libperl . . . . . . . $with_libperl libpq . . . . . . . . $with_libpq libpthread . . . . . $with_libpthread + librouteros . . . . . $with_librouteros librrd . . . . . . . $with_librrd libsensors . . . . . $with_libsensors libstatgrab . . . . . $with_libstatgrab @@ -3993,6 +4454,7 @@ Configuration: libxmms . . . . . . . $with_libxmms libyajl . . . . . . . $with_libyajl oracle . . . . . . . $with_oracle + python . . . . . . . $with_python Features: daemon mode . . . . . $enable_daemon @@ -4009,6 +4471,7 @@ Configuration: battery . . . . . . . $enable_battery bind . . . . . . . . $enable_bind conntrack . . . . . . $enable_conntrack + contextswitch . . . . $enable_contextswitch cpu . . . . . . . . . $enable_cpu cpufreq . . . . . . . $enable_cpufreq csv . . . . . . . . . $enable_csv @@ -4036,6 +4499,7 @@ Configuration: logfile . . . . . . . $enable_logfile madwifi . . . . . . . $enable_madwifi match_empty_counter . $enable_match_empty_counter + match_hashed . . . . $enable_match_hashed match_regex . . . . . $enable_match_regex match_timediff . . . $enable_match_timediff match_value . . . . . $enable_match_value @@ -4045,6 +4509,7 @@ Configuration: memory . . . . . . . $enable_memory multimeter . . . . . $enable_multimeter mysql . . . . . . . . $enable_mysql + netapp . . . . . . . $enable_netapp netlink . . . . . . . $enable_netlink network . . . . . . . $enable_network nfs . . . . . . . . . $enable_nfs @@ -4063,6 +4528,8 @@ Configuration: powerdns . . . . . . $enable_powerdns processes . . . . . . $enable_processes protocols . . . . . . $enable_protocols + python . . . . . . . $enable_python + routeros . . . . . . $enable_routeros rrdcached . . . . . . $enable_rrdcached rrdtool . . . . . . . $enable_rrdtool sensors . . . . . . . $enable_sensors