X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=configure.ac;h=c661c562dc2df8fe04fc886dd65603a0bea1e0ad;hb=8a7ec0cfb7aaab52e53fbb21cdc887cee4cccd6d;hp=ea819ec036f622bee35c1c49a8e247627543f17d;hpb=eaf456a61d20fa69d211710bf6b3cd35b8ca55be;p=collectd.git diff --git a/configure.ac b/configure.ac index ea819ec0..c661c562 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ m4_ifdef([LT_PACKAGE_VERSION], AM_CONDITIONAL([BUILD_INCLUDED_LTDL], [test "x$LTDLDEPS" != "x"]) -AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 foreign]) +AM_INIT_AUTOMAKE([subdir-objects tar-pax dist-bzip2 no-dist-gzip 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 @@ -56,6 +57,8 @@ AC_PROG_LIBTOOL AC_PROG_LEX AC_PROG_YACC +AC_PATH_PROG([VALGRIND], [valgrind]) + # Warn when pkg.m4 is missing m4_pattern_forbid([^_?PKG_[A-Z_]+$],[*** pkg.m4 missing, please install pkg-config]) @@ -73,6 +76,23 @@ 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 +AM_CONDITIONAL(HAVE_PROTOC3, test "x$have_protoc3" = "xyes") + +AC_PATH_PROG([GRPC_CPP_PLUGIN], [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 @@ -129,12 +149,12 @@ case $host_os in esac AC_MSG_RESULT([$ac_system]) -AM_CONDITIONAL([BUILD_LINUX],[test "x$ac_system" = "xLinux"]) -AM_CONDITIONAL([BUILD_SOLARIS],[test "x$ac_system" = "xSolaris"]) -AM_CONDITIONAL([BUILD_DARWIN],[test "x$ac_system" = "xDarwin"]) -AM_CONDITIONAL([BUILD_OPENBSD],[test "x$ac_system" = "xOpenBSD"]) -AM_CONDITIONAL([BUILD_AIX],[test "x$ac_system" = "xAIX"]) -AM_CONDITIONAL([BUILD_FREEBSD],[test "x$ac_system" = "xFreeBSD"]) +AM_CONDITIONAL([BUILD_AIX], [test "x$ac_system" = "xAIX"]) +AM_CONDITIONAL([BUILD_DARWIN], [test "x$ac_system" = "xDarwin"]) +AM_CONDITIONAL([BUILD_FREEBSD], [test "x$ac_system" = "xFreeBSD"]) +AM_CONDITIONAL([BUILD_LINUX], [test "x$ac_system" = "xLinux"]) +AM_CONDITIONAL([BUILD_OPENBSD], [test "x$ac_system" = "xOpenBSD"]) +AM_CONDITIONAL([BUILD_SOLARIS], [test "x$ac_system" = "xSolaris"]) if test "x$ac_system" = "xLinux" then @@ -774,11 +794,22 @@ AC_HEADER_TIME # # Checks for library functions. # -AC_PROG_GCC_TRADITIONAL AC_CHECK_FUNCS(gettimeofday select strdup strtol getaddrinfo getnameinfo strchr memcpy strstr strcmp strncmp strncpy strlen strncasecmp strcasecmp openlog closelog sysconf setenv if_indextoname setlocale) AC_FUNC_STRERROR_R +test_cxx_flags() { + AC_LANG_PUSH([C++]) + AC_LANG_CONFTEST([ + AC_LANG_SOURCE([[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" @@ -1590,18 +1621,32 @@ AC_CHECK_LIB(resolv, res_search, AM_CONDITIONAL(BUILD_WITH_LIBRESOLV, test "x$with_libresolv" = "xyes") dnl Check for HAL (hardware abstraction library) -with_libhal="yes" -AC_CHECK_LIB(hal,libhal_device_property_exists, - [AC_DEFINE(HAVE_LIBHAL, 1, [Define to 1 if you have 'hal' library])], - [with_libhal="no"]) -if test "x$with_libhal" = "xyes"; then - if test "x$PKG_CONFIG" != "x"; then - BUILD_WITH_LIBHAL_CFLAGS="`$PKG_CONFIG --cflags hal`" - BUILD_WITH_LIBHAL_LIBS="`$PKG_CONFIG --libs hal`" - AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS) - AC_SUBST(BUILD_WITH_LIBHAL_LIBS) - fi -fi +with_libhal="no" +PKG_CHECK_MODULES([HAL], [hal], + [ + SAVE_LIBS="$LIBS" + LIBS="$HAL_LIBS $LIBS" + AC_CHECK_LIB([hal], [libhal_device_property_exists], + [ + SAVE_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$HAL_CFLAGS $CPPFLAGS" + AC_CHECK_HEADERS([libhal.h], + [ + with_libhal="yes" + BUILD_WITH_LIBHAL_CFLAGS="$HAL_CFLAGS" + BUILD_WITH_LIBHAL_LIBS="$HAL_LIBS" + ]) + CPPFLAGS="$SAVE_CPPFLAGS" + ], + [ : ] + ) + LIBS="$SAVE_LIBS" + ], + [ : ] +) +AC_SUBST(BUILD_WITH_LIBHAL_CFLAGS) +AC_SUBST(BUILD_WITH_LIBHAL_LIBS) + SAVE_LIBS="$LIBS" AC_CHECK_LIB([pthread], @@ -1917,6 +1962,36 @@ then fi if test "x$with_libcurl" = "xyes" then + SAVE_CPPFLAGS="$CPPFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + CPPFLAGS="$CPPFLAGS $with_curl_cflags" + LDFLAGS="$LDFLAGS $with_curl_libs" + AC_CACHE_CHECK([for CURLINFO_APPCONNECT_TIME], + [c_cv_have_curlinfo_appconnect_time], + AC_LINK_IFELSE([AC_LANG_PROGRAM( +[[ +#include +]], +[[ +int val = CURLINFO_APPCONNECT_TIME; +return val; +]] + )], + [c_cv_have_curlinfo_appconnect_time="yes"], + [c_cv_have_curlinfo_appconnect_time="no"] + ) + ) + CPPFLAGS="$SAVE_CPPFLAGS" + LDFLAGS="$SAVE_LDFLAGS" +fi +AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes") +if test "x$c_cv_have_curlinfo_appconnect_time" = "xyes" +then + AC_DEFINE(HAVE_CURLINFO_APPCONNECT_TIME, 1, [Define if curl.h defines CURLINFO_APPCONNECT_TIME.]) +fi + +if test "x$with_libcurl" = "xyes" +then BUILD_WITH_LIBCURL_CFLAGS="$with_curl_cflags" BUILD_WITH_LIBCURL_LIBS="$with_curl_libs" AC_SUBST(BUILD_WITH_LIBCURL_CFLAGS) @@ -1932,7 +2007,6 @@ then AC_DEFINE(HAVE_CURLOPT_TIMEOUT_MS, 1, [Define if libcurl supports CURLOPT_TIMEOUT_MS option.]) fi fi -AM_CONDITIONAL(BUILD_WITH_LIBCURL, test "x$with_libcurl" = "xyes") # }}} # --with-libdbi {{{ @@ -2186,6 +2260,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.])], [ @@ -2281,6 +2411,69 @@ then fi # }}} +# --with-libdpdk {{{ +AC_ARG_WITH(libdpdk, [AS_HELP_STRING([--with-libdpdk@<:@=PREFIX@:>@], [Path to the DPDK build directory.])], +[ + if test "x$withval" != "xno" && test "x$withval" != "xyes" + then + with_dpdk_path="$withval" + with_dpdk="yes" + else + if test "x$withval" = "xno" + then + with_dpdk="no (disabled)" + fi + fi +], [with_dpdk="yes"]) + +if test "x$with_dpdk" = "xyes" +then + RTE_BUILD="$with_dpdk_path" + DPDK_INCLUDE="$RTE_BUILD/include/dpdk" + DPDK_LIB_DIR="$RTE_BUILD/lib" + DPDK_LIB="-ldpdk" + DPDK_EXTRA_LIB="-ldl -lpthread -lrt -lm" + + SAVE_CFLAGS="$CFLAGS" + SAVE_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR" + CFLAGS="$CFLAGS -I$DPDK_INCLUDE -fpic" + FOUND_DPDK=false + SAVE_LIBS="$LIBS" + LIBS="$LIBS $DPDK_LIB $DPDK_EXTRA_LIB" + AC_CHECK_LIB(dpdk, rte_eal_init, + [with_libdpdk="yes"], + [with_libdpdk="DPDK not found"]) + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( +[[ +#include +#include +]], +[[ +int rte_argc; +char ** rte_argv; +rte_eal_init(rte_argc, rte_argv); +]] + )], + [FOUND_DPDK=true]) + if $FOUND_DPDK; then :; else + AC_MSG_ERROR([cannot link with dpdk]) + fi + DPDK_LDFLAGS="-ldpdk" + CFLAGS="$SAVE_CFLAGS" + LDFLAGS="$SAVE_LDFLAGS" + LIBS="$SAVE_LIBS" + BUILD_WITH_DPDK_CFLAGS="-I$DPDK_INCLUDE -fPIC" + BUILD_WITH_DPDK_LDFLAGS="-L$DPDK_LIB_DIR" + BUILD_WITH_DPDK_LIBS="$DPDK_LDFLAGS -ldl -lpthread -lrt -lm" + AC_SUBST(BUILD_WITH_DPDK_CFLAGS) + AC_SUBST(BUILD_WITH_DPDK_LDFLAGS) + AC_SUBST(BUILD_WITH_DPDK_LIBS) + AC_DEFINE_UNQUOTED(DPDK, [1], [System uses DPDK.]) +fi +# }}} + # --with-java {{{ with_java_home="$JAVA_HOME" if test "x$with_java_home" = "x" @@ -3342,9 +3535,9 @@ then fi if test "x$with_oracle" = "xyes" then - BUILD_WITH_ORACLE_CFLAGS="$with_oracle_cppflags" + BUILD_WITH_ORACLE_CPPFLAGS="$with_oracle_cppflags" BUILD_WITH_ORACLE_LIBS="$with_oracle_libs" - AC_SUBST(BUILD_WITH_ORACLE_CFLAGS) + AC_SUBST(BUILD_WITH_ORACLE_CPPFLAGS) AC_SUBST(BUILD_WITH_ORACLE_LIBS) fi # }}} @@ -4751,7 +4944,12 @@ then CPPFLAGS="$SAVE_CPPFLAGS" LDFLAGS="$SAVE_LDFLAGS" + LIBXENCTL_CPPFLAGS="$with_libxenctl_cppflags" + LIBXENCTL_LDFLAGS="$with_libxenctl_ldflags" + AC_SUBST(LIBXENCTL_CPPFLAGS) + AC_SUBST(LIBXENCTL_LDFLAGS) fi +# }}} # --with-libxmms {{{ with_xmms_config="xmms-config" @@ -5370,7 +5568,7 @@ AC_DEFUN( then enable_plugin="yes" else - enable_plugin="no" + enable_plugin="$2" fi else enable_plugin="$enable_all_plugins" @@ -5387,7 +5585,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") @@ -5421,6 +5619,7 @@ plugin_curl_xml="no" plugin_df="no" plugin_disk="no" plugin_drbd="no" +plugin_dpdk="no" plugin_entropy="no" plugin_ethstat="no" plugin_fhcount="no" @@ -5826,6 +6025,7 @@ AC_PLUGIN([battery], [$plugin_battery], [Battery statistics] AC_PLUGIN([bind], [$plugin_bind], [ISC Bind nameserver statistics]) AC_PLUGIN([ceph], [$plugin_ceph], [Ceph daemon statistics]) AC_PLUGIN([cgroups], [$plugin_cgroups], [CGroups CPU usage accounting]) +AC_PLUGIN([chrony], [yes], [Chrony statistics]) AC_PLUGIN([conntrack], [$plugin_conntrack], [nf_conntrack statistics]) AC_PLUGIN([contextswitch], [$plugin_contextswitch], [context switch statistics]) AC_PLUGIN([cpu], [$plugin_cpu], [CPU usage statistics]) @@ -5838,6 +6038,7 @@ AC_PLUGIN([dbi], [$with_libdbi], [General database st AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics]) AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics]) AC_PLUGIN([dns], [$with_libpcap], [DNS traffic analysis]) +AC_PLUGIN([dpdkstat], [$with_libdpdk], [Stats & Status from DPDK]) AC_PLUGIN([drbd], [$plugin_drbd], [DRBD statistics]) AC_PLUGIN([email], [yes], [EMail statistics]) AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics]) @@ -5847,6 +6048,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]) @@ -6104,13 +6306,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_CXXFLAGS -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" \ @@ -6137,225 +6342,232 @@ then with_perl_bindings="yes ($PERL_BINDINGS_OPTIONS)" fi -cat <