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])
129 if test "x$prefix" = "xNONE"; then
130 prefix=$ac_default_prefix
132 CONFDIR=`eval echo $sysconfdir`
134 AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_CONFIGDIR],"$CONFDIR", [LTTng system configuration directory.])
138 AC_CHECK_LIB([pthread], [pthread_create], [],
139 [AC_MSG_ERROR([Cannot find libpthread. Use [LDFLAGS]=-Ldir to specify its location.])]
143 AC_CHECK_LIB([popt], [poptGetContext], [],
144 [AC_MSG_ERROR([Cannot find libpopt. Use [LDFLAGS]=-Ldir to specify its location.])]
150 AC_CHECK_LIB([uuid], [uuid_generate],
152 AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.])
156 # libuuid not found, check for uuid_create in libc.
157 AC_CHECK_LIB([c], [uuid_create],
159 AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
163 AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.])
167 AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
168 AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
170 # URCU library version needed or newer
171 liburcu_version=">= 0.7.2"
173 # Check liburcu needed function calls
174 AC_CHECK_DECL([cds_list_add], [],
175 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/list.h>]]
177 AC_CHECK_DECL([cds_wfq_init], [],
178 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
180 AC_CHECK_DECL([cds_wfq_dequeue_blocking], [],
181 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/wfqueue.h>]]
183 AC_CHECK_DECL([futex_async], [],
184 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu/futex.h>]]
186 AC_CHECK_DECL([rcu_thread_offline], [],
187 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
189 AC_CHECK_DECL([rcu_thread_online], [],
190 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
192 AC_CHECK_DECL([caa_likely], [],
193 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
195 #Function added in urcu 0.7.0
196 AC_CHECK_DECL([cmm_smp_mb__before_uatomic_or], [],
197 [AC_MSG_ERROR([liburcu $liburcu_version or newer is needed])], [[#include <urcu.h>]]
200 AC_ARG_WITH(lttng-ust-prefix,
201 AS_HELP_STRING([--with-lttng-ust-prefix=PATH],
202 [Specify the installation prefix of the lttng-ust library.
203 Headers must be in PATH/include; libraries in PATH/lib.]),
205 CPPFLAGS="$CPPFLAGS -I${withval}/include"
206 LDFLAGS="$LDFLAGS -L${withval}/lib64 -L${withval}/lib"
209 # Check liblttng-ust-ctl library
210 AC_ARG_ENABLE(lttng-ust,
211 AS_HELP_STRING([--disable-lttng-ust],[build without LTTng-UST (Userspace Tracing) support]),
212 lttng_ust_support=$enableval, lttng_ust_support=yes)
214 AS_IF([test "x$lttng_ust_support" = "xyes"], [
215 AC_CHECK_LIB([lttng-ust-ctl], [ustctl_recv_channel_from_consumer],
217 AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1], [has LTTng-UST control support])
218 lttng_ust_ctl_found=yes
220 [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.])],
221 [-lurcu-common -lurcu-bp -lurcu-cds -lrt]
224 AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$lttng_ust_ctl_found" = xyes])
225 AC_CHECK_FUNCS([sched_getcpu sysconf sync_file_range])
228 AC_CHECK_LIB([dl], [dlopen],
233 #libdl not found, check for dlopen in libc.
234 AC_CHECK_LIB([c], [dlopen],
239 AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])
242 AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBDL], [test "x$have_libdl" = "xyes"])
243 AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBC_DL], [test "x$have_libc_dl" = "xyes"])
246 AC_CHECK_LIB([c], [fmemopen],
248 AC_DEFINE_UNQUOTED([LTTNG_HAVE_FMEMOPEN], 1, [Has fmemopen support.])
252 # Check for open_memstream
253 AC_CHECK_LIB([c], [open_memstream],
255 AC_DEFINE_UNQUOTED([LTTNG_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])
260 # SWIG version needed or newer:
263 AC_ARG_ENABLE([python-bindings],
264 [AC_HELP_STRING([--enable-python-bindings],
265 [compile Python bindings])],
266 [enable_python=yes], [enable_python=no])
268 AM_CONDITIONAL([USE_PYTHON], [test "x${enable_python:-yes}" = xyes])
270 if test "x${enable_python:-yes}" = xyes; then
271 AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
274 AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
275 AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
276 AS_IF([test -z "$PYTHON_INCLUDE"], [
277 AS_IF([test -z "$PYTHON_CONFIG"], [
278 AC_PATH_PROGS([PYTHON_CONFIG],
279 [python$PYTHON_VERSION-config python-config],
282 AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON. Do you have python-dev installed?])])
284 AC_MSG_CHECKING([python include flags])
285 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
286 AC_MSG_RESULT([$PYTHON_INCLUDE])
290 AC_MSG_NOTICE([You may configure with --enable-python-bindings ]dnl
291 [if you want Python bindings.])
295 # Option to only build the consumer daemon and its libraries
296 AC_ARG_WITH([consumerd-only],
297 AS_HELP_STRING([--with-consumerd-only],[Only build the consumer daemon [default=no]]),
298 [consumerd_only=$withval],
300 AM_CONDITIONAL([BUILD_CONSUMERD_ONLY], [test "x$consumerd_only" = "xyes"])
302 # Epoll check. If not present, the build will fallback on poll() API
304 [AX_CONFIG_FEATURE_ENABLE(epoll)],
305 [AX_CONFIG_FEATURE_DISABLE(epoll)]
308 [epoll], [This platform supports epoll(7)],
309 [HAVE_EPOLL], [This platform supports epoll(7).],
310 [enable_epoll="yes"], [enable_epoll="no"]
312 AM_CONDITIONAL([COMPAT_EPOLL], [ test "$enable_epoll" = "yes" ])
314 # Set compile flags to java include files if given. This is only used to
316 AC_ARG_WITH([java-jdk],
317 [AS_HELP_STRING([--with-java-jdk=DIR],[use the Java JDK in DIR. Ex : $JAVA_HOME.])],
321 AM_CONDITIONAL([HAVE_JAVA_JDK], [test $JAVA_JDK], [Java JDK path])
324 AS_IF([test $JAVA_JDK],[
325 AS_IF([test -d $JAVA_JDK],
327 AC_MSG_RESULT([using Java includes in $JAVA_SDK])
328 SUBDIRS=`find $JAVA_JDK/include -type d`
330 CPPFLAGS+=`for x in $SUBDIRS; do echo -n "-I$x "; done`
332 ],[AC_MSG_ERROR(Unable to find Java include files in $JAVA_JDK)]
336 # Check for the UST JUL jar file in the system. Hardcoded path is added here
337 # since we have *no* idea where this could be installed. Note that this is only
338 # used for JUL testing.
339 AC_MSG_CHECKING(Java JUL UST jar file)
340 java_jul_jar_path="/usr/local/lib/lttng/java/liblttng-ust-jul.jar"
341 if test -f $java_jul_jar_path; then
346 AC_MSG_RESULT(not found)
348 AM_CONDITIONAL([BUILD_JAVA_JUL], [test "x$build_java_jul" = "xyes"])
349 AC_SUBST([java_jul_jar_path])
357 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-parser.h"; then
358 if test x"$YACC" != "xbison -y"; then
359 AC_MSG_ERROR([[bison not found and is required when building from git.
360 Please install bison]])
364 if test ! -f "$srcdir/src/lib/lttng-ctl/filter/filter-lexer.c"; then
365 if test x"$LEX" != "xflex"; then
366 AC_MSG_ERROR([[flex not found and is required when building from git.
367 Please install flex]])
371 CFLAGS="-Wall $CFLAGS -g -fno-strict-aliasing"
373 DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_builddir)/src -I\$(top_builddir)/include -include config.h"
375 lttngincludedir="${includedir}/lttng"
377 AC_SUBST(lttngincludedir)
378 AC_SUBST(DEFAULT_INCLUDES)
380 lttnglibexecdir="${libdir}/lttng/libexec"
381 AC_SUBST(lttnglibexecdir)
389 extras/bindings/Makefile
390 extras/bindings/swig/Makefile
391 extras/bindings/swig/python/Makefile
392 extras/core-handler/Makefile
395 src/common/kernel-ctl/Makefile
396 src/common/kernel-consumer/Makefile
397 src/common/ust-consumer/Makefile
398 src/common/hashtable/Makefile
399 src/common/sessiond-comm/Makefile
400 src/common/compat/Makefile
401 src/common/relayd/Makefile
402 src/common/testpoint/Makefile
403 src/common/index/Makefile
404 src/common/health/Makefile
405 src/common/config/Makefile
407 src/lib/lttng-ctl/Makefile
408 src/lib/lttng-ctl/filter/Makefile
409 src/lib/lttng-ctl/lttng-ctl.pc
411 src/bin/lttng-consumerd/Makefile
412 src/bin/lttng-sessiond/Makefile
413 src/bin/lttng-relayd/Makefile
414 src/bin/lttng/Makefile
416 tests/regression/Makefile
417 tests/regression/kernel/Makefile
418 tests/regression/tools/Makefile
419 tests/regression/tools/streaming/Makefile
420 tests/regression/tools/filtering/Makefile
421 tests/regression/tools/health/Makefile
422 tests/regression/tools/tracefile-limits/Makefile
423 tests/regression/tools/snapshots/Makefile
424 tests/regression/tools/live/Makefile
425 tests/regression/tools/exclusion/Makefile
426 tests/regression/ust/Makefile
427 tests/regression/ust/nprocesses/Makefile
428 tests/regression/ust/high-throughput/Makefile
429 tests/regression/ust/low-throughput/Makefile
430 tests/regression/ust/before-after/Makefile
431 tests/regression/ust/buffers-pid/Makefile
432 tests/regression/ust/periodical-metadata-flush/Makefile
433 tests/regression/ust/multi-session/Makefile
434 tests/regression/ust/overlap/Makefile
435 tests/regression/ust/overlap/demo/Makefile
436 tests/regression/ust/linking/Makefile
437 tests/regression/ust/daemon/Makefile
438 tests/regression/ust/exit-fast/Makefile
439 tests/regression/ust/fork/Makefile
440 tests/regression/ust/libc-wrapper/Makefile
441 tests/regression/ust/java-jul/Makefile
442 tests/stress/Makefile
444 tests/unit/ini_config/Makefile
446 tests/utils/tap/Makefile
447 tests/utils/testapp/Makefile
448 tests/utils/testapp/gen-ust-events/Makefile
449 tests/utils/testapp/gen-ust-nevents/Makefile
455 # Mini-report on what will be built
459 AS_ECHO("Version name: $version_name")
460 AS_ECHO("$version_description")
464 # Target architecture we're building for
465 target_arch=$host_cpu
468 if test $f = "-m32"; then
470 elif test $f = "-m64"; then
475 AS_ECHO_N("Target architecture: ")
476 AS_ECHO($target_arch)
478 # LTTng-UST enabled/disabled
479 AS_ECHO_N("Lttng-UST support: ")
480 AS_IF([test "x$lttng_ust_support" = "xyes"],[
486 #Python binding enabled/disabled
487 AS_ECHO_N("Python binding: ")
488 AS_IF([test "x${enable_python:-yes}" = xyes], [
494 # Do we build only the consumerd, or everything
495 AS_IF([test "x$consumerd_only" = "xyes"],[
496 AS_ECHO("Only the consumerd daemon will be built.")
498 AS_ECHO("All binaries will be built.")
501 # Print the bindir and libdir this `make install' will install into.
503 AS_ECHO_N("Binaries will be installed in: ")
504 AS_ECHO("`eval eval echo $bindir`")
505 AS_ECHO_N("Libraries will be installed in: ")
506 AS_ECHO("`eval eval echo $libdir`")
508 # If we build the sessiond, print the paths it will use
509 AS_IF([test "x$consumerd_only" = "xno"],[
511 AS_ECHO_N("The lttng command will look for the lttng-sessiond executable at: ")
512 AS_IF([test "$SESSIOND_BIN" = ""],[
513 AS_ECHO_N("`eval eval echo $bindir`")
514 AS_ECHO("/lttng-sessiond")
516 AS_ECHO("$SESSIOND_BIN")
520 AS_ECHO("The sessiond daemon will look in the following directories: ")
521 AS_ECHO_N("32-bit consumerd executable at: ")
522 AS_IF([test "$CONSUMERD32_BIN" = ""],[
523 AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
524 AS_ECHO("/lttng-consumerd")
526 AS_ECHO("$CONSUMERD32_BIN")
529 AS_ECHO_N("32-bit consumer libraries in: ")
530 AS_IF([test "$CONSUMERD32_LIBDIR" = ""],[
531 AS_ECHO("`eval eval echo $libdir`")
533 AS_ECHO("$CONSUMERD32_LIBDIR")
536 AS_ECHO_N("64-bit consumerd executable at: ")
537 AS_IF([test "$CONSUMERD64_BIN" = ""],[
538 AS_ECHO_N("`eval eval echo $lttnglibexecdir`")
539 AS_ECHO("/lttng-consumerd")
541 AS_ECHO("$CONSUMERD64_BIN")
544 AS_ECHO_N("64-bit consumer libraries in: ")
545 AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[
546 AS_ECHO("`eval eval echo $libdir`")
548 AS_ECHO("$CONSUMERD64_LIBDIR")