1 AC_INIT([lttng-tools],[2.4.0-rc2],[dgoulet@efficios.com],[],[http://lttng.org])
2 AC_CONFIG_AUX_DIR([config])
5 AC_CONFIG_MACRO_DIR([config])
6 AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip])
7 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
9 # Compute minor/major/patchlevel version numbers
11 major_version=$(echo AC_PACKAGE_VERSION | sed 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
12 minor_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
13 patchlevel_version=$(echo AC_PACKAGE_VERSION | sed 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
14 AC_SUBST([MAJOR_VERSION], [$major_version])
15 AC_SUBST([MINOR_VERSION], [$minor_version])
16 AC_SUBST([PATCHLEVEL_VERSION], [$patchlevel_version])
17 AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version number])
18 AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version number])
19 AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number])
21 version_name="Époque Opaque"
22 version_description="The Époque Opaque is a black IPA from Trou du Diable brewery. The nose is eerily reminiscent of the coffee crisp candy from of our childhood. These strong mocha accents are present on the palate, which are quickly subdued by Japanese and Australian hops leading to a final state of satisfaction enjoyable for any fan of bitter beer."
24 AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
25 AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description"], "")
27 AC_CONFIG_HEADERS([include/config.h])
30 # libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
31 AC_ARG_ENABLE(libtool-linkdep-fixup,
32 AS_HELP_STRING([--disable-libtool-linkdep-fixup],
33 [disable the libtool fixup for linking all dependent libraries (link_all_deplibs)]),
34 libtool_fixup=$enableval,
37 AS_IF([test "x$libtool_fixup" = "xyes"],
39 libtool_m4="$srcdir/config/libtool.m4"
40 libtool_flag_pattern=".*link_all_deplibs\s*,\s*\$1\s*)"
41 AC_MSG_CHECKING([for occurence(s) of link_all_deplibs = no in $libtool_m4])
42 libtool_flag_pattern_count=$(grep -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
43 AS_IF([test $libtool_flag_pattern_count -ne 0],
45 AC_MSG_RESULT([$libtool_flag_pattern_count])
46 AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
47 sed -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
54 AM_CONDITIONAL([NO_SHARED], [test x$enable_shared = xno])
57 sys/types.h unistd.h fcntl.h string.h pthread.h limits.h \
58 signal.h stdlib.h sys/un.h sys/socket.h stdlib.h stdio.h \
59 getopt.h sys/ipc.h sys/shm.h popt.h grp.h \
62 # Babeltrace viewer check
63 AC_ARG_WITH([babeltrace-bin],
64 AS_HELP_STRING([--with-babeltrace-bin],
65 [Location of the babeltrace viewer executable (including the filename)]),
66 [BABELTRACE_BIN="$withval"],
68 AC_SUBST([BABELTRACE_BIN])
71 AC_ARG_WITH([lttv-gui-bin],
72 AS_HELP_STRING([--with-lttv-gui-bin],
73 [Location of the lttv GUI viewer executable (including the filename)]),
74 [LTTV_GUI_BIN="$withval"],
76 AC_SUBST([LTTV_GUI_BIN])
78 AC_ARG_WITH([consumerd32-bin],
79 AS_HELP_STRING([--with-consumerd32-bin],
80 [Location of the 32-bit consumerd executable (including the filename)]),
81 [CONSUMERD32_BIN="$withval"],
83 AC_SUBST([CONSUMERD32_BIN])
85 AC_ARG_WITH([consumerd64-bin],
86 AS_HELP_STRING([--with-consumerd64-bin],
87 [Location of the 64-bit consumerd executable (including the filename)]),
88 [CONSUMERD64_BIN="$withval"],
90 AC_SUBST([CONSUMERD64_BIN])
92 AC_ARG_WITH([consumerd32-libdir],
93 AS_HELP_STRING([--with-consumerd32-libdir],
94 [Directory containing the 32-bit consumerd libraries]),
95 [CONSUMERD32_LIBDIR="$withval"],
96 [CONSUMERD32_LIBDIR=''])
97 AC_SUBST([CONSUMERD32_LIBDIR])
99 AC_ARG_WITH([consumerd64-libdir],
100 AS_HELP_STRING([--with-consumerd64-libdir],
101 [Directory containing the 64-bit consumerd libraries]),
102 [CONSUMERD64_LIBDIR="$withval"],
103 [CONSUMERD64_LIBDIR=''])
104 AC_SUBST([CONSUMERD64_LIBDIR])
106 AC_ARG_WITH([sessiond-bin],
107 AS_HELP_STRING([--with-sessiond-bin],
108 [Location of the sessiond executable (including the filename)]),
109 [SESSIOND_BIN="$withval"],
111 AC_SUBST([SESSIOND_BIN])
113 AC_ARG_WITH([lttng-system-rundir],
114 AS_HELP_STRING([--with-lttng-system-rundir],
115 [Location of the system directory where the system-wide lttng-sessiond runtime files are kept. The default is "/var/run/lttng".]),
116 [LTTNG_SYSTEM_RUNDIR="$withval"],
117 [LTTNG_SYSTEM_RUNDIR="/var/run/lttng"])
118 AC_SUBST([LTTNG_SYSTEM_RUNDIR])
120 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_BIN], "$CONSUMERD32_BIN", [Location of the 32-bit consumerd executable.])
121 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_BIN], "$CONSUMERD64_BIN", [Location of the 64-bit consumerd executable])
122 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_LIBDIR], "$CONSUMERD32_LIBDIR", [Search for consumerd 32-bit libraries in this location.])
123 AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_LIBDIR], "$CONSUMERD64_LIBDIR", [Search for consumerd 64-bit libraries in this location.])
124 AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_BIN], "$BABELTRACE_BIN", [Location of the babeltrace viewer executable.])
125 AC_DEFINE_UNQUOTED([CONFIG_LTTV_GUI_BIN], "$LTTV_GUI_BIN", [Location of the lttv GUI viewer executable.])
126 AC_DEFINE_UNQUOTED([CONFIG_SESSIOND_BIN], "$SESSIOND_BIN", [Location of the sessiond executable.])
127 AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_RUNDIR], ["$LTTNG_SYSTEM_RUNDIR"], [LTTng system runtime directory])
130 AC_CHECK_LIB([pthread], [pthread_create], [],
131 [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])]
135 AC_CHECK_LIB([popt], [poptGetContext], [],
136 [AC_MSG_ERROR([Cannot find libpopt. Use [LDFLAGS]=-Ldir to specify its location.])]
140 AC_CHECK_LIB([uuid], [uuid_generate],
142 AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.])
146 # libuuid not found, check for uuid_create in libc.
147 AC_CHECK_LIB([c], [uuid_create],
149 AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
153 AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.])
157 AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
158 AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
160 # URCU library version needed or newer
161 liburcu_version=">= 0.7.2"
163 # Check liburcu needed function calls
164 AC_CHECK_DECL([cds_list_add], [],
165 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/list.h>]]
167 AC_CHECK_DECL([cds_wfq_init], [],
168 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
170 AC_CHECK_DECL([cds_wfq_dequeue_blocking], [],
171 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
173 AC_CHECK_DECL([futex_async], [],
174 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/futex.h>]]
176 AC_CHECK_DECL([rcu_thread_offline], [],
177 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
179 AC_CHECK_DECL([rcu_thread_online], [],
180 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
182 AC_CHECK_DECL([caa_likely], [],
183 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
185 #Function added in urcu 0.7.0
186 AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [],
187 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
190 AC_ARG_WITH(lttng-ust-prefix,
191 AS_HELP_STRING([--with-lttng-ust-prefix=PATH],
192 [Specify the installation prefix of the lttng-ust library.
193 Headers must be in PATH/include; libraries in PATH/lib.]),
195 CPPFLAGS="$CPPFLAGS -I${withval}/include"
196 LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib"
199 # Check liblttng-ust-ctl library
200 AC_ARG_ENABLE(lttng-ust,
201 AS_HELP_STRING([--disable-lttng-ust],[build without LTTng-UST (Userspace Tracing) support]),
202 lttng_ust_support=$enableval, lttng_ust_support=yes)
204 AS_IF([test "x$lttng_ust_support" = "xyes"], [
205 AC_CHECK_LIB([lttng-ust-ctl], [ustctl_recv_channel_from_consumer],
207 AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1], [has LTTng-UST control support])
208 lttng_ust_ctl_found=yes
210 [AC_MSG_ERROR([Cannot find LTTng-UST >= 2.2.x. Use --with-lttng-ust-prefix=PREFIX to specify its location, or specify --disable-lttng-ust to build lttng-tools without LTTng-UST support.])],
211 [-lurcu-common -lurcu-bp -lurcu-cds -lrt]
214 AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$lttng_ust_ctl_found" = xyes])
215 AC_CHECK_FUNCS([sched_getcpu sysconf sync_file_range])
218 AC_CHECK_LIB([dl], [dlopen],
223 #libdl not found, check for dlopen in libc.
224 AC_CHECK_LIB([c], [dlopen],
229 AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])
232 AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"])
233 AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"])
236 AC_CHECK_LIB([c], [fmemopen],
238 AC_DEFINE_UNQUOTED([LTTNG_HAVE_FMEMOPEN], 1, [Has fmemopen support.])
242 # Check for open_memstream
243 AC_CHECK_LIB([c], [open_memstream],
245 AC_DEFINE_UNQUOTED([LTTNG_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])
250 # SWIG version needed or newer:
253 AC_ARG_ENABLE([python-bindings],
254 [AC_HELP_STRING([--enable-python-bindings],
255 [compile Python bindings])],
256 [enable_python=yes], [enable_python=no])
258 AM_CONDITIONAL([USE_PYTHON], [test "x${enable_python:-yes}" = xyes])
260 if test "x${enable_python:-yes}" = xyes; then
261 AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
264 AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
265 AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
266 AS_IF([test -z "$PYTHON_INCLUDE"], [
267 AS_IF([test -z "$PYTHON_CONFIG"], [
268 AC_PATH_PROGS([PYTHON_CONFIG],
269 [python$PYTHON_VERSION-config python-config],
272 AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON. Do you have python-dev installed?])])
274 AC_MSG_CHECKING([python include flags])
275 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
276 AC_MSG_RESULT([$PYTHON_INCLUDE])
280 AC_MSG_NOTICE([You may configure with --enable-python-bindings ]dnl
281 [if you want Python bindings.])
285 # Option to only build the consumer daemon and its libraries
286 AC_ARG_WITH([consumerd-only],
287 AS_HELP_STRING([--with-consumerd-only],[Only build the consumer daemon [default=no]]),
288 [consumerd_only=$withval],
290 AM_CONDITIONAL([BUILD_CONSUMERD_ONLY], [test "x$consumerd_only" = "xyes"])
292 # Epoll check. If not present, the build will fallback on poll() API
294 [AX_CONFIG_FEATURE_ENABLE(epoll)],
295 [AX_CONFIG_FEATURE_DISABLE(epoll)]
298 [epoll], [This platform supports epoll(7)],
299 [HAVE_EPOLL], [This platform supports epoll(7).],
300 [enable_epoll="yes"], [enable_epoll="no"]
302 AM_CONDITIONAL([COMPAT_EPOLL], [ test "$enable_epoll" = "yes" ])
304 # Set compile flags to java include files if given. This is only used to
306 AC_ARG_WITH([java-jdk],
307 [AS_HELP_STRING([--with-java-jdk=DIR],[use the Java JDK in DIR. Ex : $JAVA_HOME.])],
311 AM_CONDITIONAL([HAVE_JAVA_JDK], [test $JAVA_JDK], [Java JDK path])
314 AS_IF([test $JAVA_JDK],[
315 AS_IF([test -d $JAVA_JDK],
317 AC_MSG_RESULT([using Java includes in $JAVA_SDK])
318 SUBDIRS=`find $JAVA_JDK/include -type d`
320 CPPFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done`
322 ],[AC_MSG_ERROR(Unable to find Java include files in $JAVA_JDK)]
326 # Check for the UST JUL jar file in the system. Hardcoded path is added here
327 # since we have *no* idea where this could be installed. Note that this is only
328 # used for JUL testing.
329 AC_MSG_CHECKING(Java JUL UST jar file)
330 java_jul_jar_path="/usr/local/lib/lttng/java/liblttng-ust-jul.jar"
331 if test -f $java_jul_jar_path; then
336 AC_MSG_RESULT(not found)
338 AM_CONDITIONAL([BUILD_JAVA_JUL], [test "x$build_java_jul" = "xyes"])
339 AC_SUBST([java_jul_jar_path])
347 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then
348 if test x"$YACC" != "xbison -y"; then
349 AC_MSG_ERROR([[bison not found and is required when building from git.
350 Please install bison]])
354 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-lexer.c"; then
355 if test x"$LEX" != "xflex"; then
356 AC_MSG_ERROR([[flex not found and is required when building from git.
357 Please install flex]])
361 CFLAGS="-Wall $CFLAGS -g -fno-strict-aliasing"
363 DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_builddir)/src -I\$(top_builddir)/include -include config.h"
365 lttngincludedir="${includedir}/lttng"
367 AC_SUBST(lttngincludedir)
368 AC_SUBST(DEFAULT_INCLUDES)
370 lttnglibexecdir="${libdir}/lttng/libexec"
371 AC_SUBST(lttnglibexecdir)
379 extras/bindings/Makefile
380 extras/bindings/swig/Makefile
381 extras/bindings/swig/python/Makefile
382 extras/core-handler/Makefile
385 src/common/kernel-ctl/Makefile
386 src/common/kernel-consumer/Makefile
387 src/common/ust-consumer/Makefile
388 src/common/hashtable/Makefile
389 src/common/sessiond-comm/Makefile
390 src/common/compat/Makefile
391 src/common/relayd/Makefile
392 src/common/testpoint/Makefile
393 src/common/index/Makefile
394 src/common/health/Makefile
396 src/lib/lttng-ctl/Makefile
397 src/lib/lttng-ctl/filter/Makefile
398 src/lib/lttng-ctl/lttng-ctl.pc
400 src/bin/lttng-consumerd/Makefile
401 src/bin/lttng-sessiond/Makefile
402 src/bin/lttng-relayd/Makefile
403 src/bin/lttng/Makefile
405 tests/regression/Makefile
406 tests/regression/kernel/Makefile
407 tests/regression/tools/Makefile
408 tests/regression/tools/streaming/Makefile
409 tests/regression/tools/filtering/Makefile
410 tests/regression/tools/health/Makefile
411 tests/regression/tools/tracefile-limits/Makefile
412 tests/regression/tools/snapshots/Makefile
413 tests/regression/tools/live/Makefile
414 tests/regression/tools/exclusion/Makefile
415 tests/regression/ust/Makefile
416 tests/regression/ust/nprocesses/Makefile
417 tests/regression/ust/high-throughput/Makefile
418 tests/regression/ust/low-throughput/Makefile
419 tests/regression/ust/before-after/Makefile
420 tests/regression/ust/buffers-pid/Makefile
421 tests/regression/ust/periodical-metadata-flush/Makefile
422 tests/regression/ust/multi-session/Makefile
423 tests/regression/ust/overlap/Makefile
424 tests/regression/ust/overlap/demo/Makefile
425 tests/regression/ust/linking/Makefile
426 tests/regression/ust/daemon/Makefile
427 tests/regression/ust/exit-fast/Makefile
428 tests/regression/ust/fork/Makefile
429 tests/regression/ust/libc-wrapper/Makefile
430 tests/regression/ust/java-jul/Makefile
431 tests/stress/Makefile
434 tests/utils/tap/Makefile
435 tests/utils/testapp/Makefile
436 tests/utils/testapp/gen-ust-events/Makefile
437 tests/utils/testapp/gen-ust-nevents/Makefile
443 # Mini-report on what will be built
447 AS_ECHO("Version name: $version_name")
448 AS_ECHO("$version_description")
452 # Target architecture we're building for
453 target_arch=$host_cpu
456 if test $f = "-m32"; then
458 elif test $f = "-m64"; then
463 AS_ECHO_N("Target architecture: ")
464 AS_ECHO($target_arch)
466 # LTTng-UST enabled/disabled
467 AS_ECHO_N("Lttng-UST support: ")
468 AS_IF([test "x$lttng_ust_support" = "xyes"],[
474 #Python binding enabled/disabled
475 AS_ECHO_N("Python binding: ")
476 AS_IF([test "x${enable_python:-yes}" = xyes], [
482 # Do we build only the consumerd, or everything
483 AS_IF([test "x$consumerd_only" = "xyes"],[
484 AS_ECHO("Only the consumerd daemon will be built.")
486 AS_ECHO("All binaries will be built.")
489 # Print the bindir and libdir this `make install' will install into.
491 AS_ECHO_N("Binaries will be installed in: ")
492 AS_ECHO("`eval eval echo $bindir`")
493 AS_ECHO_N("Libraries will be installed in: ")
494 AS_ECHO("`eval eval echo $libdir`")
496 # If we build the sessiond, print the paths it will use
497 AS_IF([test "x$consumerd_only" = "xno"],[
499 AS_ECHO_N("The lttng command will look for the lttng-sessiond executable at: ")
500 AS_IF([test "$SESSIOND_BIN" = ""],[
501 AS_ECHO_N("`eval eval echo $bindir`")
502 AS_ECHO("/lttng-sessiond")
504 AS_ECHO("$SESSIOND_BIN")
508 AS_ECHO("The sessiond daemon will look in the following directories: ")
509 AS_ECHO_N("32-bit consumerd executable at: ")
510 AS_IF([test "$CONSUMERD32_BIN" = ""],[
511 AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
512 AS_ECHO("/lttng-consumerd")
514 AS_ECHO("$CONSUMERD32_BIN")
517 AS_ECHO_N("32-bit consumer libraries in: ")
518 AS_IF([test "$CONSUMERD32_LIBDIR" = ""],[
519 AS_ECHO("`eval eval echo $libdir`")
521 AS_ECHO("$CONSUMERD32_LIBDIR")
524 AS_ECHO_N("64-bit consumerd executable at: ")
525 AS_IF([test "$CONSUMERD64_BIN" = ""],[
526 AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
527 AS_ECHO("/lttng-consumerd")
529 AS_ECHO("$CONSUMERD64_BIN")
532 AS_ECHO_N("64-bit consumer libraries in: ")
533 AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[
534 AS_ECHO("`eval eval echo $libdir`")
536 AS_ECHO("$CONSUMERD64_LIBDIR")