X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=configure.ac;h=bfef1785cac364cafe2c5400264ae145e45643d0;hp=21cfab070411d22ea1c4a79e957594c6df1c61a2;hb=0b7af9456fb564df73d32ff7712200d14569a375;hpb=8bdee6e2bac74a577147046126628ff3b1b34930 diff --git a/configure.ac b/configure.ac index 21cfab070..bfef1785c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,5 @@ -AC_INIT([lttng-tools],[2.5.0-rc2],[dgoulet@efficios.com],[],[http://lttng.org]) +AC_PREREQ([2.64]) +AC_INIT([lttng-tools],[2.8.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) AC_CONFIG_AUX_DIR([config]) AC_CANONICAL_TARGET AC_CANONICAL_HOST @@ -19,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="Fumisterie" -version_description="The Fumisterie is a beer whose style is at the confluence of English and German ales. On the palate, it is full-bodied, malty and slightly caramelized. The organic hemp seeds incorporated during the brewing gives it a unique and original taste. The hop flavour comes through delicately in the after taste." +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]) @@ -57,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 @@ -200,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. @@ -221,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]) @@ -259,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 @@ -307,45 +355,65 @@ 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]) +AX_JAVA_OPTIONS +AX_PROG_JAVAC +AX_PROG_JAVA +AX_PROG_JAR -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)] - ) -]) +AX_CHECK_CLASSPATH -# 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) +# Check for Java UST agent common class first +AX_CHECK_CLASS(org.lttng.ust.agent.AbstractLttngAgent) +if test "x$ac_cv_class_org_lttng_ust_agent_AbstractLttngAgent" = "xyes"; then + java_agent_common=yes else - build_java_jul=no - AC_MSG_RESULT(not found) + java_agent_common=no fi -AM_CONDITIONAL([BUILD_JAVA_JUL], [test "x$build_java_jul" = "xyes"]) -AC_SUBST([java_jul_jar_path]) + +# If the common class is available, test for each agent +if test "x$java_agent_common" = "xyes"; then + # Check for JUL + AX_CHECK_CLASS(org.lttng.ust.agent.jul.LttngLogHandler) + AX_CHECK_CLASS(org.lttng.ust.agent.log4j.LttngLogAppender) + AX_CHECK_CLASS(org.apache.log4j.Logger) + + build_java_jul_agent=no + if test "x$ac_cv_class_org_lttng_ust_agent_jul_LttngLogHandler" = "xyes"; then + build_java_jul_agent=yes + fi + + build_java_log4j_agent=no + if test "x$ac_cv_class_org_lttng_ust_agent_log4j_LttngLogAppender" = "xyes"; then + if test "x$ac_cv_class_org_apache_log4j_Logger" = "xyes"; then + build_java_log4j_agent=yes + fi + fi + +fi + +AM_CONDITIONAL([BUILD_JAVA_JUL_AGENT], [test "x$build_java_jul_agent" = "xyes"]) +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 @@ -355,6 +423,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 @@ -362,6 +434,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" @@ -408,6 +484,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 @@ -437,6 +514,9 @@ AC_CONFIG_FILES([ 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 @@ -474,6 +554,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"],[