esac
AC_MSG_RESULT([$ac_system])
+if test "x$ac_system" = "xLinux"
+then
+ AC_ARG_VAR([KERNEL_DIR], [path to Linux kernel sources])
+ if test -z "$KERNEL_DIR"
+ then
+ KERNEL_DIR="/lib/modules/`uname -r`/source"
+ fi
+
+ KERNEL_CFLAGS="-I$KERNEL_DIR/include"
+ AC_SUBST(KERNEL_CFLAGS)
+fi
+
+if test "x$ac_system" = "xSolaris"
+then
+ CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+fi
+
#
# Checks for header files.
#
AC_HEADER_SYS_WAIT
AC_HEADER_DIRENT
-AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h)
+AC_CHECK_HEADERS(stdint.h stdio.h errno.h math.h stdarg.h syslog.h fcntl.h signal.h assert.h sys/types.h sys/socket.h sys/select.h poll.h netdb.h arpa/inet.h sys/resource.h sys/param.h kstat.h regex.h sys/ioctl.h endian.h sys/isa_defs.h)
# For ping library
AC_CHECK_HEADERS(netinet/in_systm.h, [], [],
])
# For the swap module
-AC_CHECK_HEADERS(sys/swap.h, [], [],
+have_sys_swap_h="yes"
+AC_CHECK_HEADERS(sys/swap.h, [], [have_sys_swap_h="no"],
[
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
])
+if test "x$have_sys_swap_h$ac_system" = "xnoSolaris"
+then
+ AC_MSG_NOTICE([Solaris detected and sys/swap.h not found: Try building a 64bit binary.])
+fi
+
# For load module
# For the processes plugin
# For users module
have_ip_vs_h="no"
if test "x$ac_system" = "xLinux"
then
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $KERNEL_CFLAGS"
+
AC_CHECK_HEADERS(net/ip_vs.h, [have_net_ip_vs_h="yes"])
AC_CHECK_HEADERS(ip_vs.h, [have_ip_vs_h="yes"])
+
+ CFLAGS=$SAVE_CFLAGS
fi
# For quota module
[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`"
fi
AC_ARG_WITH(libpthread, [AS_HELP_STRING([--with-libpthread=@<:@=PREFIX@:>@], [Path to libpthread.])],
-[ if test "x$withval" != "xno" -a "x$withval" != "xyes"
+[ if test "x$withval" != "xno" \
+ && test "x$withval" != "xyes"
then
LDFLAGS="$LDFLAGS -L$withval/lib"
CPPFLAGS="$CPPFLAGS -I$withval/include"
AC_SUBST(BUILD_WITH_LIBSTATGRAB_LDFLAGS)
fi
-AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_libkvm="yes"], [with_libkvm="no"])
-if test "x$with_libkvm" = "xyes"
+with_libkvm="no"
+AC_CHECK_LIB(kvm, kvm_getswapinfo, [with_kvm_getswapinfo="yes"], [with_kvm_getswapinfo="no"])
+if test "x$with_kvm_getswapinfo" = "xyes"
then
- AC_DEFINE(HAVE_LIBKVM, 1, [Define to 1 if you have the 'kvm' library (-lkvm)])
+ AC_DEFINE(HAVE_LIBKVM_GETSWAPINFO, 1,
+ [Define to 1 if you have the 'kvm' library with the 'kvm_getswapinfo' symbol (-lkvm)])
+ with_libkvm="yes"
fi
-AM_CONDITIONAL(BUILD_WITH_LIBKVM, test "x$with_libkvm" = "xyes")
+AM_CONDITIONAL(BUILD_WITH_LIBKVM_GETSWAPINFO, test "x$with_kvm_getswapinfo" = "xyes")
with_sensors_cflags=""
with_sensors_ldflags=""
if test $mysql_config_status -ne 0
then
- with_libmysql="no"
+ with_libmysql="no ($with_mysql_config failed)"
else
SAVE_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $with_mysql_cflags"
- AC_CHECK_HEADERS(mysql/mysql.h, [], [with_libmysql="no (mysql/mysql.h not found)"], [])
+ have_mysql_h="no"
+ have_mysql_mysql_h="no"
+ AC_CHECK_HEADERS(mysql.h, [have_mysql_h="yes"])
+
+ if test "x$have_mysql_h" = "xno"
+ then
+ AC_CHECK_HEADERS(mysql/mysql.h, [have_mysql_mysql_h="yes"])
+ fi
+
+ if test "x$have_mysql_h$have_mysql_mysql_h" = "xnono"
+ then
+ with_libmysql="no (mysql.h not found)"
+ fi
CPPFLAGS="$SAVE_CPPFLAGS"
fi
if test $mysql_config_status -ne 0
then
- with_libmysql="no"
+ with_libmysql="no ($with_mysql_config failed)"
else
AC_CHECK_LIB(mysqlclient, mysql_init,
[with_libmysql="yes"],
AC_SUBST(PERL, "$perl_interpreter")
-if test "x$with_libperl" = "xyes" -a -n "$perl_interpreter"
+if test "x$with_libperl" = "xyes" \
+ && test -n "$perl_interpreter"
then
SAVE_CFLAGS=$CFLAGS
SAVE_LDFLAGS=$LDFLAGS
LDFLAGS=$SAVE_LDFLAGS
fi
+with_own_libiptc="no"
AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
[
if test "x$withval" != "xno" && test "x$withval" != "xyes"
AC_CHECK_LIB(iptc, iptc_init,
[
AC_DEFINE(HAVE_LIBIPTC, 1, [Define to 1 if you have the iptc library (-liptc).])
- ], [with_libiptc="no (libiptc not found)"])
+ ],
+ [
+ with_libiptc="yes"
+ with_own_libiptc="yes"
+ ])
fi
-if test "x$with_libiptc" = "xyes"
+if test "x$with_libiptc" = "xyes" -a "x$with_own_libiptc" != "xyes"
then
AC_CHECK_HEADERS(libiptc/libiptc.h,
[
AC_DEFINE(HAVE_LIBIPTC_LIBIPTC_H, 1, [Define to 1 if you have the <libiptc/libiptc.h> header file.])
- ], [with_libiptc="no (libiptc/libiptc.h not found)"])
+ ],
+ [
+ with_libiptc="yes"
+ with_own_libiptc="yes"
+ ])
fi
if test "x$with_libiptc" = "xyes"
then
- collect_libiptc=1
-else
- collect_libiptc=0
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $KERNEL_CFLAGS"
+
+ AC_CHECK_HEADERS(linux/netfilter_ipv4/ip_tables.h linux/netfilter_ipv6/ip6_tables.h, [],
+ [
+ with_libiptc="no (Linux iptables headers not found - check KERNEL_DIR)"
+ with_own_libiptc="no"
+ ],
+ [
+#include "$srcdir/src/libiptc/ipt_kernel_headers.h"
+ ])
+
+ CFLAGS=$SAVE_CFLAGS
fi
AM_CONDITIONAL(BUILD_WITH_LIBIPTC, test "x$with_libiptc" = "xyes")
+AM_CONDITIONAL(BUILD_WITH_OWN_LIBIPTC, test "x$with_own_libiptc" = "xyes")
+if test "x$with_own_libiptc" = "xyes"
+then
+ AC_DEFINE(OWN_LIBIPTC, 1, [Define to 1 if we use the shipped iptc library.])
+fi
with_snmp_config="net-snmp-config"
with_snmp_cflags=""
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"
+with_libupsclient="no (pkg-config isn't available)"
+with_libupsclient_cflags=""
+with_libupsclient_libs=""
+if test "x$PKG_CONFIG" != "x"
+then
+ pkg-config --exists 'libupsclient' 2>/dev/null
+ if test "$?" = "0"
then
- 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"
+ else
+ with_libupsclient="no (pkg-config doesn't know library)"
fi
-],
-[
- with_libupsclient="yes"
-])
+fi
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
+ with_libupsclient_cflags="`pkg-config --cflags 'libupsclient'`"
+ if test $? -ne 0
+ then
+ with_libupsclient="no"
+ fi
+ with_libupsclient_libs="`pkg-config --libs 'libupsclient'`"
+ if test $? -ne 0
then
- with_libupsclient="no ($with_upsclient_config failed)"
+ with_libupsclient="no"
fi
fi
if test "x$with_libupsclient" = "xyes"
then
SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $with_upsclient_cflags"
+ CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
AC_CHECK_HEADERS(upsclient.h, [], [with_libupsclient="no (upsclient.h not found)"])
fi
if test "x$with_libupsclient" = "xyes"
then
- with_upsclient_libs=`$with_upsclient_config --libs 2>/dev/null`
- upsclient_config_status=$?
+ SAVE_CPPFLAGS="$CPPFLAGS"
+ SAVE_LDFLAGS="$LDFLAGS"
+
+ CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
+ LDFLAGS="$LDFLAGS $with_libupsclient_libs"
- if test $upsclient_config_status -ne 0
- then
- with_libupsclient="no ($with_upsclient_config failed)"
- fi
-fi
-if test "x$with_libupsclient" = "xyes"
-then
AC_CHECK_LIB(upsclient, upscli_connect,
- [
- BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_upsclient_cflags"
- BUILD_WITH_LIBUPSCLIENT_LIBS="$with_upsclient_libs"
- AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
- AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
- ],
- [
- with_libupsclient="no (symbol 'upscli_connect' not found)"
- ], [$with_upsclient_libs])
+ [with_libupsclient="yes"],
+ [with_libupsclient="no (symbol upscli_connect not found)"])
+
+ CPPFLAGS="$SAVE_CPPFLAGS"
+ LDFLAGS="$SAVE_LDFLAGS"
fi
if test "x$with_libupsclient" = "xyes"
then
SAVE_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $with_upsclient_cflags"
+ CPPFLAGS="$CPPFLAGS $with_libupsclient_cflags"
AC_CHECK_TYPES([UPSCONN_t, UPSCONN], [], [],
[#include <stdlib.h>
CPPFLAGS="$SAVE_CPPFLAGS"
fi
-AM_CONDITIONAL(BUILD_WITH_LIBUPSCLIENT, test "x$with_libupsclient" = "xyes")
+if test "x$with_libupsclient" = "xyes"
+then
+ BUILD_WITH_LIBUPSCLIENT_CFLAGS="$with_libupsclient_cflags"
+ BUILD_WITH_LIBUPSCLIENT_LIBS="$with_libupsclient_libs"
+ AC_SUBST(BUILD_WITH_LIBUPSCLIENT_CFLAGS)
+ AC_SUBST(BUILD_WITH_LIBUPSCLIENT_LIBS)
+fi
### BEGIN of check for libxmms ###
with_xmms_config="xmms-config"
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"
+ if test "x$withval" != "xno" \
+ && test "x$withval" != "xyes"
then
if test -f "$withval" && test -x "$withval";
then
])
if test "x$enable_plugin" = "xyes"
then
- AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.])
+ if test "x$2" = "xyes"
+ then
+ AC_DEFINE([HAVE_PLUGIN_]my_toupper([$1]), 1, [Define to 1 if the $1 plugin is enabled.])
+ else # User passed "yes" but dependency checking yielded "no" => Dependency problem.
+ dependency_error="yes"
+ enable_plugin="no (dependency error)"
+ fi
fi
AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes")
enable_$1="$enable_plugin"
AC_COLLECTD([daemon], [disable], [feature], [daemon mode])
AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux])
+dependency_error="no"
plugin_ascent="no"
plugin_battery="no"
plugin_cpu="no"
plugin_disk="yes"
plugin_interface="yes"
plugin_memory="yes"
- plugin_swap="yes"
plugin_tape="yes"
fi
+if test "x$have_sys_swap_h$with_kstat$ac_system" = "xyesyesSolaris"
+then
+ plugin_swap="yes"
+fi
+
# libstatgrab
if test "x$with_libstatgrab" = "xyes"
then
plugin_load="yes"
plugin_memory="yes"
plugin_swap="yes"
+ plugin_users="yes"
fi
if test "x$with_libcurl" = "xyes" && test "x$with_libxml2" = "xyes"
plugin_processes="yes"
fi
-if test "x$with_libkvm" = "xyes"
+if test "x$with_kvm_getswapinfo" = "xyes"
then
plugin_swap="yes"
fi
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"
+if test "x$ac_system" = "xLinux" \
+ && test "x$have_net_ip_vs_h$have_ip_vs_h" = "xnono"
then
enable_ipvs="$enable_ipvs (ip_vs.h not found)"
fi
AC_SUBST(PERL_BINDINGS)
AC_SUBST(PERL_BINDINGS_OPTIONS)
-AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile)
+AC_OUTPUT(Makefile src/Makefile src/collectd.conf src/libiptc/Makefile src/liboconfig/Makefile src/liboping/Makefile bindings/Makefile)
-if test "x$with_rrdtool" = "xyes" -a "x$librrd_threadsafe" != "xyes"
+if test "x$with_rrdtool" = "xyes" \
+ && test "x$librrd_threadsafe" != "xyes"
then
with_rrdtool="yes (warning: librrd is not thread-safe)"
fi
-if test "x$with_liboping" = "xyes" -a "x$with_own_liboping" = "xyes"
+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)"
+fi
+
if test "x$with_libperl" = "xyes"
then
with_libperl="yes (version `$perl_interpreter -MConfig -e 'print $Config{version};'`)"
enable_perl="no (needs libperl)"
fi
-if test "x$with_perl_bindings" = "xyes" -a "x$PERL_BINDINGS_OPTIONS" != "x"
+if test "x$with_perl_bindings" = "xyes" \
+ && test "x$PERL_BINDINGS_OPTIONS" != "x"
then
with_perl_bindings="yes ($PERL_BINDINGS_OPTIONS)"
fi
xmms . . . . . . . $enable_xmms
EOF
+
+if test "x$dependency_error" = "xyes"; then
+ AC_MSG_ERROR("Some plugins are missing dependencies - see above summary for details")
+fi