X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=configure.ac;h=7fe30a3cc5ba561f5d6f320c6f69db246112b2e1;hb=fd46f5c79a6a7178e35ce4f8ea21caa30da45cc4;hp=a3e1e238ce47f85596f419928bc3ae86f89e32b1;hpb=69d6ee6e54c463d2673a1c7809c12b4b8d7ff382;p=lttng-ust.git diff --git a/configure.ac b/configure.ac index a3e1e238..7fe30a3c 100644 --- a/configure.ac +++ b/configure.ac @@ -1,10 +1,10 @@ dnl Version infos m4_define([V_MAJOR], [2]) -m4_define([V_MINOR], [11]) -m4_define([V_PATCH], [0]) -m4_define([V_EXTRA], [rc1]) -m4_define([V_NAME], [[Lafontaine]]) -m4_define([V_DESC], [[A modern Saison beer from Montréal's Oshlag microbrewery, Lafontaine is a refreshing, zesty, rice beer with hints of fruit and spices.]]) +m4_define([V_MINOR], [12]) +m4_define([V_PATCH], [4]) +dnl m4_define([V_EXTRA], []) +m4_define([V_NAME], [[(Ta) Meilleure]]) +m4_define([V_DESC], [[Ta Meilleure is a Northeast IPA beer brewed by Lagabière. Translating to "Your best one", this beer gives out strong aromas of passion fruit, lemon, and peaches. Tastewise, expect a lot of fruit, a creamy texture, and a smooth lingering hop bitterness.]]) m4_define([V_STRING], [V_MAJOR.V_MINOR.V_PATCH]) m4_ifdef([V_EXTRA], [m4_append([V_STRING], [-V_EXTRA])]) @@ -25,7 +25,7 @@ m4_define([UST_LIB_V_MINOR], [0]) m4_define([UST_LIB_V_PATCH], [0]) AC_SUBST([LTTNG_UST_LIBRARY_VERSION], [UST_LIB_V_MAJOR:UST_LIB_V_MINOR:UST_LIB_V_PATCH]) -AC_SUBST([LTTNG_UST_LIBRARY_VERSION_MAJOR], [UST_LIB_V_MAJOR]) +AC_DEFINE([CONFIG_LTTNG_UST_LIBRARY_VERSION_MAJOR], [UST_LIB_V_MAJOR], [Major SONAME number of the ust library]) # note: remember to update tracepoint.h dlopen() to match this version # number. TODO: eventually automate by exporting the major number. @@ -41,7 +41,7 @@ AC_CONFIG_SRCDIR([include/lttng/tracepoint.h]) AC_CANONICAL_TARGET AC_CANONICAL_HOST -AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip tar-ustar]) +AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-ustar]) AM_MAINTAINER_MODE([enable]) # Enable silent rules if available (Introduced in AM 1.11) @@ -53,9 +53,10 @@ AC_REQUIRE_AUX_FILE([tap-driver.sh]) AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_CC -AC_PROG_CC_STDC +# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70 +m4_version_prereq([2.70], [], [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"]) # Check if the compiler support weak symbols @@ -66,13 +67,14 @@ AS_IF([test "x${ax_cv_sys_weak_alias}" = "xno"], [ ]) # Checks for programs. +AM_PROG_AR AC_PROG_SED AC_PROG_GREP AC_PROG_LN_S AC_PROG_MKDIR_P AC_PROG_MAKE_SET -AC_CHECK_PROG([HAVE_CMAKE], [cmake], ["yes"]) -AM_CONDITIONAL([HAVE_CMAKE], [test "x$HAVE_CMAKE" = "xyes"]) +AC_CHECK_PROG([CMAKE], [cmake]) +AM_CONDITIONAL([HAVE_CMAKE], [test "x$CMAKE" != "x"]) # libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321. AC_ARG_ENABLE([libtool-linkdep-fixup], [ @@ -207,17 +209,18 @@ AH_TEMPLATE([LTTNG_UST_HAVE_PERF_EVENT], [Perf event integration via perf_event. # Checks for libraries. AC_CHECK_LIB([dl], [dlopen], [ - have_libdl=yes libdl_name=dl + DL_LIBS="-ldl" ], [ #libdl not found, check for dlopen in libc. AC_CHECK_LIB([c], [dlopen], [ - have_libc_dl=yes libdl_name=c + DL_LIBS="-lc" ], [ AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.]) ]) ]) +AC_SUBST(DL_LIBS) # Check if libdl has dlmopen support. AH_TEMPLATE([HAVE_DLMOPEN], ["Define to 1 if dlmopen is available."]) @@ -225,10 +228,7 @@ AC_CHECK_LIB([$libdl_name], [dlmopen], [AC_DEFINE([HAVE_DLMOPEN], [1])] ) -AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"]) -AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"]) - -AC_CHECK_LIB([pthread], [pthread_create]) +AC_CHECK_LIB([pthread], [pthread_create], [:]) AC_CHECK_LIB([pthread], [pthread_setname_np], AC_DEFINE([HAVE_PTHREAD_SETNAME_NP], [1], [Define to 1 if pthread_setname_np is available.]), AC_CHECK_LIB([pthread], [pthread_set_name_np], @@ -256,7 +256,7 @@ This error can also occur when the liburcu package's configure script has not be # urcu-cds - check that URCU Concurrent Data Structure lib is available to compilation # Part of Userspace RCU library 0.7.2 or better. -AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [], [AC_MSG_ERROR([Cannot find +AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [:], [AC_MSG_ERROR([Cannot find liburcu-cds lib, part of Userspace RCU 0.7 or better. Use [LDFLAGS]=-Ldir to specify its location.])]) AC_MSG_CHECKING([caa_likely()]) @@ -275,10 +275,10 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ ]) # urcu - check that URCU lib is available to compilation -AC_CHECK_LIB([urcu-bp], [synchronize_rcu_bp], [], [AC_MSG_ERROR([Cannot find liburcu-bp lib. Use [LDFLAGS]=-Ldir to specify its location.])]) +AC_CHECK_LIB([urcu-bp], [urcu_bp_synchronize_rcu], [:], [AC_MSG_ERROR([Cannot find liburcu-bp 0.11 or newer. Use [LDFLAGS]=-Ldir to specify its location.])]) -# urcu - check that URCU lib is at least version 0.6 -AC_CHECK_LIB([urcu-bp], [call_rcu_bp], [], [AC_MSG_ERROR([liburcu 0.6 or newer is needed, please update your version or use [LDFLAGS]=-Ldir to specify the right location.])]) +# urcu - check that URCU lib is at least version 0.11 +AC_CHECK_LIB([urcu-bp], [urcu_bp_call_rcu], [:], [AC_MSG_ERROR([liburcu 0.11 or newer is needed, please update your version or use [LDFLAGS]=-Ldir to specify the right location.])]) # numa.h integration AS_IF([test "x$NO_NUMA" = "x1"],[ @@ -295,7 +295,7 @@ AS_HELP_STRING([--disable-numa], [disable NUMA support]) AS_IF([test "x$enable_numa" = "xyes"], [ # numa - check that numa lib is available - AC_CHECK_LIB([numa], [numa_available], [], + AC_CHECK_LIB([numa], [numa_available], [AC_DEFINE([HAVE_LIBNUMA], [1], [Define to 1 if libnuma is available.])], [AC_MSG_ERROR([libnuma is not available. Please either install it (e.g. libnuma-dev) or use [LDFLAGS]=-Ldir to specify the right location, or use --disable-numa configure argument to disable NUMA support.])]) have_libnuma=yes ]) @@ -337,29 +337,44 @@ AS_HELP_STRING([--enable-java-agent-jul], [build the LTTng UST Java agent with J ]) AC_ARG_ENABLE([java-agent-log4j], [ -AS_HELP_STRING([--enable-java-agent-log4j], [build the LTTng UST Java agent with Log4j support [default=no]]) +AS_HELP_STRING([--enable-java-agent-log4j], [build the LTTng UST Java agent with Log4j 1.x support [default=no]]) ], [ java_agent_log4j=$enableval ], [ java_agent_log4j=no ]) +AC_ARG_ENABLE([java-agent-log4j2], [ +AS_HELP_STRING([--enable-java-agent-log4j2], [build the LTTng UST Java agent with Log4j 2.x support [default=no]]) +], [ + java_agent_log4j2=$enableval +], [ + java_agent_log4j2=no +]) + AC_ARG_ENABLE([java-agent-all], [ AS_HELP_STRING([--enable-java-agent-all], [build the LTTng UST Java agent with all supported backends [default=no]]) ], [ java_agent_jul=$enableval java_agent_log4j=$enableval + # This backport to a stable branch requires the explicit use of + # '--enable-java-agent-log4j2' to avoid introducing a new dependency in + # an existing configuration. + #java_agent_log4j2=$enableval ], [:]) AM_CONDITIONAL([BUILD_JAVA_AGENT], [test "x$java_agent_jul" = "xyes" || test "x$java_agent_log4j" = "xyes"]) AM_CONDITIONAL([BUILD_JAVA_AGENT_WITH_JUL], [test "x$java_agent_jul" = "xyes"]) AM_CONDITIONAL([BUILD_JAVA_AGENT_WITH_LOG4J], [test "x$java_agent_log4j" = "xyes"]) +AM_CONDITIONAL([BUILD_JAVA_AGENT_WITH_LOG4J2], [test "x$java_agent_log4j2" = "xyes"]) +AM_CONDITIONAL([BUILD_JAVA_AGENT_WITH_LOG4J_COMMON], [test "x$java_agent_log4j" = "xyes" || test "x$java_agent_log4j2" = "xyes"]) -AS_IF([test "x$jni_interface" = "xyes" || test "x$java_agent_jul" = "xyes" || test "x$java_agent_log4j" = "xyes"], [ +AS_IF([test "x$jni_interface" = "xyes" || test "x$java_agent_jul" = "xyes" || test "x$java_agent_log4j" = "xyes" || test "x$java_agent_log4j2" = "xyes"], [ AX_JAVA_OPTIONS AX_PROG_JAVAC AX_PROG_JAVA AX_PROG_JAR + AC_ARG_VAR([CLASSPATH], [Java class path]) AX_JNI_INCLUDE_DIR for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS @@ -383,6 +398,21 @@ AS_IF([test "x$java_agent_log4j" = "xyes"], [ ]) ]) +# The log4j 2.x agent requires the log4j core and api jars in the classpath +AS_IF([test "x$java_agent_log4j2" = "xyes"], [ + AX_CHECK_CLASSPATH + AX_CHECK_CLASS([org.apache.logging.log4j.Logger]) + AX_CHECK_CLASS([org.apache.logging.log4j.core.Core]) + AS_IF([test "x$ac_cv_class_org_apache_logging_log4j_Logger" = "xno" || test "x$ac_cv_class_org_apache_logging_log4j_core_Core" = "xno"], [ + AC_MSG_ERROR([dnl +The UST Java agent support for log4j was requested but the Log4j classes were +not found. Please specify the location of the Log4j API and core 2.x jars via the Java CLASSPATH +environment variable, e.g. ./configure CLASSPATH="/path/to/log4j-core.jar:/path/to/log4j-api.jar" +Current CLASSPATH: "$CLASSPATH" + ]) + ]) +]) + # Option to build the python agent AC_ARG_ENABLE([python-agent], [ AS_HELP_STRING([--enable-python-agent], [build the LTTng UST Python agent [default=no]]) @@ -533,6 +563,7 @@ AC_CONFIG_FILES([ liblttng-ust-java-agent/java/lttng-ust-agent-common/Makefile liblttng-ust-java-agent/java/lttng-ust-agent-jul/Makefile liblttng-ust-java-agent/java/lttng-ust-agent-log4j/Makefile + liblttng-ust-java-agent/java/lttng-ust-agent-log4j2/Makefile liblttng-ust-java-agent/jni/Makefile liblttng-ust-java-agent/jni/common/Makefile liblttng-ust-java-agent/jni/jul/Makefile @@ -557,16 +588,20 @@ AC_CONFIG_FILES([ tests/test-app-ctx/Makefile tests/gcc-weak-hidden/Makefile lttng-ust.pc + lttng-ust-ctl.pc ]) # Create link for python agent for the VPATH guru. AC_CONFIG_LINKS([ python-lttngust/lttngust/agent.py:python-lttngust/lttngust/agent.py python-lttngust/lttngust/cmd.py:python-lttngust/lttngust/cmd.py + python-lttngust/lttngust/compat.py:python-lttngust/lttngust/compat.py python-lttngust/lttngust/debug.py:python-lttngust/lttngust/debug.py python-lttngust/lttngust/loghandler.py:python-lttngust/lttngust/loghandler.py ]) +AC_CONFIG_FILES([tests/ust-elf/test_ust_elf],[chmod +x tests/ust-elf/test_ust_elf]) + AC_OUTPUT @@ -607,7 +642,10 @@ test "x$java_agent_jul" = xyes && value=1 || value=0 PPRINT_PROP_BOOL_CUSTOM([Java agent (JUL support)], $value, [use --enable-java-agent-jul]) test "x$java_agent_log4j" = xyes && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j support)], $value, [use --enable-java-agent-log4j]) +PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j 1.x support)], $value, [use --enable-java-agent-log4j]) + +test "x$java_agent_log4j2" = xyes && value=1 || value=0 +PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j 2.x support)], $value, [use --enable-java-agent-log4j2]) test "x$jni_interface" = xyes && value=1 || value=0 PPRINT_PROP_BOOL_CUSTOM([JNI interface (JNI)], $value, [use --enable-jni-interface]) @@ -615,6 +653,9 @@ PPRINT_PROP_BOOL_CUSTOM([JNI interface (JNI)], $value, [use --enable-jni-interfa test "x$python_agent" = xyes && value=1 || value=0 PPRINT_PROP_BOOL_CUSTOM([Python agent], $value, [use --enable-python-agent]) +test "x$have_perf_event" = "xyes" && value=1 || value=0 +PPRINT_PROP_BOOL_CUSTOM([Perf event integration], $value) + test "x$enable_numa" = xyes && value=1 || value=0 PPRINT_PROP_BOOL([NUMA], $value)