logging: strip down and clean `log.h` and `log.c`
[babeltrace.git] / configure.ac
index 1a406832edea5b378e16266609df0532f8c7de1e..03ac73b8977071dbb4f6c6b7e1bdca17e60094ce 100644 (file)
@@ -50,7 +50,7 @@ AC_CANONICAL_HOST
 ## Automake base setup ##
 ##                     ##
 
 ## Automake base setup ##
 ##                     ##
 
-AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc -Wall -Wno-portability -Werror])
+AM_INIT_AUTOMAKE([1.13 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc subdir-objects -Wall -Wno-portability -Werror])
 AM_MAINTAINER_MODE([enable])
 
 # Enable silent rules by default
 AM_MAINTAINER_MODE([enable])
 
 # Enable silent rules by default
@@ -211,12 +211,12 @@ AX_PROG_BISON_VERSION([2.5], [have_bison=yes])
 AS_IF([test "x$have_bison" != "xyes"], [
   AE_IF_IN_GIT_REPO([
     AC_MSG_FAILURE([dnl
 AS_IF([test "x$have_bison" != "xyes"], [
   AE_IF_IN_GIT_REPO([
     AC_MSG_FAILURE([dnl
-Bison >= 2.4 is required when building from the Git repository. You can
+Bison >= 2.5 is required when building from the Git repository. You can
 set the YACC variable to override automatic detection.
     ])
   ], [
     AC_MSG_WARN([dnl
 set the YACC variable to override automatic detection.
     ])
   ], [
     AC_MSG_WARN([dnl
-Missing Bison >= 2.4. Note that the parser files are already built in
+Missing Bison >= 2.5. Note that the parser files are already built in
 this distribution tarball, so Bison is only needed if you intend to
 modify their sources. You can set the YACC variable to override automatic
 detection.
 this distribution tarball, so Bison is only needed if you intend to
 modify their sources. You can set the YACC variable to override automatic
 detection.
@@ -250,7 +250,7 @@ AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
 
 # Always check for python, we will fail later if some features require it and
 # it's unavailable.
 
 # Always check for python, we will fail later if some features require it and
 # it's unavailable.
-AM_PATH_PYTHON([3.0], [
+AM_PATH_PYTHON([3.4], [
   AE_PATH_PYTHON_MODULES([PYTHON])
 
   # pythondir is the path where extra modules are to be installed
   AE_PATH_PYTHON_MODULES([PYTHON])
 
   # pythondir is the path where extra modules are to be installed
@@ -380,7 +380,7 @@ AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "TRACE" && \
        test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"],
   [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])]
 )
        test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"],
   [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])]
 )
-AC_DEFINE_UNQUOTED([BT_MINIMAL_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
+AC_DEFINE_UNQUOTED([BT_LOG_MINIMAL_LEVEL], [__BT_LOGGING_LEVEL_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
 
 # BABELTRACE_DEV_MODE:
 AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer mode (enables run-time checks for plugin developers)])
 
 # BABELTRACE_DEV_MODE:
 AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer mode (enables run-time checks for plugin developers)])
@@ -448,6 +448,7 @@ AE_FEATURE([Werror],[Treat compiler warnings as errors.])
 # When given, build with AddressSanitizer.
 AE_FEATURE_DEFAULT_DISABLE
 AE_FEATURE([asan],[Build with AddressSanitizer.])
 # When given, build with AddressSanitizer.
 AE_FEATURE_DEFAULT_DISABLE
 AE_FEATURE([asan],[Build with AddressSanitizer.])
+AE_FEATURE([ubsan],[Build with UndefinedBehaviorSanitizer.])
 
 ##                                          ##
 ## Check for conflicting features selection ##
 
 ##                                          ##
 ## Check for conflicting features selection ##
@@ -513,6 +514,9 @@ AE_IF_FEATURE_ENABLED([built-in-python-plugin-support],
   [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
 )
 
   [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
 )
 
+AE_IF_FEATURE_ENABLED([python-plugins], [ENABLE_PYTHON_PLUGINS=1], [ENABLE_PYTHON_PLUGINS=0])
+AC_SUBST([ENABLE_PYTHON_PLUGINS])
+
 AE_IF_FEATURE_ENABLED([debug-info], [ENABLE_DEBUG_INFO_VAL=1], [ENABLE_DEBUG_INFO_VAL=0])
 AC_SUBST([ENABLE_DEBUG_INFO_VAL])
 
 AE_IF_FEATURE_ENABLED([debug-info], [ENABLE_DEBUG_INFO_VAL=1], [ENABLE_DEBUG_INFO_VAL=0])
 AC_SUBST([ENABLE_DEBUG_INFO_VAL])
 
@@ -534,6 +538,14 @@ AS_IF([test -n "$PYTHON_CONFIG"], [have_python_dev=yes], [have_python_dev=no])
 AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = xyes])
 AM_CONDITIONAL([HAVE_PYTHON_DEV], [test "x$have_python_dev" = xyes])
 
 AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = xyes])
 AM_CONDITIONAL([HAVE_PYTHON_DEV], [test "x$have_python_dev" = xyes])
 
+AS_IF([test "x$have_python" = xyes], [
+  AX_COMPARE_VERSION(["$PYTHON_VERSION"], [ge], ["3.12"], [
+    have_python_312_or_greater=yes
+  ])
+])
+
+AM_CONDITIONAL([HAVE_PYTHON_312_OR_GREATER], [test "x$have_python_312_or_greater" = xyes])
+
 AS_IF([AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python-plugins])], [
   AS_IF([test "x$have_python_dev" = xno], [
     AC_MSG_ERROR([Cannot find a suitable python-config. You can override the python-config path with the PYTHON_CONFIG environment variable.])
 AS_IF([AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python-plugins])], [
   AS_IF([test "x$have_python_dev" = xno], [
     AC_MSG_ERROR([Cannot find a suitable python-config. You can override the python-config path with the PYTHON_CONFIG environment variable.])
@@ -655,13 +667,19 @@ AE_IF_FEATURE_ENABLED([asan], [
   ASAN_LDFLAGS="-fsanitize=address"
 ])
 
   ASAN_LDFLAGS="-fsanitize=address"
 ])
 
-
+# If --enable-ubsan is used...
+AE_IF_FEATURE_ENABLED([ubsan], [
+  # ... add -fsanitize=undefined to the *FLAGS variables.
+  UBSAN_CFLAGS="-fsanitize=undefined"
+  UBSAN_CXXFLAGS="-fsanitize=undefined"
+  UBSAN_LDFLAGS="-fsanitize=undefined"
+])
 
 # CFLAGS from libraries (the glib ones are needed for the following sizeof
 # test).
 
 # CFLAGS from libraries (the glib ones are needed for the following sizeof
 # test).
-AM_CFLAGS="-fvisibility=hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CFLAGS}"
-AM_CXXFLAGS="-fvisibility=hidden -fvisibility-inlines-hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CXXFLAGS}"
-AM_LDFLAGS="${ASAN_LDFLAGS}"
+AM_CFLAGS="-fvisibility=hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CFLAGS} ${UBSAN_CFLAGS}"
+AM_CXXFLAGS="-fvisibility=hidden -fvisibility-inlines-hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CXXFLAGS} ${UBSAN_CFLAGS}"
+AM_LDFLAGS="${ASAN_LDFLAGS} ${UBSAN_CFLAGS}"
 
 # Check that the current size_t matches the size that glib thinks it should
 # be. This catches problems on multi-arch where people try to do a 32-bit
 
 # Check that the current size_t matches the size that glib thinks it should
 # be. This catches problems on multi-arch where people try to do a 32-bit
@@ -728,7 +746,6 @@ m4_define([WARN_FLAGS_LIST], [ dnl
   -Wduplicated-branches dnl
   -Wlogical-op dnl
   -Wsuggest-override dnl
   -Wduplicated-branches dnl
   -Wlogical-op dnl
   -Wsuggest-override dnl
-  -Wno-unused-parameter dnl
   -Wno-sign-compare dnl
   dnl
   dnl Some versions of SWIG (like 3.0.12) generate code that produces
   -Wno-sign-compare dnl
   dnl
   dnl Some versions of SWIG (like 3.0.12) generate code that produces
@@ -743,7 +760,6 @@ m4_define([WARN_FLAGS_LIST], [ dnl
   dnl
   dnl Ref: https://github.com/swig/swig/issues/1259
   -Wno-cast-function-type dnl
   dnl
   dnl Ref: https://github.com/swig/swig/issues/1259
   -Wno-cast-function-type dnl
-  -Wno-missing-field-initializers dnl
   -Wno-maybe-uninitialized dnl
 ])
 
   -Wno-maybe-uninitialized dnl
 ])
 
@@ -788,73 +804,27 @@ program_transform_name="s&babeltrace2\.bin&babeltrace2&;$program_transform_name"
 AC_SUBST(program_transform_name)
 
 AC_CONFIG_FILES([
 AC_SUBST(program_transform_name)
 
 AC_CONFIG_FILES([
-  doc/api/Makefile
   doc/api/libbabeltrace2/Doxyfile
   doc/api/libbabeltrace2/Makefile
   doc/api/libbabeltrace2/Doxyfile
   doc/api/libbabeltrace2/Makefile
-  doc/bindings/Makefile
   doc/bindings/python/Makefile
   doc/bindings/python/Makefile
-  doc/contributing-images/Makefile
   doc/Makefile
   doc/man/asciidoc-attrs.conf
   doc/man/Makefile
   include/Makefile
   Makefile
   doc/Makefile
   doc/man/asciidoc-attrs.conf
   doc/man/Makefile
   include/Makefile
   Makefile
-  src/argpar/Makefile
-  src/autodisc/Makefile
   src/babeltrace2-ctf-writer.pc
   src/babeltrace2.pc
   src/babeltrace2-ctf-writer.pc
   src/babeltrace2.pc
-  src/bindings/Makefile
   src/bindings/python/bt2/bt2/version.py
   src/bindings/python/bt2/Makefile
   src/bindings/python/bt2/setup.py
   src/bindings/python/bt2/bt2/version.py
   src/bindings/python/bt2/Makefile
   src/bindings/python/bt2/setup.py
-  src/bindings/python/Makefile
   src/cli/Makefile
   src/cli/Makefile
-  src/common/Makefile
-  src/cpp-common/Makefile
-  src/compat/Makefile
-  src/ctfser/Makefile
-  src/ctf-writer/Makefile
-  src/fd-cache/Makefile
-  src/lib/graph/Makefile
-  src/lib/graph/message/Makefile
-  src/lib/Makefile
-  src/lib/plugin/Makefile
-  src/lib/prio-heap/Makefile
-  src/lib/trace-ir/Makefile
-  src/logging/Makefile
   src/Makefile
   src/Makefile
-  src/plugins/common/Makefile
-  src/plugins/common/muxing/Makefile
-  src/plugins/common/param-validation/Makefile
-  src/plugins/ctf/common/bfcr/Makefile
-  src/plugins/ctf/common/Makefile
-  src/plugins/ctf/common/metadata/Makefile
-  src/plugins/ctf/common/msg-iter/Makefile
-  src/plugins/ctf/fs-sink/Makefile
-  src/plugins/ctf/fs-src/Makefile
-  src/plugins/ctf/lttng-live/Makefile
-  src/plugins/ctf/Makefile
-  src/plugins/lttng-utils/debug-info/Makefile
-  src/plugins/lttng-utils/Makefile
-  src/plugins/Makefile
-  src/plugins/text/dmesg/Makefile
-  src/plugins/text/Makefile
-  src/plugins/text/pretty/Makefile
-  src/plugins/text/details/Makefile
-  src/plugins/utils/counter/Makefile
-  src/plugins/utils/dummy/Makefile
-  src/plugins/utils/Makefile
-  src/plugins/utils/muxer/Makefile
-  src/plugins/utils/trimmer/Makefile
-  src/py-common/Makefile
-  src/python-plugin-provider/Makefile
-  src/param-parse/Makefile
-  src/string-format/Makefile
   tests/bitfield/Makefile
   tests/ctf-writer/Makefile
   tests/lib/Makefile
   tests/lib/test-plugin-plugins/Makefile
   tests/lib/conds/Makefile
   tests/bitfield/Makefile
   tests/ctf-writer/Makefile
   tests/lib/Makefile
   tests/lib/test-plugin-plugins/Makefile
   tests/lib/conds/Makefile
+  tests/lib/utils/Makefile
   tests/Makefile
   tests/param-validation/Makefile
   tests/plugins/Makefile
   tests/Makefile
   tests/param-validation/Makefile
   tests/plugins/Makefile
This page took 0.044574 seconds and 4 git commands to generate.