diff --git a/configure.ac b/configure.ac
index 1fcab1c87ea3f8bf32c7846a9bc2ec3cf64f140a..cd38b7152ab466cead315350c66ef1f1ac47718e 100644 (file)
--- a/configure.ac
+++ b/configure.ac
AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"])
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)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_LANG(C)
# Checks for programs.
#
AC_PROG_CC
# Checks for programs.
#
AC_PROG_CC
+AC_PROG_CXX
AC_PROG_CPP
AC_PROG_EGREP
AC_PROG_INSTALL
AC_PROG_CPP
AC_PROG_EGREP
AC_PROG_INSTALL
AC_MSG_ERROR([bison is missing and you do not have ${srcdir}/src/liboconfig/parser.c. Please install bison])
fi
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
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
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"
SAVE_CFLAGS="$CFLAGS"
# Emulate behavior of src/Makefile.am
if test "x$GCC" = "xyes"
AM_CONDITIONAL(BUILD_WITH_LIBGCRYPT, test "x$with_libgcrypt" = "xyes")
# }}}
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.])],
[
# --with-libiptc {{{
AC_ARG_WITH(libiptc, [AS_HELP_STRING([--with-libiptc@<:@=PREFIX@:>@], [Path to libiptc.])],
[
then
BUILD_WITH_LIBUDEV_CFLAGS="$with_libudev_cflags"
BUILD_WITH_LIBUDEV_LDFLAGS="$with_libudev_ldflags"
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_CFLAGS)
AC_SUBST(BUILD_WITH_LIBUDEV_LDFLAGS)
+ AC_SUBST(BUILD_WITH_LIBUDEV_LIBS)
fi
AM_CONDITIONAL(BUILD_WITH_LIBUDEV, test "x$with_libudev" = "xyes")
# }}}
fi
AM_CONDITIONAL(BUILD_WITH_LIBUDEV, test "x$with_libudev" = "xyes")
# }}}
[with_libnotify="no (pkg-config doesn't know 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
#
# Check for enabled/disabled features
#
then
enable_plugin="yes"
else
then
enable_plugin="yes"
else
- enable_plugin="no"
+ enable_plugin="$2"
fi
else
enable_plugin="$enable_all_plugins"
fi
else
enable_plugin="$enable_all_plugins"
fi
else # User passed "yes" but dependency checking yielded "no" => Dependency problem.
dependency_error="yes"
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")
fi
fi
AM_CONDITIONAL([BUILD_PLUGIN_]my_toupper([$1]), test "x$enable_plugin" = "xyes")
plugin_processes="no"
plugin_protocols="no"
plugin_serial="no"
plugin_processes="no"
plugin_protocols="no"
plugin_serial="no"
+plugin_smart="no"
plugin_swap="no"
plugin_tape="no"
plugin_tcpconns="no"
plugin_swap="no"
plugin_tape="no"
plugin_tcpconns="no"
plugin_processes="yes"
fi
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"
if test "x$with_kvm_getswapinfo" = "xyes"
then
plugin_swap="yes"
AC_PLUGIN([filecount], [yes], [Count files in directories])
AC_PLUGIN([fscache], [$plugin_fscache], [fscache statistics])
AC_PLUGIN([gmond], [$with_libganglia], [Ganglia plugin])
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])
AC_PLUGIN([hddtemp], [yes], [Query hddtempd])
AC_PLUGIN([interface], [$plugin_interface], [Interface traffic statistics])
AC_PLUGIN([ipc], [$plugin_ipc], [IPC statistics])
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([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])
AC_PLUGIN([snmp], [$with_libnetsnmp], [SNMP querying plugin])
AC_PLUGIN([statsd], [yes], [StatsD plugin])
AC_PLUGIN([swap], [$plugin_swap], [Swap usage statistics])
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_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])
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])
AC_CONFIG_FILES(src/libcollectdclient/collectd/lcc_features.h)
AM_CFLAGS="-Wall"
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"
if test "x$enable_werror" != "xno"
then
AM_CFLAGS="$AM_CFLAGS -Werror"
+ AM_CXXFLAGS="$AM_CFLAGS -Werror"
fi
AC_SUBST([AM_CFLAGS])
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" \
AC_OUTPUT
if test "x$with_librrd" = "xyes" \
Platform . . . . . . $ac_system
CC . . . . . . . . . $CC
CFLAGS . . . . . . . $AM_CFLAGS $CFLAGS
Platform . . . . . . $ac_system
CC . . . . . . . . . $CC
CFLAGS . . . . . . . $AM_CFLAGS $CFLAGS
+ CXXFLAGS . . . . . . $AM_CXXFLAGS $CXXFLAGS
CPP . . . . . . . . . $CPP
CPPFLAGS . . . . . . $CPPFLAGS
CPP . . . . . . . . . $CPP
CPPFLAGS . . . . . . $CPPFLAGS
+ GRPC_CPP_PLUGIN . . . $GRPC_CPP_PLUGIN
LD . . . . . . . . . $LD
LDFLAGS . . . . . . . $LDFLAGS
LD . . . . . . . . . $LD
LDFLAGS . . . . . . . $LDFLAGS
+ PROTOC . . . . . . . $PROTOC
YACC . . . . . . . . $YACC
YFLAGS . . . . . . . $YFLAGS
YACC . . . . . . . . $YACC
YFLAGS . . . . . . . $YFLAGS
libesmtp . . . . . . $with_libesmtp
libganglia . . . . . $with_libganglia
libgcrypt . . . . . . $with_libgcrypt
libesmtp . . . . . . $with_libesmtp
libganglia . . . . . $with_libganglia
libgcrypt . . . . . . $with_libgcrypt
+ libgrpc . . . . . . . $with_libgrpc
libhal . . . . . . . $with_libhal
libhiredis . . . . . $with_libhiredis
libi2c-dev . . . . . $with_libi2c
libhal . . . . . . . $with_libhal
libhiredis . . . . . $with_libhiredis
libi2c-dev . . . . . $with_libi2c
libpq . . . . . . . . $with_libpq
libpthread . . . . . $with_libpthread
librabbitmq . . . . . $with_librabbitmq
libpq . . . . . . . . $with_libpq
libpthread . . . . . $with_libpthread
librabbitmq . . . . . $with_librabbitmq
+ libriemann-client . . $with_libriemann_client
librdkafka . . . . . $with_librdkafka
librouteros . . . . . $with_librouteros
librrd . . . . . . . $with_librrd
librdkafka . . . . . $with_librdkafka
librouteros . . . . . $with_librouteros
librrd . . . . . . . $with_librrd
libyajl . . . . . . . $with_libyajl
oracle . . . . . . . $with_oracle
protobuf-c . . . . . $have_protoc_c
libyajl . . . . . . . $with_libyajl
oracle . . . . . . . $with_oracle
protobuf-c . . . . . $have_protoc_c
+ protoc 3 . . . . . . $protoc3
python . . . . . . . $with_python
python . . . . . . . $with_python
- riemann-c-client . . $with_riemann_c
Features:
daemon mode . . . . . $enable_daemon
Features:
daemon mode . . . . . $enable_daemon
filecount . . . . . . $enable_filecount
fscache . . . . . . . $enable_fscache
gmond . . . . . . . . $enable_gmond
filecount . . . . . . $enable_filecount
fscache . . . . . . . $enable_fscache
gmond . . . . . . . . $enable_gmond
+ grpc . . . . . . . . $enable_grpc
hddtemp . . . . . . . $enable_hddtemp
interface . . . . . . $enable_interface
ipc . . . . . . . . . $enable_ipc
hddtemp . . . . . . . $enable_hddtemp
interface . . . . . . $enable_interface
ipc . . . . . . . . . $enable_ipc