Update version to v2.7.0-rc1
[lttng-tools.git] / configure.ac
index 8d42e90190e95d43e375632d8b2d8637a631ae26..71949f25994d36570e853758404b07c7a5287599 100644 (file)
@@ -1,9 +1,11 @@
-AC_INIT([lttng-tools],[2.3.0-rc2],[dgoulet@efficios.com],[],[http://lttng.org])
+AC_PREREQ([2.64])
+AC_INIT([lttng-tools],[2.7.0-rc1],[jeremie.galarneau@efficios.com],[],[https://lttng.org])
 AC_CONFIG_AUX_DIR([config])
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
 AC_CONFIG_MACRO_DIR([config])
 AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
+AM_MAINTAINER_MODE([enable])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
 # Compute minor/major/patchlevel version numbers
@@ -18,11 +20,12 @@ AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version n
 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="Dominus Vobiscum"
-version_description="A very succulent line-up of beers brewed at Microbrasserie Charlevoix. Elaborated starting from special malts and fermented with a Belgian yeast. These beers are refermented in bottle and will make you discover the richness of wheat, amber and triple styles."
+version_name="Herbe à Détourne"
+version_description='Brewed with unrestrained amounts of Citra hop, the Herbe à Détourne is a fantastic New World Tripel brewed by "Dieu du Ciel!". Aromas of mango, cantaloupe melon and passion fruit, combined with a controlled bitter finish, unite in making this smooth golden-orange beer stand apart.'
+version_description_c=$(echo $version_description | sed 's/"/\\"/g')
 
 AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
-AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description"], "")
+AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description_c"], "")
 
 AC_CONFIG_HEADERS([include/config.h])
 
@@ -56,7 +59,18 @@ AM_CONDITIONAL([NO_SHARED], [test x$enable_shared = xno])
 AC_CHECK_HEADERS([ \
        sys/types.h unistd.h fcntl.h string.h pthread.h limits.h \
        signal.h stdlib.h sys/un.h sys/socket.h stdlib.h stdio.h \
-       getopt.h sys/ipc.h sys/shm.h popt.h grp.h \
+       getopt.h sys/ipc.h sys/shm.h popt.h grp.h arpa/inet.h \
+       netdb.h netinet/in.h paths.h stddef.h sys/file.h sys/ioctl.h \
+       sys/mount.h sys/param.h sys/time.h
+])
+
+# Basic functions check
+AC_CHECK_FUNCS([ \
+       atexit bzero clock_gettime dup2 fdatasync ftruncate \
+       gethostbyname gethostname getpagesize localtime_r memchr memset \
+       mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \
+       strncasecmp strndup strpbrk strrchr strstr strtol strtoul \
+       strtoull \
 ])
 
 # Babeltrace viewer check
@@ -126,6 +140,16 @@ AC_DEFINE_UNQUOTED([CONFIG_LTTV_GUI_BIN], "$LTTV_GUI_BIN", [Location of the lttv
 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.])
+
+AC_DEFINE_DIR([CONFIG_LTTNG_SYSTEM_DATADIR],[datadir], [LTTng system data directory.])
+
+#
 # Check for pthread
 AC_CHECK_LIB([pthread], [pthread_create], [],
        [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])]
@@ -136,6 +160,8 @@ AC_CHECK_LIB([popt], [poptGetContext], [],
        [AC_MSG_ERROR([Cannot find libpopt. Use [LDFLAGS]=-Ldir to specify its location.])]
 )
 
+AM_PATH_XML2(2.7.6, true, AC_MSG_ERROR(No supported version of libxml2 found.))
+
 # Check for libuuid
 AC_CHECK_LIB([uuid], [uuid_generate],
 [
@@ -158,17 +184,17 @@ 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.7.2"
+liburcu_version=">= 0.8.0"
 
 # Check liburcu needed function calls
 AC_CHECK_DECL([cds_list_add], [],
        [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/list.h>]]
 )
-AC_CHECK_DECL([cds_wfq_init], [],
-       [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
+AC_CHECK_DECL([cds_wfcq_init], [],
+       [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfcqueue.h>]]
 )
-AC_CHECK_DECL([cds_wfq_dequeue_blocking], [],
-    [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
+AC_CHECK_DECL([cds_wfcq_dequeue_blocking], [],
+    [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfcqueue.h>]]
 )
 AC_CHECK_DECL([futex_async], [],
        [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/futex.h>]]
@@ -187,6 +213,32 @@ AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [],
         [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
 )
 
+# Check kmod library
+AC_ARG_WITH(kmod-prefix,
+  AS_HELP_STRING([--with-kmod-prefix=PATH],
+               [Specify the installation prefix of the kmod library.
+               Headers must be in PATH/include; libraries in PATH/lib.]),
+               [
+                       CPPFLAGS="$CPPFLAGS -I${withval}/include"
+                       LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib"
+               ])
+
+AC_ARG_ENABLE(kmod,
+       AS_HELP_STRING([--disable-kmod],[build without kmod support]),
+       kmod_support=zz$enableval, kmod_support=yes)
+
+AS_IF([test "x$kmod_support" = "xyes"], [
+       AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module],
+               [
+                       AC_DEFINE([HAVE_KMOD], [1], [has kmod support])
+                       LIBS="$LIBS -lkmod"
+                       kmod_found=yes
+               ],
+               kmod_found=no
+       )
+])
+AM_CONDITIONAL([HAVE_KMOD], [test "x$kmod_found" = xyes])
+
 AC_ARG_WITH(lttng-ust-prefix,
   AS_HELP_STRING([--with-lttng-ust-prefix=PATH],
                  [Specify the installation prefix of the lttng-ust library.
@@ -208,7 +260,7 @@ AS_IF([test "x$lttng_ust_support" = "xyes"], [
                        lttng_ust_ctl_found=yes
                ],
                [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]
+               [-lurcu-common -lurcu-bp -lurcu-cds -lrt -ldl]
        )
 ])
 AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$lttng_ust_ctl_found" = xyes])
@@ -246,6 +298,15 @@ AC_CHECK_LIB([c], [open_memstream],
 ]
 )
 
+AC_ARG_ENABLE([git-version],
+              [AC_HELP_STRING([--disable-git-version],
+                              [Do not use the git version for the build])],
+              [have_git_version=$enableval], [have_git_version=yes]
+)
+
+AM_CONDITIONAL([LTTNG_TOOLS_BUILD_GIT_SOURCE],
+       [test "x${have_git_version}" = "xyes"])
+
 # For Python
 # SWIG version needed or newer:
 swig_version=2.0.0
@@ -282,13 +343,6 @@ else
 
 fi
 
-# Option to only build the consumer daemon and its libraries
-AC_ARG_WITH([consumerd-only],
-       AS_HELP_STRING([--with-consumerd-only],[Only build the consumer daemon [default=no]]),
-       [consumerd_only=$withval],
-       [consumerd_only=no])
-AM_CONDITIONAL([BUILD_CONSUMERD_ONLY], [test "x$consumerd_only" = "xyes"])
-
 # Epoll check. If not present, the build will fallback on poll() API
 AX_HAVE_EPOLL(
        [AX_CONFIG_FEATURE_ENABLE(epoll)],
@@ -301,8 +355,87 @@ 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 java agent 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 agent 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 agent testing.
+AC_MSG_CHECKING(Java UST agent jar file)
+java_agent_jar_path="${prefix}/share/java/liblttng-ust-agent.jar"
+if test -f $java_agent_jar_path; then
+       build_java_agent=yes
+       AC_MSG_RESULT(found)
+else
+       build_java_agent=no
+       AC_MSG_RESULT(not found)
+fi
+AM_CONDITIONAL([BUILD_JAVA_AGENT], [test "x$build_java_agent" = "xyes"])
+AC_SUBST([java_agent_jar_path])
+
+# Check for log4j support on the system to know if we can build or not the
+# log4j tests.
+if test "x$build_java_agent" = "xyes"; then
+       AC_MSG_CHECKING(Java agent support for log4j)
+       AX_JAVA_OPTIONS
+       AX_PROG_JAR
+       AX_PROG_JAVA
+       AX_PROG_JAVAC
+
+       # By default, use a commonly used classpath on the system to ease things up
+       # for the Java testing in this directory.
+       LOG4J_CLASSPATH="$java_agent_jar_path:$CLASSPATH:.:/usr/share/java/*"
+       JAVAFLAGS="-cp $LOG4J_CLASSPATH"
+       JAVACFLAGS="$JAVAFLAGS"
+       AX_CHECK_CLASS(org.apache.log4j.Logger)
+
+       if test "x$ac_cv_class_org_apache_log4j_Logger" = "xno"; then
+               build_java_log4j_agent=no
+       else
+               build_java_log4j_agent=yes
+       fi
+fi
+AM_CONDITIONAL([BUILD_JAVA_LOG4J_AGENT], [test "x$build_java_log4j_agent" = "xyes"])
+
 AC_SYS_LARGEFILE
+
+# C compiler tests
 AC_PROG_CC
+AC_C_INLINE
+
+# Type availability checking
+AC_TYPE_INT32_T
+AC_TYPE_INT64_T
+AC_TYPE_MODE_T
+AC_TYPE_OFF_T
+AC_TYPE_PID_T
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_TYPE_UID_T
+AC_TYPE_UINT16_T
+AC_TYPE_UINT32_T
+AC_TYPE_UINT64_T
+AC_TYPE_UINT8_T
+
 LT_INIT
 AC_PROG_YACC
 AC_PROG_LEX
@@ -312,6 +445,10 @@ if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then
                AC_MSG_ERROR([[bison not found and is required when building from git.
                Please install bison]])
        fi
+       AC_PATH_PROG([BISON],[bison])
+       AX_PROG_BISON_VERSION([2.4], [],[
+               AC_MSG_ERROR([[Bison >= 2.4 is required when building from git]])
+       ])
 fi
 
 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-lexer.c"; then
@@ -319,6 +456,10 @@ if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-lexer.c"; then
                AC_MSG_ERROR([[flex not found and is required when building from git.
                Please install flex]])
        fi
+       AC_PATH_PROG([FLEX],[flex])
+       AX_PROG_FLEX_VERSION([2.5.35], [],[
+               AC_MSG_ERROR([[Flex >= 2.5.35 is required when building from git]])
+       ])
 fi
 
 CFLAGS="-Wall $CFLAGS -g -fno-strict-aliasing"
@@ -353,6 +494,9 @@ 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
@@ -362,6 +506,7 @@ AC_CONFIG_FILES([
        src/bin/lttng-sessiond/Makefile
        src/bin/lttng-relayd/Makefile
        src/bin/lttng/Makefile
+       src/bin/lttng-crash/Makefile
        tests/Makefile
        tests/regression/Makefile
        tests/regression/kernel/Makefile
@@ -371,12 +516,16 @@ AC_CONFIG_FILES([
        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/tools/save-load/Makefile
+       tests/regression/tools/mi/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-uid/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
@@ -386,13 +535,19 @@ AC_CONFIG_FILES([
        tests/regression/ust/exit-fast/Makefile
        tests/regression/ust/fork/Makefile
        tests/regression/ust/libc-wrapper/Makefile
+       tests/regression/ust/java-jul/Makefile
+       tests/regression/ust/java-log4j/Makefile
+       tests/regression/ust/python-logging/Makefile
+       tests/regression/ust/getcpu-override/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
+       tests/utils/testapp/gen-ust-tracef/Makefile
 ])
 
 AC_OUTPUT
@@ -421,6 +576,14 @@ done
 AS_ECHO_N("Target architecture: ")
 AS_ECHO($target_arch)
 
+# kmod enabled/disabled
+AS_ECHO_N("libkmod support: ")
+AS_IF([test "x$kmod_found" = "xyes"],[
+       AS_ECHO("Enabled")
+],[
+       AS_ECHO("Disabled")
+])
+
 # LTTng-UST enabled/disabled
 AS_ECHO_N("Lttng-UST support: ")
 AS_IF([test "x$lttng_ust_support" = "xyes"],[
This page took 0.028454 seconds and 4 git commands to generate.