# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
-AC_INIT([lttng-ust],[2.1.0-rc1],[mathieu dot desnoyers at efficios dot com])
+AC_INIT([lttng-ust],[2.5.6],[mathieu dot desnoyers at efficios dot com])
# Following the numbering scheme proposed by libtool for the library version
# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+# This is the library version of liblttng-ust.
AC_SUBST([LTTNG_UST_LIBRARY_VERSION], [0:0:0])
# note: remember to update tracepoint.h dlopen() to match this version
# number. TODO: eventually automate by exporting the major number.
+# This is the library version of liblttng-ust-ctl, used internally by
+# liblttng-ust, lttng-sessiond, and lttng-consumerd.
+AC_SUBST([LTTNG_UST_CTL_LIBRARY_VERSION], [2:0:0])
+
AC_CONFIG_AUX_DIR([config])
AC_CANONICAL_TARGET
AC_CANONICAL_HOST
AC_CONFIG_MACRO_DIR([config])
AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
+AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR([include/lttng/tracepoint.h])
AC_CONFIG_HEADERS([config.h include/lttng/ust-config.h])
AH_TEMPLATE([LTTNG_UST_HAVE_EFFICIENT_UNALIGNED_ACCESS], [Use efficient unaligned access.])
AH_TEMPLATE([LTTNG_UST_HAVE_SDT_INTEGRATION], [SystemTap integration via sdt.h])
+AH_TEMPLATE([LTTNG_UST_HAVE_PERF_EVENT], [Perf event integration via perf_event.h])
# Compute minor/major/patchlevel version numbers
AC_PROG_SED
AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [UST minor version number])
AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [UST patchlevel version number])
-version_name="Basse Messe"
-version_description="Light coloured German ale whose style was named after the city Cologne (Koln) where it was first brewed. It is a rather simple beer with lightly fruity aromas and a delicate hoppy fragrance. The beer has a pronounced malty taste with a subtle bitter aftertaste"
+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."
+
AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], [UST version name])
AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description"], [UST version description])
AC_PROG_MAKE_SET
LT_INIT
+# rw_PROG_CXX_WORKS
+# Check whether the C++ compiler works.
+AC_CACHE_CHECK([whether the C++ compiler works],
+ [rw_cv_prog_cxx_works],
+ [AC_LANG_PUSH([C++])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+ [check_cxx_designated_initializers=yes],
+ [rw_cv_prog_cxx_works=no])
+ if test "$check_cxx_designated_initializers" = "yes"; then
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+ struct foo { int a; int b; };
+ void fct(void)
+ {
+ struct foo f = { .a = 0, .b = 1 };
+ }
+ ]])],[
+ rw_cv_prog_cxx_works=yes
+ ],[
+ rw_cv_prog_cxx_works=no
+ ])
+ fi
+ AC_LANG_POP([C++])])
+
+AM_CONDITIONAL([CXX_WORKS], [test "x$rw_cv_prog_cxx_works" = "xyes"])
+
+# Check if the compiler support weak symbols
+AX_SYS_WEAK_ALIAS
+
+if test "x${ax_cv_sys_weak_alias}" = "xno"; then
+ AC_MSG_ERROR([Your platform doesn't support weak symbols.])
+fi
+
## Checks for libraries.
AC_CHECK_LIB([dl], [dlopen],
[
AC_CHECK_LIB([pthread], [pthread_create])
-# Check for libuuid
-AC_CHECK_LIB([uuid], [uuid_generate],
-[
- AC_DEFINE_UNQUOTED([LTTNG_UST_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_UST_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
- have_libc_uuid=yes
+# Check for dlfcn.h
+AC_CHECK_HEADER([dlfcn.h])
+AS_IF([test "x${ac_cv_header_dlfcn_h}" = "xyes"],
+ [AC_CHECK_DECLS([RTLD_DI_LINKMAP],,,
+ [#define _GNU_SOURCE /* Required on Linux to get GNU extensions */
+ #include <dlfcn.h>])
],
- [
- AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.])
- ])
-]
-)
-AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
-AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
+ [ac_cv_have_decl_RTLD_DI_LINKMAP="no"])
+AM_CONDITIONAL([HAVE_DLINFO], [test "x${ac_cv_have_decl_RTLD_DI_LINKMAP}" = "xyes"])
# Checks for header files.
#AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
# 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.])])
+# optional linux/perf_event.h
+AC_CHECK_HEADERS([linux/perf_event.h], [have_perf_event=yes], [])
+
+# Perf event counters are only supported on x86 so far.
+AC_MSG_CHECKING([UST support for architecture perf event counters])
+case $host_cpu in
+changequote(,)dnl
+ i[3456]86)
+changequote([,])dnl
+ UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS=yes;;
+ x86_64) UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS=yes;;
+ amd64) UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS=yes;;
+ *) UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS=no;;
+esac
+AC_MSG_RESULT([$UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS])
+
+AM_CONDITIONAL([HAVE_PERF_EVENT], [test "x$have_perf_event" = "xyes" -a "x$UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS" = "xyes"])
+
+if test "x$have_perf_event" = "xyes" -a "x$UST_SUPPORT_FOR_ARCH_PERF_EVENT_COUNTERS" = "xyes"; then
+AC_DEFINE([LTTNG_UST_HAVE_PERF_EVENT], [1])
+fi
+
AC_MSG_CHECKING([host system alignment requirements])
case $host_cpu in
changequote(,)dnl
amd64) ;;
powerpc) ;;
ppc64) ;;
+ ppc64le) ;;
powerpc64) ;;
+ powerpc64le) ;;
s390) NO_UNALIGNED_ACCESS=1 ;;
s390x) NO_UNALIGNED_ACCESS=1 ;;
arm*) NO_UNALIGNED_ACCESS=1 ;;
- mips*) NO_UNALIGNED_ACCESS=1;;
+ mips*) NO_UNALIGNED_ACCESS=1 ;;
+ tile*) NO_UNALIGNED_ACCESS=1 ;;
*) AC_MSG_ERROR([unable to detect alignment requirements (unsupported architecture ($host_cpu)?)]) ;;
esac
+AC_MSG_RESULT([$host_cpu])
if test x$NO_UNALIGNED_ACCESS = x ; then
AC_DEFINE([LTTNG_UST_HAVE_EFFICIENT_UNALIGNED_ACCESS], [1])
[JAVA_JDK=$withval],
[JAVA_JDK=""]
)
+AM_CONDITIONAL([HAVE_JAVA_JDK], [test $JAVA_JDK], [Java JDK path])
+AC_SUBST([JAVA_JDK])
+
AS_IF([test $JAVA_JDK],[
AS_IF([test -d $JAVA_JDK],[
AC_MSG_RESULT([using Java includes in $JAVA_SDK])
AC_CHECK_HEADERS([jni.h],[],[
AC_MSG_ERROR([missing jni.h
Make sure Sun Java, OpenJDK or GCJ is installed and that this header file exists in the system path.
-Use the --with-java-jdk=DIR flag to point to your Java include files, or disable the JNI interface.])
+Use the --with-java-jdk=DIR option to point to your JDK directory, or disable the JNI interface.])
])
])
AM_CONDITIONAL([BUILD_JNI_INTERFACE], [test "x$jni_interface" = "xyes"])
])
])
-#currently disabled.
- #tests/hello2/Makefile
- #tests/basic/Makefile
- #tests/simple_include/Makefile
- #tests/snprintf/Makefile
- #tests/test-nevents/Makefile
- #tests/test-libustinstr-malloc/Makefile
- #tests/dlopen/Makefile
- #tests/same_line_marker/Makefile
- #tests/trace_event/Makefile
- #tests/tracepoint/Makefile
- #tests/tracepoint/benchmark/Makefile
- #tests/register_test/Makefile
- #tests/libustctl_function_#tests/Makefile
- #tests/exit-fast/Makefile
- #tests/basic_long/Makefile
+AC_MSG_CHECKING([whether shared libraries are enabled])
+AS_IF([test "x$enable_shared" = "xyes"],
+ [
+ AC_MSG_RESULT([yes])
+ ],
+ [
+ AC_MSG_RESULT([no])
+ AC_MSG_ERROR([LTTng-UST requires shared libraries to be enabled])
+ ])
+
+AC_ARG_WITH([lttng-system-rundir],
+ AS_HELP_STRING([--with-lttng-system-rundir],
+ [Location of the system directory where LTTng-UST expects the system-wide lttng-sessiond runtime files. The default is "/var/run/lttng".]),
+ [lttng_system_rundir="$withval"],
+ [lttng_system_rundir="/var/run/lttng"])
+AC_DEFINE_UNQUOTED([LTTNG_SYSTEM_RUNDIR], ["$lttng_system_rundir"],
+ [LTTng system runtime directory])
+
+lttnglibjavadir="${libdir}/lttng/java"
+AC_SUBST(lttnglibjavadir)
+
+AM_PATH_PYTHON([2.7],BUILD_GEN_TP_EXAMPLES=1,[:])
+AM_CONDITIONAL([BUILD_GEN_TP_EXAMPLES], [test $BUILD_GEN_TP_EXAMPLES], [Build examples requiring lttng-gen-tp])
AC_CONFIG_FILES([
Makefile
liblttng-ust/Makefile
liblttng-ust-ctl/Makefile
liblttng-ust-fork/Makefile
+ liblttng-ust-dl/Makefile
liblttng-ust-java/Makefile
+ liblttng-ust-jul/Makefile
liblttng-ust-libc-wrapper/Makefile
+ liblttng-ust-cyg-profile/Makefile
tools/Makefile
tests/Makefile
tests/hello/Makefile
- tests/hello-static-lib/Makefile
tests/hello.cxx/Makefile
- tests/daemon/Makefile
- tests/demo/Makefile
- tests/fork/Makefile
- tests/ust-basic-tracing/Makefile
- tests/ust-multi-test/Makefile
+ tests/same_line_tracepoint/Makefile
+ tests/snprintf/Makefile
+ tests/benchmark/Makefile
+ tests/utils/Makefile
+ tests/java-jul/Makefile
lttng-ust.pc
])
# Report on the configuration options
AS_ECHO()
AS_ECHO("LTTng-UST will be built with the following options:")
-AS_ECHO("Library format: $LIBFORMAT")
AS_ECHO()
AS_ECHO_N("Java support (JNI): ")