X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.in;h=9c1910ef49981d48585c56526dc14a55d55bf358;hb=bacc5b925ea8c63eb57dc4b55f4b4abbe1b1d07c;hp=3770910fe5a54c33ae2ea70b118bd4437d5bbc1b;hpb=33163ee3018711073cafd31b12bb497626d9aaa0;p=collectd.git diff --git a/configure.in b/configure.in index 3770910f..9c1910ef 100644 --- a/configure.in +++ b/configure.in @@ -2,6 +2,25 @@ 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) + +m4_ifdef([LT_PACKAGE_VERSION], + # libtool >= 2.2 + [ + LT_CONFIG_LTDL_DIR([libltdl]) + LT_INIT([dlopen]) + LTDL_INIT([convenience]) + ] +, + # libtool <= 1.5 + [ + AC_LIBLTDL_CONVENIENCE + AC_SUBST(LTDLINCL) + AC_SUBST(LIBLTDL) + AC_LIBTOOL_DLOPEN + AC_CONFIG_SUBDIRS(libltdl) + ] +) + AM_INIT_AUTOMAKE(dist-bzip2) AC_LANG(C) @@ -20,17 +39,11 @@ 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 PKG_PROG_PKG_CONFIG -AC_CONFIG_SUBDIRS(libltdl) AC_MSG_CHECKING([for kernel type ($host_os)]) case $host_os in @@ -94,8 +107,9 @@ AM_CONDITIONAL(BUILD_FEATURE_STANDARDS, test "x$enable_standards" = "xyes") AC_HEADER_STDC AC_HEADER_SYS_WAIT AC_HEADER_DIRENT +AC_HEADER_STDBOOL -AC_CHECK_HEADERS(stdio.h stdint.h stdbool.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 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) # For ping library AC_CHECK_HEADERS(netinet/in_systm.h, [], [], @@ -264,8 +278,10 @@ AC_CHECK_HEADERS(IOKit/ps/IOPowerSources.h, [], [], # For the swap module have_sys_swap_h="yes" -AC_CHECK_HEADERS(sys/swap.h, [], [have_sys_swap_h="no"], +AC_CHECK_HEADERS(sys/swap.h vm/anon.h, [], [have_sys_swap_h="no"], [ +#undef _FILE_OFFSET_BITS +#undef _LARGEFILE64_SOURCE #if HAVE_SYS_TYPES_H # include #endif @@ -276,7 +292,14 @@ AC_CHECK_HEADERS(sys/swap.h, [], [have_sys_swap_h="no"], 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.]) + hint_64="" + if test "x$GCC" = "xyes" + then + hint_64="CFLAGS='-m64'" + else + hint_64="CFLAGS='-xarch=v9'" + fi + AC_MSG_NOTICE([Solaris detected and sys/swap.h not usable. Try building a 64-bit binary ($hint_64 ./configure).]) fi # For load module @@ -813,7 +836,6 @@ if test "x$have_getmntent" = "xc"; then [c_cv_have_one_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT -#include #include "$srcdir/src/utils_mount.h"]], [[ FILE *fh; @@ -830,7 +852,6 @@ if test "x$have_getmntent" = "xc"; then [c_cv_have_two_getmntent], AC_COMPILE_IFELSE( AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT -#include #include "$srcdir/src/utils_mount.h"]], [[ FILE *fh; @@ -1383,6 +1404,10 @@ then AC_CHECK_LIB(gcrypt, gcry_md_hash_buffer, [with_libgcrypt="yes"], [with_libgcrypt="no (symbol gcry_md_hash_buffer not found)"]) + + if test "$with_libgcrypt" != "no"; then + AM_PATH_LIBGCRYPT(1:1.2.0,,with_libgcrypt="no (version 1.2.0+ required)") + fi fi CPPFLAGS="$SAVE_CPPFLAGS" @@ -1471,6 +1496,7 @@ with_java_home="$JAVA_HOME" with_java_vmtype="client" with_java_cflags="" with_java_libs="" +JAVAC="$JAVAC" AC_ARG_WITH(java, [AS_HELP_STRING([--with-java@<:@=PREFIX@:>@], [Path to Java home.])], [ if test "x$withval" = "xno" @@ -1490,7 +1516,7 @@ then if test -d "$with_java_home" then AC_MSG_CHECKING([for jni.h]) - TMPDIR=`find -L "$with_java_home" -name jni.h -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find -L "$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]) @@ -1500,7 +1526,7 @@ then fi AC_MSG_CHECKING([for jni_md.h]) - TMPDIR=`find -L "$with_java_home" -name jni_md.h -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find -L "$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]) @@ -1510,14 +1536,27 @@ then fi AC_MSG_CHECKING([for libjvm.so]) - TMPDIR=`find -L "$with_java_home" -name libjvm.so -exec 'dirname' '{}' ';' | head -n 1` + TMPDIR=`find -L "$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]) - JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPDIR" + JAVA_LDFLAGS="$JAVA_LDFLAGS -L$TMPDIR -Wl,-rpath -Wl,$TMPDIR" else AC_MSG_RESULT([not found]) fi + + if test "x$JAVAC" = "x" + then + AC_MSG_CHECKING([for javac]) + TMPDIR=`find -L "$with_java_home" -name javac -type f | head -n 1` + if test "x$TMPDIR" != "x" + then + JAVAC="$TMPDIR" + AC_MSG_RESULT([$JAVAC]) + 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]) @@ -1536,6 +1575,24 @@ if test "x$JAVA_LDFLAGS" != "x" then AC_MSG_NOTICE([Building with JAVA_LDFLAGS set to: $JAVA_LDFLAGS]) fi +if test "x$JAVAC" = "x" +then + with_javac_path="$PATH" + if test "x$with_java_home" != "x" + then + with_javac_path="$with_java_home:with_javac_path" + if test -d "$with_java_home/bin" + then + with_javac_path="$with_java_home/bin:with_javac_path" + fi + fi + + AC_PATH_PROG(JAVAC, javac, [], "$with_javac_path") +fi +if test "x$JAVAC" = "x" +then + with_java="no (javac not found)" +fi SAVE_CPPFLAGS="$CPPFLAGS" SAVE_CFLAGS="$CFLAGS" @@ -1691,6 +1748,11 @@ then [with_libmysql="yes"], [with_libmysql="no (symbol 'mysql_init' not found)"], [$with_mysql_libs]) + + AC_CHECK_LIB(mysqlclient, mysql_get_server_version, + [with_libmysql="yes"], + [with_libmysql="no (symbol 'mysql_get_server_version' not found)"], + [$with_mysql_libs]) fi fi if test "x$with_libmysql" = "xyes" @@ -2904,6 +2966,57 @@ AC_DEFINE_UNQUOTED(HAVE_LIBXMMS, [$with_libxmms_numeric], [Define to 1 if you ha AM_CONDITIONAL(BUILD_WITH_LIBXMMS, test "x$with_libxmms" = "xyes") # }}} +# --with-libyajl {{{ +with_libyajl_cppflags="" +with_libyajl_ldflags="" +AC_ARG_WITH(libyajl, [AS_HELP_STRING([--with-libyajl@<:@=PREFIX@:>@], [Path to libyajl.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + with_libyajl_cppflags="-I$withval/include" + with_libyajl_ldflags="-L$withval/lib" + with_libyajl="yes" + else + with_libyajl="$withval" + fi +], +[ + with_libyajl="yes" +]) +if test "x$with_libyajl" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags" + + AC_CHECK_HEADERS(yajl/yajl_parse.h, [with_libyajl="yes"], [with_libyajl="no (yajl/yajl_parse.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" +fi +if test "x$with_libyajl" = "xyes" +then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS $with_libyajl_cppflags" + LDFLAGS="$LDFLAGS $with_libyajl_ldflags" + + AC_CHECK_LIB(yajl, yajl_alloc, [with_libyajl="yes"], [with_libyajl="no (Symbol 'yajl_alloc' not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +if test "x$with_libyajl" = "xyes" +then + BUILD_WITH_LIBYAJL_CPPFLAGS="$with_libyajl_cppflags" + BUILD_WITH_LIBYAJL_LDFLAGS="$with_libyajl_ldflags" + BUILD_WITH_LIBYAJL_LIBS="-lyajl" + AC_SUBST(BUILD_WITH_LIBYAJL_CPPFLAGS) + AC_SUBST(BUILD_WITH_LIBYAJL_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBYAJL_LIBS) + AC_DEFINE(HAVE_LIBYAJL, 1, [Define if libyajl is present and usable.]) +fi +AM_CONDITIONAL(BUILD_WITH_LIBYAJL, test "x$with_libyajl" = "xyes") +# }}} + # pkg-config --exists 'libxml-2.0'; pkg-config --exists libvirt {{{ with_libxml2="no (pkg-config isn't available)" with_libxml2_cflags="" @@ -3176,28 +3289,42 @@ AC_DEFUN( [AC_PLUGIN], [ enable_plugin="no" + force="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" + else if test "x$enableval" = "xforce" then enable_plugin="yes" + force="yes" else enable_plugin="no" - fi + fi; fi + ], + [ + if test "x$enable_all_plugins" = "xauto" + then + if test "x$2" = "xyes" + then + enable_plugin="yes" + else + enable_plugin="no" + fi + else + enable_plugin="$enable_all_plugins" + fi ]) if test "x$enable_plugin" = "xyes" then - if test "x$2" = "xyes" + if test "x$2" = "xyes" || test "x$force" = "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 + dependency_warning="yes" + fi else # User passed "yes" but dependency checking yielded "no" => Dependency problem. dependency_error="yes" enable_plugin="no (dependency error)" @@ -3215,11 +3342,14 @@ AC_COLLECTD([debug], [enable], [feature], [debugging]) AC_COLLECTD([daemon], [disable], [feature], [daemon mode]) AC_COLLECTD([getifaddrs],[enable], [feature], [getifaddrs under Linux]) +dependency_warning="no" dependency_error="no" + plugin_ascent="no" plugin_battery="no" plugin_bind="no" plugin_conntrack="no" +plugin_couchdb="no" plugin_cpu="no" plugin_cpufreq="no" plugin_df="no" @@ -3337,6 +3467,11 @@ then plugin_ipmi="yes" fi +if test "x$with_libcurl" = "xyes" && test "x$with_libyajl" = "xyes" +then + plugin_couchdb="yes" +fi + if test "x$have_processor_info" = "xyes" then plugin_cpu="yes" @@ -3355,15 +3490,41 @@ 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$have_statvfs" = "xyes" +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_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" @@ -3433,6 +3594,24 @@ fi m4_divert_once([HELP_ENABLE], [ collectd plugins:]) +AC_ARG_ENABLE([all-plugins], + AC_HELP_STRING([--enable-all-plugins], + [enable all plugins (auto by def)]), + [ + if test "x$enableval" = "xyes" + then + enable_all_plugins="yes" + else if test "x$enableval" = "xauto" + then + enable_all_plugins="auto" + else + enable_all_plugins="no" + fi; fi + ], + [enable_all_plugins="auto"]) + +m4_divert_once([HELP_ENABLE], []) + 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]) @@ -3440,6 +3619,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([couchdb], [$plugin_couchdb], [CouchDB statistics]) AC_PLUGIN([cpufreq], [$plugin_cpufreq], [CPU frequency statistics]) AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics]) AC_PLUGIN([csv], [yes], [CSV output plugin]) @@ -3452,6 +3632,7 @@ AC_PLUGIN([email], [yes], [EMail statistics]) AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics]) AC_PLUGIN([exec], [yes], [Execution of external programs]) AC_PLUGIN([filecount], [yes], [Count files in directories]) +AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics]) AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin]) AC_PLUGIN([hddtemp], [yes], [Query hddtempd]) AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics]) @@ -3475,12 +3656,12 @@ AC_PLUGIN([mysql], [$with_libmysql], [MySQL statistics]) AC_PLUGIN([netlink], [$with_libnetlink], [Enhanced Linux network statistics]) AC_PLUGIN([network], [yes], [Network communication plugin]) AC_PLUGIN([nfs], [$plugin_nfs], [NFS statistics]) -AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics]) AC_PLUGIN([nginx], [$with_libcurl], [nginx statistics]) AC_PLUGIN([notify_desktop], [$with_libnotify], [Desktop notifications]) AC_PLUGIN([notify_email], [$with_libesmtp], [Email notifier]) AC_PLUGIN([ntpd], [yes], [NTPd statistics]) AC_PLUGIN([nut], [$with_libupsclient], [Network UPS tools statistics]) +AC_PLUGIN([olsrd], [yes], [olsrd statistics]) AC_PLUGIN([onewire], [$with_libowcapi], [OneWire sensor statistics]) AC_PLUGIN([openvpn], [yes], [OpenVPN client statistics]) AC_PLUGIN([oracle], [$with_oracle], [Oracle plugin]) @@ -3650,7 +3831,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) +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) if test "x$with_librrd" = "xyes" \ && test "x$librrd_threadsafe" != "xyes" @@ -3670,6 +3851,11 @@ else enable_perl="no (needs libperl)" fi +if test "x$enable_perl" = "xno" && test "x$c_cv_have_perl_ithreads" = "xno" +then + enable_perl="no (libperl doesn't support ithreads)" +fi + if test "x$with_perl_bindings" = "xyes" \ && test "x$PERL_BINDINGS_OPTIONS" != "x" then @@ -3683,12 +3869,14 @@ Configuration: libcurl . . . . . . . $with_libcurl libdbi . . . . . . . $with_libdbi libesmtp . . . . . . $with_libesmtp + libganglia . . . . . $with_libganglia libgcrypt . . . . . . $with_libgcrypt libiokit . . . . . . $with_libiokit libiptc . . . . . . . $with_libiptc libjvm . . . . . . . $with_java libkstat . . . . . . $with_kstat libkvm . . . . . . . $with_libkvm + libmemcached . . . . $with_libmemcached libmysql . . . . . . $with_libmysql libnetlink . . . . . $with_libnetlink libnetsnmp . . . . . $with_libnetsnmp @@ -3707,6 +3895,7 @@ Configuration: libvirt . . . . . . . $with_libvirt libxml2 . . . . . . . $with_libxml2 libxmms . . . . . . . $with_libxmms + libyajl . . . . . . . $with_libyajl oracle . . . . . . . $with_oracle Features: @@ -3724,6 +3913,7 @@ Configuration: battery . . . . . . . $enable_battery bind . . . . . . . . $enable_bind conntrack . . . . . . $enable_conntrack + couchdb . . . . . . . $enable_couchdb cpu . . . . . . . . . $enable_cpu cpufreq . . . . . . . $enable_cpufreq csv . . . . . . . . . $enable_csv @@ -3736,6 +3926,7 @@ Configuration: entropy . . . . . . . $enable_entropy exec . . . . . . . . $enable_exec filecount . . . . . . $enable_filecount + fscache . . . . . . . $enable_fscache gmond . . . . . . . . $enable_gmond hddtemp . . . . . . . $enable_hddtemp interface . . . . . . $enable_interface @@ -3759,12 +3950,12 @@ Configuration: netlink . . . . . . . $enable_netlink network . . . . . . . $enable_network nfs . . . . . . . . . $enable_nfs - fscache . . . . . . . $enable_fscache nginx . . . . . . . . $enable_nginx notify_desktop . . . $enable_notify_desktop notify_email . . . . $enable_notify_email ntpd . . . . . . . . $enable_ntpd nut . . . . . . . . . $enable_nut + olsrd . . . . . . . . $enable_olsrd onewire . . . . . . . $enable_onewire openvpn . . . . . . . $enable_openvpn oracle . . . . . . . $enable_oracle @@ -3803,7 +3994,11 @@ Configuration: EOF if test "x$dependency_error" = "xyes"; then - AC_MSG_ERROR("Some plugins are missing dependencies - see above summary for details") + AC_MSG_ERROR("Some plugins are missing dependencies - see the summary above for details") +fi + +if test "x$dependency_warning" = "xyes"; then + AC_MSG_WARN("Some plugins seem to have missing dependencies but have been enabled forcibly - see the summary above for details") fi # vim: set fdm=marker :