X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=configure.ac;h=7c592ad2f3e4b00798528d2c6a208ffdc021145c;hb=refs%2Fheads%2Fstable-2.7;hp=019bf123bdba84a9b35fea6888a325beecf15c37;hpb=b5c525626f9e4b254f8288fb49aa42d4402a241e;p=lttng-tools.git diff --git a/configure.ac b/configure.ac index 019bf123b..7c592ad2f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.64]) -AC_INIT([lttng-tools],[2.7.0-rc1],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) +AC_INIT([lttng-tools],[2.7.6],[jeremie.galarneau@efficios.com],[],[https://lttng.org]) AC_CONFIG_AUX_DIR([config]) AC_CANONICAL_TARGET AC_CANONICAL_HOST @@ -171,65 +171,85 @@ AC_DEFINE_DIR([CONFIG_LTTNG_SYSTEM_DATADIR],[datadir], [LTTng system data direct # # Check for pthread AC_CHECK_LIB([pthread], [pthread_create], [], - [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])] + [AC_MSG_ERROR([Cannot find libpthread. Use LDFLAGS=-Ldir to specify its location.])] ) # Check libpopt -AC_CHECK_LIB([popt], [poptGetContext], [], - [AC_MSG_ERROR([Cannot find libpopt. Use [LDFLAGS]=-Ldir to specify its location.])] +PKG_CHECK_MODULES([POPT], [popt], + [LIBS="$LIBS $POPT_LIBS"], + [ + AC_MSG_WARN([pkg-config was unable to find a valid .pc for libpopt. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location]) + AC_MSG_WARN([Finding libpopt without pkg-config.]) + AC_CHECK_LIB([popt], + [poptGetContext], + [], + [ + AC_MSG_ERROR([Cannot find libpopt. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library 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], +PKG_CHECK_MODULES([UUID], [uuid], [ + LIBS="$LIBS $UUID_LIBS" AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) have_libuuid=yes ], [ - # libuuid not found, check for uuid_create in libc. - AC_CHECK_LIB([c], [uuid_create], - [ - AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) - have_libc_uuid=yes - ], - [ - AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.]) - ]) -] -) + AC_MSG_WARN([pkg-config was unable to find a valid .pc for libuuid. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location]) + AC_MSG_WARN([Finding libuuid without pkg-config.]) + AC_CHECK_LIB([uuid], + [uuid_generate], + [ + AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) + have_libuuid=yes + ], + [ + # libuuid not found, check for uuid_create in libc. + AC_CHECK_LIB([c], + [uuid_create], + [ + AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) + have_libc_uuid=yes + ], + [ + AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location]) + ] + ) + ] + ) +]) 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.8.0" +m4_define([WRONG_LIBURCU_MSG], [Userspace RCU (liburcu) >= 0.8.0 is needed]) # Check liburcu needed function calls AC_CHECK_DECL([cds_list_add], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([cds_wfcq_init], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([cds_wfcq_dequeue_blocking], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([futex_async], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([rcu_thread_offline], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([rcu_thread_online], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) AC_CHECK_DECL([caa_likely], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] -) + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]]) +AC_CHECK_LIB([urcu-cds], [_cds_lfht_new], [], + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])]) + #Function added in urcu 0.7.0 AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [], - [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include ]] + [AC_MSG_ERROR([WRONG_LIBURCU_MSG])], [[#include ]] ) # Check kmod library @@ -244,7 +264,7 @@ AC_ARG_WITH(kmod-prefix, AC_ARG_ENABLE(kmod, AS_HELP_STRING([--disable-kmod],[build without kmod support]), - kmod_support=zz$enableval, kmod_support=yes) + kmod_support=$enableval, kmod_support=yes) AS_IF([test "x$kmod_support" = "xyes"], [ AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module], @@ -386,24 +406,24 @@ if test "x$test_java_agent_jul" = "xyes" || test "x$test_java_agent_log4j" = "xy AX_CHECK_CLASSPATH # 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" = "xno"; then - AC_MSG_ERROR([The UST Java agent common class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/lttng-ust-agent-common.jar"]) + AX_CHECK_CLASS(org.lttng.ust.agent.LTTngAgent) + if test "x$ac_cv_class_org_lttng_ust_agent_LTTngAgent" = "xno"; then + AC_MSG_ERROR([The UST Java agent common class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/liblttng-ust-agent.jar"]) fi if test "x$test_java_agent_jul" = "xyes"; then # Check for JUL agent class - AX_CHECK_CLASS(org.lttng.ust.agent.jul.LttngLogHandler) - if test "x$ac_cv_class_org_lttng_ust_agent_jul_LttngLogHandler" = "xno"; then - AC_MSG_ERROR([The UST Java agent JUL class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/lttng-ust-agent-jul.jar"]) + AX_CHECK_CLASS(org.lttng.ust.agent.jul.LTTngJUL) + if test "x$ac_cv_class_org_lttng_ust_agent_jul_LTTngJUL" = "xno"; then + AC_MSG_ERROR([The UST Java agent JUL class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/liblttng-ust-jul.jar"]) fi fi if test "x$test_java_agent_log4j" = "xyes"; then # Check for Log4j agent class - AX_CHECK_CLASS(org.lttng.ust.agent.log4j.LttngLogAppender) - if test "x$ac_cv_class_org_lttng_ust_agent_log4j_LttngLogAppender" = "xno"; then - AC_MSG_ERROR([The UST Java agent Log4j class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/lttng-ust-agent-log4j.jar"]) + AX_CHECK_CLASS(org.lttng.ust.agent.log4j.LTTngLog4j) + if test "x$ac_cv_class_org_lttng_ust_agent_log4j_LTTngLog4j" = "xno"; then + AC_MSG_ERROR([The UST Java agent Log4j class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/liblttng-ust-agent.jar"]) fi # Check for Log4j class @@ -414,6 +434,104 @@ if test "x$test_java_agent_jul" = "xyes" || test "x$test_java_agent_log4j" = "xy fi fi +# Python agent test +UST_PYTHON_AGENT="lttngust" + +AC_ARG_ENABLE(test-python2-agent, + AS_HELP_STRING([--enable-test-python2-agent], + [enable tests for python2 agent. Python2 interpreter path can be overridden by setting the PYTHON2 environment variable. Default: Autodetect] + ),[:],[test_python2_agent_autodetect=yes] +) + +AC_ARG_ENABLE(test-python3-agent, + AS_HELP_STRING([--enable-test-python3-agent], + [enable tests for python3 agent. Python3 interpreter path can be overridden by setting the PYTHON3 environment variable. Default: Autodetect] + ),[:],[test_python3_agent_autodetect=yes] +) + +AC_ARG_ENABLE(test-python-agent-all, + AS_HELP_STRING([--enable-test-python-agent-all], + [enable test for all python{2/3} agent.] + ), +) + +AS_IF([test ! -z "$enable_test_python_agent_all"], [ + unset test_python2_agent_autodetect + unset test_python3_agent_autodetect +]) + +AS_IF([test "x$enable_test_python_agent_all" = "xyes"], [ + enable_test_python2_agent=yes + enable_test_python3_agent=yes +]) + +AS_IF([test "x$enable_test_python_agent_all" = "xno"], [ + enable_test_python2_agent=no + enable_test_python3_agent=no +]) + + +AS_IF([test "x$enable_test_python2_agent" = "xyes" -o "x$test_python2_agent_autodetect" = "xyes" ], [ + AS_IF([test -z "$PYTHON2"], [ + PYTHON2=python2 + ], [ + AC_MSG_WARN([Using user-defined PYTHON2 ($PYTHON2) for lttng-ust python2 agent check]) + ]) + + AC_PATH_PROG([PYTHON2_BIN],[$PYTHON2]) + AS_IF([test -z "$PYTHON2_BIN"], [ + AS_IF([test -z "$test_python2_agent_autodetect"],[ + AC_MSG_ERROR([No python2 interpreter found. PYTHON2 can be set to override default interpreter path]) + ]) + ], [ + AC_MSG_CHECKING([for python2 lttng-ust agent]) + AS_IF([$PYTHON2_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [ + PYTHON2_AGENT=$PYTHON2_BIN + AC_MSG_RESULT([yes]) + RUN_PYTHON_AGENT_TEST=yes + ], [ + AC_MSG_RESULT([no]) + AS_IF([test -z "$test_python2_agent_autodetect"],[ + AC_MSG_ERROR([No python2 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.]) + ]) + ]) + + ]) + +]) + +AS_IF([test "x$enable_test_python3_agent" = "xyes" -o "x$test_python3_agent_autodetect" = "xyes" ], [ + AS_IF([test -z "$PYTHON3"], [ + PYTHON3=python3 + ], [ + AC_MSG_WARN([Using user-defined PYTHON3 ($PYTHON3) for lttng-ust python3 agent check]) + ]) + + AC_PATH_PROG([PYTHON3_BIN],[$PYTHON3]) + AS_IF([test -z "$PYTHON3_BIN"], [ + AS_IF([test -z "$test_python3_agent_autodetect"],[ + AC_MSG_ERROR([No python3 interpreter found. PYTHON3 can be set to override default interpreter path]) + ]) + ], [ + AC_MSG_CHECKING([for python3 lttng-ust agent]) + AS_IF([$PYTHON3_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [ + PYTHON3_AGENT=$PYTHON3_BIN + AC_MSG_RESULT([yes]) + RUN_PYTHON_AGENT_TEST=yes + ], [ + AC_MSG_RESULT([no]) + AS_IF([test -z "$test_python3_agent_autodetect"],[ + AC_MSG_ERROR([No python3 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.]) + ]) + ]) + + ]) +]) + +AC_SUBST([RUN_PYTHON_AGENT_TEST]) +AC_SUBST([PYTHON2_AGENT]) +AC_SUBST([PYTHON3_AGENT]) + AC_SYS_LARGEFILE # C compiler tests @@ -518,6 +636,8 @@ AC_CONFIG_FILES([ tests/regression/tools/exclusion/Makefile tests/regression/tools/save-load/Makefile tests/regression/tools/mi/Makefile + tests/regression/tools/wildcard/Makefile + tests/regression/tools/crash/Makefile tests/regression/ust/Makefile tests/regression/ust/nprocesses/Makefile tests/regression/ust/high-throughput/Makefile @@ -549,6 +669,9 @@ AC_CONFIG_FILES([ tests/utils/testapp/gen-ust-tracef/Makefile ]) +# Inject variable into python test script +AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod +x tests/regression/ust/python-logging/test_python_logging]) + AC_OUTPUT # @@ -607,6 +730,20 @@ AS_IF([test "x$test_java_agent_log4j" = "xyes"],[ AS_ECHO("Disabled") ]) +AS_ECHO_N("LTTng-UST Python2 agent tests: ") +AS_IF([test ! -z "$PYTHON2_AGENT"],[ + AS_ECHO("Enabled") +],[ + AS_ECHO("Disabled") +]) + +AS_ECHO_N("LTTng-UST Python3 agent tests: ") +AS_IF([test ! -z "$PYTHON3_AGENT"],[ + AS_ECHO("Enabled") +],[ + AS_ECHO("Disabled") +]) + #Python binding enabled/disabled AS_ECHO_N("Python binding: ") AS_IF([test "x${enable_python_binding:-yes}" = xyes], [