AC_SUBST(KERNEL_CFLAGS)
fi
+if test "x$ac_system" = "xSolaris"
+then
+ CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+fi
+
#
# Checks for header files.
#
])
# 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
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(
[[[[
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(
[[[[
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!])]
)
)
[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(
[[
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(
[[
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(
[[
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
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(
[[[[
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(
[[[[
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(
[[[[
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
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 <mntent.h>
#include "$srcdir/src/utils_mount.h"]],
[[
FILE *fh;
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 <sys/mnttab.h>
#include "$srcdir/src/utils_mount.h"]],
[[
FILE *fh;
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
# 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
#include <linux/netdevice.h>
])
+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 <kvm.h>
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#include <sys/user.h>
+ ])
+
+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 <sys/param.h>
+#include <sys/sysctl.h>
+#include <kvm.h>
+ ])
+
AC_CHECK_MEMBERS([struct udphdr.uh_dport, struct udphdr.uh_sport], [], [],
[#if HAVE_STDINT_H
# include <stdint.h>
fi
AM_CONDITIONAL(BUILD_WITH_LIBKVM_NLIST, test "x$with_kvm_nlist" = "xyes")
+AC_CHECK_LIB(kvm, kvm_openfiles, [with_kvm_openfiles="yes"], [with_kvm_openfiles="no"])
+if test "x$with_kvm_openfiles" = "xyes"
+then
+ AC_DEFINE(HAVE_LIBKVM_NLIST, 1,
+ [Define to 1 if you have the 'kvm' library with the 'kvm_openfiles' symbol (-lkvm)])
+ with_libkvm="yes"
+fi
+AM_CONDITIONAL(BUILD_WITH_LIBKVM_OPENFILES, test "x$with_kvm_openfiles" = "xyes")
+
with_sensors_cflags=""
with_sensors_ldflags=""
AC_ARG_WITH(lm-sensors, [AS_HELP_STRING([--with-lm-sensors@<:@=PREFIX@:>@], [Path to lm_sensors.])],
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(
[[
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)
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")
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(
[[
#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
[with_libnotify="yes"],
[with_libnotify="no ($LIBNOTIFY_PKG_ERRORS)"])
-with_libupsclient="no (pkg-config isn't available)"
+with_libupsclient_config=""
with_libupsclient_cflags=""
with_libupsclient_libs=""
-if test "x$PKG_CONFIG" != "x"
-then
- pkg-config --exists 'libupsclient' 2>/dev/null
- if test "$?" = "0"
+AC_ARG_WITH(libupsclient, [AS_HELP_STRING([--with-libupsclient@<:@=PREFIX@:>@], [Path to the Net-SNMPD library.])],
+[
+ if test "x$withval" = "xno"
then
- with_libupsclient="yes"
+ 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" = "xyes"
+if test "x$with_libupsclient" = "xuse_pkgconfig"
then
- with_libupsclient_cflags="`pkg-config --cflags 'libupsclient'`"
+ with_libupsclient_cflags="`$PKG_CONFIG --cflags 'libupsclient'`"
if test $? -ne 0
then
- with_libupsclient="no"
+ with_libupsclient="no ($PKG_CONFIG failed)"
fi
- with_libupsclient_libs="`pkg-config --libs 'libupsclient'`"
+ with_libupsclient_libs="`$PKG_CONFIG --libs 'libupsclient'`"
if test $? -ne 0
then
- with_libupsclient="no"
+ 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"
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_tcpconns="yes"
fi
-if test "x$have_statfs" = "xyes"
+# Df plugin: Check if we know how to determine mount points first.
+#if test "x$have_listmntent" = "xyes"; then
+# plugin_df="yes"
+#fi
+if test "x$have_getvfsstat" = "xyes" || test "x$have_getfsstat" = "xyes"
+then
+ plugin_df="yes"
+fi
+if test "x$c_cv_have_two_getmntent" = "xyes" || test "x$have_getmntent" = "xgen" || test "x$have_getmntent" = "xsun"
then
plugin_df="yes"
fi
-if test "x$have_statvfs" = "xyes"
+#if test "x$have_getmntent" = "xseq"
+#then
+# plugin_df="yes"
+#fi
+if test "x$c_cv_have_one_getmntent" = "xyes"
then
plugin_df="yes"
fi
+# Df plugin: Check if we have either `statfs' or `statvfs' second.
+if test "x$plugin_df" = "xyes"
+then
+ plugin_df="no"
+ if test "x$have_statfs" = "xyes"
+ then
+ plugin_df="yes"
+ fi
+ if test "x$have_statvfs" = "xyes"
+ then
+ plugin_df="yes"
+ fi
+fi
+
if test "x$have_getifaddrs" = "xyes"
then
plugin_interface="yes"
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
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
plugin_swap="yes"
fi
-if test "x$with_kvm_nlist" = "xyes"
+if test "x$with_kvm_openfiles$with_kvm_nlist" = "xyesyes"
then
plugin_tcpconns="yes"
fi