X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=c60e96715b156882a78fd2176bad6a86322e0a07;hp=fa0edc442b7b7f1727ed225d79b57c509006f3f5;hb=14c4262b940630bbb75f68b8c2eaef2b134a62d9;hpb=0a821fdec261e93d1d1987dcc26b31b11a28f125 diff --git a/configure.ac b/configure.ac index fa0edc442..c60e96715 100644 --- a/configure.ac +++ b/configure.ac @@ -8,7 +8,7 @@ AC_CONFIG_MACRO_DIR([m4]) AC_CANONICAL_TARGET AC_CANONICAL_HOST -AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-pax nostdinc]) +AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-pax nostdinc]) AM_MAINTAINER_MODE([enable]) # Enable silent rules if available (Introduced in AM 1.11) @@ -22,12 +22,9 @@ AC_SYS_LARGEFILE AC_PROG_CC AC_PROG_CC_STDC AC_PROG_CXX -rw_PROG_CXX_WORKS +RW_PROG_CXX_WORKS AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"]) -ax_CHECK_SDT_WORKS -AM_CONDITIONAL([SDT_WORKS], [test "x$ax_check_sdt_works" = "xyes"]) - # Checks for programs. AC_PROG_GREP AC_PROG_MAKE_SET @@ -410,6 +407,8 @@ _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Snapshot buffers of current t _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_DISABLE_ROTATION], [Unset a rotation schedule]) +_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a rotation schedule]) _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]) @@ -422,7 +421,7 @@ CONFDIR=`eval echo $sysconfdir` AC_SUBST(CONFDIR) AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_CONFIGDIR],"$CONFDIR", [LTTng system configuration directory.]) -AC_DEFINE_DIR([CONFIG_LTTNG_SYSTEM_DATADIR],[datadir], [LTTng system data directory.]) +AX_DEFINE_DIR([CONFIG_LTTNG_SYSTEM_DATADIR], [datadir], [LTTng system data directory.]) # Check libpopt PKG_CHECK_MODULES([POPT], [popt], @@ -445,48 +444,6 @@ AC_SUBST(POPT_LIBS) PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6]) -# First, check for uuid in system libs -AH_TEMPLATE([LTTNG_HAVE_LIBUUID], [Define if you have libuuid support]) -AC_CHECK_FUNCS([uuid_generate], - [ - AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) - UUID_LIBS="" - ], - [ - # Then, check if the pkg-config module is available, otherwise explicitly check - # for libuuid, or uuid support in the C-library. - PKG_CHECK_MODULES([UUID], [uuid], - [ - AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) - dnl PKG_CHECK_MODULES defines UUID_LIBS - ], - [ - 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.]) - AC_CHECK_LIB([uuid], [uuid_generate], - [ - AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) - UUID_LIBS="-luuid" - ], - [ - # libuuid not found, check for uuid_create in libc. - AC_CHECK_LIB([c], [uuid_create], - [ - AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) - UUID_LIBS="-lc" - ], - [ - AC_MSG_FAILURE([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]) - ] - ) - ] - ) - ] - ) - ] -) -AC_SUBST(UUID_LIBS) - AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])]) # URCU library version needed or newer @@ -557,19 +514,18 @@ AC_ARG_WITH([lttng-ust], [with_lttng_ust=yes] ) -AS_IF([test "x$with_lttng_ust" = "xyes"], - [ - AC_CHECK_LIB([lttng-ust-ctl], [ustctl_recv_channel_from_consumer], - [ - AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1]) - ], - [ - AC_MSG_FAILURE([Cannot find LTTng-UST >= 2.2.x. Use [LDFLAGS]=-Ldir and [CPPFLAGS]=-Idir to specify its location, or specify --without-lttng-ust to build lttng-tools without LTTng-UST support.]) - ], - [-lurcu-common -lurcu-bp -lurcu-cds -lrt -ldl] - ) - ] -) +AS_IF([test "x$with_lttng_ust" = "xyes"], [ + AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1]) + + # Check for liblttng-ust + PKG_CHECK_MODULES([UST], [lttng-ust >= $major_version.$minor_version]) + + # Check for liblttng-ust-ctl + PKG_CHECK_MODULES([UST_CTL], [lttng-ust-ctl >= $major_version.$minor_version]) + + AM_CPPFLAGS="$AM_CPPFLAGS $UST_CFLAGS" +]) + AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$with_lttng_ust" = "xyes"]) @@ -636,6 +592,17 @@ AX_CONFIG_FEATURE( ) AM_CONDITIONAL([COMPAT_EPOLL], [ test "$enable_epoll" = "yes" ]) +AS_IF([test "x$ac_cv_func_dirfd" = "xyes"], + [AX_CONFIG_FEATURE_ENABLE(dirfd)], + [AX_CONFIG_FEATURE_DISABLE(dirfd)] +) +AX_CONFIG_FEATURE( + [dirfd], [Use directory file descriptors], + [COMPAT_DIRFD], [This platform supports directory file descriptors.], + [enable_dirfd="yes"], [enable_dirfd="no"] +) +AM_CONDITIONAL([COMPAT_DIRFD], [ test "$enable_dirfd" = "yes" ]) + AM_CONDITIONAL([TEST_JAVA_JUL_AGENT], [test "x$test_java_agent_jul" = "xyes"]) AM_CONDITIONAL([TEST_JAVA_LOG4J_AGENT], [test "x$test_java_agent_log4j" = "xyes"]) @@ -844,6 +811,36 @@ AC_SUBST([RUN_PYTHON_AGENT_TEST]) AC_SUBST([PYTHON2_AGENT]) AC_SUBST([PYTHON3_AGENT]) +AC_ARG_ENABLE([test-sdt-uprobe], + [AS_HELP_STRING([--enable-test-sdt-uprobe], [enable the LTTng UST SDT uprobe tests [default=autodetect]])], + [test_sdt_uprobe="$enableval"], + [test_sdt_uprobe=autodetect] +) + +AS_IF([test "$test_sdt_uprobe" != "no"], [ + LTTNG_CHECK_SDT_WORKS + AC_PATH_PROG([DTRACE], [dtrace]) +]) + +AS_IF([test "$test_sdt_uprobe" = "yes"], [ + AS_IF([test "$lttng_cv_sdt_works" = "no"], [ + AC_MSG_ERROR([Cannot find 'sys/sdt.h'.]) + ]) + AS_IF([test "x$DTRACE" = "x"], [ + AC_MSG_ERROR([Cannot find SystemTap dtrace. You can set the DTRACE variable to override automatic detection.]) + ]) +]) + +AS_IF([test "$test_sdt_uprobe" = "autodetect"], [ + AS_IF([test "$lttng_cv_sdt_works" = "yes"], [ + AS_IF([test "x$DTRACE" != "x"], [ + test_sdt_uprobe=yes + ]) + ]) +]) + +AM_CONDITIONAL([TEST_SDT_UPROBE], [test "$test_sdt_uprobe" = "yes"]) + # Arguments for binaries build exclusion AC_ARG_ENABLE([bin-lttng], AS_HELP_STRING([--disable-bin-lttng],[Disable the build of lttng binaries])) AC_ARG_ENABLE([bin-lttng-consumerd], AS_HELP_STRING([--disable-bin-lttng-consumerd], @@ -869,6 +866,7 @@ build_lib_kernel_consumer=no build_lib_kernel_ctl=no build_lib_lttng_ctl=no build_lib_relayd=no +build_lib_fd_tracker=no build_lib_sessiond_comm=no build_lib_testpoint=no build_lib_ust_consumer=no @@ -908,6 +906,7 @@ AS_IF([test x$enable_bin_lttng_relayd != xno], build_lib_index=yes build_lib_health=yes build_lib_testpoint=yes + build_lib_fd_tracker=yes ] ) AS_IF([test x$enable_bin_lttng_sessiond != xno], @@ -1033,6 +1032,7 @@ AM_CONDITIONAL([BUILD_LIB_KERNEL_CONSUMER], [test x$build_lib_kernel_consumer = AM_CONDITIONAL([BUILD_LIB_KERNEL_CTL], [test x$build_lib_kernel_ctl = xyes]) AM_CONDITIONAL([BUILD_LIB_LTTNG_CTL], [test x$build_lib_lttng_ctl = xyes]) AM_CONDITIONAL([BUILD_LIB_RELAYD], [test x$build_lib_relayd = xyes]) +AM_CONDITIONAL([BUILD_LIB_FD_TRACKER], [test x$build_lib_fd_tracker = xyes]) AM_CONDITIONAL([BUILD_LIB_SESSIOND_COMM], [test x$build_lib_sessiond_comm = xyes]) AM_CONDITIONAL([BUILD_LIB_TESTPOINT], [test x$build_lib_testpoint = xyes]) AM_CONDITIONAL([BUILD_LIB_UST_CONSUMER], [test x$build_lib_ust_consumer = xyes]) @@ -1040,7 +1040,13 @@ AM_CONDITIONAL([BUILD_LIB_UST_CONSUMER], [test x$build_lib_ust_consumer = xyes]) AM_CFLAGS="-Wall -fno-strict-aliasing $PTHREAD_CFLAGS" AC_SUBST(AM_CFLAGS) -AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/include -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS" +# The order in which the include folders are searched is important. +# The top_builddir should always be searched first in the event that a build +# time generated file is included. An example of this is the "version.i" file. +# In a scenario where lttng-tools is built from a distribution tarball and in a +# out-of-tree manner, the generated "version.i" has priority on the one from +# the source (distribution tarball) and must be found first. +AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS" AC_SUBST(AM_CPPFLAGS) lttngincludedir="${includedir}/lttng" @@ -1087,6 +1093,7 @@ AC_CONFIG_FILES([ src/common/health/Makefile src/common/config/Makefile src/common/string-utils/Makefile + src/common/fd-tracker/Makefile src/lib/Makefile src/lib/lttng-ctl/Makefile src/lib/lttng-ctl/filter/Makefile @@ -1118,6 +1125,10 @@ AC_CONFIG_FILES([ tests/regression/tools/regen-statedump/Makefile tests/regression/tools/notification/Makefile tests/regression/tools/rotation/Makefile + tests/regression/tools/base-path/Makefile + tests/regression/tools/metadata/Makefile + tests/regression/tools/working-directory/Makefile + tests/regression/tools/relayd-grouping/Makefile tests/regression/ust/Makefile tests/regression/ust/nprocesses/Makefile tests/regression/ust/high-throughput/Makefile @@ -1144,6 +1155,7 @@ AC_CONFIG_FILES([ tests/regression/ust/type-declarations/Makefile tests/regression/ust/rotation-destroy-flush/Makefile tests/regression/ust/blocking/Makefile + tests/regression/ust/namespaces/Makefile tests/stress/Makefile tests/unit/Makefile tests/unit/ini_config/Makefile @@ -1151,7 +1163,9 @@ AC_CONFIG_FILES([ tests/utils/Makefile tests/utils/tap/Makefile tests/utils/testapp/Makefile + tests/utils/testapp/gen-ns-events/Makefile tests/utils/testapp/gen-ust-events/Makefile + tests/utils/testapp/gen-ust-events-ns/Makefile tests/utils/testapp/gen-syscall-events-callstack/Makefile tests/utils/testapp/gen-ust-nevents/Makefile tests/utils/testapp/gen-ust-nevents-str/Makefile @@ -1260,6 +1274,10 @@ PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value) test ! -z "$PYTHON3_AGENT" && value=1 || value=0 PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value) +# LTTng UST Java agent Log4j tests enabled/disabled +test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL([LTTng-UST SDT uprobe tests], $value) + #Python binding enabled/disabled test "x$enable_python_binding" = xyes && value=1 || value=0 AS_ECHO