X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=4dfd37c31ad89af54b99dbacbe4e65fe0b9e7ecf;hp=f1d4a366e80263ae178fb118a083c1455431b674;hb=6c1494fd8daa571cf08ca27e274d9abcdd65b053;hpb=2ad3a9a03e56a52b68d9c2e6046e31da9bc6c4ef diff --git a/configure.ac b/configure.ac index f1d4a366e..4dfd37c31 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([lttng-tools],[2.1.0-rc8],[dgoulet@efficios.com],[],[http://lttng.org]) +AC_INIT([lttng-tools],[2.4.0-rc2],[dgoulet@efficios.com],[],[http://lttng.org]) AC_CONFIG_AUX_DIR([config]) AC_CANONICAL_TARGET AC_CANONICAL_HOST @@ -6,8 +6,20 @@ AC_CONFIG_MACRO_DIR([config]) AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -version_name="Basse Messe" -version_description="Light coloured German ale whose style was named after the city Cologne (Koln) where it was first brewed. It is a rather simple beer with lightly fruity aromas and a delicate hoppy fragrance. The beer has a pronounced malty taste with a subtle bitter aftertaste" +# Compute minor/major/patchlevel version numbers +AC_PROG_SED +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/') +patchlevel_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/') +AC_SUBST([MAJOR_VERSION], [$major_version]) +AC_SUBST([MINOR_VERSION], [$minor_version]) +AC_SUBST([PATCHLEVEL_VERSION], [$patchlevel_version]) +AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version number]) +AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version number]) +AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number]) + +version_name="Époque Opaque" +version_description="The Époque Opaque is a black IPA from Trou du Diable brewery. The nose is eerily reminiscent of the coffee crisp candy from of our childhood. These strong mocha accents are present on the palate, which are quickly subdued by Japanese and Australian hops leading to a final state of satisfaction enjoyable for any fan of bitter beer." AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "") AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description"], "") @@ -91,13 +103,37 @@ AC_ARG_WITH([consumerd64-libdir], [CONSUMERD64_LIBDIR='']) AC_SUBST([CONSUMERD64_LIBDIR]) +AC_ARG_WITH([sessiond-bin], + AS_HELP_STRING([--with-sessiond-bin], + [Location of the sessiond executable (including the filename)]), + [SESSIOND_BIN="$withval"], + [SESSIOND_BIN='']) +AC_SUBST([SESSIOND_BIN]) + +AC_ARG_WITH([lttng-system-rundir], + AS_HELP_STRING([--with-lttng-system-rundir], + [Location of the system directory where the system-wide lttng-sessiond runtime files are kept. The default is "/var/run/lttng".]), + [LTTNG_SYSTEM_RUNDIR="$withval"], + [LTTNG_SYSTEM_RUNDIR="/var/run/lttng"]) +AC_SUBST([LTTNG_SYSTEM_RUNDIR]) + AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_BIN], "$CONSUMERD32_BIN", [Location of the 32-bit consumerd executable.]) AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_BIN], "$CONSUMERD64_BIN", [Location of the 64-bit consumerd executable]) AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_LIBDIR], "$CONSUMERD32_LIBDIR", [Search for consumerd 32-bit libraries in this location.]) AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_LIBDIR], "$CONSUMERD64_LIBDIR", [Search for consumerd 64-bit libraries in this location.]) AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_BIN], "$BABELTRACE_BIN", [Location of the babeltrace viewer executable.]) AC_DEFINE_UNQUOTED([CONFIG_LTTV_GUI_BIN], "$LTTV_GUI_BIN", [Location of the lttv GUI viewer executable.]) +AC_DEFINE_UNQUOTED([CONFIG_SESSIOND_BIN], "$SESSIOND_BIN", [Location of the sessiond executable.]) +AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_RUNDIR], ["$LTTNG_SYSTEM_RUNDIR"], [LTTng system runtime directory]) +if test "x$prefix" = "xNONE"; then + prefix=$ac_default_prefix +fi +CONFDIR=`eval echo $sysconfdir` +AC_SUBST(CONFDIR) +AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_CONFIGDIR],"$CONFDIR", [LTTng system configuration directory.]) + +# # Check for pthread AC_CHECK_LIB([pthread], [pthread_create], [], [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])] @@ -108,8 +144,31 @@ AC_CHECK_LIB([popt], [poptGetContext], [], [AC_MSG_ERROR([Cannot find libpopt. Use [LDFLAGS]=-Ldir to specify its location.])] ) +AM_PATH_XML2(2.7.6) + +# Check for libuuid +AC_CHECK_LIB([uuid], [uuid_generate], +[ + AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) + have_libuuid=yes +], +[ + # libuuid not found, check for uuid_create in libc. + AC_CHECK_LIB([c], [uuid_create], + [ + AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) + have_libc_uuid=yes + ], + [ + AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.]) + ]) +] +) +AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"]) +AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"]) + # URCU library version needed or newer -liburcu_version=">= 0.6.7" +liburcu_version=">= 0.7.2" # Check liburcu needed function calls AC_CHECK_DECL([cds_list_add], [], @@ -133,6 +192,19 @@ AC_CHECK_DECL([rcu_thread_online], [], AC_CHECK_DECL([caa_likely], [], [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] ) +#Function added in urcu 0.7.0 +AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [], + [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] +) + +AC_ARG_WITH(lttng-ust-prefix, + AS_HELP_STRING([--with-lttng-ust-prefix=PATH], + [Specify the installation prefix of the lttng-ust library. + Headers must be in PATH/include; libraries in PATH/lib.]), + [ + CPPFLAGS="$CPPFLAGS -I${withval}/include" + LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib" + ]) # Check liblttng-ust-ctl library AC_ARG_ENABLE(lttng-ust, @@ -140,17 +212,17 @@ AC_ARG_ENABLE(lttng-ust, lttng_ust_support=$enableval, lttng_ust_support=yes) AS_IF([test "x$lttng_ust_support" = "xyes"], [ - AC_CHECK_LIB([lttng-ust-ctl], [ustctl_set_filter], + AC_CHECK_LIB([lttng-ust-ctl], [ustctl_recv_channel_from_consumer], [ AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1], [has LTTng-UST control support]) lttng_ust_ctl_found=yes ], - [AC_MSG_ERROR([Cannot find LTTng-UST. Use [LDFLAGS]=-Ldir to specify its location, or specify --disable-lttng-ust to build lttng-tools without LTTng-UST support.])], + [AC_MSG_ERROR([Cannot find LTTng-UST >= 2.2.x. Use --with-lttng-ust-prefix=PREFIX to specify its location, or specify --disable-lttng-ust to build lttng-tools without LTTng-UST support.])], [-lurcu-common -lurcu-bp -lurcu-cds -lrt] ) ]) AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$lttng_ust_ctl_found" = xyes]) -AC_CHECK_FUNCS([sched_getcpu sysconf]) +AC_CHECK_FUNCS([sched_getcpu sysconf sync_file_range]) # check for dlopen AC_CHECK_LIB([dl], [dlopen], @@ -239,13 +311,62 @@ AX_CONFIG_FEATURE( ) AM_CONDITIONAL([COMPAT_EPOLL], [ test "$enable_epoll" = "yes" ]) +# Set compile flags to java include files if given. This is only used to +# compile JUL tests. +AC_ARG_WITH([java-jdk], + [AS_HELP_STRING([--with-java-jdk=DIR],[use the Java JDK in DIR. Ex : $JAVA_HOME.])], + [JAVA_JDK=$withval], + [JAVA_JDK=""] +) +AM_CONDITIONAL([HAVE_JAVA_JDK], [test $JAVA_JDK], [Java JDK path]) +AC_SUBST([JAVA_JDK]) + +AS_IF([test $JAVA_JDK],[ + AS_IF([test -d $JAVA_JDK], + [ + AC_MSG_RESULT([using Java includes in $JAVA_SDK]) + SUBDIRS=`find $JAVA_JDK/include -type d` + CPPFLAGS+=" " + CPPFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done` + CPPFLAGS+=" " + ],[AC_MSG_ERROR(Unable to find Java include files in $JAVA_JDK)] + ) +]) + +# Check for the UST JUL jar file in the system. Hardcoded path is added here +# since we have *no* idea where this could be installed. Note that this is only +# used for JUL testing. +AC_MSG_CHECKING(Java JUL UST jar file) +java_jul_jar_path="/usr/local/lib/lttng/java/liblttng-ust-jul.jar" +if test -f $java_jul_jar_path; then + build_java_jul=yes + AC_MSG_RESULT(found) +else + build_java_jul=no + AC_MSG_RESULT(not found) +fi +AM_CONDITIONAL([BUILD_JAVA_JUL], [test "x$build_java_jul" = "xyes"]) +AC_SUBST([java_jul_jar_path]) + AC_SYS_LARGEFILE AC_PROG_CC LT_INIT AC_PROG_YACC AC_PROG_LEX -AC_DEFUN([AC_PROG_BISON], [AC_CHECK_PROGS(BISON, bison, bison)]) +if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then + if test x"$YACC" != "xbison -y"; then + AC_MSG_ERROR([[bison not found and is required when building from git. + Please install bison]]) + fi +fi + +if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-lexer.c"; then + if test x"$LEX" != "xflex"; then + AC_MSG_ERROR([[flex not found and is required when building from git. + Please install flex]]) + fi +fi CFLAGS="-Wall $CFLAGS -g -fno-strict-aliasing" @@ -268,6 +389,7 @@ AC_CONFIG_FILES([ extras/bindings/Makefile extras/bindings/swig/Makefile extras/bindings/swig/python/Makefile + extras/core-handler/Makefile src/Makefile src/common/Makefile src/common/kernel-ctl/Makefile @@ -278,28 +400,53 @@ AC_CONFIG_FILES([ src/common/compat/Makefile src/common/relayd/Makefile src/common/testpoint/Makefile + src/common/index/Makefile + src/common/health/Makefile + src/common/config/Makefile src/lib/Makefile src/lib/lttng-ctl/Makefile src/lib/lttng-ctl/filter/Makefile + src/lib/lttng-ctl/lttng-ctl.pc src/bin/Makefile src/bin/lttng-consumerd/Makefile src/bin/lttng-sessiond/Makefile src/bin/lttng-relayd/Makefile src/bin/lttng/Makefile tests/Makefile - tests/kernel/Makefile - tests/tools/Makefile - tests/tools/streaming/Makefile - tests/tools/filtering/Makefile - tests/tools/health/Makefile - tests/ust/Makefile - tests/ust/nprocesses/Makefile - tests/ust/high-throughput/Makefile - tests/ust/low-throughput/Makefile - tests/ust/before-after/Makefile - tests/ust/multi-session/Makefile - tests/ust/overlap/Makefile - tests/ust/overlap/demo/Makefile + tests/regression/Makefile + tests/regression/kernel/Makefile + tests/regression/tools/Makefile + tests/regression/tools/streaming/Makefile + tests/regression/tools/filtering/Makefile + tests/regression/tools/health/Makefile + tests/regression/tools/tracefile-limits/Makefile + tests/regression/tools/snapshots/Makefile + tests/regression/tools/live/Makefile + tests/regression/tools/exclusion/Makefile + tests/regression/ust/Makefile + tests/regression/ust/nprocesses/Makefile + tests/regression/ust/high-throughput/Makefile + tests/regression/ust/low-throughput/Makefile + tests/regression/ust/before-after/Makefile + tests/regression/ust/buffers-pid/Makefile + tests/regression/ust/periodical-metadata-flush/Makefile + tests/regression/ust/multi-session/Makefile + tests/regression/ust/overlap/Makefile + tests/regression/ust/overlap/demo/Makefile + tests/regression/ust/linking/Makefile + tests/regression/ust/daemon/Makefile + tests/regression/ust/exit-fast/Makefile + tests/regression/ust/fork/Makefile + tests/regression/ust/libc-wrapper/Makefile + tests/regression/ust/java-jul/Makefile + tests/stress/Makefile + tests/unit/Makefile + tests/unit/ini_config/Makefile + tests/utils/Makefile + tests/utils/tap/Makefile + tests/utils/testapp/Makefile + tests/utils/testapp/gen-ust-events/Makefile + tests/utils/testapp/gen-ust-nevents/Makefile ]) AC_OUTPUT @@ -360,6 +507,15 @@ AS_ECHO("`eval eval echo $libdir`") # If we build the sessiond, print the paths it will use AS_IF([test "x$consumerd_only" = "xno"],[ + AS_ECHO() + AS_ECHO_N("The lttng command will look for the lttng-sessiond executable at: ") + AS_IF([test "$SESSIOND_BIN" = ""],[ + AS_ECHO_N("`eval eval echo $bindir`") + AS_ECHO("/lttng-sessiond") + ],[ + AS_ECHO("$SESSIOND_BIN") + ]) + AS_ECHO() AS_ECHO("The sessiond daemon will look in the following directories: ") AS_ECHO_N("32-bit consumerd executable at: ")