X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=configure.ac;h=7808ef451ba5440398b9cc8784809f9cecb48efd;hp=ea652c734c737d28259147fb20f4d3af4103e7a9;hb=e97fe75eac59fc39a6e4f3c4f9f3301835a0315e;hpb=8b305066676fc7aa433e8eb668f9de8802008025 diff --git a/configure.ac b/configure.ac index ea652c73..7808ef45 100644 --- a/configure.ac +++ b/configure.ac @@ -1,30 +1,14 @@ -dnl Process this file with autoconf to produce a configure script. -dnl -dnl Copyright (c) 2017 EfficiOS, Inc. -dnl -dnl Permission is hereby granted, free of charge, to any person obtaining a copy -dnl of this software and associated documentation files (the "Software"), to deal -dnl in the Software without restriction, including without limitation the rights -dnl to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -dnl copies of the Software, and to permit persons to whom the Software is -dnl furnished to do so, subject to the following conditions: +dnl SPDX-License-Identifier: MIT dnl -dnl The above copyright notice and this permission notice shall be included in -dnl all copies or substantial portions of the Software. +dnl Copyright (C) 2017 EfficiOS, Inc. dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -dnl AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -dnl OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -dnl SOFTWARE. +dnl Process this file with autoconf to produce a configure script. ## ## ## Autoconf base setup ## ## ## -AC_PREREQ([2.50]) +AC_PREREQ([2.69]) m4_define([bt_version_major], [2]) m4_define([bt_version_minor], [1]) @@ -33,8 +17,7 @@ m4_define([bt_version_dev_stage], [-rc1]) m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_dev_stage) m4_define([bt_version_name], []) -AC_INIT([babeltrace2], bt_version, [jeremie dot galarneau at efficios dot com], [], [https://efficios.com/babeltrace/]) -AC_PROG_SED +AC_INIT([babeltrace2],[bt_version],[jeremie dot galarneau at efficios dot com],[],[https://efficios.com/babeltrace/]) # Following the numbering scheme proposed by libtool for the library version # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html @@ -42,9 +25,8 @@ m4_define([bt_lib_version_current], [0]) m4_define([bt_lib_version_revision], [0]) m4_define([bt_lib_version_age], [0]) m4_define([bt_lib_version], bt_lib_version_current[:]bt_lib_version_revision[:]bt_lib_version_age) - -bt_version_description="" -bt_version_description_c_safe=$(echo $bt_version_description | $SED 's/"/\\"/g') +m4_define([bt_version_description], []) +m4_define([bt_version_description_c_safe], AS_ESCAPE(bt_version_description)) AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_lib_version) @@ -57,7 +39,7 @@ AC_DEFINE([BT_VERSION_MINOR], bt_version_minor, [Babeltrace minor version]) AC_DEFINE([BT_VERSION_PATCH], bt_version_patch, [Babeltrace patch version]) AC_DEFINE([BT_VERSION_DEV_STAGE], ["]bt_version_dev_stage["], [Babeltrace version development stage (can be empty)]) AC_DEFINE([BT_VERSION_NAME], ["]bt_version_name["], [Babeltrace version name]) -AC_DEFINE_UNQUOTED([BT_VERSION_DESCRIPTION], ["$bt_version_description_c_safe"], [Babeltrace version description]) +AC_DEFINE([BT_VERSION_DESCRIPTION], ["]bt_version_description_c_safe["], [Babeltrace version description]) AC_CANONICAL_TARGET AC_CANONICAL_HOST @@ -67,11 +49,11 @@ AC_CANONICAL_HOST ## Automake base setup ## ## ## -AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc]) +AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc -Wall -Wno-portability -Werror]) AM_MAINTAINER_MODE([enable]) -# Enable silent rules if available (Introduced in AM 1.11) -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +# Enable silent rules by default +AM_SILENT_RULES([yes]) ## ## @@ -107,14 +89,15 @@ AC_SUBST(LT_NO_UNDEFINED) ## C compiler checks ## ## ## -AC_USE_SYSTEM_EXTENSIONS -AC_SYS_LARGEFILE - # Choose the c compiler -AC_PROG_CC +AC_PROG_CC_STDC # Make sure the c compiler supports C99 -AC_PROG_CC_C99([], [AC_MSG_ERROR([The compiler does not support C99])]) +AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])]) + +# Enable available system extensions and LFS support +AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE # Make sure the c compiler supports __attributes__ AX_C___ATTRIBUTE__ @@ -188,17 +171,16 @@ AX_CHECK_LINK_FLAG([-Wl,--whole-archive,--no-whole-archive], ] ) -# Initialize and configure libtool -LT_INIT([win32-dll]) - ## ## ## Programs checks ## ## ## +AM_PROG_AR AC_PROG_MAKE_SET AC_PROG_MKDIR_P AC_PROG_LN_S +AC_PROG_SED AC_PATH_PROG([report_fold], [fold]) # set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file @@ -248,6 +230,9 @@ detection. ]) AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"]) +# Initialize and configure libtool +LT_INIT([win32-dll]) + ## ## ## Library checks ## @@ -346,6 +331,7 @@ AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer m AS_IF([test "x$BABELTRACE_DEV_MODE" = x1], [ AC_DEFINE([BT_DEV_MODE], 1, [Babeltrace developer mode]) ], [BABELTRACE_DEV_MODE=0]) +AM_CONDITIONAL([DEV_MODE], [test "x$BABELTRACE_DEV_MODE" = x1]) # BABELTRACE_DEBUG_MODE: AC_ARG_VAR([BABELTRACE_DEBUG_MODE], [Set to 1 to enable the Babeltrace debug mode (enables internal assertions for Babeltrace maintainers)]) @@ -361,22 +347,30 @@ AS_IF([test "x$BABELTRACE_DEBUG_MODE" = x1], [ # Python bindings # Disabled by default AC_ARG_ENABLE([python-bindings], - [AC_HELP_STRING([--enable-python-bindings], [build the Python bindings])], + [AS_HELP_STRING([--enable-python-bindings],[build the Python bindings])], [], dnl AC_ARG_ENABLE will fill enable_python_bindings with the user choice [enable_python_bindings=unspecified] ) +# Python bindings documentation +# Disabled by default +AC_ARG_ENABLE([python-bindings-doc], + [AS_HELP_STRING([--enable-python-bindings-doc],[build the Python bindings documentation])], + [], dnl AC_ARG_ENABLE will fill enable_python_bindings_doc with the user choice + [enable_python_bindings_doc=no] +) + # Python plugins # Disabled by default AC_ARG_ENABLE([python-plugins], - [AC_HELP_STRING([--enable-python-plugins], [enable the Python plugins support for the library and converter])] + [AS_HELP_STRING([--enable-python-plugins],[enable the Python plugins support for the library and converter])] dnl AC_ARG_ENABLE will fill enable_python_plugins with the user choice ) # Debug info # Enabled by default, except on some platforms AC_ARG_ENABLE([debug-info], - [AC_HELP_STRING([--disable-debug-info], [disable the debug info support (default on macOS, Solaris and Windows)])], + [AS_HELP_STRING([--disable-debug-info],[disable the debug info support (default on macOS, Solaris and Windows)])], [], dnl AC_ARG_ENABLE will fill enable_debug_info with the user choice [enable_debug_info="$DEFAULT_ENABLE_DEBUG_INFO"] ) @@ -384,21 +378,21 @@ AC_ARG_ENABLE([debug-info], # API documentation # Disabled by default AC_ARG_ENABLE([api-doc], - [AC_HELP_STRING([--enable-api-doc], [build the HTML API documentation])], + [AS_HELP_STRING([--enable-api-doc],[build the HTML API documentation])], [enable_api_doc=$enableval] ) # Built-in plugins # Disabled by default AC_ARG_ENABLE([built-in-plugins], - [AC_HELP_STRING([--enable-built-in-plugins], [Statically-link in-tree plug-ins into the babeltrace2 executable])] + [AS_HELP_STRING([--enable-built-in-plugins],[Statically-link in-tree plug-ins into the babeltrace2 executable])] dnl AC_ARG_ENABLE will fill enable_built_in_plugins with the user choice ) # Built-in python plugin support # Disabled by default AC_ARG_ENABLE([built-in-python-plugin-support], - [AC_HELP_STRING([--enable-built-in-python-plugin-support], [Statically-link Python plugin support into the babeltrace library])] + [AS_HELP_STRING([--enable-built-in-python-plugin-support],[Statically-link Python plugin support into the babeltrace library])] dnl AC_ARG_ENABLE will fill enable_built_in_python_plugin_support with the user choice ) @@ -413,6 +407,7 @@ AC_ARG_ENABLE([man-pages], # Set automake variables for optionnal feature conditionnals in Makefile.am AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], [test "x$enable_python_bindings" = xyes]) +AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], [test "x$enable_python_bindings_doc" = xyes]) AM_CONDITIONAL([ENABLE_PYTHON_PLUGINS], [test "x$enable_python_plugins" = xyes]) AM_CONDITIONAL([ENABLE_DEBUG_INFO], [test "x$enable_debug_info" = xyes]) AM_CONDITIONAL([ENABLE_API_DOC], [test "x$enable_api_doc" = xyes]) @@ -423,15 +418,6 @@ AM_CONDITIONAL([ENABLE_PYTHON_COMMON_DEPS], [test "x$enable_python_bindings" = x # Set defines for optionnal features conditionnals in the source code -## jgalar: still used? -AS_IF([test "x$enable_python_plugins" = xyes], - [AC_DEFINE([PYTHON_PLUGINS], [1], [Python plugin support.])] -) - -AS_IF([test "x$enable_debug_info" = xyes], - [AC_DEFINE([ENABLE_DEBUG_INFO], [1], [Define to 1 if you enable the 'debug info' feature])] -) - AS_IF([test "x$enable_built_in_plugins" = xyes], [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])] ) @@ -543,15 +529,29 @@ AS_IF([test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" ]) ]) -AS_IF([test "x$enable_debug_info" = xyes], +AS_IF([test "x$enable_python_bindings_doc" = xyes], [ - # Check if libelf and libdw are present - 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.)]) - 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.)]) - 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.)]) - ELFUTILS_LIBS="-lelf -ldw" + AM_CHECK_PYTHON_SPHINX([PYTHON]) + AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno], [ + AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation]) + ]) + + AS_IF([test "x$enable_python_bindings" != xyes], [ + AC_MSG_ERROR([The Python bindings are required to build their documentation]) + ]) ] ) + +AS_IF([test "x$enable_debug_info" = xyes], [ + # Check if libelf and libdw are present + PKG_CHECK_MODULES([ELFUTILS], [libelf >= 0.154 libdw >= 0.154], + [ + dnl PKG_CHECK_MODULES defines ELFUTILS_LIBS + ], + [ + AC_MSG_ERROR([elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.]) + ]) +]) AC_SUBST([ELFUTILS_LIBS]) AS_IF([test "x$enable_api_doc" = "xyes"], @@ -668,7 +668,6 @@ CFLAGS=${save_CFLAGS} AX_APPEND_COMPILE_FLAGS([ dnl -Wall dnl -Wextra dnl - -Wstrict-prototypes dnl -Wmissing-prototypes dnl -Wmissing-declarations dnl -Wnull-dereference dnl @@ -681,7 +680,6 @@ AX_APPEND_COMPILE_FLAGS([ dnl -Wnested-externs dnl -Wwrite-strings dnl -Wformat=2 dnl - -Wno-format-nonliteral dnl -Wstrict-aliasing dnl -Wmissing-noreturn dnl -Winit-self dnl @@ -717,15 +715,13 @@ AS_IF([test "x$enable_Werror" = "xyes"], ) # The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is -# written in such a way that it triggers a -Wold-style-definition warning. So -# this warning always ends up disabled if we put it there, because the test -# program does not build. +# written in such a way that it triggers warnings with the following warning +# flags. So they would always end up disabled if we put them there, because +# the test program would 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. - -WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition" +# Enable them here unconditionally. They are supported by GCC >= 4.8 and by +# Clang >= 4.0. +WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes" # CFLAGS from AX_APPEND_COMPILE_FLAGS. AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}" @@ -749,6 +745,8 @@ AC_CONFIG_FILES([ doc/api/Makefile doc/api/libbabeltrace2/Doxyfile doc/api/libbabeltrace2/Makefile + doc/bindings/Makefile + doc/bindings/python/Makefile doc/contributing-images/Makefile doc/Makefile doc/man/asciidoc-attrs.conf @@ -809,6 +807,7 @@ AC_CONFIG_FILES([ tests/ctf-writer/Makefile tests/lib/Makefile tests/lib/test-plugin-plugins/Makefile + tests/lib/conds/Makefile tests/Makefile tests/param-validation/Makefile tests/plugins/Makefile @@ -820,6 +819,7 @@ AC_CONFIG_FILES([ tests/plugins/flt.utils.muxer/Makefile tests/plugins/flt.utils.muxer/succeed/Makefile tests/plugins/flt.utils.trimmer/Makefile + tests/plugins/sink.text.pretty/Makefile tests/utils/Makefile tests/utils/tap/Makefile ]) @@ -844,11 +844,11 @@ AS_IF([test -n "bt_version_name"], [ AS_ECHO -AS_IF([test -n "$bt_version_description"], [ +AS_IF([test -n "bt_version_description"], [ AS_IF([test -n "$report_fold"], [ - AS_ECHO("`AS_ECHO("$bt_version_description") | $report_fold -s`") + AS_ECHO("`AS_ECHO("bt_version_description") | $report_fold -s`") ], [ - AS_ECHO("$bt_version_description") + AS_ECHO("bt_version_description") ]) AS_ECHO @@ -934,6 +934,8 @@ m4_popdef([build_man_pages_msg]) test "x$enable_api_doc" = "xyes" && value=1 || value=0 PPRINT_PROP_BOOL_CUSTOM([HTML API documentation], $value, [To build documentation, use --enable-api-doc]) +test "x$enable_python_bindings_doc" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL_CUSTOM([Python bindings documentation], $value, [To build the Python bindings documentation, use --enable-python-bindings-doc]) AS_ECHO PPRINT_SUBTITLE([Logging])