X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=71949f25994d36570e853758404b07c7a5287599;hp=8d42e90190e95d43e375632d8b2d8637a631ae26;hb=34f69498c4065ad2d4ae47217a0655a030f12647;hpb=8eaee5157a80d9e490d53c7cedd78e80917408f6 diff --git a/configure.ac b/configure.ac index 8d42e9019..71949f259 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ]] ) -AC_CHECK_DECL([cds_wfq_init], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] +AC_CHECK_DECL([cds_wfcq_init], [], + [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] ) -AC_CHECK_DECL([cds_wfq_dequeue_blocking], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] +AC_CHECK_DECL([cds_wfcq_dequeue_blocking], [], + [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] ) AC_CHECK_DECL([futex_async], [], [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] @@ -187,6 +213,32 @@ AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [], [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] ) +# 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"],[