AC_PREREQ([2.64])
AC_INIT([lttng-tools],[2.8.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org])
+
+AC_CONFIG_HEADERS([include/config.h])
AC_CONFIG_AUX_DIR([config])
+AC_CONFIG_MACRO_DIR([m4])
+
AC_CANONICAL_TARGET
AC_CANONICAL_HOST
-AC_CONFIG_MACRO_DIR([config])
+
AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
AM_MAINTAINER_MODE([enable])
+
+# Enable silent rules if available (Introduced in AM 1.11)
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-# Compute minor/major/patchlevel version numbers
+# Checks for C compiler
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_PROG_CC
+AC_PROG_CC_STDC
+
+# Checks for programs.
+AC_PROG_GREP
+AC_PROG_LEX
+AC_PROG_MAKE_SET
AC_PROG_SED
-major_version=$(echo AC_PACKAGE_VERSION | sed 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
-minor_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
-patchlevel_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
+AC_PROG_YACC
+LT_INIT
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_INLINE
+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
+
+AX_C___ATTRIBUTE__
+AS_IF([test "x$ax_cv___attribute__" = "xyes"],
+ [:],
+ [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
+
+AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])])
+LIBS="$PTHREAD_LIBS $LIBS"
+CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+CC="$PTHREAD_CC"
+
+# Compute minor/major/patchlevel version numbers
+major_version=$(echo AC_PACKAGE_VERSION | $SED 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
+minor_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
+patchlevel_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
AC_SUBST([MAJOR_VERSION], [$major_version])
AC_SUBST([MINOR_VERSION], [$minor_version])
AC_SUBST([PATCHLEVEL_VERSION], [$patchlevel_version])
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')
+version_description_c=$(echo $version_description | $SED 's/"/\\"/g')
AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description_c"], "")
-AC_CONFIG_HEADERS([include/config.h])
-
-AC_PROG_GREP
# libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
AC_ARG_ENABLE(libtool-linkdep-fixup,
AS_HELP_STRING([--disable-libtool-linkdep-fixup],
AS_IF([test "x$libtool_fixup" = "xyes"],
[
- libtool_m4="$srcdir/config/libtool.m4"
+ libtool_m4="$srcdir/m4/libtool.m4"
libtool_flag_pattern=".*link_all_deplibs\s*,\s*\$1\s*)"
AC_MSG_CHECKING([for occurence(s) of link_all_deplibs = no in $libtool_m4])
- libtool_flag_pattern_count=$(grep -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
+ libtool_flag_pattern_count=$($GREP -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
AS_IF([test $libtool_flag_pattern_count -ne 0],
[
AC_MSG_RESULT([$libtool_flag_pattern_count])
AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
- sed -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
+ SED -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
],
[
AC_MSG_RESULT([none])
# Basic functions check
AC_CHECK_FUNCS([ \
- atexit bzero clock_gettime dup2 fdatasync ftruncate \
+ atexit bzero clock_gettime dup2 fdatasync fls ftruncate \
gethostbyname gethostname getpagesize localtime_r memchr memset \
mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \
- strncasecmp strndup strpbrk strrchr strstr strtol strtoul \
+ strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \
strtoull \
])
if test "x${enable_python_binding:-yes}" = xyes; then
AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
- AM_PATH_PYTHON
+ AM_PATH_PYTHON([3.0])
AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
fi
+AX_LIB_SOCKET_NSL
+
# Epoll check. If not present, the build will fallback on poll() API
AX_HAVE_EPOLL(
[AX_CONFIG_FEATURE_ENABLE(epoll)],
fi
fi
-AC_SYS_LARGEFILE
+# Python agent test
+UST_PYTHON_AGENT="lttngust"
-# C compiler tests
-AC_PROG_CC
-AC_C_INLINE
+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]
+)
-# 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
+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])
-LT_INIT
-AC_PROG_YACC
-AC_PROG_LEX
if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then
if test x"$YACC" != "xbison -y"; then
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
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
#
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], [