diff options
Diffstat (limited to '')
-rw-r--r-- | configure.ac | 274 |
1 files changed, 224 insertions, 50 deletions
diff --git a/configure.ac b/configure.ac index 5db1b9f2..8f1e4115 100644 --- a/configure.ac +++ b/configure.ac @@ -54,6 +54,8 @@ else AC_CHECK_TOOL([AR], [ar]) fi +CFLAGS="$CFLAGS -fexceptions" + # ----------------------------------------------------------------------------- # configurable options @@ -76,6 +78,18 @@ AC_ARG_ENABLE( [enable_plugin_systemd_journal="detect"] ) AC_ARG_ENABLE( + [logsmanagement], + [AS_HELP_STRING([--disable-logsmanagement], [Disable logsmanagement @<:@default autodetect@:>@])], + , + [enable_logsmanagement="detect"] +) +AC_ARG_ENABLE( + [logsmanagement_tests], + [AS_HELP_STRING([--enable-logsmanagement-tests], [Enable logsmanagement tests @<:@default disabled@:>@])], + , + [enable_logsmanagement_tests="no"] +) +AC_ARG_ENABLE( [plugin-cups], [AS_HELP_STRING([--enable-plugin-cups], [enable cups plugin @<:@default autodetect@:>@])], , @@ -208,6 +222,12 @@ AC_ARG_ENABLE( [enable_ml="detect"] ) AC_ARG_ENABLE( + [gtests], + [AS_HELP_STRING([--enable-gtests], [Enable google tests @<:@default no@:>@])], + , + [enable_gtests="no"] +) +AC_ARG_ENABLE( [aclk_ssl_debug], [AS_HELP_STRING([--enable-aclk-ssl-debug], [Enables possibility for SSL key logging @<:@default no@:>@])], [aclk_ssl_debug="yes"], @@ -555,17 +575,92 @@ OPTIONAL_UV_LIBS="${UV_LIBS}" AC_CHECK_LIB( [lz4], - [LZ4_initStream], + [LZ4_createStream], [LZ4_LIBS_FAST="-llz4"] ) AC_CHECK_LIB( [lz4], - [LZ4_compress_default], + [LZ4_compress_fast_continue], [LZ4_LIBS="-llz4"] ) # ----------------------------------------------------------------------------- +# libcurl + +PKG_CHECK_MODULES( + [LIBCURL], + [libcurl], + [AC_CHECK_LIB( + [curl], + [curl_easy_init], + [have_libcurl=yes], + [have_libcurl=no] + )], + [have_libcurl=no] +) + +if test "x$have_libcurl" = "xyes"; then + AC_DEFINE([HAVE_CURL], [1], [libcurl usability]) + OPTIONAL_CURL_LIBS="-lcurl" +fi + +# ----------------------------------------------------------------------------- +# PCRE2 + +PKG_CHECK_MODULES( + [LIBPCRE2], + [libpcre2-8], + [AC_CHECK_LIB( + [pcre2-8], + [pcre2_compile_8], + [have_libpcre2=yes], + [have_libpcre2=no] + )], + [have_libpcre2=no] +) + +if test "x$have_libpcre2" = "xyes"; then + AC_DEFINE([HAVE_PCRE2], [1], [PCRE2 usability]) + OPTIONAL_PCRE2_LIBS="-lpcre2-8" +fi + +AM_CONDITIONAL([ENABLE_LOG2JOURNAL], [test "${have_libpcre2}" = "yes"]) + +# ----------------------------------------------------------------------------- +# zstd + +AC_CHECK_LIB([zstd], [ZSTD_createCStream, ZSTD_createDStream], + [LIBZSTD_FOUND=yes], + [LIBZSTD_FOUND=no]) + +if test "x$LIBZSTD_FOUND" = "xyes"; then + AC_DEFINE([ENABLE_ZSTD], [1], [libzstd usability]) + OPTIONAL_ZSTD_LIBS="-lzstd" +fi + +# ----------------------------------------------------------------------------- +# brotli + +AC_CHECK_LIB([brotlienc], [BrotliEncoderCreateInstance, BrotliEncoderCompressStream], + [LIBBROTLIENC_FOUND=yes], + [LIBBROTLIENC_FOUND=no]) + +if test "x$LIBBROTLIENC_FOUND" = "xyes"; then + AC_DEFINE([ENABLE_BROTLIENC], [1], [libbrotlienc usability]) + OPTIONAL_BROTLIENC_LIBS="-lbrotlienc" +fi + +AC_CHECK_LIB([brotlidec], [BrotliDecoderCreateInstance, BrotliDecoderDecompressStream], + [LIBBROTLIDEC_FOUND=yes], + [LIBBROTLIDEC_FOUND=no]) + +if test "x$LIBBROTLIDEC_FOUND" = "xyes"; then + AC_DEFINE([ENABLE_BROTLIDEC], [1], [libbrotlidec usability]) + OPTIONAL_BROTLIDEC_LIBS="-lbrotlidec" +fi + +# ----------------------------------------------------------------------------- # zlib PKG_CHECK_MODULES( @@ -653,7 +748,7 @@ AC_CHECK_SIZEOF(void *) if test "$ac_cv_sizeof_void_p" = 8; then AC_MSG_RESULT(Detected 64-bit Build Environment) LIBJUDY_CFLAGS="$LIBJUDY_CFLAGS -DJU_64BIT" -else +else AC_MSG_RESULT(Detected 32-bit Build Environment) LIBJUDY_CFLAGS="$LIBJUDY_CFLAGS -UJU_64BIT" fi @@ -702,7 +797,7 @@ if test "${enable_lz4}" != "no"; then AC_TRY_LINK( [ #include <lz4.h> ], [ - LZ4_stream_t* stream = LZ4_initStream(NULL, 0); + LZ4_stream_t* stream = LZ4_createStream(); ], [ enable_lz4="yes"], [ enable_lz4="no" ] @@ -770,6 +865,26 @@ AC_MSG_RESULT([${enable_jsonc}]) AM_CONDITIONAL([ENABLE_JSONC], [test "${enable_jsonc}" = "yes"]) # ----------------------------------------------------------------------------- +# libyaml + +PKG_CHECK_MODULES( + [LIBYAML], + [yaml-0.1], + [AC_CHECK_LIB( + [yaml], + [yaml_parser_initialize], + [have_libyaml=yes], + [have_libyaml=no] + )], + [have_libyaml=no] +) + +if test "x$have_libyaml" = "xyes"; then + AC_DEFINE([HAVE_LIBYAML], [1], [libyaml usability]) + OPTIONAL_YAML_LIBS="-lyaml" +fi + +# ----------------------------------------------------------------------------- # YAML if test -z "${YAML_LIBS}"; then @@ -835,6 +950,27 @@ if test "${enable_pedantic}" = "yes"; then CFLAGS="${CFLAGS} -pedantic -Wall -Wextra -Wno-long-long" fi +# ----------------------------------------------------------------------------- +# dlsym check + +AC_MSG_CHECKING(whether we can use dlsym) +OLD_LIBS="${LIBS}" +LIBS="-ldl" +AC_LINK_IFELSE([AC_LANG_SOURCE([[ + #include <dlfcn.h> + static void *(*libc_malloc)(size_t); + int main() { + libc_malloc = dlsym(RTLD_NEXT, "malloc"); + } +]])], CAN_USE_DLSYM=yes, CAN_USE_DLSYM=no) +LIBS="${OLD_LIBS}" +AC_MSG_RESULT($CAN_USE_DLSYM) + +if test "x$CAN_USE_DLSYM" = xyes; then + AC_DEFINE([HAVE_DLSYM], [1], [dlsym usability]) + OPTIONAL_DL_LIBS="-ldl" +fi +AC_SUBST([OPTIONAL_DL_LIBS]) # ----------------------------------------------------------------------------- # memory allocation library @@ -903,9 +1039,6 @@ if test "${enable_h2o}" != "no"; then else can_build_h2o="no" fi - if test "${with_zlib}" != "yes"; then - can_build_h2o="no" - fi AC_MSG_RESULT([${can_build_h2o}]) if test "${can_build_h2o}" = "no" -a "${enable_h2o}" = "yes"; then @@ -1063,7 +1196,6 @@ fi AC_MSG_RESULT([${enable_plugin_apps}]) AM_CONDITIONAL([ENABLE_PLUGIN_APPS], [test "${enable_plugin_apps}" = "yes"]) - # ----------------------------------------------------------------------------- # freeipmi.plugin - libipmimonitoring @@ -1151,6 +1283,19 @@ if test "${have_sd_journal_restart_fields}" = "yes"; then AC_DEFINE([HAVE_SD_JOURNAL_RESTART_FIELDS], [1], [sd_journal_restart_fields usability]) fi +AC_CHECK_LIB([systemd], [sd_journal_get_seqnum], [have_sd_journal_get_seqnum=yes], [have_sd_journal_get_seqnum=no]) +if test "${have_sd_journal_get_seqnum}" = "yes"; then + AC_DEFINE([HAVE_SD_JOURNAL_GET_SEQNUM], [1], [sd_journal_get_seqnum usability]) +fi + +AC_CHECK_LIB([systemd], [sd_bus_default_system, sd_bus_call_method, sd_bus_message_enter_container, sd_bus_message_read, sd_bus_message_exit_container], + [SYSTEMD_DBUS_FOUND=yes], + [SYSTEMD_DBUS_FOUND=no]) + +if test "x$SYSTEMD_DBUS_FOUND" = "xyes"; then + AC_DEFINE([ENABLE_SYSTEMD_DBUS], [1], [libsystemd dbus usability]) +fi + AC_MSG_NOTICE([OPTIONAL_SYSTEMD_LIBS is set to: ${OPTIONAL_SYSTEMD_LIBS}]) if test "${enable_plugin_systemd_journal}" = "yes"; then @@ -1394,17 +1539,17 @@ AM_CONDITIONAL([ENABLE_PLUGIN_PERF], [test "${enable_plugin_perf}" = "yes"]) # ----------------------------------------------------------------------------- # gtest/gmock -AC_MSG_CHECKING([if gtest and gmock can be found]) +if test "${enable_gtests}" = "yes"; then + AC_MSG_CHECKING([if gtest can be found]) -PKG_CHECK_MODULES([GTEST], [gtest], [have_gtest=yes], [have_gtest=no]) -PKG_CHECK_MODULES([GMOCK], [gmock], [have_gmock=yes], [have_gmock=no]) + PKG_CHECK_MODULES([GTEST], [gtest], [have_gtest=yes], [have_gtest=no]) -if test "${have_gtest}" = "yes" -a "${have_gmock}" = "yes"; then - OPTIONAL_GTEST_CFLAGS="${GTEST_CFLAGS} ${GMOCK_CFLAGS}" - OPTIONAL_GTEST_LIBS="${GTEST_LIBS} ${GMOCK_LIBS}" - have_gtest="yes" -else - have_gtest="no" + if test "${have_gtest}" = "yes"; then + OPTIONAL_GTEST_CFLAGS="${GTEST_CFLAGS}" + OPTIONAL_GTEST_LIBS="${GTEST_LIBS}" + + AC_DEFINE([HAVE_GTEST], [1], [gtest availability]) + fi fi # ----------------------------------------------------------------------------- @@ -1450,6 +1595,56 @@ fi # ----------------------------------------------------------------------------- +# logsmanagement + +LIBS_BAK="${LIBS}" + +# Check if submodules have not been fetched. Fail if Logs Management was explicitly requested. + +AC_MSG_CHECKING([if git submodules are present for logs management functionality]) +if test -f "fluent-bit/CMakeLists.txt"; then + AC_MSG_RESULT([yes]) + have_logsmanagement_submodules="yes" +else + AC_MSG_RESULT([no]) + have_logsmanagement_submodules="no" +fi + +if test "${enable_logsmanagement}" != "no" -a "${have_logsmanagement_submodules}" = "no"; then + AC_MSG_WARN([Logs management cannot be built because the required git submodules are missing.]) +fi + +if test "${enable_logsmanagement}" != "no" -a "x$CAN_USE_DLSYM" = xno; then + AC_MSG_WARN([Logs management cannot be built because dlsym cannot be used.]) +fi + +# Decide if we should build Logs Management +if test "${enable_logsmanagement}" != "no" -a "${have_logsmanagement_submodules}" = "yes" -a "x$CAN_USE_DLSYM" = xyes; then + build_logsmanagement="yes" +else + build_logsmanagement="no" +fi + +AM_CONDITIONAL([ENABLE_LOGSMANAGEMENT], [test "${build_logsmanagement}" = "yes"]) +if test "${build_logsmanagement}" = "yes"; then + AC_DEFINE([ENABLE_LOGSMANAGEMENT], [1], [enable logs management functionality]) +fi + +# Decide if we should build Logs Management tests. +if test "${build_logsmanagement}" = "yes" -a "${enable_logsmanagement_tests}" = "yes"; then + build_logsmanagement_tests="yes" +else + build_logsmanagement_tests="no" +fi + +AM_CONDITIONAL([ENABLE_LOGSMANAGEMENT_TESTS], [test "${build_logsmanagement_tests}" = "yes"]) +if test "${build_logsmanagement_tests}" = "yes"; then + AC_DEFINE([ENABLE_LOGSMANAGEMENT_TESTS], [1], [logs management tests]) +fi + +LIBS="${LIBS_BAK}" + +# ----------------------------------------------------------------------------- # debugfs.plugin if test "${build_target}" = "linux"; then @@ -1547,18 +1742,6 @@ PKG_CHECK_MODULES( ) PKG_CHECK_MODULES( - [LIBCURL], - [libcurl], - [AC_CHECK_LIB( - [curl], - [curl_easy_init], - [have_libcurl=yes], - [have_libcurl=no] - )], - [have_libcurl=no] -) - -PKG_CHECK_MODULES( [AWS_CPP_SDK_CORE], [aws-cpp-sdk-core], [have_libaws_cpp_sdk_core=yes], @@ -1826,27 +2009,6 @@ AC_LANG_POP([C++]) # ----------------------------------------------------------------------------- -AC_MSG_CHECKING(whether we can use dlsym) -OLD_LIBS="${LIBS}" -LIBS="-ldl" -AC_LINK_IFELSE([AC_LANG_SOURCE([[ - #include <dlfcn.h> - static void *(*libc_malloc)(size_t); - int main() { - libc_malloc = dlsym(RTLD_NEXT, "malloc"); - } -]])], CAN_USE_DLSYM=yes, CAN_USE_DLSYM=no) -LIBS="${OLD_LIBS}" -AC_MSG_RESULT($CAN_USE_DLSYM) - -if test "x$CAN_USE_DLSYM" = xyes; then - AC_DEFINE([HAVE_DLSYM], [1], [dlsym usability]) - OPTIONAL_DL_LIBS="-ldl" -fi -AC_SUBST([OPTIONAL_DL_LIBS]) - -# ----------------------------------------------------------------------------- - AC_DEFINE_UNQUOTED([NETDATA_USER], ["${with_user}"], [use this user to drop privileged]) @@ -1900,6 +2062,12 @@ AC_SUBST([OPTIONAL_MATH_LIBS]) AC_SUBST([OPTIONAL_DATACHANNEL_LIBS]) AC_SUBST([OPTIONAL_UV_LIBS]) AC_SUBST([OPTIONAL_LZ4_LIBS]) +AC_SUBST([OPTIONAL_BROTLIENC_LIBS]) +AC_SUBST([OPTIONAL_BROTLIDEC_LIBS]) +AC_SUBST([OPTIONAL_YAML_LIBS]) +AC_SUBST([OPTIONAL_CURL_LIBS]) +AC_SUBST([OPTIONAL_PCRE2_LIBS]) +AC_SUBST([OPTIONAL_ZSTD_LIBS]) AC_SUBST([OPTIONAL_SSL_LIBS]) AC_SUBST([OPTIONAL_JSONC_LIBS]) AC_SUBST([OPTIONAL_YAML_LIBS]) @@ -1988,6 +2156,7 @@ AC_CONFIG_FILES([ collectors/freebsd.plugin/Makefile collectors/freeipmi.plugin/Makefile collectors/cups.plugin/Makefile + collectors/log2journal/Makefile collectors/idlejitter.plugin/Makefile collectors/macos.plugin/Makefile collectors/nfacct.plugin/Makefile @@ -2026,15 +2195,18 @@ AC_CONFIG_FILES([ libnetdata/aral/Makefile libnetdata/avl/Makefile libnetdata/buffer/Makefile + libnetdata/buffered_reader/Makefile libnetdata/clocks/Makefile libnetdata/completion/Makefile libnetdata/config/Makefile + libnetdata/datetime/Makefile libnetdata/dictionary/Makefile libnetdata/ebpf/Makefile libnetdata/eval/Makefile libnetdata/facets/Makefile libnetdata/functions_evloop/Makefile libnetdata/july/Makefile + libnetdata/line_splitter/Makefile libnetdata/locks/Makefile libnetdata/log/Makefile libnetdata/onewayalloc/Makefile @@ -2048,6 +2220,7 @@ AC_CONFIG_FILES([ libnetdata/storage_number/tests/Makefile libnetdata/threads/Makefile libnetdata/url/Makefile + libnetdata/uuid/Makefile libnetdata/json/Makefile libnetdata/health/Makefile libnetdata/worker_utilization/Makefile @@ -2089,6 +2262,7 @@ AC_CONFIG_FILES([ web/server/static/Makefile claim/Makefile spawn/Makefile + logsmanagement/Makefile ]) AC_OUTPUT |