m4_define([bt_version_major], [2])
m4_define([bt_version_minor], [0])
m4_define([bt_version_patch], [0])
-m4_define([bt_version_extra], [-pre6])
+m4_define([bt_version_extra], [-rc2])
m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_extra)
AC_INIT([babeltrace], bt_version, [jeremie dot galarneau at efficios dot com], [], [https://efficios.com/babeltrace/])
## Automake base setup ##
## ##
-AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc])
+AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc])
AM_MAINTAINER_MODE([enable])
# Enable silent rules if available (Introduced in AM 1.11)
# Check what libraries are required on this platform to link sockets programs.
AX_LIB_SOCKET_NSL
-# Check for glib >= 2.22 with gmodule support
-AM_PATH_GLIB_2_0([2.22.0], [],
- AC_MSG_ERROR([glib >= 2.22 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
+# Check for glib >= 2.28 with gmodule support
+AM_PATH_GLIB_2_0([2.28.0], [],
+ AC_MSG_ERROR([glib >= 2.28 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
[gmodule-no-export]
)
[AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_POSIX_FALLOCATE], 1, [Has posix_fallocate support.])]
)
-# Check libpopt
-PKG_CHECK_MODULES([POPT], [popt],
- [
- dnl PKG_CHECK_MODULES defines POPT_LIBS
- ],
- [
- AC_MSG_WARN([pkg-config was unable to find a valid .pc for libpopt. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
- AC_MSG_WARN([Finding libpopt without pkg-config.])
- AC_CHECK_LIB([popt],
- [poptGetContext],
- [POPT_LIBS="-lpopt"],
- [
- AC_MSG_FAILURE([Cannot find libpopt. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
- ]
- )
- ]
-)
-AC_SUBST(POPT_LIBS)
-
-
## ##
## User variables ##
## ##
AC_SUBST(LIBDIR)
-
-# Set global CFLAGS in AM_CFLAGS
-AM_CFLAGS="-Wall -Wformat -Werror=implicit-function-declaration $PTHREAD_CFLAGS $GLIB_CFLAGS"
-AC_SUBST(AM_CFLAGS)
-
-# Set global CPPFLAGS in AM_CPPFLAGS
-AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h"
-AC_SUBST(AM_CPPFLAGS)
-
-# Add glib to global link libs
-LIBS="$LIBS $GLIB_LIBS"
+# CFLAGS from libraries (the glib ones are needed for the following sizeof
+# test).
+AM_CFLAGS="${PTHREAD_CFLAGS} ${GLIB_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
# glib.h is not platform specific but it includes glibconfig.h which is and
# is usually installed in a non-standard path.
+# Do this before enabling all the warning flags, as the
+# AC_LANG_PROGRAM-generated program may generate some warning, which makes this
+# test fail unnecessarily.
+
# Older versions of the pkg-config macros disallows PKG_* in the autoconf
# output. Specifically allow pkg_config_libdir to be able to print the
# error message.
])
CFLAGS=${save_CFLAGS}
+# Detect C and LD warning flags supported by the compiler.
+AX_COMPILER_FLAGS(
+ [WARN_CFLAGS], dnl CFLAGS variable name
+ [WARN_LDFLAGS], dnl LDFLAGS variable name (unused for now)
+ [], dnl is-release
+ [], dnl Extra base CFLAGS
+ [ dnl Extra "yes" CFLAGS
+ dnl Disable these flags, either because we don't want them
+ dnl or because we want them but are not ready to enable them
+ dnl yet.
+ -Wno-sign-compare dnl
+ -Wno-inline dnl
+ -Wno-declaration-after-statement dnl
+ -Wno-switch-enum dnl
+ -Wno-switch-default dnl
+ -Wno-packed dnl
+ -Wno-pointer-arith dnl
+ -Wno-format-nonliteral dnl
+ -Wno-double-promotion dnl
+ -Wno-cast-align dnl
+ dnl
+ dnl Some versions of SWIG (like 3.0.12) generate code that produces
+ dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This
+ dnl combo happens on RHEL/Centos 8, for example. Later versions of SWIG (like
+ dnl 4.0.1) have the correct function signatures to not produce this warning.
+ dnl It's simpler to just disable the warning globally.
+ dnl
+ dnl Note that the Debian/Ubuntu SWIG package 3.0.12-2 contains a local patch to
+ dnl fix this (python-fix-function-cast-warnings.patch), so you won't be able to
+ dnl reproduce the warning using that package.
+ dnl
+ dnl Ref: https://github.com/swig/swig/issues/1259
+ -Wno-cast-function-type dnl
+ ])
+
+# CFLAGS from AX_COMPILER_FLAGS.
+AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
+
+# The test used in AX_COMPILER_FLAGS, generated using AC_LANG_PROGRAM, is
+# written in such a way that it triggers a -Wold-style-definition warning. So
+# if the user has -Werror in their CFLAGS, that warning flag will end up
+# disabled, because the test program will not build.
+#
+# Enable it here unconditionally. It is supported by GCC >= 4.8 and by Clang
+# (it is accepted for compatibility although it has no effect), and there is
+# not reason to not want it.
+
+AM_CFLAGS="${AM_CFLAGS} -Wold-style-definition"
+
+# We want this one to always be an error.
+AM_CFLAGS="${AM_CFLAGS} -Werror=implicit-function-declaration"
+
+# Done for AM_CFLAGS.
+AC_SUBST(AM_CFLAGS)
+
+# Set global CPPFLAGS in AM_CPPFLAGS
+AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h"
+AC_SUBST(AM_CPPFLAGS)
+
+# Add glib to global link libs
+LIBS="$LIBS $GLIB_LIBS"
+
# Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
# to rename babeltrace2.bin to babeltrace2 at install time.
-program_transform_name="s&babeltrace2\.bin&babeltrace2&;s&babeltrace2-log\.bin&babeltrace2-log&;$program_transform_name"
+program_transform_name="s&babeltrace2\.bin&babeltrace2&;$program_transform_name"
AC_SUBST(program_transform_name)
AC_CONFIG_FILES([
doc/man/Makefile
include/Makefile
Makefile
+ src/argpar/Makefile
+ src/autodisc/Makefile
src/babeltrace2-ctf-writer.pc
src/babeltrace2.pc
src/bindings/Makefile
src/lib/trace-ir/Makefile
src/logging/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/utils/trimmer/Makefile
src/py-common/Makefile
src/python-plugin-provider/Makefile
+ src/param-parse/Makefile
tests/bitfield/Makefile
tests/ctf-writer/Makefile
+ tests/argpar/Makefile
tests/lib/Makefile
tests/lib/test-plugin-plugins/Makefile
tests/Makefile
+ tests/param-validation/Makefile
tests/plugins/Makefile
tests/plugins/src.ctf.fs/Makefile
tests/plugins/src.ctf.fs/succeed/Makefile
tests/plugins/sink.ctf.fs/Makefile
tests/plugins/sink.ctf.fs/succeed/Makefile
tests/plugins/flt.lttng-utils.debug-info/Makefile
+ tests/plugins/flt.utils.muxer/Makefile
+ tests/plugins/flt.utils.muxer/succeed/Makefile
tests/plugins/flt.utils.trimmer/Makefile
tests/utils/Makefile
tests/utils/tap/Makefile