1 dnl Process this file with autoconf to produce a configure script.
3 dnl Copyright (c) 2017 EfficiOS, Inc.
5 dnl Permission is hereby granted, free of charge, to any person obtaining a copy
6 dnl of this software and associated documentation files (the "Software"), to deal
7 dnl in the Software without restriction, including without limitation the rights
8 dnl to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 dnl copies of the Software, and to permit persons to whom the Software is
10 dnl furnished to do so, subject to the following conditions:
12 dnl The above copyright notice and this permission notice shall be included in
13 dnl all copies or substantial portions of the Software.
15 dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 dnl AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 dnl OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24 ## Autoconf base setup ##
29 m4_define([bt_version_major], [2])
30 m4_define([bt_version_minor], [0])
31 m4_define([bt_version_patch], [4])
32 m4_define([bt_version_dev_stage], [])
33 m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_dev_stage)
34 m4_define([bt_version_name], [Amqui])
36 AC_INIT([babeltrace2], bt_version, [jeremie dot galarneau at efficios dot com], [], [https://efficios.com/babeltrace/])
39 # Following the numbering scheme proposed by libtool for the library version
40 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
41 m4_define([bt_lib_version_current], [0])
42 m4_define([bt_lib_version_revision], [0])
43 m4_define([bt_lib_version_age], [0])
44 m4_define([bt_lib_version], bt_lib_version_current[:]bt_lib_version_revision[:]bt_lib_version_age)
46 bt_version_description="Amqui (/ɒmkwiː/) is a town in eastern Québec, Canada, at the base of the Gaspé peninsula in Bas-Saint-Laurent. Located at the confluence of the Humqui and Matapédia Rivers, its proximity to woodlands makes it a great destination for outdoor activities such as camping, hiking, and mountain biking."
47 bt_version_description_c_safe=$(echo $bt_version_description | $SED 's/"/\\"/g')
49 AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_lib_version)
51 AC_CONFIG_HEADERS([src/common/config.h])
52 AC_CONFIG_AUX_DIR([config])
53 AC_CONFIG_MACRO_DIR([m4])
55 AC_DEFINE([BT_VERSION_MAJOR], bt_version_major, [Babeltrace major version])
56 AC_DEFINE([BT_VERSION_MINOR], bt_version_minor, [Babeltrace minor version])
57 AC_DEFINE([BT_VERSION_PATCH], bt_version_patch, [Babeltrace patch version])
58 AC_DEFINE([BT_VERSION_DEV_STAGE], ["]bt_version_dev_stage["], [Babeltrace version development stage (can be empty)])
59 AC_DEFINE([BT_VERSION_NAME], ["]bt_version_name["], [Babeltrace version name])
60 AC_DEFINE_UNQUOTED([BT_VERSION_DESCRIPTION], ["$bt_version_description_c_safe"], [Babeltrace version description])
67 ## Automake base setup ##
70 AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc])
71 AM_MAINTAINER_MODE([enable])
73 # Enable silent rules if available (Introduced in AM 1.11)
74 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
78 ## OS specific defaults ##
82 DEFAULT_ENABLE_DEBUG_INFO=yes
87 DEFAULT_ENABLE_DEBUG_INFO=no
91 DEFAULT_ENABLE_DEBUG_INFO=no
95 DEFAULT_ENABLE_DEBUG_INFO=no
96 LT_NO_UNDEFINED="-no-undefined"
101 DEFAULT_ENABLE_DEBUG_INFO=no
102 LT_NO_UNDEFINED="-no-undefined"
106 AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
107 AC_SUBST(LT_NO_UNDEFINED)
111 ## C compiler checks ##
114 AC_USE_SYSTEM_EXTENSIONS
117 # Choose the c compiler
119 m4_version_prereq([2.70], [], [AC_PROG_CC_STDC])
121 # Make sure the c compiler supports C99
122 AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])])
124 # Make sure the c compiler supports __attributes__
126 AS_IF([test "x$ax_cv___attribute__" != "xyes"],
127 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
129 # Make sur we have pthread support
130 AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])])
132 # Checks for typedefs, structures, and compiler characteristics.
147 AC_CHECK_TYPES([ptrdiff_t])
174 # Check if the linker supports no-as-needed
175 AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
176 AC_SUBST([LD_NO_AS_NEEDED])
178 # Check if the linker supports whole-archive
179 AX_CHECK_LINK_FLAG([-Wl,--whole-archive,--no-whole-archive],
181 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,--whole-archive,])
182 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [,--no-whole-archive])
184 # Fallback to force_load for the macOS linker
185 AX_CHECK_LINK_FLAG([-Wl,-force_load],
187 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,-force_load,])
188 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [])
190 AC_MSG_WARN([Can't find a linker option to force the inclusion of the static plugin archive objects.])
196 # Initialize and configure libtool
199 # Check if the linker supports the "notext" keyword
200 AX_CHECK_LINK_FLAG([-Wl,-z,notext],[
201 AC_SUBST([LD_NOTEXT], [-Wl,-z,notext])
206 ## Programs checks ##
212 AC_PATH_PROG([report_fold], [fold])
214 # set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
215 # is not distributed in tarballs
216 AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
217 AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"])
221 AX_PROG_BISON_VERSION([2.5], [have_bison=yes])
223 AS_IF([test "x$have_bison" != "xyes"], [
224 AS_IF([test "x$in_git_repo" = "xyes"], [
226 Bison >= 2.4 is required when building from the Git repository. You can
227 set the YACC variable to override automatic detection.
231 Missing Bison >= 2.4. Note that the parser files are already built in
232 this distribution tarball, so Bison is only needed if you intend to
233 modify their sources. You can set the YACC variable to override automatic
238 AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
241 # Prior to autoconf 2.70, AC_PROG_FLEX did not take an argument. This is not a
242 # problem since the argument is silently ignored by older versions.
243 AC_PROG_LEX([noyywrap])
244 AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
246 AS_IF([test "x$have_flex" != "xyes"], [
247 AS_IF([test "x$in_git_repo" = "xyes"], [
249 Flex >= 2.5.35 is required when building from the Git repository. You can
250 set the LEX variable to override automatic detection.
254 Missing Flex >= 2.5.35. Note that the lexer files are already built in
255 this distribution tarball, so Flex is only needed if you intend to
256 modify their sources. You can set the LEX variable to override automatic
261 AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
268 # Check what libraries are required on this platform to link sockets programs.
271 # Check for glib >= 2.28 with gmodule support
272 AM_PATH_GLIB_2_0([2.28.0], [],
273 AC_MSG_ERROR([glib >= 2.28 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
277 # Checks for library functions.
311 # AC_FUNC_MALLOC causes problems when cross-compiling.
316 AC_CHECK_LIB([c], [fmemopen],
317 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_FMEMOPEN], 1, [Has fmemopen support.])]
320 # Check for open_memstream
321 AC_CHECK_LIB([c], [open_memstream],
322 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])]
325 # Check for posix_fallocate
326 AC_CHECK_LIB([c], [posix_fallocate],
327 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_POSIX_FALLOCATE], 1, [Has posix_fallocate support.])]
334 AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for Python, bypassing python-config])
335 AC_ARG_VAR([PYTHON_LDFLAGS], [Linker flags for Python, bypassing python-config])
336 AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
338 # BABELTRACE_PLUGINS_DIR: Plugins directory
339 AC_ARG_VAR([BABELTRACE_PLUGINS_DIR], [built-in plugins install directory [LIBDIR/babeltrace2/plugins]])
340 AS_IF([test "x$BABELTRACE_PLUGINS_DIR" = x], [BABELTRACE_PLUGINS_DIR='${libdir}/babeltrace2/plugins'])
342 # BABELTRACE_PLUGIN_PROVIDERS_DIR: Plugin providers directory
343 AC_ARG_VAR([BABELTRACE_PLUGIN_PROVIDERS_DIR], [built-in plugin providers install directory [LIBDIR/babeltrace2/plugin-providers]])
344 AS_IF([test "x$BABELTRACE_PLUGIN_PROVIDERS_DIR" = x], [BABELTRACE_PLUGIN_PROVIDERS_DIR='${libdir}/babeltrace2/plugin-providers'])
346 # BABELTRACE_MINIMAL_LOG_LEVEL:
347 AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (TRACE, DEBUG (default), or INFO)])
348 AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = x], [BABELTRACE_MINIMAL_LOG_LEVEL="DEBUG"])
349 AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "TRACE" && \
350 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && \
351 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"],
352 [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])]
354 AC_DEFINE_UNQUOTED([BT_MINIMAL_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
356 # BABELTRACE_DEV_MODE:
357 AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer mode (enables run-time checks for plugin developers)])
358 AS_IF([test "x$BABELTRACE_DEV_MODE" = x1], [
359 AC_DEFINE([BT_DEV_MODE], 1, [Babeltrace developer mode])
360 ], [BABELTRACE_DEV_MODE=0])
362 # BABELTRACE_DEBUG_MODE:
363 AC_ARG_VAR([BABELTRACE_DEBUG_MODE], [Set to 1 to enable the Babeltrace debug mode (enables internal assertions for Babeltrace maintainers)])
364 AS_IF([test "x$BABELTRACE_DEBUG_MODE" = x1], [
365 AC_DEFINE([BT_DEBUG_MODE], 1, [Babeltrace debug mode])
366 ], [BABELTRACE_DEBUG_MODE=0])
370 ## Optionnal features selection ##
374 # Disabled by default
375 AC_ARG_ENABLE([python-bindings],
376 [AS_HELP_STRING([--enable-python-bindings], [build the Python bindings])],
377 [], dnl AC_ARG_ENABLE will fill enable_python_bindings with the user choice
378 [enable_python_bindings=unspecified]
381 # Python bindings documentation
382 # Disabled by default
383 AC_ARG_ENABLE([python-bindings-doc],
384 [AS_HELP_STRING([--enable-python-bindings-doc], [build the Python bindings documentation])],
385 [], dnl AC_ARG_ENABLE will fill enable_python_bindings_doc with the user choice
386 [enable_python_bindings_doc=no]
390 # Disabled by default
391 AC_ARG_ENABLE([python-plugins],
392 [AS_HELP_STRING([--enable-python-plugins], [enable the Python plugins support for the library and converter])]
393 dnl AC_ARG_ENABLE will fill enable_python_plugins with the user choice
397 # Enabled by default, except on some platforms
398 AC_ARG_ENABLE([debug-info],
399 [AS_HELP_STRING([--disable-debug-info], [disable the debug info support (default on macOS, Solaris and Windows)])],
400 [], dnl AC_ARG_ENABLE will fill enable_debug_info with the user choice
401 [enable_debug_info="$DEFAULT_ENABLE_DEBUG_INFO"]
405 # Disabled by default
406 AC_ARG_ENABLE([api-doc],
407 [AS_HELP_STRING([--enable-api-doc], [build the HTML API documentation])],
408 [enable_api_doc=$enableval]
412 # Disabled by default
413 AC_ARG_ENABLE([built-in-plugins],
414 [AS_HELP_STRING([--enable-built-in-plugins], [Statically-link in-tree plug-ins into the babeltrace2 executable])]
415 dnl AC_ARG_ENABLE will fill enable_built_in_plugins with the user choice
418 # Built-in python plugin support
419 # Disabled by default
420 AC_ARG_ENABLE([built-in-python-plugin-support],
421 [AS_HELP_STRING([--enable-built-in-python-plugin-support], [Statically-link Python plugin support into the babeltrace library])]
422 dnl AC_ARG_ENABLE will fill enable_built_in_python_plugin_support with the user choice
427 AC_ARG_ENABLE([man-pages],
428 [AS_HELP_STRING([--disable-man-pages], [Do not build and install man pages (already built in a distributed tarball])],
429 [], dnl AC_ARG_ENABLE will fill enable_man_pages with the user choice
430 [enable_man_pages=yes]
434 # Set automake variables for optionnal feature conditionnals in Makefile.am
435 AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], [test "x$enable_python_bindings" = xyes])
436 AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], [test "x$enable_python_bindings_doc" = xyes])
437 AM_CONDITIONAL([ENABLE_PYTHON_PLUGINS], [test "x$enable_python_plugins" = xyes])
438 AM_CONDITIONAL([ENABLE_DEBUG_INFO], [test "x$enable_debug_info" = xyes])
439 AM_CONDITIONAL([ENABLE_API_DOC], [test "x$enable_api_doc" = xyes])
440 AM_CONDITIONAL([ENABLE_BUILT_IN_PLUGINS], [test "x$enable_built_in_plugins" = xyes])
441 AM_CONDITIONAL([ENABLE_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [test "x$enable_built_in_python_plugin_support" = xyes])
442 AM_CONDITIONAL([ENABLE_MAN_PAGES], [test "x$enable_man_pages" = xyes])
443 AM_CONDITIONAL([ENABLE_PYTHON_COMMON_DEPS], [test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" = xyes])
445 # Set defines for optionnal features conditionnals in the source code
447 ## jgalar: still used?
448 AS_IF([test "x$enable_python_plugins" = xyes],
449 [AC_DEFINE([PYTHON_PLUGINS], [1], [Python plugin support.])]
452 AS_IF([test "x$enable_debug_info" = xyes],
453 [AC_DEFINE([ENABLE_DEBUG_INFO], [1], [Define to 1 if you enable the 'debug info' feature])]
456 AS_IF([test "x$enable_built_in_plugins" = xyes],
457 [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])]
460 AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
461 [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
464 AS_IF([test "x$enable_debug_info" = xyes],
465 [ENABLE_DEBUG_INFO_VAL=1],
466 [ENABLE_DEBUG_INFO_VAL=0]
469 AC_SUBST([ENABLE_DEBUG_INFO_VAL])
471 # Check for conflicting Python related features user choices.
472 AS_IF([test "x$enable_python_plugins" = xyes],
474 AS_IF([test "x$enable_python_bindings" = xunspecified],
476 # --enable-python-plugins was provided but --enable-python-bindings was
477 # omitted. Turn the Python bindings ON anyway because it's needed to
478 # use the Python plugins.
479 enable_python_bindings=yes
482 AS_IF([test "x$enable_python_bindings" = xno],
484 # --enable-python-plugins _and_ --disable-python-bindings were
485 # used. This is invalid because Python plugins need the Python
486 # bindings to be useful.
487 AC_MSG_ERROR(--enable-python-bindings must be used to support Python plugins)
495 # Check for conflicting optional features user choices
497 AS_IF([test "x$enable_built_in_plugins" = xyes],
499 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
500 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle plug-ins in the babeltrace2 executable)])
501 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle plug-ins in the babeltrace2 executable)])
505 AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
507 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])])
508 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
509 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle Python plugin support in the babeltrace2 executable)])
510 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle Python plugin support in the babeltrace2 executable)])
515 # Check for optionnal features dependencies
517 AS_IF([test "x$enable_python_bindings" = xyes],
518 [AX_PKG_SWIG(2.0.0, [], [AC_MSG_ERROR([SWIG 2.0.0 or newer is required to build the python bindings])])]
521 AM_PATH_PYTHON([3.0], [
522 AM_PATH_PYTHON_MODULES([PYTHON])
524 # pythondir is the path where extra modules are to be installed
525 pythondir=$PYTHON_PREFIX/$PYTHON_MODULES_PATH
527 # pyexecdir is the path that contains shared objects used by the extra modules
528 pyexecdir=$PYTHON_EXEC_PREFIX/$PYTHON_MODULES_PATH
530 AS_IF([test -z "$PYTHON_CONFIG"], [
531 AC_PATH_PROGS([PYTHON_CONFIG],
532 [python$PYTHON_VERSION-config python-config],
537 AS_IF([test -n "$PYTHON_CONFIG"], [
538 AS_IF([test -z "$PYTHON_INCLUDE"], [
539 AC_MSG_CHECKING([Python include flags])
540 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
541 AC_MSG_RESULT([$PYTHON_INCLUDE])
544 AS_IF([test -z "$PYTHON_LDFLAGS"], [
545 AC_MSG_CHECKING([Python library flags])
546 # Python 3.8+ requires that we pass --embed to get the -lpython3.x flag.
547 AS_IF([! PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags --embed`], [
548 PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
550 AC_MSG_RESULT([$PYTHON_LDFLAGS])
555 AS_IF([test "$PYTHON" != :], [have_python=yes], [have_python=no])
556 AS_IF([test -n "$PYTHON_CONFIG"], [have_python_dev=yes], [have_python_dev=no])
558 AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = xyes])
559 AM_CONDITIONAL([HAVE_PYTHON_DEV], [test "x$have_python_dev" = xyes])
561 AS_IF([test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" = xyes], [
562 AS_IF([test "x$have_python_dev" = xno], [
563 AC_MSG_ERROR([Cannot find a suitable python-config. You can override the python-config path with the PYTHON_CONFIG environment variable.])
567 AS_IF([test "x$enable_python_bindings_doc" = xyes],
569 AM_CHECK_PYTHON_SPHINX([PYTHON])
570 AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno], [
571 AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation])
574 AS_IF([test "x$enable_python_bindings" != xyes], [
575 AC_MSG_ERROR([The Python bindings are required to build their documentation])
580 AS_IF([test "x$enable_debug_info" = xyes],
582 # Check if libelf and libdw are present
583 AC_CHECK_LIB([elf], [elf_version], [:], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
584 AC_CHECK_LIB([dw], [dwarf_begin], [:], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
585 BT_LIB_ELFUTILS([0], [154], [:], [AC_MSG_ERROR(elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.)])
586 ELFUTILS_LIBS="-lelf -ldw"
589 AC_SUBST([ELFUTILS_LIBS])
591 AS_IF([test "x$enable_api_doc" = "xyes"],
593 DX_DOXYGEN_FEATURE(ON)
603 DX_INIT_DOXYGEN([Babeltrace 2], [$(builddir)/Doxyfile], [output])
604 AS_IF([test -z "$DX_DOXYGEN"],
605 [AC_MSG_ERROR([You need doxygen to enable the API documentation])]
610 have_asciidoc_xmlto=no
611 warn_prebuilt_man_pages=no
613 AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
614 AC_PATH_PROG([XMLTO], [xmlto], [no])
616 AS_IF([test "x$enable_man_pages" = "xyes"], [
617 AS_IF([test "x$ASCIIDOC" = "xno" || test "x$XMLTO" = "xno"], [
618 AS_IF([test "x$in_git_repo" = "xyes"], [
619 # this is an error because we're in the Git repo, which
620 # means the man pages are not already generated for us,
621 # thus asciixmlto are required because we were asked
622 # to build the man pages
624 You need asciidoc and xmlto to build the Babeltrace man pages. Use
625 --disable-man-pages to disable building the man pages, in which case
626 they will not be installed.
629 # only warn here: since we're in the tarball, the man
630 # pages should already be generated at this point, thus
631 # asciidoc/xmlto are not strictly required
632 warn_prebuilt_man_pages=yes
635 have_asciidoc_xmlto=yes
639 # export AsciiDoc and xmlto existence
640 AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"])
642 # a wonderful hack that seems necessary because $libdir is
643 # literally `${exec_prefix}/lib`, and $exec_prefix is set to `NONE`
644 # by autoconf when it's not specified by the user
645 AS_IF([test "x$exec_prefix" = xNONE], [
646 AS_IF([test "x$prefix" = xNONE], [
647 PREFIX="$ac_default_prefix"
659 # CFLAGS from libraries (the glib ones are needed for the following sizeof
661 AM_CFLAGS="${PTHREAD_CFLAGS} ${GLIB_CFLAGS}"
663 # Check that the current size_t matches the size that glib thinks it should
664 # be. This catches problems on multi-arch where people try to do a 32-bit
665 # build while pointing at 64-bit glib headers. This is a common error because
666 # glib.h is not platform specific but it includes glibconfig.h which is and
667 # is usually installed in a non-standard path.
669 # Do this before enabling all the warning flags, as the
670 # AC_LANG_PROGRAM-generated program may generate some warning, which makes this
671 # test fail unnecessarily.
673 # Older versions of the pkg-config macros disallows PKG_* in the autoconf
674 # output. Specifically allow pkg_config_libdir to be able to print the
676 m4_pattern_allow([PKG_CONFIG_LIBDIR])
678 save_CFLAGS=${CFLAGS}
679 CFLAGS="${CFLAGS} ${AM_CFLAGS}"
685 G_STATIC_ASSERT(sizeof(size_t) == GLIB_SIZEOF_SIZE_T);
689 sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T. You probably need to set
690 PKG_CONFIG_LIBDIR to point to the right pkg-config files for your build
694 CFLAGS=${save_CFLAGS}
696 # Detect C and LD warning flags supported by the compiler.
698 [WARN_CFLAGS], dnl CFLAGS variable name
699 [WARN_LDFLAGS], dnl LDFLAGS variable name (unused for now)
701 [], dnl Extra base CFLAGS
702 [ dnl Extra "yes" CFLAGS
703 dnl Disable these flags, either because we don't want them
704 dnl or because we want them but are not ready to enable them
706 -Wno-sign-compare dnl
708 -Wno-declaration-after-statement dnl
710 -Wno-switch-default dnl
712 -Wno-pointer-arith dnl
713 -Wno-format-nonliteral dnl
714 -Wno-double-promotion dnl
717 dnl Some versions of SWIG (like 3.0.12) generate code that produces
718 dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This
719 dnl combo happens on RHEL/Centos 8, for example. Later versions of SWIG (like
720 dnl 4.0.1) have the correct function signatures to not produce this warning.
721 dnl It's simpler to just disable the warning globally.
723 dnl Note that the Debian/Ubuntu SWIG package 3.0.12-2 contains a local patch to
724 dnl fix this (python-fix-function-cast-warnings.patch), so you won't be able to
725 dnl reproduce the warning using that package.
727 dnl Ref: https://github.com/swig/swig/issues/1259
728 -Wno-cast-function-type dnl
731 # CFLAGS from AX_COMPILER_FLAGS.
732 AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
734 # The test used in AX_COMPILER_FLAGS, generated using AC_LANG_PROGRAM, is
735 # written in such a way that it triggers a -Wold-style-definition warning. So
736 # if the user has -Werror in their CFLAGS, that warning flag will end up
737 # disabled, because the test program will not build.
739 # Enable it here unconditionally. It is supported by GCC >= 4.8 and by Clang
740 # (it is accepted for compatibility although it has no effect), and there is
741 # not reason to not want it.
743 AM_CFLAGS="${AM_CFLAGS} -Wold-style-definition"
745 # We want this one to always be an error.
746 AM_CFLAGS="${AM_CFLAGS} -Werror=implicit-function-declaration"
748 # Done for AM_CFLAGS.
751 # Set global CPPFLAGS in AM_CPPFLAGS
752 AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h"
753 AC_SUBST(AM_CPPFLAGS)
755 # Add glib to global link libs
756 LIBS="$LIBS $GLIB_LIBS"
758 # Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
759 # to rename babeltrace2.bin to babeltrace2 at install time.
760 program_transform_name="s&babeltrace2\.bin&babeltrace2&;$program_transform_name"
761 AC_SUBST(program_transform_name)
765 doc/api/libbabeltrace2/Doxyfile
766 doc/api/libbabeltrace2/Makefile
767 doc/bindings/Makefile
768 doc/bindings/python/Makefile
769 doc/contributing-images/Makefile
771 doc/man/asciidoc-attrs.conf
776 src/autodisc/Makefile
777 src/babeltrace2-ctf-writer.pc
779 src/bindings/Makefile
780 src/bindings/python/bt2/bt2/version.py
781 src/bindings/python/bt2/Makefile
782 src/bindings/python/bt2/setup.py
783 src/bindings/python/Makefile
788 src/ctf-writer/Makefile
789 src/fd-cache/Makefile
790 src/lib/graph/Makefile
791 src/lib/graph/message/Makefile
793 src/lib/plugin/Makefile
794 src/lib/prio-heap/Makefile
795 src/lib/trace-ir/Makefile
798 src/plugins/common/Makefile
799 src/plugins/common/muxing/Makefile
800 src/plugins/common/param-validation/Makefile
801 src/plugins/ctf/common/bfcr/Makefile
802 src/plugins/ctf/common/Makefile
803 src/plugins/ctf/common/metadata/Makefile
804 src/plugins/ctf/common/msg-iter/Makefile
805 src/plugins/ctf/fs-sink/Makefile
806 src/plugins/ctf/fs-src/Makefile
807 src/plugins/ctf/lttng-live/Makefile
808 src/plugins/ctf/Makefile
809 src/plugins/lttng-utils/debug-info/Makefile
810 src/plugins/lttng-utils/Makefile
812 src/plugins/text/dmesg/Makefile
813 src/plugins/text/Makefile
814 src/plugins/text/pretty/Makefile
815 src/plugins/text/details/Makefile
816 src/plugins/utils/counter/Makefile
817 src/plugins/utils/dummy/Makefile
818 src/plugins/utils/Makefile
819 src/plugins/utils/muxer/Makefile
820 src/plugins/utils/trimmer/Makefile
821 src/py-common/Makefile
822 src/python-plugin-provider/Makefile
823 src/param-parse/Makefile
824 src/string-format/Makefile
825 tests/bitfield/Makefile
826 tests/ctf-writer/Makefile
828 tests/lib/test-plugin-plugins/Makefile
830 tests/param-validation/Makefile
831 tests/plugins/Makefile
832 tests/plugins/src.ctf.fs/Makefile
833 tests/plugins/src.ctf.fs/succeed/Makefile
834 tests/plugins/sink.ctf.fs/Makefile
835 tests/plugins/sink.ctf.fs/succeed/Makefile
836 tests/plugins/flt.lttng-utils.debug-info/Makefile
837 tests/plugins/flt.utils.muxer/Makefile
838 tests/plugins/flt.utils.muxer/succeed/Makefile
839 tests/plugins/flt.utils.trimmer/Makefile
841 tests/utils/tap/Makefile
847 # Mini-report on what will be built.
856 AS_IF([test -n "bt_version_name"], [
857 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION \"bt_version_name\"$PPRINT_COLOR_RST")
859 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION")
864 AS_IF([test -n "$bt_version_description"], [
865 AS_IF([test -n "$report_fold"], [
866 AS_ECHO("`AS_ECHO("$bt_version_description") | $report_fold -s`")
868 AS_ECHO("$bt_version_description")
874 PPRINT_SUBTITLE([System])
876 # Target architecture we're building for.
877 target_arch=$host_cpu
880 if test $f = "-m32"; then
882 elif test $f = "-m64"; then
888 PPRINT_PROP_STRING([Target architecture], $target_arch)
891 PPRINT_SUBTITLE([Python 3 language support])
892 test "x$have_python" = "xyes" && value=1 || value=0
893 PPRINT_PROP_BOOL([Have Python interpreter], $value)
894 test "x$have_python_dev" = "xyes" && value=1 || value=0
895 PPRINT_PROP_BOOL([Have Python development libraries], $value)
896 test "x$enable_python_bindings" = "xyes" && value=1 || value=0
897 PPRINT_PROP_BOOL([Python bindings], $value)
898 test "x$enable_python_plugins" = "xyes" && value=1 || value=0
899 PPRINT_PROP_BOOL([Python plugin support], $value)
900 AS_IF([test "x$have_python" = "xyes"], [
901 PPRINT_PROP_STRING([Python interpreter path], [$PYTHON])
903 AS_IF([test "x$have_python_dev" = "xyes"], [
904 PPRINT_PROP_STRING([python-config path], [$PYTHON_CONFIG])
905 PPRINT_PROP_STRING([Python include paths], [$PYTHON_INCLUDE])
906 PPRINT_PROP_STRING([Python linker flags], [$PYTHON_LDFLAGS])
908 AS_IF([test "x$enable_python_bindings" = "xyes"], [
909 PPRINT_PROP_STRING([SWIG executable], [$SWIG])
910 PPRINT_PROP_STRING([SWIG library], [$SWIG_LIB])
914 PPRINT_SUBTITLE([Plugins])
915 PPRINT_PROP_BOOL(['ctf' plugin], 1)
916 test "x$enable_debug_info" = "xyes" && value=1 || value=0
917 PPRINT_PROP_BOOL(['lttng-utils' plugin], $value)
918 PPRINT_PROP_BOOL(['text' plugin], 1)
919 PPRINT_PROP_BOOL(['utils' plugin], 1)
922 PPRINT_SUBTITLE([Built-in features])
923 test "x$enable_built_in_plugins" = "xyes" && value=1 || value=0
924 PPRINT_PROP_BOOL([Built-in plugins], $value)
925 test "x$enable_built_in_python_plugin_support" = "xyes" && value=1 || value=0
926 PPRINT_PROP_BOOL([Built-in Python plugin support], $value)
929 PPRINT_SUBTITLE([Documentation])
931 # man pages build enabled/disabled
932 m4_pushdef([build_man_pages_msg], [Build and install man pages])
934 AS_IF([test "x$enable_man_pages" != "xno"], [
935 AS_IF([test "x$in_git_repo" = "xyes"], [
936 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
938 AS_IF([test "x$have_asciidoc_xmlto" = "xyes"], [
939 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
941 PPRINT_PROP_STRING([build_man_pages_msg],
942 [${PPRINT_COLOR_BLDGRN}yes (already built)],
943 $PPRINT_COLOR_SUBTITLE)
947 PPRINT_PROP_BOOL([build_man_pages_msg], 0)
950 m4_popdef([build_man_pages_msg])
952 test "x$enable_api_doc" = "xyes" && value=1 || value=0
953 PPRINT_PROP_BOOL([HTML API documentation], $value)
954 test "x$enable_python_bindings_doc" = "xyes" && value=1 || value=0
955 PPRINT_PROP_BOOL([Python bindings documentation], $value)
958 PPRINT_SUBTITLE([Logging])
959 PPRINT_PROP_STRING([Minimal log level], $BABELTRACE_MINIMAL_LOG_LEVEL)
962 PPRINT_SUBTITLE([Special build modes])
963 PPRINT_PROP_BOOL([Debug mode], $BABELTRACE_DEBUG_MODE)
964 PPRINT_PROP_BOOL([Developer mode], $BABELTRACE_DEV_MODE)
966 report_bindir="`eval eval echo $bindir`"
967 report_libdir="`eval eval echo $libdir`"
968 report_sysconfdif="`eval eval echo $sysconfdir`"
969 report_pluginsdir="`eval eval eval echo $BABELTRACE_PLUGINS_DIR`"
970 report_pluginprovidersdir="`eval eval eval echo $BABELTRACE_PLUGIN_PROVIDERS_DIR`"
972 # Print the bindir and libdir this `make install' will install into.
974 PPRINT_SUBTITLE([Install directories])
975 PPRINT_PROP_STRING([Binaries], [$report_bindir])
976 PPRINT_PROP_STRING([Libraries], [$report_libdir])
977 PPRINT_PROP_STRING([Plugins], [$report_pluginsdir])
978 PPRINT_PROP_STRING([Plugin providers], [$report_pluginprovidersdir])
979 PPRINT_PROP_STRING([Configuration], [$report_sysconfdif])