X-Git-Url: http://git.lttng.org/?p=lttng-ust.git;a=blobdiff_plain;f=configure.ac;h=bfada519c7b8aa6f2b14d6abc6c0e738f2ad8924;hp=66e07f7f2a2f91dddea213ffe20344b947b65344;hb=HEAD;hpb=08c0c18ad4d5acf6e6f84c39935f359e6706ea8b diff --git a/configure.ac b/configure.ac index 66e07f7f..05c343b7 100644 --- a/configure.ac +++ b/configure.ac @@ -7,12 +7,12 @@ dnl Process this file with autoconf to produce a configure script. # Project version information m4_define([ust_version_major], [2]) -m4_define([ust_version_minor], [13]) +m4_define([ust_version_minor], [14]) m4_define([ust_version_patch], [0]) m4_define([ust_version_dev_stage], [-pre]) m4_define([ust_version], ust_version_major[.]ust_version_minor[.]ust_version_patch[]ust_version_dev_stage) -m4_define([ust_version_name], [[Codename TBD]]) -m4_define([ust_version_description], [[Description TBD]]) +m4_define([ust_version_name], [[O-Beer]]) +m4_define([ust_version_description], [[An alcoholic drink made from yeast-fermented malt flavored with hops.]]) # Library version information of "liblttng-ust" # Following the numbering scheme proposed by libtool for the library version @@ -162,6 +162,7 @@ m4_define([WARN_FLAGS_LIST], [ dnl -Wno-sign-compare dnl -Wno-missing-field-initializers dnl -Wno-null-dereference dnl + -Wno-gnu dnl Disable warnings for GNU extensions on Clang ]) # Pass -Werror as an extra flag during the test: this is needed to make the @@ -261,6 +262,7 @@ AC_CHECK_FUNCS([ \ clock_gettime \ ftruncate \ getpagesize \ + gettid \ gettimeofday \ localeconv \ memchr \ @@ -284,8 +286,8 @@ AC_CHECK_FUNCS([ \ #AC_FUNC_REALLOC # Check for pthread_setname_np and its signature -LTTNG_PTHREAD_SETNAME_NP -LTTNG_PTHREAD_GETNAME_NP +AE_PTHREAD_SETNAME_NP +AE_PTHREAD_GETNAME_NP # Check dor dlopen() in -ldl or -lc AC_CHECK_LIB([dl], [dlopen], [ @@ -318,10 +320,15 @@ PKG_CHECK_MODULES([URCU], [liburcu >= 0.12]) # Additional variables captured during ./configure AC_ARG_VAR([CLASSPATH], [Java class path]) +AC_ARG_VAR([JAVACFLAGS], [Java compiler flags]) +AC_ARG_VAR([JAVAC], [Java compiler]) +AC_ARG_VAR([JAVAFLAGS], [Java VM flags]) +AC_ARG_VAR([JAVA], [Java VM]) +AC_ARG_VAR([JAVAPREFIX], [prefix where Java runtime is installed]) ## ## -## Optionnal features selection ## +## Optional features selection ## ## ## # numa integration @@ -339,10 +346,15 @@ AE_FEATURE([jni-interface], [build JNI interface between C and Java]) AE_FEATURE_DEFAULT_DISABLE AE_FEATURE([java-agent-jul],[build the LTTng UST Java agent with JUL support]) -# Build the Java Log4j agent +# Build the Java Log4j 1.x agent # Disabled by default AE_FEATURE_DEFAULT_DISABLE -AE_FEATURE([java-agent-log4j],[build the LTTng UST Java agent with Log4j support]) +AE_FEATURE([java-agent-log4j],[build the LTTng UST Java agent with Log4j 1.x support (deprecated)]) + +# Build the Java Log4j 2.x agent +# Disabled by default +AE_FEATURE_DEFAULT_DISABLE +AE_FEATURE([java-agent-log4j2],[build the LTTng UST Java agent with Log4j 2.x support]) # Build both Java agents # Disabled by default @@ -379,9 +391,6 @@ AS_HELP_STRING([--with-lttng-system-rundir], [Location of the system directory w lttng_system_rundir="/var/run/lttng" ]) -# Add the java command line arguments like '--wit-java-prefix' -AX_JAVA_OPTIONS - ## ## ## Check for conflicting features selection ## @@ -391,9 +400,14 @@ AE_IF_FEATURE_DISABLED([shared], [ AC_MSG_ERROR(LTTng-UST requires shared libraries to be enabled) ]) +AE_IF_FEATURE_ENABLED([static], [ + AC_MSG_ERROR(Static linking LTTng-UST is currently unsupported) +]) + AE_IF_FEATURE_ENABLED([java-agent-all], [ AE_FEATURE_ENABLE([java-agent-jul]) AE_FEATURE_ENABLE([java-agent-log4j]) + AE_FEATURE_ENABLE([java-agent-log4j2]) ]) @@ -403,7 +417,9 @@ AE_IF_FEATURE_ENABLED([java-agent-all], [ # The numa integration requires libnuma AE_IF_FEATURE_ENABLED([numa], [ - 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([dnl 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 @@ -413,12 +429,13 @@ argument to disable NUMA support. ]) # The JNI interface and Java Agents require a working Java JDK -AS_IF([AE_IS_FEATURE_ENABLED([jni-interface]) || AE_IS_FEATURE_ENABLED([java-agent-jul]) || AE_IS_FEATURE_ENABLED([java-agent-log4j])], [ +AS_IF([AE_IS_FEATURE_ENABLED([jni-interface]) || AE_IS_FEATURE_ENABLED([java-agent-jul]) || \ + AE_IS_FEATURE_ENABLED([java-agent-log4j]) || AE_IS_FEATURE_ENABLED([java-agent-log4j2])], [ AX_PROG_JAVAC AX_PROG_JAVA AX_PROG_JAR - # Get the CPPFLAGS required to build jni libaries + # Get the CPPFLAGS required to build jni libraries AX_JNI_INCLUDE_DIR for jni_include_dir in $JNI_INCLUDE_DIRS; do JNI_CPPFLAGS="$JNI_CPPFLAGS -I$jni_include_dir" @@ -431,7 +448,7 @@ AS_IF([AE_IS_FEATURE_ENABLED([jni-interface]) || AE_IS_FEATURE_ENABLED([java-age CPPFLAGS="$saved_CPPFLAGS" ]) -# The log4j agent requires the log4j jar in the classpath +# The log4j 1.x agent requires the log4j jar in the classpath AE_IF_FEATURE_ENABLED([java-agent-log4j], [ AX_CHECK_CLASS([org.apache.log4j.Logger]) AS_IF([test "x$ac_cv_class_org_apache_log4j_Logger" = "xno"], [ @@ -445,6 +462,21 @@ Current CLASSPATH: "$CLASSPATH" ]) ]) +# The log4j 2.x agent requires the log4j core and api jars in the classpath +AE_IF_FEATURE_ENABLED([java-agent-log4j2], [ + 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" + ]) + ]) +]) + # The python agent requires a python interpreter AE_IF_FEATURE_ENABLED([python-agent], [ AS_IF([test "x$PYTHON" = "x"], [ @@ -453,6 +485,17 @@ Cannot find a suitable python interpreter. You can override it with the PYTHON environment variable. ]) ]) + + AX_COMPARE_VERSION(["$PYTHON_VERSION"], [ge], ["3.12"], [ + have_python_312_or_greater=yes + AC_MSG_CHECKING([for python setuptools]) + AS_IF(["$PYTHON" -c "import setuptools" 2>/dev/null], [ + AC_MSG_RESULT([yes]) + ], [ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([Python >= 3.12 removed 'distutils', the 'setuptools' module needs to be installed for the selected interpreter.]) + ]) + ]) ]) # Check for asciidoc and xmlto if we enabled building the man pages. @@ -523,9 +566,11 @@ AC_DEFINE([LTTNG_UST_CTL_LIB_SONAME_MAJOR], [ust_ctl_lib_version_current], [Majo AM_CONDITIONAL([ENABLE_EXAMPLES], AE_IS_FEATURE_ENABLED([examples])) AM_CONDITIONAL([ENABLE_GEN_TP_EXAMPLES], [test "x$PYTHON" != "x"]) -AM_CONDITIONAL([ENABLE_JAVA_AGENT], AE_IS_FEATURE_ENABLED([java-agent-jul]) || AE_IS_FEATURE_ENABLED([java-agent-log4j])) +AM_CONDITIONAL([ENABLE_JAVA_AGENT], AE_IS_FEATURE_ENABLED([java-agent-jul]) || AE_IS_FEATURE_ENABLED([java-agent-log4j]) || AE_IS_FEATURE_ENABLED([java-agent-log4j2])) AM_CONDITIONAL([ENABLE_JAVA_AGENT_WITH_JUL], AE_IS_FEATURE_ENABLED([java-agent-jul])) AM_CONDITIONAL([ENABLE_JAVA_AGENT_WITH_LOG4J], AE_IS_FEATURE_ENABLED([java-agent-log4j])) +AM_CONDITIONAL([ENABLE_JAVA_AGENT_WITH_LOG4J2], AE_IS_FEATURE_ENABLED([java-agent-log4j2])) +AM_CONDITIONAL([ENABLE_JAVA_AGENT_WITH_LOG4J_COMMON], AE_IS_FEATURE_ENABLED([java-agent-log4j]) || AE_IS_FEATURE_ENABLED([java-agent-log4j2])) AM_CONDITIONAL([ENABLE_JNI_INTERFACE], AE_IS_FEATURE_ENABLED([jni-interface])) AM_CONDITIONAL([ENABLE_MAN_PAGES], AE_IS_FEATURE_ENABLED([man-pages])) AM_CONDITIONAL([ENABLE_NUMA], AE_IS_FEATURE_ENABLED([numa])) @@ -536,6 +581,7 @@ AM_CONDITIONAL([HAVE_CMAKE], [test "x$CMAKE" != "x"]) AM_CONDITIONAL([HAVE_CXX], [test "$HAVE_CXX11" = "1"]) AM_CONDITIONAL([HAVE_JAVAH], [test "x$JAVAH" != "x"]) AM_CONDITIONAL([HAVE_PERF_EVENT], [test "x$ac_cv_header_linux_perf_event_h" = "xyes"]) +AM_CONDITIONAL([HAVE_PYTHON_312_OR_GREATER], [test "x$have_python_312_or_greater" = "xyes"]) ## ## @@ -563,6 +609,9 @@ AC_SUBST(AM_CPPFLAGS) AC_SUBST(JNI_CPPFLAGS) +# Used in man pages +AC_SUBST([LTTNG_UST_MAJOR_VERSION], ust_version_major) +AC_SUBST([LTTNG_UST_MINOR_VERSION], ust_version_minor) ## ## ## Output files generated by configure ## @@ -574,6 +623,7 @@ AC_CONFIG_FILES([ doc/examples/Makefile doc/Makefile doc/man/Makefile + extras/Makefile include/Makefile src/common/Makefile src/lib/lttng-ust-common/Makefile @@ -586,6 +636,7 @@ AC_CONFIG_FILES([ src/lib/lttng-ust-java-agent/java/lttng-ust-agent-common/Makefile src/lib/lttng-ust-java-agent/java/lttng-ust-agent-jul/Makefile src/lib/lttng-ust-java-agent/java/lttng-ust-agent-log4j/Makefile + src/lib/lttng-ust-java-agent/java/lttng-ust-agent-log4j2/Makefile src/lib/lttng-ust-java-agent/java/Makefile src/lib/lttng-ust-java-agent/jni/common/Makefile src/lib/lttng-ust-java-agent/jni/jul/Makefile @@ -599,22 +650,32 @@ AC_CONFIG_FILES([ src/lib/lttng-ust/Makefile src/lib/lttng-ust-python-agent/Makefile src/lib/Makefile - src/lttng-ust-ctl.pc - src/lttng-ust.pc + src/lib/lttng-ust-ctl.pc + src/lib/lttng-ust.pc src/Makefile src/python-lttngust/lttngust/version.py src/python-lttngust/Makefile src/python-lttngust/setup.py tests/benchmark/Makefile - tests/compile/ctf-types/Makefile - tests/compile/hello.cxx/Makefile - tests/compile/hello/Makefile - tests/compile/hello-many/Makefile + tests/compile/api0/ctf-types/Makefile + tests/compile/api0/hello.cxx/Makefile + tests/compile/api0/hello/Makefile + tests/compile/api0/hello-many/Makefile + tests/compile/api0/Makefile + tests/compile/api0/same_line_tracepoint/Makefile + tests/compile/api1/ust-fields/Makefile + tests/compile/api1/hello.cxx/Makefile + tests/compile/api1/hello/Makefile + tests/compile/api1/hello-many/Makefile + tests/compile/api1/Makefile + tests/compile/api1/same_line_tracepoint/Makefile + tests/compile/api1/test-app-ctx/Makefile tests/compile/Makefile - tests/compile/same_line_tracepoint/Makefile - tests/compile/test-app-ctx/Makefile tests/Makefile + tests/regression/abi0-conflict/Makefile + tests/regression/Makefile tests/unit/gcc-weak-hidden/Makefile + tests/unit/libcommon/Makefile tests/unit/libmsgpack/Makefile tests/unit/libringbuffer/Makefile tests/unit/Makefile @@ -634,109 +695,112 @@ AC_OUTPUT ## Mini-report on what will be built. ## ## ## -PPRINT_INIT -PPRINT_SET_INDENT(1) -PPRINT_SET_TS(38) +AE_PPRINT_INIT +AE_PPRINT_SET_INDENT(1) +AE_PPRINT_SET_TS(38) AS_ECHO AS_IF([test -n "ust_version_name"], [ - AS_ECHO("${PPRINT_COLOR_BLDBLU}LTTng-ust $PACKAGE_VERSION \"ust_version_name\"$PPRINT_COLOR_RST") + AS_ECHO("${AE_PPRINT_COLOR_BLDBLU}LTTng-ust $PACKAGE_VERSION \"ust_version_name\"$AE_PPRINT_COLOR_RST") ], [ - AS_ECHO("${PPRINT_COLOR_BLDBLU}LTTng-ust $PACKAGE_VERSION") + AS_ECHO("${AE_PPRINT_COLOR_BLDBLU}LTTng-ust $PACKAGE_VERSION") ]) AS_ECHO AS_IF([test -n "ust_version_description"], [ AS_IF([test -n "$FOLD"], [ - AS_ECHO("`AS_ECHO("ust_version_description") | $FOLD -s`") + AS_ECHO(["ust_version_description"]) | $FOLD -s ], [ - AS_ECHO("ust_version_description") + AS_ECHO(["ust_version_description"]) ]) AS_ECHO ]) -PPRINT_SUBTITLE([System]) +AE_PPRINT_SUBTITLE([System]) -PPRINT_PROP_STRING([Target architecture], $host_cpu) +AE_PPRINT_PROP_STRING([Target architecture], $host_cpu) AS_IF([test "x$unsupported_arch" = "xyes"],[ - PPRINT_WARN([Your architecture ($host_cpu) is unsupported, using safe default of no unaligned access.]) + AE_PPRINT_WARN([Your architecture ($host_cpu) is unsupported, using safe default of no unaligned access.]) ]) AS_ECHO -PPRINT_SUBTITLE([Features]) -PPRINT_SET_INDENT(1) +AE_PPRINT_SUBTITLE([Features]) +AE_PPRINT_SET_INDENT(1) test "x$with_sdt" = "xyes" && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([sdt.h integration], $value, [use --with-sdt]) +AE_PPRINT_PROP_BOOL_CUSTOM([sdt.h integration], $value, [use --with-sdt]) AE_IS_FEATURE_ENABLED([java-agent-jul]) && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([Java agent (JUL support)], $value, [use --enable-java-agent-jul]) +AE_PPRINT_PROP_BOOL_CUSTOM([Java agent (JUL support)], $value, [use --enable-java-agent-jul]) AE_IS_FEATURE_ENABLED([java-agent-log4j]) && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j support)], $value, [use --enable-java-agent-log4j]) +AE_PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j 1.x support (deprecated))], $value, [use --enable-java-agent-log4j]) + +AE_IS_FEATURE_ENABLED([java-agent-log4j2]) && value=1 || value=0 +AE_PPRINT_PROP_BOOL_CUSTOM([Java agent (Log4j 2.x support)], $value, [use --enable-java-agent-log4j2]) AE_IS_FEATURE_ENABLED([jni-interface]) && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([JNI interface (JNI)], $value, [use --enable-jni-interface]) +AE_PPRINT_PROP_BOOL_CUSTOM([JNI interface (JNI)], $value, [use --enable-jni-interface]) AE_IS_FEATURE_ENABLED([python-agent]) && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([Python agent], $value, [use --enable-python-agent]) +AE_PPRINT_PROP_BOOL_CUSTOM([Python agent], $value, [use --enable-python-agent]) test "x$ac_cv_header_linux_perf_event_h" = "xyes" && value=1 || value=0 -PPRINT_PROP_BOOL_CUSTOM([Perf event integration], $value) +AE_PPRINT_PROP_BOOL_CUSTOM([Perf event integration], $value) AE_IS_FEATURE_ENABLED([numa]) && value=1 || value=0 -PPRINT_PROP_BOOL([NUMA], $value) +AE_PPRINT_PROP_BOOL([NUMA], $value) AS_ECHO -PPRINT_SET_INDENT(0) +AE_PPRINT_SET_INDENT(0) AE_IS_FEATURE_ENABLED([examples]) && value=1 || value=0 -PPRINT_PROP_BOOL([Build and install examples], $value, $PPRINT_COLOR_SUBTITLE) +AE_PPRINT_PROP_BOOL([Build and install examples], $value, $AE_PPRINT_COLOR_SUBTITLE) # man pages build enabled/disabled m4_pushdef([build_man_pages_msg], [Build and install man pages]) AE_IF_FEATURE_ENABLED([man-pages], [ AE_IF_IN_GIT_REPO([ - PPRINT_PROP_BOOL([build_man_pages_msg], 1, $PPRINT_COLOR_SUBTITLE) + AE_PPRINT_PROP_BOOL([build_man_pages_msg], 1, $AE_PPRINT_COLOR_SUBTITLE) ], [ AS_IF([test "x$have_asciidoc_xmlto" = "xyes"], [ - PPRINT_PROP_BOOL([build_man_pages_msg], 1, $PPRINT_COLOR_SUBTITLE) + AE_PPRINT_PROP_BOOL([build_man_pages_msg], 1, $AE_PPRINT_COLOR_SUBTITLE) ], [ - PPRINT_PROP_STRING([build_man_pages_msg], - [${PPRINT_COLOR_BLDGRN}yes (already built)], - $PPRINT_COLOR_SUBTITLE) + AE_PPRINT_PROP_STRING([build_man_pages_msg], + [${AE_PPRINT_COLOR_BLDGRN}yes (already built)], + $AE_PPRINT_COLOR_SUBTITLE) ]) ]) ], [ - PPRINT_PROP_BOOL([build_man_pages_msg], 0, $PPRINT_COLOR_SUBTITLE) + AE_PPRINT_PROP_BOOL([build_man_pages_msg], 0, $AE_PPRINT_COLOR_SUBTITLE) ]) m4_popdef([build_man_pages_msg]) -PPRINT_SET_INDENT(1) +AE_PPRINT_SET_INDENT(1) report_bindir="`eval eval echo $bindir`" report_libdir="`eval eval echo $libdir`" # Print the bindir and libdir this `make install' will install into. AS_ECHO -PPRINT_SUBTITLE([Install directories]) -PPRINT_PROP_STRING([Binaries], [$report_bindir]) -PPRINT_PROP_STRING([Libraries], [$report_libdir]) +AE_PPRINT_SUBTITLE([Install directories]) +AE_PPRINT_PROP_STRING([Binaries], [$report_bindir]) +AE_PPRINT_PROP_STRING([Libraries], [$report_libdir]) AS_ECHO -PPRINT_SUBTITLE([System directories]) +AE_PPRINT_SUBTITLE([System directories]) -PPRINT_PROP_STRING([lttng-sessiond rundir], [$lttng_system_rundir]) +AE_PPRINT_PROP_STRING([lttng-sessiond rundir], [$lttng_system_rundir]) -PPRINT_SET_INDENT(0) +AE_PPRINT_SET_INDENT(0) AS_IF([test "x$warn_prebuilt_man_pages" = "xyes" ], [ AS_ECHO - PPRINT_WARN([dnl + AE_PPRINT_WARN([dnl Both asciidoc and xmlto are needed to build the LTTng-UST man pages. Note that the man pages are already built in this distribution tarball,