dnl Process this file with autoconf to produce a configure script. AC_INIT(collectd, m4_esyscmd(./version-gen.sh)) AC_CONFIG_SRCDIR(src/collectd.c) AC_CONFIG_HEADERS(src/config.h) AM_INIT_AUTOMAKE(dist-bzip2) AC_LANG(C) AC_PREFIX_DEFAULT("/opt/collectd") AC_SYS_LARGEFILE # # Checks for programs. # AC_PROG_CC 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 AC_DISABLE_STATIC AC_LIBLTDL_CONVENIENCE AC_SUBST(LTDLINCL) AC_SUBST(LIBLTDL) AC_LIBTOOL_DLOPEN AC_PROG_LIBTOOL AC_PROG_LEX AC_PROG_YACC AC_CONFIG_SUBDIRS(libltdl) AC_MSG_CHECKING([for kernel type ($host_os)]) case $host_os in *linux*) AC_DEFINE([KERNEL_LINUX], 1, [True if program is to be compiled for a Linux kernel]) ac_system="Linux" ;; *solaris*) AC_DEFINE([KERNEL_SOLARIS], 1, [True if program is to be compiled for a Solaris kernel]) ac_system="Solaris" ;; *darwin*) ac_system="Darwin" ;; *) ac_system="unknown" esac AC_MSG_RESULT([$ac_system]) # # Checks for header files. # 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) # For ping library AC_CHECK_HEADERS(netinet/in_systm.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif ]) AC_CHECK_HEADERS(netinet/in.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif ]) AC_CHECK_HEADERS(netinet/ip.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif ]) AC_CHECK_HEADERS(netinet/ip_icmp.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif ]) AC_CHECK_HEADERS(netinet/ip_var.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif ]) AC_CHECK_HEADERS(netinet/ip6.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif ]) AC_CHECK_HEADERS(netinet/icmp6.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP6_H # include #endif ]) AC_CHECK_HEADERS(netinet/tcp.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif ]) AC_CHECK_HEADERS(netinet/udp.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif ]) # For cpu modules AC_CHECK_HEADERS(sys/dkstat.h) if test "x$ac_system" = "xDarwin" then AC_CHECK_HEADERS(mach/mach_init.h mach/host_priv.h mach/mach_error.h mach/mach_host.h mach/mach_port.h mach/mach_types.h mach/message.h mach/processor_set.h mach/processor.h mach/processor_info.h mach/task.h mach/thread_act.h mach/vm_region.h mach/vm_map.h mach/vm_prot.h mach/vm_statistics.h mach/kern_return.h) AC_CHECK_HEADERS(CoreFoundation/CoreFoundation.h IOKit/IOKitLib.h IOKit/IOTypes.h IOKit/ps/IOPSKeys.h IOKit/IOBSD.h IOKit/storage/IOBlockStorageDriver.h) fi AC_CHECK_HEADERS(sys/sysctl.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_PARAM_H # include #endif ]) # For hddtemp module AC_CHECK_HEADERS(linux/major.h libgen.h) # For the battery plugin AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [], [ #if HAVE_IOKIT_IOKITLIB_H # include #endif #if HAVE_IOKIT_IOTYPES_H # include #endif ]) # For the swap module AC_CHECK_HEADERS(sys/swap.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_PARAM_H # include #endif ]) # For load module # For the processes plugin # For users module AC_CHECK_HEADERS(sys/loadavg.h linux/config.h utmp.h utmpx.h) # For interface plugin AC_CHECK_HEADERS(ifaddrs.h) AC_CHECK_HEADERS(net/if.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif ]) AC_CHECK_HEADERS(linux/if.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif ]) AC_CHECK_HEADERS(linux/netdevice.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif #if HAVE_LINUX_IF_H # include #endif ]) # For ipvs module have_net_ip_vs_h="no" have_ip_vs_h="no" if test "x$ac_system" = "xLinux" then AC_CHECK_HEADERS(net/ip_vs.h, [have_net_ip_vs_h="yes"]) AC_CHECK_HEADERS(ip_vs.h, [have_ip_vs_h="yes"]) fi # For quota module AC_CHECK_HEADERS(sys/ucred.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_PARAM_H # include #endif ]) # For mount interface AC_CHECK_HEADERS(sys/mount.h, [], [], [ #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_PARAM_H # include #endif ]) # For the email plugin AC_CHECK_HEADERS(linux/un.h, [], [], [ #if HAVE_SYS_SOCKET_H # include #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) # For the dns plugin AC_CHECK_HEADERS(arpa/nameser.h) AC_CHECK_HEADERS(arpa/nameser_compat.h, [], [], [ #if HAVE_ARPA_NAMESER_H # include #endif ]) AC_CHECK_HEADERS(net/if_arp.h, [], [], [#if HAVE_SYS_SOCKET_H # include #endif ]) AC_CHECK_HEADERS(net/ppp_defs.h) AC_CHECK_HEADERS(net/if_ppp.h, [], [], [#if HAVE_NET_PPP_DEFS_H # include #endif ]) AC_CHECK_HEADERS(netinet/if_ether.h, [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_SYS_SOCKET_H # include #endif #if HAVE_NET_IF_H # include #endif #if HAVE_NETINET_IN_H # include #endif ]) # For the multimeter plugin have_termios_h="no" AC_CHECK_HEADERS(termios.h, [have_termios_h="yes"]) # # Checks for typedefs, structures, and compiler characteristics. # AC_C_CONST AC_TYPE_PID_T AC_TYPE_SIZE_T AC_TYPE_UID_T 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_FUNC_STRERROR_R AC_CHECK_FUNCS(getpwnam_r) AC_CHECK_FUNCS(getgrnam_r) socket_needs_socket="no" AC_CHECK_FUNCS(socket, [], AC_CHECK_LIB(socket, socket, [socket_needs_socket="yes"], AC_MSG_ERROR(cannot find socket))) 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))) AM_CONDITIONAL(BUILD_WITH_LIBRT, test "x$nanosleep_needs_rt" = "xyes") AC_CHECK_FUNCS(regcomp regerror regexec regfree) 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"]) AC_CHECK_FUNCS(thread_info, [have_thread_info="yes"], [have_thread_info="no"]) AC_CHECK_FUNCS(statfs, [have_statfs="yes"], [have_statfs="no"]) AC_CHECK_FUNCS(statvfs, [have_statvfs="yes"], [have_statvfs="no"]) 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"]) # For load module AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"]) # Check for NAN AC_ARG_WITH(nan-emulation, [AS_HELP_STRING([--with-nan-emulation], [use emulated NAN. For crosscompiling only.])], [ if test "x$withval" = "xno"; then nan_type="none" else if test "x$withval" = "xyes"; then nan_type="zero" else nan_type="$withval" fi; fi ], [nan_type="none"]) if test "x$nan_type" = "xnone"; then AC_CACHE_CHECK([whether NAN is defined by default], [have_nan_default], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [[ #include #include static float foo = NAN; ]], [[ if (isnan (foo)) return 0; else return 1; ]]), [have_nan_default="yes"], [have_nan_default="no"] ) ) if test "x$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], AC_COMPILE_IFELSE( AC_LANG_PROGRAM( [[ #include #define __USE_ISOC99 1 #include static float foo = NAN; ]], [[ if (isnan (foo)) return 0; else return 1; ]]), [have_nan_isoc="yes"], [have_nan_isoc="no"] ) ) if test "x$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], AC_RUN_IFELSE( AC_LANG_PROGRAM( [[ #include #include #ifdef NAN # undef NAN #endif #define NAN (0.0 / 0.0) #ifndef isnan # define isnan(f) ((f) != (f)) #endif static float foo = NAN; ]], [[ if (isnan (foo)) return 0; else return 1; ]]), [have_nan_zero="yes"], [have_nan_zero="no"] ) ) if test "x$have_nan_zero" = "xyes" then nan_type="zero" fi fi if test "x$nan_type" = "xdefault"; then AC_DEFINE(NAN_STATIC_DEFAULT, 1, [Define if NAN is defined by default and can initialize static variables.]) else if test "x$nan_type" = "xisoc99"; then AC_DEFINE(NAN_STATIC_ISOC, 1, [Define if NAN is defined by __USE_ISOC99 and can initialize static variables.]) else if test "x$nan_type" = "xzero"; then AC_DEFINE(NAN_ZERO_ZERO, 1, [Define if NAN can be defined as (0.0 / 0.0)]) else AC_MSG_ERROR([Didn't find out how to statically initialize variables to NAN. Sorry.]) fi; fi; fi # For mount interface #AC_CHECK_FUNCS(getfsent getvfsent) have_getfsstat="no" AC_CHECK_FUNCS(getfsstat, [have_getfsstat="yes"]) have_getvfsstat="no" AC_CHECK_FUNCS(getvfsstat, [have_getvfsstat="yes"]) have_listmntent="no" AC_CHECK_FUNCS(listmntent, [have_listmntent="yes"]) have_getmntent="no" AC_CHECK_FUNCS(getmntent, [have_getmntent="c"]) if test "x$have_getmntent" = "xno"; then AC_CHECK_LIB(sun, getmntent, [have_getmntent="sun"]) fi if test "x$have_getmntent" = "xno"; then AC_CHECK_LIB(seq, getmntent, [have_getmntent="seq"]) fi if test "x$have_getmntent" = "xno"; then AC_CHECK_LIB(gen, getmntent, [have_getmntent="gen"]) fi if test "x$have_getmntent" = "xc"; then AC_CACHE_CHECK([whether getmntent takes one argument], [have_one_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT #include #include "$srcdir/src/utils_mount.h"]], [[ FILE *fh; struct mntent *me; fh = setmntent ("/etc/mtab", "r"); me = getmntent (fh); ]] ), [have_one_getmntent="yes"], [have_one_getmntent="no"] ) ) AC_CACHE_CHECK([whether getmntent takes two arguments], [have_two_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT #include #include "$srcdir/src/utils_mount.h"]], [[ FILE *fh; struct mnttab mt; int status; fh = fopen ("/etc/mnttab", "r"); status = getmntent (fh, &mt); ]] ), [have_two_getmntent="yes"], [have_two_getmntent="no"] ) ) fi # Check for different versions of `getmntent' here.. if test "x$have_getmntent" = "xc"; then if test "x$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 AC_DEFINE(HAVE_TWO_GETMNTENT, 1, [Define if the function getmntent exists and takes two arguments.]) fi fi if test "x$have_getmntent" = "xsun"; then AC_DEFINE(HAVE_SUN_GETMNTENT, 1, [Define if the function getmntent exists. It's the version from libsun.]) fi if test "x$have_getmntent" = "xseq"; then AC_DEFINE(HAVE_SEQ_GETMNTENT, 1, [Define if the function getmntent exists. It's the version from libseq.]) fi if test "x$have_getmntent" = "xgen"; then AC_DEFINE(HAVE_GEN_GETMNTENT, 1, [Define if the function getmntent exists. It's the version from libgen.]) fi # 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.])], [], [ #include #include #include ]) AC_CHECK_MEMBERS([struct net_device_stats.rx_bytes, struct net_device_stats.tx_packets, struct net_device_stats.rx_errors], [AC_DEFINE(HAVE_STRUCT_NET_DEVICE_STATS, 1, [Define if struct net_device_stats exists and is usable.])], [], [ #include #include #include #include ]) AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif #if HAVE_NETINET_UDP_H # include #endif ]) AC_CHECK_MEMBERS([struct udphdr.dest, struct udphdr.source], [], [], [#if HAVE_STDINT_H # include #endif #if HAVE_SYS_TYPES_H # include #endif #if HAVE_NETINET_IN_SYSTM_H # include #endif #if HAVE_NETINET_IN_H # include #endif #if HAVE_NETINET_IP_H # include #endif #if HAVE_NETINET_UDP_H # include #endif ]) AC_CHECK_MEMBERS([kstat_io_t.nwritten, kstat_io_t.writes, kstat_io_t.nwrites, kstat_io_t.wtime], [], [], [ #if HAVE_KSTAT_H # include #endif ]) with_libresolv="yes" AC_CHECK_LIB(resolv, res_search, [ AC_DEFINE(HAVE_LIBRESOLV, 1, [Define to 1 if you have the 'resolv' library (-lresolv).]) ], [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 PKG_PROG_PKG_CONFIG 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:]) # AC_ARG_WITH (package, help-string, [action-if-given], [action-if-not-given]) librrd_cflags="" librrd_ldflags="" librrd_threadsafe="yes" AC_ARG_WITH(rrdtool, [AS_HELP_STRING([--with-rrdtool@<:@=PREFIX@:>@], [Path to rrdtool.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then librrd_cflags="-I$withval/include" librrd_ldflags="-L$withval/lib" with_rrdtool="yes" else with_rrdtool="$withval" fi ], [with_rrdtool="yes"]) if test "x$with_rrdtool" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $librrd_cflags" LDFLAGS="$LDFLAGS $librrd_ldflags" AC_CHECK_HEADERS(rrd.h,, [with_rrdtool="no (rrd.h not found)"]) CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" fi if test "x$with_rrdtool" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $librrd_cflags" LDFLAGS="$LDFLAGS $librrd_ldflags" AC_CHECK_LIB(rrd_th, rrd_update_r, [with_rrdtool="yes" librrd_ldflags="$librrd_ldflags -lrrd_th -lm" ], [librrd_threadsafe="no" AC_CHECK_LIB(rrd, rrd_update, [with_rrdtool="yes" librrd_ldflags="$librrd_ldflags -lrrd -lm" ], [with_rrdtool="no (symbol 'rrd_update' not found)"], [-lm]) ] [-lm]) CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" fi if test "x$with_rrdtool" = "xyes" then BUILD_WITH_LIBRRD_CFLAGS="$librrd_cflags" BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags" AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS) AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS) fi if test "x$librrd_threadsafe" = "xyes" then AC_DEFINE(HAVE_THREADSAFE_LIBRRD, 1, [Define to 1 if you have the threadsafe rrd library (-lrrd_th).]) fi AC_ARG_WITH(libpthread, [AS_HELP_STRING([--with-libpthread=@<:@=PREFIX@:>@], [Path to libpthread.])], [ if test "x$withval" != "xno" -a "x$withval" != "xyes" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libpthread="yes" else if test "x$withval" = "xno" then with_libpthread="no (disabled)" fi fi ], [with_libpthread="yes"]) if test "x$with_libpthread" = "xyes" then AC_CHECK_LIB(pthread, pthread_create, [with_libpthread="yes"], [with_libpthread="no (libpthread not found)"], []) fi if test "x$with_libpthread" = "xyes" then AC_CHECK_HEADERS(pthread.h,, [with_libpthread="no (pthread.h not found)"]) fi if test "x$with_libpthread" = "xyes" then collect_pthread=1 else collect_pthread=0 fi AC_DEFINE_UNQUOTED(HAVE_LIBPTHREAD, [$collect_pthread], [Wether or not to use pthread (POSIX threads) library]) AM_CONDITIONAL(BUILD_WITH_LIBPTHREAD, test "x$with_libpthread" = "xyes") if test "x$ac_system" = "xSolaris" then with_kstat="yes" with_devinfo="yes" else with_kstat="no (Solaris only)" with_devinfo="no (Solaris only)" fi if test "x$with_kstat" = "xyes" then AC_CHECK_LIB(kstat, kstat_open, [with_kstat="yes"], [with_kstat="no (libkstat not found)"], []) fi if test "x$with_kstat" = "xyes" then AC_CHECK_LIB(devinfo, di_init, [with_devinfo="yes"], [with_devinfo="no (not found)"], []) AC_CHECK_HEADERS(kstat.h,, [with_kstat="no (kstat.h not found)"]) fi if test "x$with_kstat" = "xyes" then AC_DEFINE(HAVE_LIBKSTAT, 1, [Define to 1 if you have the 'kstat' library (-lkstat)]) fi AM_CONDITIONAL(BUILD_WITH_LIBKSTAT, test "x$with_kstat" = "xyes") AM_CONDITIONAL(BUILD_WITH_LIBDEVINFO, test "x$with_devinfo" = "xyes") ### BEGIN of check for libcurl ### with_curl_config="curl-config" with_curl_cflags="" with_curl_libs="" AC_ARG_WITH(libcurl, [AS_HELP_STRING([--with-libcurl@<:@=PREFIX@:>@], [Path to libcurl.])], [ if test "x$withval" = "xno" then with_libcurl="no" else if test "x$withval" = "xyes" then with_libcurl="yes" else if test -f "$withval" && test -x "$withval" then with_curl_config="$withval" with_libcurl="yes" else if test -x "$withval/bin/curl-config" then with_curl_config="$withval/bin/curl-config" with_libcurl="yes" fi; fi with_libcurl="yes" fi; fi ], [ with_libcurl="yes" ]) if test "x$with_libcurl" = "xyes" then with_curl_cflags=`$with_curl_config --cflags 2>/dev/null` curl_config_status=$? if test $curl_config_status -ne 0 then with_libcurl="no ($with_curl_config failed)" else SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $with_curl_cflags" AC_CHECK_HEADERS(curl/curl.h, [], [with_libcurl="no (curl/curl.h not found)"], []) CFLAGS="$SAVE_CFLAGS" fi fi if test "x$with_libcurl" = "xyes" then with_curl_libs=`$with_curl_config --libs 2>/dev/null` curl_config_status=$? if test $curl_config_status -ne 0 then with_libcurl="no ($with_curl_config failed)" else AC_CHECK_LIB(curl, curl_easy_init, [with_libcurl="yes"], [with_libcurl="no (symbol 'curl_easy_init' not found)"], [$with_curl_libs]) fi fi if test "x$with_libcurl" = "xyes" then BUILD_WITH_LIBCURL_CFLAGS="$with_curl_cflags" BUILD_WITH_LIBCURL_LIBS="$with_curl_libs" AC_SUBST(BUILD_WITH_LIBCURL_CFLAGS) AC_SUBST(BUILD_WITH_LIBCURL_LIBS) fi AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes") ### END of check for libcurl ### with_libiokit="no" collectd_libiokit=0 AC_CHECK_LIB(IOKit, IOServiceGetMatchingServices, [ with_libiokit="yes" collectd_libiokit=1 ], [ with_libiokit="no" collectd_libiokit=0 ]) AC_DEFINE_UNQUOTED(COLLECT_LIBIOKIT, [$collect_libiokit], [Wether or not to use the IOKit library]) AM_CONDITIONAL(BUILD_WITH_LIBIOKIT, test "x$with_libiokit" = "xyes") with_libstatgrab="yes" with_libdevstat="no" AC_ARG_WITH(libstatgrab, [AS_HELP_STRING([--with-libstatgrab@<:@=PREFIX@:>@], [Path to libstatgrab.])], [ if test "x$withval" != "xno" -a "x$withval" != "xyes" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libstatgrab="yes" else with_libstatgrab="$withval" fi ], [ if test "x$ac_system" == "xunknown" then with_libstatgrab="yes" else with_libstatgrab="no" fi ]) if test "x$with_libstatgrab" = "xyes" then AC_CHECK_LIB(statgrab, sg_init, [with_libstatgrab="yes"], [with_libstatgrab="no (libstatgrab not found)"]) fi if test "x$with_libstatgrab" = "xyes" then AC_CHECK_HEADERS(statgrab.h,, [with_libstatgrab="no (statgrab.h not found)"]) fi if test "x$with_libstatgrab" = "xyes" then AC_CHECK_LIB(devstat, getdevs, [with_libdevstat="yes"], [with_libdevstat="no"]) fi if test "x$with_libstatgrab" = "xyes" then collect_libstatgrab=1 else collect_libstatgrab=0 fi AC_DEFINE_UNQUOTED(COLLECT_LIBSTATGRAB, [$collect_libstatgrab], [Wether or not to use statgrab library]) AM_CONDITIONAL(BUILD_WITH_LIBSTATGRAB, test "x$with_libstatgrab" = "xyes") AM_CONDITIONAL(BUILD_WITH_LIBDEVSTAT, test "x$with_libdevstat" = "xyes") AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_libkvm="yes"], [with_libkvm="no"]) if test "x$with_libkvm" = "xyes" then AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the 'kvm' library (-lkvm)]) fi AM_CONDITIONAL(BUILD_WITH_LIBKVM, test "x$with_libkvm" = "xyes") with_sensors_cflags="" with_sensors_ldflags="" AC_ARG_WITH(lm-sensors, [AS_HELP_STRING([--with-lm-sensors@<:@=PREFIX@:>@], [Path to lm_sensors.])], [ if test "x$withval" = "xno" then with_lm_sensors="no" else with_lm_sensors="yes" if test "x$withval" != "xyes" then with_sensors_cflags="-I$withval/include" with_sensors_ldflags="-L$withval/lib" with_lm_sensors="yes" fi fi ], [ if test "x$ac_system" = "xLinux" then with_lm_sensors="yes" else with_lm_sensors="no (Linux only library)" fi ]) if test "x$with_lm_sensors" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $with_sensors_cflags" # AC_CHECK_HEADERS(sensors/sensors.h, # [ # AC_DEFINE(HAVE_SENSORS_SENSORS_H, 1, [Define to 1 if you have the header file.]) # ], # [with_lm_sensors="no (sensors/sensors.h not found)"]) AC_CHECK_HEADERS(sensors/sensors.h, [], [with_lm_sensors="no (sensors/sensors.h not found)"]) CPPFLAGS="$SAVE_CPPFLAGS" fi if test "x$with_lm_sensors" = "xyes" then SAVE_CPPFLAGS="$CPPFLAGS" SAVE_LDFLAGS="$LDFLAGS" CPPFLAGS="$CPPFLAGS $with_sensors_cflags" LDFLAGS="$LDFLAGS $with_sensors_ldflags" AC_CHECK_LIB(sensors, sensors_init, [ AC_DEFINE(HAVE_LIBSENSORS, 1, [Define to 1 if you have the sensors library (-lsensors).]) ], [with_lm_sensors="no (libsensors not found)"]) CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" fi if test "x$with_lm_sensors" = "xyes" then BUILD_WITH_LIBSENSORS_CFLAGS="$with_sensors_cflags" BUILD_WITH_LIBSENSORS_LDFLAGS="$with_sensors_ldflags" AC_SUBST(BUILD_WITH_LIBSENSORS_CFLAGS) AC_SUBST(BUILD_WITH_LIBSENSORS_LDFLAGS) fi AM_CONDITIONAL(BUILD_WITH_LM_SENSORS, test "x$with_lm_sensors" = "xyes") with_mysql_config="mysql_config" with_mysql_cflags="" with_mysql_libs="" AC_ARG_WITH(libmysql, [AS_HELP_STRING([--with-libmysql@<:@=PREFIX@:>@], [Path to libmysql.])], [ if test "x$withval" = "xno" then with_libmysql="no" else if test "x$withval" = "xyes" then with_libmysql="yes" else if test -f "$withval" && test -x "$withval"; then with_mysql_config="$withval" else if test -x "$withval/bin/mysql_config" then with_mysql_config="$withval/bin/mysql_config" fi; fi with_libmysql="yes" fi; fi ], [ with_libmysql="yes" ]) if test "x$with_libmysql" = "xyes" then with_mysql_cflags=`$with_mysql_config --cflags 2>/dev/null` mysql_config_status=$? if test $mysql_config_status -ne 0 then with_libmysql="no" else SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $with_mysql_cflags" AC_CHECK_HEADERS(mysql/mysql.h, [], [with_libmysql="no (mysql/mysql.h not found)"], []) CFLAGS="$SAVE_CFLAGS" fi fi if test "x$with_libmysql" = "xyes" then with_mysql_libs=`$with_mysql_config --libs 2>/dev/null` mysql_config_status=$? if test $mysql_config_status -ne 0 then with_libmysql="no" else AC_CHECK_LIB(mysqlclient, mysql_init, [with_libmysql="yes"], [with_libmysql="no (symbol 'mysql_init' not found)"], [$with_mysql_libs]) fi fi if test "x$with_libmysql" = "xyes" then BUILD_WITH_LIBMYSQL_CFLAGS="$with_mysql_cflags" BUILD_WITH_LIBMYSQL_LIBS="$with_mysql_libs" AC_SUBST(BUILD_WITH_LIBMYSQL_CFLAGS) AC_SUBST(BUILD_WITH_LIBMYSQL_LIBS) fi AM_CONDITIONAL(BUILD_WITH_LIBMYSQL, test "x$with_libmysql" = "xyes") with_own_liboconfig="no" liboconfig_LDFLAGS="$LDFLAGS" liboconfig_CPPFLAGS="$CPPFLAGS" AC_ARG_WITH(liboconfig, [AS_HELP_STRING([--with-liboconfig@<:@=PREFIX@:>@], [Path to liboconfig.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then if test -d "$withval/lib" then liboconfig_LDFLAGS="$LDFLAGS -L$withval/lib" fi if test -d "$withval/include" then liboconfig_CPPFLAGS="$CPPFLAGS -I$withval/include" fi fi if test "x$withval" = "xno" then AC_MSG_ERROR("liboconfig is required") fi ], [ with_liboconfig="yes" ]) save_LDFLAGS="$LDFLAGS" save_CPPFLAGS="$CPPFLAGS" LDFLAGS="$liboconfig_LDFLAGS" CPPFLAGS="$liboconfig_CPPFLAGS" AC_CHECK_LIB(oconfig, oconfig_parse_fh, [ with_liboconfig="yes" with_own_liboconfig="no" ], [ with_liboconfig="yes" with_own_liboconfig="yes" LDFLAGS="$save_LDFLAGS" CPPFLAGS="$save_CPPFLAGS" ]) AM_CONDITIONAL(BUILD_WITH_OWN_LIBOCONFIG, test "x$with_own_liboconfig" = "xyes") if test "x$with_own_liboconfig" = "xyes" then with_liboconfig="yes (shipped version)" fi #with_liboping="yes" with_own_liboping="no" liboping_LDFLAGS="$LDFLAGS" liboping_CPPFLAGS="$CPPFLAGS" AC_ARG_WITH(liboping, [AS_HELP_STRING([--with-liboping@<:@=PREFIX@:>@], [Path to liboping.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then if test -d "$withval/lib" then liboping_LDFLAGS="$LDFLAGS -L$withval/lib" fi if test -d "$withval/include" then liboping_CPPFLAGS="$CPPFLAGS -I$withval/include" fi fi if test "x$withval" = "xno" then with_liboping="no" with_own_liboping="no" else if test "x$withval" = "xyes" then with_liboping="yes" fi; fi ], [ with_liboping="yes" ]) 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" ]) fi AM_CONDITIONAL(BUILD_WITH_LIBOPING, test "x$with_liboping" = "xyes") AM_CONDITIONAL(BUILD_WITH_OWN_LIBOPING, test "x$with_own_liboping" = "xyes") AC_ARG_WITH(libpcap, [AS_HELP_STRING([--with-libpcap@<:@=PREFIX@:>@], [Path to libpcap.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libpcap="yes" else with_libpcap="$withval" fi ], [ with_libpcap="yes" ]) if test "x$with_libpcap" = "xyes" then AC_CHECK_LIB(pcap, pcap_open_live, [ AC_DEFINE(HAVE_LIBPCAP, 1, [Define to 1 if you have the pcap library (-lpcap).]) ], [with_libpcap="no (libpcap not found)"]) fi if test "x$with_libpcap" = "xyes" then AC_CHECK_HEADERS(pcap.h, [ AC_DEFINE(HAVE_PCAP_H, 1, [Define to 1 if you have the header file.]) ], [with_libpcap="no (pcap.h not found)"]) fi if test "x$with_libpcap" = "xyes" then collect_libpcap=1 else collect_libpcap=0 fi 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") 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" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" perl_interpreter="$withval/bin/perl" with_libperl="yes" else with_libperl="$withval" fi ], [ with_libperl="yes" ]) AC_SUBST(PERL, "$perl_interpreter") 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` CFLAGS="$CFLAGS $PERL_CFLAGS" LDFLAGS="$LDFLAGS $PERL_LDFLAGS" AC_CACHE_CHECK([for libperl], [have_libperl], AC_LINK_IFELSE( AC_LANG_PROGRAM( [[ #include #include #include ]], [[ PerlInterpreter *perl = NULL; Perl_load_module (perl, PERL_LOADMOD_NOIMPORT, newSVpv ("Collectd::Plugin::FooBar", 24), Nullsv); ]]), [have_libperl="yes"], [have_libperl="no"] ) ) if test "x$have_libperl" = "xyes" then AC_DEFINE(HAVE_LIBPERL, 1, [Define if libperl is present and usable.]) AC_SUBST(PERL_CFLAGS) AC_SUBST(PERL_LDFLAGS) else with_libperl="no" fi CFLAGS=$SAVE_CFLAGS LDFLAGS=$SAVE_LDFLAGS 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 AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then LDFLAGS="$LDFLAGS -L$withval/lib" CPPFLAGS="$CPPFLAGS -I$withval/include" with_libiptc="yes" else with_libiptc="$withval" fi ], [ if test "x$ac_system" = "xLinux" then with_libiptc="yes" else with_libiptc="no (Linux only)" fi ]) if test "x$with_libiptc" = "xyes" then AC_CHECK_LIB(iptc, iptc_init, [ AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).]) ], [with_libiptc="no (libiptc not found)"]) fi if test "x$with_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)"]) fi if test "x$with_libiptc" = "xyes" then collect_libiptc=1 else collect_libiptc=0 fi AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes") with_snmp_config="net-snmp-config" with_snmp_cflags="" with_snmp_libs="" AC_ARG_WITH(libnetsnmp, [AS_HELP_STRING([--with-libnetsnmp@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])], [ if test "x$withval" = "xno" then with_libnetsnmp="no" else if test "x$withval" = "xyes" then with_libnetsnmp="yes" else if test -x "$withval" then with_snmp_config="$withval" with_libnetsnmp="yes" else with_snmp_config="$withval/bin/net-snmp-config" with_libnetsnmp="yes" fi fi; fi ], [with_libnetsnmp="yes"]) if test "x$with_libnetsnmp" = "xyes" then with_snmp_cflags=`$with_snmp_config --cflags 2>/dev/null` snmp_config_status=$? if test $snmp_config_status -ne 0 then with_libnetsnmp="no ($with_snmp_config failed)" else SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $with_snmp_cflags" AC_CHECK_HEADERS(net-snmp/net-snmp-config.h, [], [with_libnetsnmp="no (net-snmp/net-snmp-config.h not found)"]) CFLAGS="$SAVE_CFLAGS" fi fi if test "x$with_libnetsnmp" = "xyes" then with_snmp_libs=`$with_snmp_config --libs 2>/dev/null` snmp_config_status=$? if test $snmp_config_status -ne 0 then with_libnetsnmp="no ($with_snmp_config failed)" else AC_CHECK_LIB(netsnmp, init_snmp, [with_libnetsnmp="yes"], [with_libnetsnmp="no (libnetsnmp not found)"], [$with_snmp_libs]) fi fi if test "x$with_libnetsnmp" = "xyes" then BUILD_WITH_LIBSNMP_CFLAGS="$with_snmp_cflags" BUILD_WITH_LIBSNMP_LIBS="$with_snmp_libs" AC_SUBST(BUILD_WITH_LIBSNMP_CFLAGS) AC_SUBST(BUILD_WITH_LIBSNMP_LIBS) fi AM_CONDITIONAL(BUILD_WITH_LIBNETSNMP, test "x$with_libnetsnmp" = "xyes") with_upsclient_config="libupsclient-config" with_upsclient_cflags="" with_upsclient_libs="" AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to libupsclient.])], [ if test "x$withval" = "xno" then with_libupsclient="no" else if test "x$withval" != "xyes" 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="yes" ]) if test "x$with_libupsclient" = "xyes" then with_upsclient_cflags=`$with_upsclient_config --cflags 2>/dev/null` upsclient_config_status=$? if test $upsclient_config_status -ne 0 then with_libupsclient="no ($with_upsclient_config failed)" fi fi if test "x$with_libupsclient" = "xyes" then SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $with_upsclient_cflags" AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"]) CFLAGS="$SAVE_CFLAGS" fi if test "x$with_libupsclient" = "xyes" then with_upsclient_libs=`$with_upsclient_config --libs 2>/dev/null` upsclient_config_status=$? 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]) fi if test "x$with_libupsclient" = "xyes" then AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [], [#include #include #include ]) fi AM_CONDITIONAL(BUILD_WITH_LIBUPSCLIENT, test "x$with_libupsclient" = "xyes") ### BEGIN of check for libxmms ### with_xmms_config="xmms-config" with_xmms_cflags="" with_xmms_libs="" AC_ARG_WITH(libxmms, [AS_HELP_STRING([--with-libxmms@<:@=PREFIX@:>@], [Path to libxmms.])], [ if test "x$withval" != "xno" -a "x$withval" != "xyes" then if test -f "$withval" && test -x "$withval"; then with_xmms_config="$withval" else if test -x "$withval/bin/xmms-config" then with_xmms_config="$withval/bin/xmms-config" fi; fi with_libxmms="yes" else if test "x$withval" = "xno" then with_libxmms="no" else with_libxmms="yes" fi; fi ], [ with_libxmms="yes" ]) if test "x$with_libxmms" = "xyes" then with_xmms_cflags=`$with_xmms_config --cflags 2>/dev/null` xmms_config_status=$? if test $xmms_config_status -ne 0 then with_libxmms="no" fi fi if test "x$with_libxmms" = "xyes" then with_xmms_libs=`$with_xmms_config --libs 2>/dev/null` xmms_config_status=$? if test $xmms_config_status -ne 0 then with_libxmms="no" fi fi if test "x$with_libxmms" = "xyes" then AC_CHECK_LIB(xmms, xmms_remote_get_info, [ BUILD_WITH_LIBXMMS_CFLAGS="$with_xmms_cflags" BUILD_WITH_LIBXMMS_LIBS="$with_xmms_libs" AC_SUBST(BUILD_WITH_LIBXMMS_CFLAGS) AC_SUBST(BUILD_WITH_LIBXMMS_LIBS) ], [ with_libxmms="no" ], [$with_xmms_libs]) fi with_libxmms_numeric=0 if test "x$with_libxmms" = "xyes" then with_libxmms_numeric=1 fi AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you have the 'xmms' library (-lxmms).]) AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes") ### END of check for libxmms ### with_libnetlink_cflags="" with_libnetlink_libs="-lnetlink" AC_ARG_WITH(libnetlink, [AS_HELP_STRING([--with-libnetlink@<:@=PREFIX@:>@], [Path to libnetlink.])], [ echo "libnetlink: withval = $withval" if test "x$withval" = "xyes" then with_libnetlink="yes" else if test "x$withval" = "xno" then with_libnetlink="no" else if test -d "$withval/include" then with_libnetlink_cflags="-I$withval/include" with_libnetlink_libs="-L$withval/lib -lnetlink" with_libnetlink="yes" else AC_MSG_ERROR("no such directory: $withval/include") fi fi; fi ], [ if test "x$ac_system" = "xLinux" then with_libnetlink="yes" else with_libnetlink="no (Linux only library)" fi ]) if test "x$with_libnetlink" = "xyes" then SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS $with_libnetlink_cflags" with_libnetlink="no (libnetlink.h not found)" AC_CHECK_HEADERS(libnetlink.h iproute/libnetlink.h linux/libnetlink.h, [ with_libnetlink="yes" break ], [], [#include #include #include #include #include #include ]) AC_CHECK_HEADERS(linux/gen_stats.h linux/pkt_sched.h, [], [], [#include #include #include #include ]) AC_COMPILE_IFELSE( [#include #include #include #include #include #include int main (void) { int retval = TCA_STATS2; return (retval); }], [AC_DEFINE([HAVE_TCA_STATS2], 1, [True if the enum-member TCA_STATS2 exists])] []); AC_COMPILE_IFELSE( [#include #include #include #include #include #include int main (void) { int retval = TCA_STATS; return (retval); }], [AC_DEFINE([HAVE_TCA_STATS], 1, [True if the enum-member TCA_STATS exists])] []); CFLAGS="$SAVE_CFLAGS" fi if test "x$with_libnetlink" = "xyes" then AC_CHECK_LIB(netlink, rtnl_open, [with_libnetlink="yes"], [with_libnetlink="no (symbol 'rtnl_open' not found)"], [$with_libnetlink_libs]) fi if test "x$with_libnetlink" = "xyes" then BUILD_WITH_LIBNETLINK_CFLAGS="$with_libnetlink_cflags" BUILD_WITH_LIBNETLINK_LIBS="$with_libnetlink_libs" AC_SUBST(BUILD_WITH_LIBNETLINK_CFLAGS) AC_SUBST(BUILD_WITH_LIBNETLINK_LIBS) fi AM_CONDITIONAL(BUILD_WITH_LIBNETLINK, test "x$with_libnetlink" = "xyes") 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="" PKG_PROG_PKG_CONFIG 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_LD_FLAGS="$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_LD_FLAGS="$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 # # AC_COLLECTD(name, enable/disable, info-text, feature/module) # ------------------------------------------------------------ dnl m4_define([my_toupper], [m4_translit([$1], m4_defn([m4_cr_letters]), m4_defn([m4_cr_LETTERS]))]) dnl AC_DEFUN( [AC_COLLECTD], [ m4_if([$1], [], [AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 1st argument must not be empty])])dnl m4_if( [$2], [enable], [dnl m4_define([EnDis],[disabled])dnl m4_define([YesNo],[no])dnl ],dnl [m4_if( [$2], [disable], [dnl m4_define([EnDis],[enabled])dnl m4_define([YesNo],[yes])dnl ], [dnl AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 2nd argument must be either enable or disable])dnl ]dnl )]dnl )dnl m4_if([$3], [feature], [], [m4_if( [$3], [module], [], [dnl AC_FATAL([AC_COLLECTD([$1], [$2], [$3], [$4]): 3rd argument must be either feature or disable])dnl ]dnl )]dnl )dnl AC_ARG_ENABLE( [$1], AS_HELP_STRING([--$2-$1], [$2 $4 (EnDis by def)]), [], enable_$1='[YesNo]'dnl )# AC_ARG_ENABLE if test "x$enable_$1" = "xno" then collectd_$1=0 else if test "x$enable_$1" = "xyes" then collectd_$1=1 else AC_MSG_NOTICE([please specify either --enable-$1 or --disable-$1; enabling $1.]) collectd_$1=1 enable_$1='yes' fi fi AC_DEFINE_UNQUOTED([COLLECT_]my_toupper([$1]), [$collectd_$1], [wether or not to enable $3 $4]) AM_CONDITIONAL([BUILD_]my_toupper([$3])[_]my_toupper([$1]), [test "x$enable_$1" = "xyes"])dnl ]dnl )# AC_COLLECTD(name, enable/disable, info-text, feature/module) # AC_PLUGIN(name, default, info) # ------------------------------------------------------------ dnl AC_DEFUN( [AC_PLUGIN], [ enable_plugin="no" AC_ARG_ENABLE([$1], AC_HELP_STRING([--enable-$1], [$3]), [ if test "x$enableval" = "xyes" then enable_plugin="yes" else enable_plugin="no" fi ], [ if test "x$2" = "xyes" then enable_plugin="yes" else enable_plugin="no" fi ]) if test "x$enable_plugin" = "xyes" then AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.]) fi AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes") enable_$1="$enable_plugin" ] )# AC_PLUGIN(name, default, info) m4_divert_once([HELP_ENABLE], [ collectd features:]) # FIXME: Remove these calls to `AC_COLLECTD' and then remove that macro. AC_COLLECTD([debug], [enable], [feature], [debugging]) AC_COLLECTD([daemon], [disable], [feature], [daemon mode]) AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux]) plugin_battery="no" plugin_cpu="no" plugin_cpufreq="no" plugin_df="no" plugin_disk="no" plugin_entropy="no" plugin_interface="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_users="no" plugin_vserver="no" plugin_wireless="no" # Linux if test "x$ac_system" = "xLinux" then plugin_battery="yes" plugin_cpu="yes" plugin_cpufreq="yes" plugin_disk="yes" plugin_entropy="yes" plugin_interface="yes" plugin_irq="yes" plugin_load="yes" plugin_memory="yes" plugin_nfs="yes" plugin_processes="yes" plugin_serial="yes" plugin_swap="yes" plugin_tcpconns="yes" plugin_vserver="yes" plugin_wireless="yes" if test "x$have_net_ip_vs_h" = "xyes" -o "x$have_ip_vs_h" = "xyes" then plugin_ipvs="yes" fi fi # Mac OS X devices if test "x$with_libiokit" = "xyes" then plugin_battery="yes" plugin_disk="yes" fi # Solaris if test "x$with_devinfo$with_kstat" = "xyesyes" then plugin_cpu="yes" plugin_disk="yes" plugin_interface="yes" plugin_memory="yes" plugin_swap="yes" plugin_tape="yes" fi # libstatgrab if test "x$with_libstatgrab" = "xyes" then plugin_interface="yes" plugin_load="yes" plugin_memory="yes" plugin_swap="yes" fi if test "x$have_processor_info" = "xyes" then plugin_cpu="yes" fi if test "x$have_sysctlbyname" = "xyes" then plugin_cpu="yes" plugin_memory="yes" plugin_tcpconns="yes" fi if test "x$have_statfs" = "xyes" then plugin_df="yes" fi if test "x$have_statvfs" = "xyes" then plugin_df="yes" fi if test "x$have_getifaddrs" = "xyes" 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 plugin_memory="yes" fi if test "x$have_termios_h" = "xyes" then plugin_multimeter="yes" fi if test "x$have_thread_info" = "xyes" then plugin_processes="yes" fi if test "x$with_libkvm" = "xyes" then plugin_swap="yes" fi if test "x$have_getutent" = "xyes" then plugin_users="yes" fi if test "x$have_getutxent" = "xyes" then plugin_users="yes" fi # FIXME: sysctl for swap plugin m4_divert_once([HELP_ENABLE], [ 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([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([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([hddtemp], [yes], [Query hddtempd]) AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics]) AC_PLUGIN([iptables], [$with_libiptc], [IPTables rule counters]) AC_PLUGIN([ipvs], [$plugin_ipvs], [IPVS connection statistics]) AC_PLUGIN([irq], [$plugin_irq], [IRQ statistics]) AC_PLUGIN([libvirt], [$plugin_libvirt], [Virtual machine statistics]) AC_PLUGIN([load], [$plugin_load], [System load]) AC_PLUGIN([logfile], [yes], [File logging plugin]) AC_PLUGIN([mbmon], [yes], [Query mbmond]) 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([netlink], [$with_libnetlink], [Enhanced Linux network statistics]) AC_PLUGIN([network], [yes], [Network communication plugin]) AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics]) AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics]) AC_PLUGIN([ntpd], [yes], [NTPd statistics]) AC_PLUGIN([nut], [$with_libupsclient], [Network UPS tools statistics]) AC_PLUGIN([perl], [$plugin_perl], [Embed a Perl interpreter]) AC_PLUGIN([ping], [$with_liboping], [Network latency statistics]) AC_PLUGIN([processes], [$plugin_processes], [Process statistics]) AC_PLUGIN([rrdtool], [$with_rrdtool], [RRDTool output plugin]) AC_PLUGIN([sensors], [$with_lm_sensors], [lm_sensors statistics]) AC_PLUGIN([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([tape], [$plugin_tape], [Tape drive statistics]) AC_PLUGIN([tcpconns], [$plugin_tcpconns], [TCP connection 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([vserver], [$plugin_vserver], [Linux VServer statistics]) AC_PLUGIN([wireless], [$plugin_wireless], [Wireless statistics]) AC_PLUGIN([xmms], [$with_libxmms], [XMMS statistics]) dnl ip_vs.h if test "x$ac_system" = "xLinux" -a "x$have_net_ip_vs_h$have_ip_vs_h" = "xnono" then enable_ipvs="$enable_ipvs (ip_vs.h not found)" fi dnl Perl bindings AC_ARG_WITH(perl-bindings, [AS_HELP_STRING([--with-perl-bindings@<:@=OPTIONS@:>@], [Options passed to "perl Makefile.PL".])], [ if test "x$withval" != "xno" && test "x$withval" != "xyes" then PERL_BINDINGS_OPTIONS="$withval" with_perl_bindings="yes" else PERL_BINDINGS_OPTIONS="" with_perl_bindings="$withval" fi ], [ PERL_BINDINGS_OPTIONS="" with_perl_bindings="yes" ]) if test "x$with_perl_bindings" = "xyes" then PERL_BINDINGS="perl" else PERL_BINDINGS="" 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) if test "x$with_rrdtool" = "xyes" -a "x$librrd_threadsafe" != "xyes" then with_rrdtool="yes (warning: librrd is not thread-safe)" fi if test "x$with_liboping" = "xyes" -a "x$with_own_liboping" = "xyes" then with_liboping="yes (shipped version)" fi if test "x$with_libperl" = "xyes" then with_libperl="yes (version `$perl_interpreter -MConfig -e 'print $Config{version};'`)" else enable_perl="no (needs libperl)" fi if test "x$with_perl_bindings" = "xyes" -a "x$PERL_BINDINGS_OPTIONS" != "x" then with_perl_bindings="yes ($PERL_BINDINGS_OPTIONS)" fi cat <