X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=0a7034e24eaaffd9f1c679b4eac896da18193045;hp=84992244cc2c90155c99812acc0e06d35a258a72;hb=d30b2041e3a5db2d1671219ea845057cb3dd3082;hpb=7659d4907b24d257f56efb5d666f59a7434dcd3d diff --git a/configure.ac b/configure.ac index 84992244c..0a7034e24 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.64]) -AC_INIT([lttng-tools],[2.9.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) +AC_INIT([lttng-tools],[2.10.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) AC_CONFIG_HEADERS([include/config.h]) AC_CONFIG_AUX_DIR([config]) @@ -65,6 +65,16 @@ CC="$PTHREAD_CC" AX_LIB_SOCKET_NSL +LT_NO_UNDEFINED="" +AS_CASE([$host_os], + [cygwin*], + [ + LT_NO_UNDEFINED="-no-undefined" + ] +) + +AC_SUBST(LT_NO_UNDEFINED) + # Compute minor/major/patchlevel version numbers major_version=$(echo AC_PACKAGE_VERSION | $SED 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/') minor_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/') @@ -127,6 +137,10 @@ AC_CHECK_FUNCS([ \ strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \ ]) +# Check if clock_gettime, timer_create, timer_settime, and timer_delete are available in lib rt, and if so, +# add -lrt to LIBS +AC_CHECK_LIB([rt], [clock_gettime, timer_create, timer_settime, timer_delete]) + # Babeltrace viewer check AC_ARG_WITH([babeltrace-bin], AS_HELP_STRING([--with-babeltrace-bin], @@ -265,6 +279,29 @@ _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_CONTROL_BIND_ADDRESS], [0.0.0.0]) _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_DATA_BIND_ADDRESS], [0.0.0.0]) _AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_VIEWER_BIND_ADDRESS], [localhost]) +# Command short descriptions +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_CONTEXT], [Add context fields to a channel]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create a tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DESTROY], [Tear down tracing sessions]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_CHANNEL], [Disable tracing channels]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_EVENT], [Disable event rules]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_CHANNEL], [Create or enable tracing channels]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_EVENT], [Create or enable event rules]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_HELP], [Display help information about a command]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List tracing sessions, domains, channels, and events]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LOAD], [Load tracing session configurations]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REGENERATE], [Manage an LTTng tracing session's data regeneration]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SAVE], [Save tracing session configurations]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SET_SESSION], [Set current tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Snapshot buffers of current tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_START], [Start tracing]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STATUS], [Get the status of the current tracing session]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STOP], [Stop tracing]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Track specific system resources]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Untrack specific system resources]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VERSION], [Show version information]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VIEW], [Start trace viewer]) + if test "x$prefix" = "xNONE"; then prefix=$ac_default_prefix fi @@ -296,23 +333,30 @@ PKG_CHECK_MODULES([POPT], [popt], ] ) -AM_PATH_XML2(2.7.6, true, AC_MSG_ERROR(No supported version of libxml2 found.)) +PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6]) -# Check for libuuid +# Check for uuid in system libs +AC_CHECK_FUNCS([uuid_generate], +[ + AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) + link_with_libuuid=no +], +[ +# First, check the pkg-config module is available, otherwise explicitly check +# for libuuid, or uuid support in the C-library. PKG_CHECK_MODULES([UUID], [uuid], [ LIBS="$LIBS $UUID_LIBS" AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) - have_libuuid=yes + link_with_libuuid=yes ], [ - AC_MSG_WARN([pkg-config was unable to find a valid .pc for libuuid. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location]) - AC_MSG_WARN([Finding libuuid without pkg-config.]) + # Check for libuuid AC_CHECK_LIB([uuid], [uuid_generate], [ AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) - have_libuuid=yes + link_with_libuuid=yes ], [ # libuuid not found, check for uuid_create in libc. @@ -320,7 +364,7 @@ PKG_CHECK_MODULES([UUID], [uuid], [uuid_create], [ AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) - have_libc_uuid=yes + link_with_libc_uuid=yes ], [ AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location]) @@ -329,8 +373,12 @@ PKG_CHECK_MODULES([UUID], [uuid], ] ) ]) -AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"]) -AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"]) +]) + +AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$link_with_libuuid" = "xyes"]) +AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$link_with_libc_uuid" = "xyes"]) + +AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])]) # URCU library version needed or newer m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.8.0 is needed]) @@ -370,7 +418,7 @@ AC_ARG_WITH(kmod-prefix, AC_ARG_ENABLE(kmod, AS_HELP_STRING([--disable-kmod],[build without kmod support]), - kmod_support=zz$enableval, kmod_support=yes) + kmod_support=$enableval, kmod_support=yes) AS_IF([test "x$kmod_support" = "xyes"], [ AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module], @@ -443,6 +491,13 @@ AC_CHECK_LIB([c], [open_memstream], ] ) +# check for libpfm +AC_CHECK_LIB([pfm], [pfm_initialize], + [ + have_libpfm=yes + ]) +AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBPFM], [test "x$have_libpfm" = "xyes"]) + AC_ARG_ENABLE([git-version], [AC_HELP_STRING([--disable-git-version], [Do not use the git version for the build])], @@ -459,11 +514,11 @@ swig_version=2.0.0 AC_ARG_ENABLE([python-bindings], [AC_HELP_STRING([--enable-python-bindings], [compile Python bindings])], - [enable_python_binding=yes], [enable_python_binding=no]) + [enable_python_binding=$enableval], [enable_python_binding=no]) -AM_CONDITIONAL([PYTHON_BINDING], [test "x${enable_python_binding:-yes}" = xyes]) +AM_CONDITIONAL([PYTHON_BINDING], [test "x$enable_python_binding" = xyes]) -if test "x${enable_python_binding:-yes}" = xyes; then +if test "x$enable_python_binding" = xyes; then AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ]) AS_IF([test x$enable_shared = xno], [ AC_MSG_ERROR([Python bindings require shared libraries.]) ]) AM_PATH_PYTHON([3.0]) @@ -559,6 +614,7 @@ AC_ARG_ENABLE( # check for asciidoc and xmlto if we enabled building the man pages have_asciidoc_xmlto=no +warn_prebuilt_man_pages=no AS_IF([test "x$man_pages_opt" = "xyes"], [ AC_PATH_PROG([ASCIIDOC], [asciidoc], [no]) @@ -571,7 +627,7 @@ AS_IF([test "x$man_pages_opt" = "xyes"], [ # thus asciidoc/xmlto are required because we were asked # to build the man pages AC_MSG_ERROR([ -Both asciidoc and xmlto are needed to build the LTTng man pages. Use +You need asciidoc and xmlto to build the LTTng-tools man pages. Use --disable-man-pages to disable building the man pages, in which case they will not be installed. ]) @@ -579,13 +635,7 @@ they will not be installed. # only warn here: since we're in the tarball, the man # pages should already be generated at this point, thus # asciidoc/xmlto are not strictly required - AC_MSG_WARN([ -Both asciidoc and xmlto are needed to build the LTTng man pages. Note -that the man pages are already built in this distribution tarball, so -asciidoc and xmlto are only needed if you intend to modify their -sources. Use --disable-man-pages to completely disable building -and installing the man pages. - ]) + warn_prebuilt_man_pages=yes ]) ], [ have_asciidoc_xmlto=yes @@ -597,6 +647,8 @@ and installing the man pages. AM_CONDITIONAL([MAN_PAGES_OPT], [test "x$man_pages_opt" != "xno"]) AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"]) +AC_DEFINE_UNQUOTED([MANPATH], ["`eval eval echo $mandir`"], [Path to man pages.]) + # Python agent test UST_PYTHON_AGENT="lttngust" @@ -907,6 +959,7 @@ AC_CONFIG_FILES([ Makefile doc/Makefile doc/man/Makefile + doc/man/asciidoc-attrs.conf include/Makefile extras/Makefile extras/bindings/Makefile @@ -950,10 +1003,12 @@ AC_CONFIG_FILES([ tests/regression/tools/live/Makefile tests/regression/tools/exclusion/Makefile tests/regression/tools/save-load/Makefile + tests/regression/tools/save-load/configuration/Makefile tests/regression/tools/mi/Makefile tests/regression/tools/wildcard/Makefile tests/regression/tools/crash/Makefile - tests/regression/tools/metadata-regen/Makefile + tests/regression/tools/regen-metadata/Makefile + tests/regression/tools/regen-statedump/Makefile tests/regression/ust/Makefile tests/regression/ust/nprocesses/Makefile tests/regression/ust/high-throughput/Makefile @@ -977,9 +1032,12 @@ AC_CONFIG_FILES([ tests/regression/ust/getcpu-override/Makefile tests/regression/ust/clock-override/Makefile tests/regression/ust/type-declarations/Makefile + tests/regression/ust/rotation-destroy-flush/Makefile + tests/regression/ust/blocking/Makefile tests/stress/Makefile tests/unit/Makefile tests/unit/ini_config/Makefile + tests/perf/Makefile tests/utils/Makefile tests/utils/tap/Makefile tests/utils/testapp/Makefile @@ -990,6 +1048,8 @@ AC_CONFIG_FILES([ # Inject variable into python test script. AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod +x tests/regression/ust/python-logging/test_python_logging]) +# Inject LTTNG_TOOLS_BUILD_WITH_LIBPFM variable in test script. +AC_CONFIG_FILES([tests/perf/test_perf_raw],[chmod +x tests/perf/test_perf_raw]) AC_OUTPUT @@ -1084,7 +1144,7 @@ test ! -z "$PYTHON3_AGENT" && value=1 || value=0 PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value) #Python binding enabled/disabled -test "x${enable_python_binding:-yes}" = xyes && value=1 || value=0 +test "x$enable_python_binding" = xyes && value=1 || value=0 AS_ECHO PPRINT_SET_INDENT(0) PPRINT_PROP_BOOL([Python binding], $value, $PPRINT_COLOR_SUBTITLE) @@ -1159,3 +1219,19 @@ AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[ path="$CONSUMERD64_LIBDIR" ]) PPRINT_PROP_STRING([64-bit consumer libraries], [$path]) +PPRINT_SET_INDENT(0) + +AS_IF([test "x$warn_prebuilt_man_pages" = "xyes" ], [ + AS_ECHO + PPRINT_WARN([You need asciidoc and xmlto to build the LTTng-tools man pages. + +Note that the man pages are already built in this distribution tarball, +therefore asciidoc and xmlto are only needed if you intend to modify +their sources. + +Also note that the installed man pages will contain the project's +default command-line option and environment variable values. + +Use --disable-man-pages to completely disable building and installing +the man pages.]) +])