1 dnl SPDX-License-Identifier: MIT
3 dnl Copyright (C) 2017 EfficiOS, Inc.
5 dnl Process this file with autoconf to produce a configure script.
8 ## Autoconf base setup ##
13 m4_define([bt_version_major], [2])
14 m4_define([bt_version_minor], [1])
15 m4_define([bt_version_patch], [0])
16 m4_define([bt_version_dev_stage], [-rc1])
17 m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_dev_stage)
18 m4_define([bt_version_name], [])
20 AC_INIT([babeltrace2],[bt_version],[jeremie dot galarneau at efficios dot com],[],[https://efficios.com/babeltrace/])
22 # Following the numbering scheme proposed by libtool for the library version
23 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
24 m4_define([bt_lib_version_current], [0])
25 m4_define([bt_lib_version_revision], [0])
26 m4_define([bt_lib_version_age], [0])
27 m4_define([bt_lib_version], bt_lib_version_current[:]bt_lib_version_revision[:]bt_lib_version_age)
28 m4_define([bt_version_description], [])
29 m4_define([bt_version_description_c_safe], AS_ESCAPE(bt_version_description))
31 AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_lib_version)
33 AC_CONFIG_HEADERS([src/common/config.h])
34 AC_CONFIG_AUX_DIR([config])
35 AC_CONFIG_MACRO_DIR([m4])
37 AC_DEFINE([BT_VERSION_MAJOR], bt_version_major, [Babeltrace major version])
38 AC_DEFINE([BT_VERSION_MINOR], bt_version_minor, [Babeltrace minor version])
39 AC_DEFINE([BT_VERSION_PATCH], bt_version_patch, [Babeltrace patch version])
40 AC_DEFINE([BT_VERSION_DEV_STAGE], ["]bt_version_dev_stage["], [Babeltrace version development stage (can be empty)])
41 AC_DEFINE([BT_VERSION_NAME], ["]bt_version_name["], [Babeltrace version name])
42 AC_DEFINE([BT_VERSION_DESCRIPTION], ["]bt_version_description_c_safe["], [Babeltrace version description])
49 ## Automake base setup ##
52 AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc -Wall -Wno-portability -Werror])
53 AM_MAINTAINER_MODE([enable])
55 # Enable silent rules by default
56 AM_SILENT_RULES([yes])
60 ## OS specific defaults ##
64 DEFAULT_ENABLE_DEBUG_INFO=yes
69 DEFAULT_ENABLE_DEBUG_INFO=no
73 DEFAULT_ENABLE_DEBUG_INFO=no
77 DEFAULT_ENABLE_DEBUG_INFO=no
78 LT_NO_UNDEFINED="-no-undefined"
83 DEFAULT_ENABLE_DEBUG_INFO=no
84 LT_NO_UNDEFINED="-no-undefined"
88 AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
89 AC_SUBST(LT_NO_UNDEFINED)
93 ## C compiler checks ##
96 # Choose the c compiler
99 # Make sure the c compiler supports C99
100 AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])])
102 # Enable available system extensions and LFS support
103 AC_USE_SYSTEM_EXTENSIONS
106 # Make sure the c compiler supports __attributes__
108 AS_IF([test "x$ax_cv___attribute__" != "xyes"],
109 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
111 # Make sur we have pthread support
112 AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])])
114 # Checks for typedefs, structures, and compiler characteristics.
129 AC_CHECK_TYPES([ptrdiff_t])
156 # Check if the linker supports no-as-needed
157 AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
158 AC_SUBST([LD_NO_AS_NEEDED])
160 # Check if the linker supports whole-archive
161 AX_CHECK_LINK_FLAG([-Wl,--whole-archive,--no-whole-archive],
163 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,--whole-archive,])
164 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [,--no-whole-archive])
166 # Fallback to force_load for the macOS linker
167 AX_CHECK_LINK_FLAG([-Wl,-force_load],
169 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,-force_load,])
170 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [])
172 AC_MSG_WARN([Can't find a linker option to force the inclusion of the static plugin archive objects.])
180 ## Programs checks ##
188 AC_PATH_PROG([report_fold], [fold])
190 # set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
191 # is not distributed in tarballs
192 AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
193 AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"])
197 AX_PROG_BISON_VERSION([2.5], [have_bison=yes])
199 AS_IF([test "x$have_bison" != "xyes"], [
200 AS_IF([test "x$in_git_repo" = "xyes"], [
202 Bison >= 2.4 is required when building from the Git repository. You can
203 set the YACC variable to override automatic detection.
207 Missing Bison >= 2.4. Note that the parser files are already built in
208 this distribution tarball, so Bison is only needed if you intend to
209 modify their sources. You can set the YACC variable to override automatic
214 AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
218 AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
220 AS_IF([test "x$have_flex" != "xyes"], [
221 AS_IF([test "x$in_git_repo" = "xyes"], [
223 Flex >= 2.5.35 is required when building from the Git repository. You can
224 set the LEX variable to override automatic detection.
228 Missing Flex >= 2.5.35. Note that the lexer files are already built in
229 this distribution tarball, so Flex is only needed if you intend to
230 modify their sources. You can set the LEX variable to override automatic
235 AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
237 # Initialize and configure libtool
245 # Check what libraries are required on this platform to link sockets programs.
248 # Check for glib >= 2.28 with gmodule support
249 AM_PATH_GLIB_2_0([2.28.0], [],
250 AC_MSG_ERROR([glib >= 2.28 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
254 # Checks for library functions.
288 # AC_FUNC_MALLOC causes problems when cross-compiling.
293 AC_CHECK_LIB([c], [fmemopen],
294 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_FMEMOPEN], 1, [Has fmemopen support.])]
297 # Check for open_memstream
298 AC_CHECK_LIB([c], [open_memstream],
299 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])]
302 # Check for posix_fallocate
303 AC_CHECK_LIB([c], [posix_fallocate],
304 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_POSIX_FALLOCATE], 1, [Has posix_fallocate support.])]
311 AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for Python, bypassing python-config])
312 AC_ARG_VAR([PYTHON_LDFLAGS], [Linker flags for Python, bypassing python-config])
313 AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
315 # BABELTRACE_PLUGINS_DIR: Plugins directory
316 AC_ARG_VAR([BABELTRACE_PLUGINS_DIR], [built-in plugins install directory [LIBDIR/babeltrace2/plugins]])
317 AS_IF([test "x$BABELTRACE_PLUGINS_DIR" = x], [BABELTRACE_PLUGINS_DIR='${libdir}/babeltrace2/plugins'])
319 # BABELTRACE_PLUGIN_PROVIDERS_DIR: Plugin providers directory
320 AC_ARG_VAR([BABELTRACE_PLUGIN_PROVIDERS_DIR], [built-in plugin providers install directory [LIBDIR/babeltrace2/plugin-providers]])
321 AS_IF([test "x$BABELTRACE_PLUGIN_PROVIDERS_DIR" = x], [BABELTRACE_PLUGIN_PROVIDERS_DIR='${libdir}/babeltrace2/plugin-providers'])
323 # BABELTRACE_MINIMAL_LOG_LEVEL:
324 AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (TRACE, DEBUG (default), or INFO)])
325 AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = x], [BABELTRACE_MINIMAL_LOG_LEVEL="DEBUG"])
326 AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "TRACE" && \
327 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && \
328 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"],
329 [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])]
331 AC_DEFINE_UNQUOTED([BT_MINIMAL_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
333 # BABELTRACE_DEV_MODE:
334 AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer mode (enables run-time checks for plugin developers)])
335 AS_IF([test "x$BABELTRACE_DEV_MODE" = x1], [
336 AC_DEFINE([BT_DEV_MODE], 1, [Babeltrace developer mode])
337 ], [BABELTRACE_DEV_MODE=0])
338 AM_CONDITIONAL([DEV_MODE], [test "x$BABELTRACE_DEV_MODE" = x1])
340 # BABELTRACE_DEBUG_MODE:
341 AC_ARG_VAR([BABELTRACE_DEBUG_MODE], [Set to 1 to enable the Babeltrace debug mode (enables internal assertions for Babeltrace maintainers)])
342 AS_IF([test "x$BABELTRACE_DEBUG_MODE" = x1], [
343 AC_DEFINE([BT_DEBUG_MODE], 1, [Babeltrace debug mode])
344 ], [BABELTRACE_DEBUG_MODE=0])
348 ## Optionnal features selection ##
352 # Disabled by default
353 AC_ARG_ENABLE([python-bindings],
354 [AS_HELP_STRING([--enable-python-bindings],[build the Python bindings])],
355 [], dnl AC_ARG_ENABLE will fill enable_python_bindings with the user choice
356 [enable_python_bindings=unspecified]
359 # Python bindings documentation
360 # Disabled by default
361 AC_ARG_ENABLE([python-bindings-doc],
362 [AS_HELP_STRING([--enable-python-bindings-doc],[build the Python bindings documentation])],
363 [], dnl AC_ARG_ENABLE will fill enable_python_bindings_doc with the user choice
364 [enable_python_bindings_doc=no]
368 # Disabled by default
369 AC_ARG_ENABLE([python-plugins],
370 [AS_HELP_STRING([--enable-python-plugins],[enable the Python plugins support for the library and converter])]
371 dnl AC_ARG_ENABLE will fill enable_python_plugins with the user choice
375 # Enabled by default, except on some platforms
376 AC_ARG_ENABLE([debug-info],
377 [AS_HELP_STRING([--disable-debug-info],[disable the debug info support (default on macOS, Solaris and Windows)])],
378 [], dnl AC_ARG_ENABLE will fill enable_debug_info with the user choice
379 [enable_debug_info="$DEFAULT_ENABLE_DEBUG_INFO"]
383 # Disabled by default
384 AC_ARG_ENABLE([api-doc],
385 [AS_HELP_STRING([--enable-api-doc],[build the HTML API documentation])],
386 [enable_api_doc=$enableval]
390 # Disabled by default
391 AC_ARG_ENABLE([built-in-plugins],
392 [AS_HELP_STRING([--enable-built-in-plugins],[Statically-link in-tree plug-ins into the babeltrace2 executable])]
393 dnl AC_ARG_ENABLE will fill enable_built_in_plugins with the user choice
396 # Built-in python plugin support
397 # Disabled by default
398 AC_ARG_ENABLE([built-in-python-plugin-support],
399 [AS_HELP_STRING([--enable-built-in-python-plugin-support],[Statically-link Python plugin support into the babeltrace library])]
400 dnl AC_ARG_ENABLE will fill enable_built_in_python_plugin_support with the user choice
405 AC_ARG_ENABLE([man-pages],
406 [AS_HELP_STRING([--disable-man-pages], [Do not build and install man pages (already built in a distributed tarball])],
407 [], dnl AC_ARG_ENABLE will fill enable_man_pages with the user choice
408 [enable_man_pages=yes]
412 # Set automake variables for optionnal feature conditionnals in Makefile.am
413 AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], [test "x$enable_python_bindings" = xyes])
414 AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], [test "x$enable_python_bindings_doc" = xyes])
415 AM_CONDITIONAL([ENABLE_PYTHON_PLUGINS], [test "x$enable_python_plugins" = xyes])
416 AM_CONDITIONAL([ENABLE_DEBUG_INFO], [test "x$enable_debug_info" = xyes])
417 AM_CONDITIONAL([ENABLE_API_DOC], [test "x$enable_api_doc" = xyes])
418 AM_CONDITIONAL([ENABLE_BUILT_IN_PLUGINS], [test "x$enable_built_in_plugins" = xyes])
419 AM_CONDITIONAL([ENABLE_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [test "x$enable_built_in_python_plugin_support" = xyes])
420 AM_CONDITIONAL([ENABLE_MAN_PAGES], [test "x$enable_man_pages" = xyes])
421 AM_CONDITIONAL([ENABLE_PYTHON_COMMON_DEPS], [test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" = xyes])
423 # Set defines for optionnal features conditionnals in the source code
425 AS_IF([test "x$enable_built_in_plugins" = xyes],
426 [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])]
429 AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
430 [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
433 AS_IF([test "x$enable_debug_info" = xyes],
434 [ENABLE_DEBUG_INFO_VAL=1],
435 [ENABLE_DEBUG_INFO_VAL=0]
438 AC_SUBST([ENABLE_DEBUG_INFO_VAL])
440 # Check for conflicting Python related features user choices.
441 AS_IF([test "x$enable_python_plugins" = xyes],
443 AS_IF([test "x$enable_python_bindings" = xunspecified],
445 # --enable-python-plugins was provided but --enable-python-bindings was
446 # omitted. Turn the Python bindings ON anyway because it's needed to
447 # use the Python plugins.
448 enable_python_bindings=yes
451 AS_IF([test "x$enable_python_bindings" = xno],
453 # --enable-python-plugins _and_ --disable-python-bindings were
454 # used. This is invalid because Python plugins need the Python
455 # bindings to be useful.
456 AC_MSG_ERROR(--enable-python-bindings must be used to support Python plugins)
464 # Check for conflicting optional features user choices
466 AS_IF([test "x$enable_built_in_plugins" = xyes],
468 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
469 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle plug-ins in the babeltrace2 executable)])
470 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle plug-ins in the babeltrace2 executable)])
474 AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
476 AS_IF([test "x$enable_python_plugins" != xyes], [AC_MSG_ERROR([--enable-python-plugins must be used to bundle Python plugin support in the babeltrace2 executable])])
477 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
478 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle Python plugin support in the babeltrace2 executable)])
479 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle Python plugin support in the babeltrace2 executable)])
484 # Check for optionnal features dependencies
486 AS_IF([test "x$enable_python_bindings" = xyes],
487 [AX_PKG_SWIG(2.0.0, [], [AC_MSG_ERROR([SWIG 2.0.0 or newer is required to build the python bindings])])]
490 AM_PATH_PYTHON([3.0], [
491 AM_PATH_PYTHON_MODULES([PYTHON])
493 # pythondir is the path where extra modules are to be installed
494 pythondir=$PYTHON_PREFIX/$PYTHON_MODULES_PATH
496 # pyexecdir is the path that contains shared objects used by the extra modules
497 pyexecdir=$PYTHON_EXEC_PREFIX/$PYTHON_MODULES_PATH
499 AS_IF([test -z "$PYTHON_CONFIG"], [
500 AC_PATH_PROGS([PYTHON_CONFIG],
501 [python$PYTHON_VERSION-config python-config],
506 AS_IF([test -n "$PYTHON_CONFIG"], [
507 AS_IF([test -z "$PYTHON_INCLUDE"], [
508 AC_MSG_CHECKING([Python include flags])
509 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
510 AC_MSG_RESULT([$PYTHON_INCLUDE])
513 AS_IF([test -z "$PYTHON_LDFLAGS"], [
514 AC_MSG_CHECKING([Python library flags])
515 # Python 3.8+ requires that we pass --embed to get the -lpython3.x flag.
516 AS_IF([! PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags --embed`], [
517 PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
519 AC_MSG_RESULT([$PYTHON_LDFLAGS])
524 AS_IF([test "$PYTHON" != :], [have_python=yes], [have_python=no])
525 AS_IF([test -n "$PYTHON_CONFIG"], [have_python_dev=yes], [have_python_dev=no])
527 AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = xyes])
528 AM_CONDITIONAL([HAVE_PYTHON_DEV], [test "x$have_python_dev" = xyes])
530 AS_IF([test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" = xyes], [
531 AS_IF([test "x$have_python_dev" = xno], [
532 AC_MSG_ERROR([Cannot find a suitable python-config. You can override the python-config path with the PYTHON_CONFIG environment variable.])
536 AS_IF([test "x$enable_python_bindings_doc" = xyes],
538 AM_CHECK_PYTHON_SPHINX([PYTHON])
539 AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno], [
540 AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation])
543 AS_IF([test "x$enable_python_bindings" != xyes], [
544 AC_MSG_ERROR([The Python bindings are required to build their documentation])
549 AS_IF([test "x$enable_debug_info" = xyes], [
550 # Check if libelf and libdw are present
551 PKG_CHECK_MODULES([ELFUTILS], [libelf >= 0.154 libdw >= 0.154],
553 dnl PKG_CHECK_MODULES defines ELFUTILS_LIBS
556 AC_MSG_ERROR([elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.])
559 AC_SUBST([ELFUTILS_LIBS])
561 AS_IF([test "x$enable_api_doc" = "xyes"],
563 DX_DOXYGEN_FEATURE(ON)
573 DX_INIT_DOXYGEN([Babeltrace 2], [$(builddir)/Doxyfile], [output])
574 AS_IF([test -z "$DX_DOXYGEN"],
575 [AC_MSG_ERROR([You need doxygen to enable the API documentation])]
580 have_asciidoc_xmlto=no
581 warn_prebuilt_man_pages=no
583 AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
584 AC_PATH_PROG([XMLTO], [xmlto], [no])
586 AS_IF([test "x$enable_man_pages" = "xyes"], [
587 AS_IF([test "x$ASCIIDOC" = "xno" || test "x$XMLTO" = "xno"], [
588 AS_IF([test "x$in_git_repo" = "xyes"], [
589 # this is an error because we're in the Git repo, which
590 # means the man pages are not already generated for us,
591 # thus asciixmlto are required because we were asked
592 # to build the man pages
594 You need asciidoc and xmlto to build the Babeltrace man pages. Use
595 --disable-man-pages to disable building the man pages, in which case
596 they will not be installed.
599 # only warn here: since we're in the tarball, the man
600 # pages should already be generated at this point, thus
601 # asciidoc/xmlto are not strictly required
602 warn_prebuilt_man_pages=yes
605 have_asciidoc_xmlto=yes
609 # export AsciiDoc and xmlto existence
610 AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"])
612 # a wonderful hack that seems necessary because $libdir is
613 # literally `${exec_prefix}/lib`, and $exec_prefix is set to `NONE`
614 # by autoconf when it's not specified by the user
615 AS_IF([test "x$exec_prefix" = xNONE], [
616 AS_IF([test "x$prefix" = xNONE], [
617 PREFIX="$ac_default_prefix"
629 # CFLAGS from libraries (the glib ones are needed for the following sizeof
631 AM_CFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS}"
633 # Check that the current size_t matches the size that glib thinks it should
634 # be. This catches problems on multi-arch where people try to do a 32-bit
635 # build while pointing at 64-bit glib headers. This is a common error because
636 # glib.h is not platform specific but it includes glibconfig.h which is and
637 # is usually installed in a non-standard path.
639 # Do this before enabling all the warning flags, as the
640 # AC_LANG_PROGRAM-generated program may generate some warning, which makes this
641 # test fail unnecessarily.
643 # Older versions of the pkg-config macros disallows PKG_* in the autoconf
644 # output. Specifically allow pkg_config_libdir to be able to print the
646 m4_pattern_allow([PKG_CONFIG_LIBDIR])
648 save_CFLAGS=${CFLAGS}
649 CFLAGS="${CFLAGS} ${AM_CFLAGS}"
655 G_STATIC_ASSERT(sizeof(size_t) == GLIB_SIZEOF_SIZE_T);
659 sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T. You probably need to set
660 PKG_CONFIG_LIBDIR to point to the right pkg-config files for your build
664 CFLAGS=${save_CFLAGS}
666 # Detect C and LD warning flags supported by the compiler.
668 # Detect warning flags supported by the compiler, append them to WARN_CFLAGS.
670 # Pass -Werror as an extra flag during the test: this is needed to make the
671 # -Wunknown-warning-option diagnostic fatal with clang.
672 AX_APPEND_COMPILE_FLAGS([ dnl
675 -Wmissing-prototypes dnl
676 -Wmissing-declarations dnl
677 -Wnull-dereference dnl
679 -Wredundant-decls dnl
681 -Wjump-misses-init dnl
682 -Wsuggest-attribute=format dnl
683 -Wtautological-constant-out-of-range-compare dnl
687 -Wstrict-aliasing dnl
688 -Wmissing-noreturn dnl
690 -Wduplicated-cond dnl
691 -Wduplicated-branches dnl
693 -Wno-unused-parameter dnl
694 -Wno-sign-compare dnl
696 dnl Some versions of SWIG (like 3.0.12) generate code that produces
697 dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This
698 dnl combo happens on RHEL/Centos 8, for example. Later versions of SWIG (like
699 dnl 4.0.1) have the correct function signatures to not produce this warning.
700 dnl It's simpler to just disable the warning globally.
702 dnl Note that the Debian/Ubuntu SWIG package 3.0.12-2 contains a local patch to
703 dnl fix this (python-fix-function-cast-warnings.patch), so you won't be able to
704 dnl reproduce the warning using that package.
706 dnl Ref: https://github.com/swig/swig/issues/1259
707 -Wno-cast-function-type dnl
708 -Wno-missing-field-initializers dnl
713 # When given, add -Werror to WARN_CFLAGS.
714 AC_ARG_ENABLE([Werror],
715 [AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])]
717 AS_IF([test "x$enable_Werror" = "xyes"],
718 [WARN_CFLAGS="${WARN_CFLAGS} -Werror"]
721 # The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is
722 # written in such a way that it triggers warnings with the following warning
723 # flags. So they would always end up disabled if we put them there, because
724 # the test program would not build.
726 # Enable them here unconditionally. They are supported by GCC >= 4.8 and by
728 WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes"
730 # CFLAGS from AX_APPEND_COMPILE_FLAGS.
731 AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
733 # Done for AM_CFLAGS.
736 # Set global CPPFLAGS in AM_CPPFLAGS
737 AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h"
738 AC_SUBST(AM_CPPFLAGS)
740 # Add glib to global link libs
741 LIBS="$LIBS $GLIB_LIBS"
743 # Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
744 # to rename babeltrace2.bin to babeltrace2 at install time.
745 program_transform_name="s&babeltrace2\.bin&babeltrace2&;$program_transform_name"
746 AC_SUBST(program_transform_name)
750 doc/api/libbabeltrace2/Doxyfile
751 doc/api/libbabeltrace2/Makefile
752 doc/bindings/Makefile
753 doc/bindings/python/Makefile
754 doc/contributing-images/Makefile
756 doc/man/asciidoc-attrs.conf
761 src/autodisc/Makefile
762 src/babeltrace2-ctf-writer.pc
764 src/bindings/Makefile
765 src/bindings/python/bt2/bt2/version.py
766 src/bindings/python/bt2/Makefile
767 src/bindings/python/bt2/setup.py
768 src/bindings/python/Makefile
773 src/ctf-writer/Makefile
774 src/fd-cache/Makefile
775 src/lib/graph/Makefile
776 src/lib/graph/message/Makefile
778 src/lib/plugin/Makefile
779 src/lib/prio-heap/Makefile
780 src/lib/trace-ir/Makefile
783 src/plugins/common/Makefile
784 src/plugins/common/muxing/Makefile
785 src/plugins/common/param-validation/Makefile
786 src/plugins/ctf/common/bfcr/Makefile
787 src/plugins/ctf/common/Makefile
788 src/plugins/ctf/common/metadata/Makefile
789 src/plugins/ctf/common/msg-iter/Makefile
790 src/plugins/ctf/fs-sink/Makefile
791 src/plugins/ctf/fs-src/Makefile
792 src/plugins/ctf/lttng-live/Makefile
793 src/plugins/ctf/Makefile
794 src/plugins/lttng-utils/debug-info/Makefile
795 src/plugins/lttng-utils/Makefile
797 src/plugins/text/dmesg/Makefile
798 src/plugins/text/Makefile
799 src/plugins/text/pretty/Makefile
800 src/plugins/text/details/Makefile
801 src/plugins/utils/counter/Makefile
802 src/plugins/utils/dummy/Makefile
803 src/plugins/utils/Makefile
804 src/plugins/utils/muxer/Makefile
805 src/plugins/utils/trimmer/Makefile
806 src/py-common/Makefile
807 src/python-plugin-provider/Makefile
808 src/param-parse/Makefile
809 src/string-format/Makefile
810 tests/bitfield/Makefile
811 tests/ctf-writer/Makefile
813 tests/lib/test-plugin-plugins/Makefile
814 tests/lib/conds/Makefile
816 tests/param-validation/Makefile
817 tests/plugins/Makefile
818 tests/plugins/src.ctf.fs/Makefile
819 tests/plugins/src.ctf.fs/succeed/Makefile
820 tests/plugins/sink.ctf.fs/Makefile
821 tests/plugins/sink.ctf.fs/succeed/Makefile
822 tests/plugins/flt.lttng-utils.debug-info/Makefile
823 tests/plugins/flt.utils.muxer/Makefile
824 tests/plugins/flt.utils.muxer/succeed/Makefile
825 tests/plugins/flt.utils.trimmer/Makefile
826 tests/plugins/sink.text.pretty/Makefile
828 tests/utils/tap/Makefile
834 # Mini-report on what will be built.
843 AS_IF([test -n "bt_version_name"], [
844 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION \"bt_version_name\"$PPRINT_COLOR_RST")
846 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION")
851 AS_IF([test -n "bt_version_description"], [
852 AS_IF([test -n "$report_fold"], [
853 AS_ECHO("`AS_ECHO("bt_version_description") | $report_fold -s`")
855 AS_ECHO("bt_version_description")
861 PPRINT_SUBTITLE([System])
863 # Target architecture we're building for.
864 target_arch=$host_cpu
867 if test $f = "-m32"; then
869 elif test $f = "-m64"; then
875 PPRINT_PROP_STRING([Target architecture], $target_arch)
878 PPRINT_SUBTITLE([Python 3 language support])
879 test "x$have_python" = "xyes" && value=1 || value=0
880 PPRINT_PROP_BOOL([Have Python interpreter], $value)
881 test "x$have_python_dev" = "xyes" && value=1 || value=0
882 PPRINT_PROP_BOOL([Have Python development libraries], $value)
883 test "x$enable_python_bindings" = "xyes" && value=1 || value=0
884 PPRINT_PROP_BOOL_CUSTOM([Python bindings], $value, [To enable, use --enable-python-bindings])
885 test "x$enable_python_plugins" = "xyes" && value=1 || value=0
886 PPRINT_PROP_BOOL_CUSTOM([Python plugin support], $value, [To enable, use --enable-python-plugins])
887 AS_IF([test "x$have_python" = "xyes"], [
888 PPRINT_PROP_STRING([Python interpreter path], [$PYTHON])
890 AS_IF([test "x$have_python_dev" = "xyes"], [
891 PPRINT_PROP_STRING([python-config path], [$PYTHON_CONFIG])
892 PPRINT_PROP_STRING([Python include paths], [$PYTHON_INCLUDE])
893 PPRINT_PROP_STRING([Python linker flags], [$PYTHON_LDFLAGS])
895 AS_IF([test "x$enable_python_bindings" = "xyes"], [
896 PPRINT_PROP_STRING([SWIG executable], [$SWIG])
897 PPRINT_PROP_STRING([SWIG library], [$SWIG_LIB])
901 PPRINT_SUBTITLE([Plugins])
902 PPRINT_PROP_BOOL(['ctf' plugin], 1)
903 test "x$enable_debug_info" = "xyes" && value=1 || value=0
904 PPRINT_PROP_BOOL_CUSTOM(['lttng-utils' plugin], $value, [To enable, use --enable-debug-info])
905 PPRINT_PROP_BOOL(['text' plugin], 1)
906 PPRINT_PROP_BOOL(['utils' plugin], 1)
909 PPRINT_SUBTITLE([Built-in features])
910 test "x$enable_built_in_plugins" = "xyes" && value=1 || value=0
911 PPRINT_PROP_BOOL_CUSTOM([Built-in plugins], $value, [To enable, use --enable-built-in-plugins])
912 test "x$enable_built_in_python_plugin_support" = "xyes" && value=1 || value=0
913 PPRINT_PROP_BOOL_CUSTOM([Built-in Python plugin support], $value, [To enable, use --enable-built-in-python-plugin-support])
916 PPRINT_SUBTITLE([Documentation])
918 # man pages build enabled/disabled
919 m4_pushdef([build_man_pages_msg], [Build and install man pages])
921 AS_IF([test "x$enable_man_pages" != "xno"], [
922 AS_IF([test "x$in_git_repo" = "xyes"], [
923 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
925 AS_IF([test "x$have_asciidoc_xmlto" = "xyes"], [
926 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
928 PPRINT_PROP_STRING([build_man_pages_msg],
929 [${PPRINT_COLOR_BLDGRN}yes (already built)],
930 $PPRINT_COLOR_SUBTITLE)
934 PPRINT_PROP_BOOL_CUSTOM([build_man_pages_msg], 0, [To build man pages, use --enable-man-pages])
937 m4_popdef([build_man_pages_msg])
939 test "x$enable_api_doc" = "xyes" && value=1 || value=0
940 PPRINT_PROP_BOOL_CUSTOM([HTML API documentation], $value, [To build documentation, use --enable-api-doc])
941 test "x$enable_python_bindings_doc" = "xyes" && value=1 || value=0
942 PPRINT_PROP_BOOL_CUSTOM([Python bindings documentation], $value, [To build the Python bindings documentation, use --enable-python-bindings-doc])
945 PPRINT_SUBTITLE([Logging])
946 PPRINT_PROP_STRING([Minimal log level], $BABELTRACE_MINIMAL_LOG_LEVEL)
949 PPRINT_SUBTITLE([Special build modes])
950 PPRINT_PROP_BOOL_CUSTOM([Debug mode], $BABELTRACE_DEBUG_MODE, [To enable, set the BABELTRACE_DEBUG_MODE environment variable to 1])
951 PPRINT_PROP_BOOL_CUSTOM([Developer mode], $BABELTRACE_DEV_MODE, [To enable, set the BABELTRACE_DEV_MODE environment variable to 1])
953 report_bindir="`eval eval echo $bindir`"
954 report_libdir="`eval eval echo $libdir`"
955 report_sysconfdif="`eval eval echo $sysconfdir`"
956 report_pluginsdir="`eval eval eval echo $BABELTRACE_PLUGINS_DIR`"
957 report_pluginprovidersdir="`eval eval eval echo $BABELTRACE_PLUGIN_PROVIDERS_DIR`"
959 # Print the bindir and libdir this `make install' will install into.
961 PPRINT_SUBTITLE([Install directories])
962 PPRINT_PROP_STRING([Binaries], [$report_bindir])
963 PPRINT_PROP_STRING([Libraries], [$report_libdir])
964 PPRINT_PROP_STRING([Plugins], [$report_pluginsdir])
965 PPRINT_PROP_STRING([Plugin providers], [$report_pluginprovidersdir])
966 PPRINT_PROP_STRING([Configuration], [$report_sysconfdif])