X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=configure.ac;h=cd38b7152ab466cead315350c66ef1f1ac47718e;hp=32b4d350e55e72cb16b26d7c601503cd261e3f03;hb=db35efb33e81d0a013e09a8a6ffa362ad5962f7c;hpb=32c0ce39f786c56e9d13f3615253a7ae55b578e6 diff --git a/configure.ac b/configure.ac index 32b4d350..cd38b715 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. AC_INIT([collectd],[m4_esyscmd(./version-gen.sh)]) -AC_CONFIG_SRCDIR(src/) +AC_CONFIG_SRCDIR(src/target_set.c) AC_CONFIG_HEADERS(src/config.h) AC_CONFIG_AUX_DIR([libltdl/config]) @@ -31,7 +31,7 @@ m4_ifdef([LT_PACKAGE_VERSION], AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"]) -AM_INIT_AUTOMAKE([tar-pax dist-bzip2 foreign]) +AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 foreign]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) AC_LANG(C) @@ -43,6 +43,7 @@ AC_SYS_LARGEFILE # Checks for programs. # AC_PROG_CC +AC_PROG_CXX AC_PROG_CPP AC_PROG_EGREP AC_PROG_INSTALL @@ -73,6 +74,25 @@ then AC_MSG_ERROR([bison is missing and you do not have ${srcdir}/src/liboconfig/parser.c. Please install bison]) fi +AC_PATH_PROG([PROTOC], [protoc]) +have_protoc3="no" +if test "x$PROTOC" != "x"; then + AC_MSG_CHECKING([for protoc 3.0.0+]) + if $PROTOC --version | grep -q libprotoc.3; then + protoc3="yes (`$PROTOC --version`)" + have_protoc3="yes" + else + protoc3="no (`$PROTOC --version`)" + fi + AC_MSG_RESULT([$protoc3]) +fi +AC_SUBST([PROTOC]) +AM_CONDITIONAL(HAVE_PROTOC3, test "x$have_protoc3" = "xyes") + +AC_PATH_PROG([GRPC_CPP_PLUGIN], [grpc_cpp_plugin]) +AC_SUBST([GRPC_CPP_PLUGIN]) +AM_CONDITIONAL(HAVE_GRPC_CPP, test "x$GRPC_CPP_PLUGIN" != "x") + AC_CHECK_PROG([have_protoc_c], [protoc-c], [yes], [no]) if test "x$have_protoc_c" = "xno" then @@ -779,6 +799,16 @@ AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr AC_FUNC_STRERROR_R +test_cxx_flags() { + AC_LANG_PUSH(C++) + AC_LANG_CONFTEST([int main(void){}]) + $CXX -c conftest.cpp $CXXFLAGS $@ > /dev/null 2> /dev/null + ret=$? + rm -f conftest.o + AC_LANG_POP(C++) + return $ret +} + SAVE_CFLAGS="$CFLAGS" # Emulate behavior of src/Makefile.am if test "x$GCC" = "xyes" @@ -2210,6 +2240,62 @@ AC_SUBST(GCRYPT_LIBS) AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes") # }}} +# --with-grpc {{{ +AC_ARG_WITH(grpc, [AS_HELP_STRING([--without-grpc], [Disable gRPC (default: autodetect).])], +[ + with_grpc="$withval" +], +[ + with_grpc="yes" +]) + +if test "x$with_grpc" = "xyes" +then + if test "x$have_protoc3" != "xyes" + then + with_grpc="no (requires protoc 3.0.0+)" + else if test "x$GRPC_CPP_PLUGIN" = "x" + then + with_grpc"no (requires grpc_cpp_plugin)" + fi; fi +fi + +if test "x$with_grpc" = "xyes" +then + AC_MSG_CHECKING([whether $CXX accepts -std=c++11]) + if test_cxx_flags -std=c++11; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + with_grpc="no (requires C++11 support)" + fi +fi + +if test "x$with_grpc" = "xyes" +then + AC_LANG_PUSH(C++) + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_CXXFLAGS="$CXXFLAGS" + CPPFLAGS="$CPPFLAGS -std=c++11" + CXXFLAGS="$CXXFLAGS -std=c++11" + AC_CHECK_HEADERS([grpc++/grpc++.h], [], + [with_grpc="no (grpc++/grpc++.h not found)"]) + CPPFLAGS="$SAVE_CPPFLAGS" + CXXFLAGS="$SAVE_CXXFLAGS" + AC_LANG_POP(C++) +fi +with_libgrpc="no" +if test "x$with_grpc" = "xyes" +then + AC_LANG_PUSH(C++) + AC_CHECK_LIB([grpc], [grpc_register_plugin], + [with_libgrpc="yes"], + [with_grpc="no (libgrpc not found)"], + [-lgpr -lprotobuf]) + AC_LANG_POP(C++) +fi +# }}} + # --with-libiptc {{{ AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])], [ @@ -4088,68 +4174,102 @@ 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="" librrd_ldflags="" -librrd_threadsafe="yes" +librrd_threadsafe="no" librrd_rrdc_update="no" -AC_ARG_WITH(librrd, [AS_HELP_STRING([--with-librrd@<:@=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_librrd="yes" - else - with_librrd="$withval" - fi -], [with_librrd="yes"]) +AC_ARG_WITH(librrd, + [AS_HELP_STRING([--with-librrd@<:@=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_librrd="yes" + else + with_librrd="$withval" + fi + ], + [with_librrd="yes"] +) + if test "x$with_librrd" = "xyes" then - SAVE_CPPFLAGS="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS $librrd_cflags" + SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $librrd_ldflags" + PKG_CHECK_MODULES([RRD], [librrd >= 1.6.0], + [ + AC_CHECK_LIB([rrd], [rrd_update_r], + [librrd_threadsafe="yes"], + [:] + ) + AC_CHECK_LIB([rrd], [rrdc_update], + [librrd_rrdc_update="yes"], + [:] + ) + ],[:] + ) + LDFLAGS="$SAVE_LDFLAGS" - AC_CHECK_HEADERS(rrd.h,, [with_librrd="no (rrd.h not found)"]) + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $RRD_CFLAGS $librrd_cflags" - CPPFLAGS="$SAVE_CPPFLAGS" + AC_CHECK_HEADERS([rrd.h],, [with_librrd="no (rrd.h not found)"]) + + CPPFLAGS="$SAVE_CPPFLAGS" fi -if test "x$with_librrd" = "xyes" + +if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno" then - SAVE_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $librrd_ldflags" + SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $librrd_ldflags" - AC_CHECK_LIB(rrd_th, rrd_update_r, - [with_librrd="yes" - librrd_ldflags="$librrd_ldflags -lrrd_th" - ], - [librrd_threadsafe="no" - AC_CHECK_LIB(rrd, rrd_update, - [with_librrd="yes" - librrd_ldflags="$librrd_ldflags -lrrd" - ], - [with_librrd="no (symbol 'rrd_update' not found)"] - ) - ] - ) + AC_CHECK_LIB([rrd_th], [rrd_update_r], + [ + librrd_ldflags="$librrd_ldflags -lrrd_th" + librrd_threadsafe="yes" + AC_CHECK_LIB([rrd_th], [rrdc_update], + [librrd_rrdc_update="yes"], + [:], + ) + ], + [:] + ) + LDFLAGS="$SAVE_LDFLAGS" +fi - if test "x$librrd_threadsafe" = "xyes" - then - AC_CHECK_LIB(rrd_th, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"]) - else - AC_CHECK_LIB(rrd, rrdc_update, [librrd_rrdc_update="yes"], [librrd_rrdc_update="no"]) - fi +if test "x$with_librrd" = "xyes" && test "x$librrd_threadsafe" = "xno" +then + SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $librrd_ldflags" - LDFLAGS="$SAVE_LDFLAGS" + AC_CHECK_LIB([rrd], [rrd_update], + [ + librrd_ldflags="$librrd_ldflags -lrrd" + AC_CHECK_LIB([rrd], [rrdc_update], + [librrd_rrdc_update="yes"], + [:] + ) + ], + [with_librrd="no (symbol 'rrd_update' not found)"] + ) + LDFLAGS="$SAVE_LDFLAGS" fi + if test "x$with_librrd" = "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) + BUILD_WITH_LIBRRD_CFLAGS="$RRD_CFLAGS $librrd_cflags" + BUILD_WITH_LIBRRD_LDFLAGS="$librrd_ldflags" + BUILD_WITH_LIBRRD_LIBS="$RRD_LIBS" + AC_SUBST(BUILD_WITH_LIBRRD_CFLAGS) + AC_SUBST(BUILD_WITH_LIBRRD_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBRRD_LIBS) 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).]) + AC_DEFINE([HAVE_THREADSAFE_LIBRRD], [1], + [Define to 1 if the rrd library is thread-safe] + ) fi # }}} @@ -4562,8 +4682,10 @@ if test "x$with_libudev" = "xyes" then BUILD_WITH_LIBUDEV_CFLAGS="$with_libudev_cflags" BUILD_WITH_LIBUDEV_LDFLAGS="$with_libudev_ldflags" + BUILD_WITH_LIBUDEV_LIBS="-ludev" AC_SUBST(BUILD_WITH_LIBUDEV_CFLAGS) AC_SUBST(BUILD_WITH_LIBUDEV_LDFLAGS) + AC_SUBST(BUILD_WITH_LIBUDEV_LIBS) fi AM_CONDITIONAL(BUILD_WITH_LIBUDEV, test "x$with_libudev" = "xyes") # }}} @@ -5263,9 +5385,9 @@ PKG_CHECK_MODULES([LIBNOTIFY], [libnotify], [with_libnotify="no (pkg-config doesn't know libnotify)"] ) -PKG_CHECK_MODULES([RIEMANN_C], [riemann-client >= 1.8.0], - [with_riemann_c="yes"], - [with_riemann_c="no (pkg-config doesn't know riemann-c-client)"]) +PKG_CHECK_MODULES([LIBRIEMANN_CLIENT], [riemann-client >= 1.8.0], + [with_libriemann_client="yes"], + [with_libriemann_client="no (pkg-config doesn't know libriemann-client)"]) # Check for enabled/disabled features # @@ -5358,7 +5480,7 @@ AC_DEFUN( then enable_plugin="yes" else - enable_plugin="no" + enable_plugin="$2" fi else enable_plugin="$enable_all_plugins" @@ -5375,7 +5497,7 @@ AC_DEFUN( fi else # User passed "yes" but dependency checking yielded "no" => Dependency problem. dependency_error="yes" - enable_plugin="no (dependency error)" + enable_plugin="$2 (dependency error)" fi fi AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes") @@ -5427,6 +5549,7 @@ plugin_perl="no" plugin_processes="no" plugin_protocols="no" plugin_serial="no" +plugin_smart="no" plugin_swap="no" plugin_tape="no" plugin_tcpconns="no" @@ -5737,6 +5860,11 @@ then plugin_processes="yes" fi +if test "x$with_libatasmart" = "xyes" && test "x$with_libudev" = "xyes" +then + plugin_smart="yes" +fi + if test "x$with_kvm_getswapinfo" = "xyes" then plugin_swap="yes" @@ -5829,6 +5957,7 @@ AC_PLUGIN([fhcount], [$plugin_fhcount], [File handles statis AC_PLUGIN([filecount], [yes], [Count files in directories]) AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics]) AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin]) +AC_PLUGIN([grpc], [$with_grpc], [gRPC plugin]) AC_PLUGIN([hddtemp], [yes], [Query hddtempd]) AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics]) AC_PLUGIN([ipc], [$plugin_ipc], [IPC statistics]) @@ -5891,7 +6020,7 @@ AC_PLUGIN([rrdtool], [$with_librrd], [RRDTool output plug AC_PLUGIN([sensors], [$with_libsensors], [lm_sensors statistics]) AC_PLUGIN([serial], [$plugin_serial], [serial port traffic]) AC_PLUGIN([sigrok], [$with_libsigrok], [sigrok acquisition sources]) -AC_PLUGIN([smart], [$with_libatasmart], [SMART statistics]) +AC_PLUGIN([smart], [$plugin_smart], [SMART statistics]) AC_PLUGIN([snmp], [$with_libnetsnmp], [SNMP querying plugin]) AC_PLUGIN([statsd], [yes], [StatsD plugin]) AC_PLUGIN([swap], [$plugin_swap], [Swap usage statistics]) @@ -5927,7 +6056,7 @@ AC_PLUGIN([write_kafka], [$with_librdkafka], [Kafka output plugin AC_PLUGIN([write_log], [yes], [Log output plugin]) AC_PLUGIN([write_mongodb], [$with_libmongoc], [MongoDB output plugin]) AC_PLUGIN([write_redis], [$with_libhiredis], [Redis output plugin]) -AC_PLUGIN([write_riemann], [$with_riemann_c], [Riemann output plugin]) +AC_PLUGIN([write_riemann], [$with_libriemann_client], [Riemann output plugin]) AC_PLUGIN([write_sensu], [yes], [Sensu output plugin]) AC_PLUGIN([write_tsdb], [yes], [TSDB output plugin]) AC_PLUGIN([xencpu], [$plugin_xencpu], [Xen Host CPU usage]) @@ -6086,13 +6215,16 @@ AC_SUBST(LCC_VERSION_STRING) AC_CONFIG_FILES(src/libcollectdclient/collectd/lcc_features.h) AM_CFLAGS="-Wall" +AM_CXXFLAGS="-Wall" if test "x$enable_werror" != "xno" then AM_CFLAGS="$AM_CFLAGS -Werror" + AM_CXXFLAGS="$AM_CFLAGS -Werror" fi AC_SUBST([AM_CFLAGS]) +AC_SUBST([AM_CXXFLAGS]) -AC_CONFIG_FILES([Makefile src/Makefile src/daemon/Makefile src/collectd.conf src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile]) +AC_CONFIG_FILES([Makefile proto/Makefile src/Makefile src/daemon/Makefile src/collectd.conf src/libcollectdclient/Makefile src/libcollectdclient/libcollectdclient.pc src/liboconfig/Makefile bindings/Makefile bindings/java/Makefile]) AC_OUTPUT if test "x$with_librrd" = "xyes" \ @@ -6126,10 +6258,13 @@ Configuration: Platform . . . . . . $ac_system CC . . . . . . . . . $CC CFLAGS . . . . . . . $AM_CFLAGS $CFLAGS + CXXFLAGS . . . . . . $AM_CXXFLAGS $CXXFLAGS CPP . . . . . . . . . $CPP CPPFLAGS . . . . . . $CPPFLAGS + GRPC_CPP_PLUGIN . . . $GRPC_CPP_PLUGIN LD . . . . . . . . . $LD LDFLAGS . . . . . . . $LDFLAGS + PROTOC . . . . . . . $PROTOC YACC . . . . . . . . $YACC YFLAGS . . . . . . . $YFLAGS @@ -6142,6 +6277,7 @@ Configuration: libesmtp . . . . . . $with_libesmtp libganglia . . . . . $with_libganglia libgcrypt . . . . . . $with_libgcrypt + libgrpc . . . . . . . $with_libgrpc libhal . . . . . . . $with_libhal libhiredis . . . . . $with_libhiredis libi2c-dev . . . . . $with_libi2c @@ -6171,6 +6307,7 @@ Configuration: libpq . . . . . . . . $with_libpq libpthread . . . . . $with_libpthread librabbitmq . . . . . $with_librabbitmq + libriemann-client . . $with_libriemann_client librdkafka . . . . . $with_librdkafka librouteros . . . . . $with_librouteros librrd . . . . . . . $with_librrd @@ -6188,8 +6325,8 @@ Configuration: libyajl . . . . . . . $with_libyajl oracle . . . . . . . $with_oracle protobuf-c . . . . . $have_protoc_c + protoc 3 . . . . . . $protoc3 python . . . . . . . $with_python - riemann-c-client . . $with_riemann_c Features: daemon mode . . . . . $enable_daemon @@ -6232,6 +6369,7 @@ Configuration: filecount . . . . . . $enable_filecount fscache . . . . . . . $enable_fscache gmond . . . . . . . . $enable_gmond + grpc . . . . . . . . $enable_grpc hddtemp . . . . . . . $enable_hddtemp interface . . . . . . $enable_interface ipc . . . . . . . . . $enable_ipc