Tests: add a multi-domain ust+kernel rotation test
[lttng-tools.git] / configure.ac
CommitLineData
ab5be9fa 1dnl SPDX-License-Identifier: GPL-2.0-only
5d5baaa3 2AC_PREREQ([2.64])
6d780cff 3AC_INIT([lttng-tools],[2.14.0-pre],[jeremie.galarneau@efficios.com],[],[https://lttng.org])
b7d2e95f
MJ
4
5AC_CONFIG_HEADERS([include/config.h])
fac6795d 6AC_CONFIG_AUX_DIR([config])
b7d2e95f
MJ
7AC_CONFIG_MACRO_DIR([m4])
8
6e2d116c
DG
9AC_CANONICAL_TARGET
10AC_CANONICAL_HOST
b7d2e95f 11
343a7a98 12AM_INIT_AUTOMAKE([1.12 foreign dist-bzip2 no-dist-gzip tar-pax nostdinc])
d34cd287 13AM_MAINTAINER_MODE([enable])
b7d2e95f
MJ
14
15# Enable silent rules if available (Introduced in AM 1.11)
c615ee2f 16m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
fac6795d 17
c30417c1
SM
18
19## ##
20## C compiler checks ##
21## ##
22
23# Choose the C compiler
b7d2e95f 24AC_PROG_CC
faa88ea8
JG
25# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70
26m4_version_prereq([2.70], [], [AC_PROG_CC_STDC])
a9c2df2b 27
c30417c1
SM
28# Make sure the C compiler supports C99
29AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])])
30
31# Enable available system extensions and LFS support
32AC_USE_SYSTEM_EXTENSIONS
33AC_SYS_LARGEFILE
34
35# Make sure the C compiler supports __attribute__
36AX_C___ATTRIBUTE__
37AS_IF([test "x$ax_cv___attribute__" != "xyes"],
38 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
39
40# Make sure we have pthread support
41AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])])
42
43# Checks for typedefs, structures, and compiler characteristics.
44AC_C_INLINE
45AC_TYPE_INT32_T
46AC_TYPE_INT64_T
47AC_TYPE_MODE_T
48AC_TYPE_OFF_T
49AC_TYPE_PID_T
50AC_TYPE_SIZE_T
51AC_TYPE_SSIZE_T
52AC_TYPE_UID_T
53AC_TYPE_UINT16_T
54AC_TYPE_UINT32_T
55AC_TYPE_UINT64_T
56AC_TYPE_UINT8_T
57
58# Detect warning flags supported by the C and C++ compilers and append them to
59# WARN_CFLAGS and WARN_CXXFLAGS.
60m4_define([WARN_FLAGS_LIST], [ dnl
61 -Wall dnl
62 dnl We currently get this warning when building with Clang:
63 dnl
64 dnl /usr/include/setjmp.h:54:12: error: declaration of built-in function '__sigsetjmp' requires the declaration of the 'jmp_buf' type, commonly provided in the header <setjmp.h>. [-Werror,-Wincomplete-setjmp-declaration]
65 dnl extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROWNL;
66 dnl ^
67 -Wno-incomplete-setjmp-declaration dnl
68 -Wdiscarded-qualifiers dnl
69 -Wmissing-declarations dnl
70 -Wmissing-prototypes dnl
71 -Wmissing-parameter-type dnl
72 -Wshadow dnl
73 -Wno-gnu-folding-constant dnl
d22ad5f8 74 -Wsuggest-attribute=format dnl
411b3154 75 -Wformat=2 dnl
48a40005
SM
76 dnl GCC enables this with -Wall in C++, and that generates a
77 dnl lot of warnings that have on average a low value to fix.
78 -Wno-sign-compare dnl
c30417c1
SM
79])
80
81# Pass -Werror as an extra flag during the test: this is needed to make the
82# -Wunknown-warning-option diagnostic fatal with clang.
83AC_LANG_PUSH([C])
84AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CFLAGS], [-Werror])
85AC_LANG_POP([C])
86
87# The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is
88# written in such a way that it triggers warnings with the following warning
89# flags. So they would always end up disabled if we put them there, because
90# the test program would not build.
7f08cc82 91#
c30417c1
SM
92# Enable them here unconditionally. They are supported by GCC >= 4.8 and by
93# Clang >= 3.3 (required by the project) and are only valid for C code.
94WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes"
95
96# Disable 'strict aliasing' if the C compiler supports it.
97AC_LANG_PUSH([C])
98AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing], [OPT_CFLAGS], [-Werror])
99AC_LANG_POP([C])
100
101
102## ##
103## C++ compiler checks ##
104## ##
105
106# Find a C++11 compiler with GNU extensions (-std=gnu++11)
107AX_CXX_COMPILE_STDCXX([11], [ext], [mandatory])
108
7f08cc82
SM
109# Pass -Werror as an extra flag during the test: this is needed to make the
110# -Wunknown-warning-option diagnostic fatal with clang.
c30417c1
SM
111AC_LANG_PUSH([C++])
112AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CXXFLAGS], [-Werror])
113AC_LANG_POP([C++])
114
115# Disable 'strict aliasing' if the C++ compiler supports it.
116AC_LANG_PUSH([C++])
117AX_APPEND_COMPILE_FLAGS([-fno-strict-aliasing], [OPT_CXXFLAGS], [-Werror])
118AC_LANG_POP([C++])
119
120
121# When given, add -Werror to WARN_CFLAGS and WARN_CXXFLAGS.
122AC_ARG_ENABLE([Werror],[
123 AS_HELP_STRING([--enable-Werror], [Treat compiler warnings as errors.])
124])
125
126AS_IF([test "x$enable_Werror" = "xyes"], [
127 WARN_CFLAGS="${WARN_CFLAGS} -Werror"
128 WARN_CXXFLAGS="${WARN_CXXFLAGS} -Werror"
129])
fa3f8be9 130
b7d2e95f
MJ
131# Checks for programs.
132AC_PROG_GREP
b7d2e95f 133AC_PROG_MAKE_SET
81265501 134AC_PROG_SED
a6c09be3 135AC_PATH_PROG([report_fold], [fold])
b7d2e95f
MJ
136LT_INIT
137
65385a82 138# Check for objcopy, required by the base address statedump and dynamic linker tests
a6c09be3
MJ
139AC_CHECK_TOOL([OBJCOPY], [objcopy], [no])
140AS_IF([test "x$OBJCOPY" = "xno"],
141 [AC_MSG_WARN([Cannot find objcopy. The base address statedump and dynamic linker tests will be disabled. Install the binutils package to remediate this.])]
65385a82
MJ
142)
143AM_CONDITIONAL([HAVE_OBJCOPY], [test "x$OBJCOPY" != xno])
144
a6c09be3
MJ
145# check for pgrep
146AC_PATH_PROG([PGREP], [pgrep], [no])
147AM_CONDITIONAL([HAVE_PGREP], [test "x$PGREP" != "xno"])
148
7b49875c
JG
149# set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
150# is not distributed in tarballs
151AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
152AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"])
153
a6c09be3
MJ
154# check for bison
155AC_PROG_YACC
156BISON=$YACC
157AX_PROG_BISON_VERSION([2.4], [have_bison=yes])
158
159AS_IF([test "x$have_bison" != "xyes"], [
160 AS_IF([test "x$in_git_repo" = "xyes"], [
161 AC_MSG_FAILURE([
162Bison >= 2.4 is required when building from the Git repository. You can
163set the YACC variable to override automatic detection.
164 ])
165 ], [
166 AC_MSG_WARN([
167Missing Bison >= 2.4. Note that the parser files are already built in
168this distribution tarball, so Bison is only needed if you intend to
169modify their sources. You can set the YACC variable to override automatic
170detection.
171 ])
172 ])
173])
174AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
175
176# check for flex
faa88ea8
JG
177# Prior to autoconf 2.70, AC_PROG_FLEX did not take an argument. This is not a
178# problem since the argument is silently ignored by older versions.
179AC_PROG_LEX([noyywrap])
a6c09be3
MJ
180FLEX=$LEX
181AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
182
183AS_IF([test "x$have_flex" != "xyes"], [
184 AS_IF([test "x$in_git_repo" = "xyes"], [
185 AC_MSG_FAILURE([
186Flex >= 2.5.35 is required when building from the Git repository. You can
187set the LEX variable to override automatic detection.
188 ])
189 ], [
190 AC_MSG_WARN([
191Missing Flex >= 2.5.35. Note that the lexer files are already built in
192this distribution tarball, so Flex is only needed if you intend to
193modify their sources. You can set the LEX variable to override automatic
194detection.
195 ])
196 ])
197])
198AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
199
200
b7d2e95f 201
b75d311f
FD
202# Check if linker has the -no-pie option.
203AX_CHECK_LINK_FLAG([-no-pie], [linker_have_no_pie_option=yes])
204AM_CONDITIONAL([LINKER_HAVE_NO_PIE_OPTION], [test "x$linker_have_no_pie_option" = "xyes"])
205
507af6fc
MJ
206AX_LIB_SOCKET_NSL
207
d30b2041
MJ
208LT_NO_UNDEFINED=""
209AS_CASE([$host_os],
210 [cygwin*],
211 [
212 LT_NO_UNDEFINED="-no-undefined"
748399fc
MJ
213 ],
214 [cygwin*|darwin*|mingw*|solaris*],
215 [
216 # On platforms where we only support the relayd, disable the other binaries by default
217 AS_IF([test "x$enable_bin_lttng" = "x" ], [enable_bin_lttng=no])
218 AS_IF([test "x$enable_bin_lttng_consumerd" = "x" ], [enable_bin_lttng_consumerd=no])
219 AS_IF([test "x$enable_bin_lttng_crash" = "x" ], [enable_bin_lttng_crash=no])
220 AS_IF([test "x$enable_bin_lttng_sessiond" = "x" ], [enable_bin_lttng_sessiond=no])
221 AS_IF([test "x$enable_extras" = "x" ], [enable_extras=no])
222 AS_IF([test "x$with_lttng_ust" = "x" ], [with_lttng_ust=no])
d30b2041
MJ
223 ]
224)
225
226AC_SUBST(LT_NO_UNDEFINED)
227
b7d2e95f 228# Compute minor/major/patchlevel version numbers
18ecc6ae
MJ
229major_version=$(echo AC_PACKAGE_VERSION | $SED 's/^\([[0-9]]\)*\.[[0-9]]*\.[[0-9]]*.*$/\1/')
230minor_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.\([[0-9]]*\)\.[[0-9]]*.*$/\1/')
231patchlevel_version=$(echo AC_PACKAGE_VERSION | $SED 's/^[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\).*$/\1/')
9d8c7763 232
81265501
MD
233AC_SUBST([MAJOR_VERSION], [$major_version])
234AC_SUBST([MINOR_VERSION], [$minor_version])
235AC_SUBST([PATCHLEVEL_VERSION], [$patchlevel_version])
8eaee515
DG
236AC_DEFINE_UNQUOTED([VERSION_MAJOR], $major_version, [LTTng-Tools major version number])
237AC_DEFINE_UNQUOTED([VERSION_MINOR], $minor_version, [LTTng-Tools minor version number])
238AC_DEFINE_UNQUOTED([VERSION_PATCHLEVEL], $patchlevel_version, [LTTng-Tools patchlevel version number])
81265501 239
97a1d630
MJ
240version_name="O-Beer"
241version_description="An alcoholic drink made from yeast-fermented malt flavored with hops."
18ecc6ae 242version_description_c=$(echo $version_description | $SED 's/"/\\"/g')
0e4cbe7e
DG
243
244AC_DEFINE_UNQUOTED([VERSION_NAME], ["$version_name"], "")
34f69498 245AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], ["$version_description_c"], "")
c6d4a597 246
6bd5984c
CB
247# libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
248AC_ARG_ENABLE(libtool-linkdep-fixup,
249 AS_HELP_STRING([--disable-libtool-linkdep-fixup],
250 [disable the libtool fixup for linking all dependent libraries (link_all_deplibs)]),
251 libtool_fixup=$enableval,
252 libtool_fixup=yes)
253
254AS_IF([test "x$libtool_fixup" = "xyes"],
255 [
b7d2e95f 256 libtool_m4="$srcdir/m4/libtool.m4"
6bd5984c 257 libtool_flag_pattern=".*link_all_deplibs\s*,\s*\$1\s*)"
8f0646a0 258 AC_MSG_CHECKING([for occurrence(s) of link_all_deplibs = no in $libtool_m4])
18ecc6ae 259 libtool_flag_pattern_count=$($GREP -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
6bd5984c
CB
260 AS_IF([test $libtool_flag_pattern_count -ne 0],
261 [
262 AC_MSG_RESULT([$libtool_flag_pattern_count])
263 AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
06884be1 264 $SED -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
6bd5984c
CB
265 ],
266 [
267 AC_MSG_RESULT([none])
268 ])
269 ])
270
347e0f14
CB
271AM_CONDITIONAL([NO_SHARED], [test x$enable_shared = xno])
272
fac6795d
DG
273AC_CHECK_HEADERS([ \
274 sys/types.h unistd.h fcntl.h string.h pthread.h limits.h \
275 signal.h stdlib.h sys/un.h sys/socket.h stdlib.h stdio.h \
d23e7e44
JR
276 getopt.h sys/ipc.h sys/shm.h popt.h grp.h arpa/inet.h \
277 netdb.h netinet/in.h paths.h stddef.h sys/file.h sys/ioctl.h \
b1b34226 278 sys/mount.h sys/param.h sys/time.h elf.h
fac6795d
DG
279])
280
b1b34226
MJ
281AM_CONDITIONAL([HAVE_ELF_H], [test x$ac_cv_header_elf_h = xyes])
282
b89ff596
JR
283# Basic functions check
284AC_CHECK_FUNCS([ \
afc5df03 285 atexit bzero clock_gettime dup2 fdatasync fls ftruncate \
4b223a67 286 gethostbyname gethostname getpagesize localtime_r memchr memrchr memset \
b89ff596 287 mkdir munmap putenv realpath rmdir socket strchr strcspn strdup \
f5436bfc 288 strncasecmp strndup strnlen strpbrk strrchr strstr strtol strtoul \
062fc3d8 289 strtoull dirfd gethostbyname2 getipnodebyname epoll_create1 \
85ce30d3 290 sched_getcpu sysconf sync_file_range
b89ff596 291])
7d617f1d 292
3f3e7eb7 293# Check for pthread_setname_np and pthread_getname_np
cb8d0d24 294LTTNG_PTHREAD_SETNAME_NP
3f3e7eb7 295LTTNG_PTHREAD_GETNAME_NP
cb8d0d24 296
fbc08f38
MJ
297# Check if clock_gettime, timer_create, timer_settime, and timer_delete are available in lib rt, and if so,
298# add -lrt to LIBS
299AC_CHECK_LIB([rt], [clock_gettime, timer_create, timer_settime, timer_delete])
300
bc1d8ca0
PP
301# Checks for dl.
302AC_CHECK_LIB([dl], [dlopen], [
303 have_libdl=yes
304 libdl_name=dl
0a821fde 305 DL_LIBS="-ldl"
bc1d8ca0
PP
306], [
307 # libdl not found, check for dlopen in libc.
308 AC_CHECK_LIB([c], [dlopen], [
309 have_libc_dl=yes
310 libdl_name=c
0a821fde 311 DL_LIBS="-lc"
bc1d8ca0
PP
312 ], [
313 AC_MSG_ERROR([Cannot find dlopen in libdl nor libc. Use [LDFLAGS]=-Ldir to specify their location.])
314 ])
315])
0a821fde 316AC_SUBST(DL_LIBS)
bc1d8ca0
PP
317
318# Check if libdl has dlmopen support.
319AH_TEMPLATE([HAVE_DLMOPEN], ["Define to 1 if dlmopen is available."])
320AC_CHECK_LIB([$libdl_name], [dlmopen], [
321 AC_DEFINE([HAVE_DLMOPEN], [1])
322 HAVE_DLMOPEN=1
323], [
324 HAVE_DLMOPEN=0
325])
326AC_SUBST(HAVE_DLMOPEN)
327
0c95f5b2
DG
328# Babeltrace viewer check
329AC_ARG_WITH([babeltrace-bin],
330 AS_HELP_STRING([--with-babeltrace-bin],
331 [Location of the babeltrace viewer executable (including the filename)]),
332 [BABELTRACE_BIN="$withval"],
333 [BABELTRACE_BIN=''])
334AC_SUBST([BABELTRACE_BIN])
335
3cd887b3
JG
336AC_ARG_WITH([babeltrace2-bin],
337 AS_HELP_STRING([--with-babeltrace2-bin],
338 [Location of the babeltrace2 viewer executable (including the filename)]),
339 [BABELTRACE2_BIN="$withval"],
340 [BABELTRACE2_BIN=''])
341AC_SUBST([BABELTRACE2_BIN])
0c95f5b2 342
fc7a59ce
AM
343AC_ARG_WITH([consumerd32-bin],
344 AS_HELP_STRING([--with-consumerd32-bin],
345 [Location of the 32-bit consumerd executable (including the filename)]),
346 [CONSUMERD32_BIN="$withval"],
347 [CONSUMERD32_BIN=''])
348AC_SUBST([CONSUMERD32_BIN])
ebaeda94 349
fc7a59ce
AM
350AC_ARG_WITH([consumerd64-bin],
351 AS_HELP_STRING([--with-consumerd64-bin],
352 [Location of the 64-bit consumerd executable (including the filename)]),
353 [CONSUMERD64_BIN="$withval"],
354 [CONSUMERD64_BIN=''])
355AC_SUBST([CONSUMERD64_BIN])
ebaeda94
MD
356
357AC_ARG_WITH([consumerd32-libdir],
a4b279ba 358 AS_HELP_STRING([--with-consumerd32-libdir],
fc7a59ce 359 [Directory containing the 32-bit consumerd libraries]),
ebaeda94
MD
360 [CONSUMERD32_LIBDIR="$withval"],
361 [CONSUMERD32_LIBDIR=''])
362AC_SUBST([CONSUMERD32_LIBDIR])
363
ec029701 364AC_ARG_WITH([consumerd64-libdir],
a4b279ba 365 AS_HELP_STRING([--with-consumerd64-libdir],
fc7a59ce 366 [Directory containing the 64-bit consumerd libraries]),
ebaeda94
MD
367 [CONSUMERD64_LIBDIR="$withval"],
368 [CONSUMERD64_LIBDIR=''])
369AC_SUBST([CONSUMERD64_LIBDIR])
370
b8ec3da8
SM
371AC_ARG_WITH([sessiond-bin],
372 AS_HELP_STRING([--with-sessiond-bin],
373 [Location of the sessiond executable (including the filename)]),
374 [SESSIOND_BIN="$withval"],
375 [SESSIOND_BIN=''])
376AC_SUBST([SESSIOND_BIN])
377
d386c872
MD
378AC_ARG_WITH([lttng-system-rundir],
379 AS_HELP_STRING([--with-lttng-system-rundir],
380 [Location of the system directory where the system-wide lttng-sessiond runtime files are kept. The default is "/var/run/lttng".]),
381 [LTTNG_SYSTEM_RUNDIR="$withval"],
382 [LTTNG_SYSTEM_RUNDIR="/var/run/lttng"])
383AC_SUBST([LTTNG_SYSTEM_RUNDIR])
384
839a9569
MJ
385AC_ARG_ENABLE([test-java-agent-jul],
386 [AS_HELP_STRING([--enable-test-java-agent-jul],[enable the LTTng UST Java agent JUL tests [default=no]])],
387 [test_java_agent_jul=$enableval],
388 [test_java_agent_jul=no]
389)
390
391AC_ARG_ENABLE([test-java-agent-log4j],
0fd2fd15 392 [AS_HELP_STRING([--enable-test-java-agent-log4j],[enable the LTTng UST Java agent Log4j 1.x tests [default=no]])],
839a9569
MJ
393 [test_java_agent_log4j=$enableval],
394 [test_java_agent_log4j=no]
395)
396
0fd2fd15
MJ
397AC_ARG_ENABLE([test-java-agent-log4j2],
398 [AS_HELP_STRING([--enable-test-java-agent-log4j2],[enable the LTTng UST Java agent Log4j 2.x tests [default=no]])],
399 [test_java_agent_log4j2=$enableval],
400 [test_java_agent_log4j2=no]
401)
402
839a9569
MJ
403AC_ARG_ENABLE([test-java-agent-all],
404 [AS_HELP_STRING([--enable-test-java-agent-all],[enable all the LTTng UST Java agent tests [default=no]])],
405 [test_java_agent_jul=$enableval
0fd2fd15
MJ
406 test_java_agent_log4j=$enableval
407 test_java_agent_log4j2=$enableval],
839a9569
MJ
408 [:]
409)
410
fb6f1fa2
YB
411AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_BIN], "$CONSUMERD32_BIN", [Location of the 32-bit consumerd executable.])
412AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_BIN], "$CONSUMERD64_BIN", [Location of the 64-bit consumerd executable])
413AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD32_LIBDIR], "$CONSUMERD32_LIBDIR", [Search for consumerd 32-bit libraries in this location.])
414AC_DEFINE_UNQUOTED([CONFIG_CONSUMERD64_LIBDIR], "$CONSUMERD64_LIBDIR", [Search for consumerd 64-bit libraries in this location.])
0c95f5b2 415AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE_BIN], "$BABELTRACE_BIN", [Location of the babeltrace viewer executable.])
3cd887b3 416AC_DEFINE_UNQUOTED([CONFIG_BABELTRACE2_BIN], "$BABELTRACE2_BIN", [Location of the babeltrace2 viewer executable.])
b8ec3da8 417AC_DEFINE_UNQUOTED([CONFIG_SESSIOND_BIN], "$SESSIOND_BIN", [Location of the sessiond executable.])
d386c872 418AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_RUNDIR], ["$LTTNG_SYSTEM_RUNDIR"], [LTTng system runtime directory])
43cadc7e 419
7659d490
PP
420AC_DEFUN([_AC_DEFINE_AND_SUBST], [
421 AC_DEFINE_UNQUOTED([CONFIG_$1], [$2], [$1])
422 $1="$2"
423 AC_SUBST([$1])
424])
425
426AC_DEFUN([_AC_DEFINE_QUOTED_AND_SUBST], [
427 AC_DEFINE_UNQUOTED([CONFIG_$1], ["$2"], [$1])
428 $1="$2"
429 AC_SUBST([$1])
430])
431
432# Default values
c9eb1ddc 433m4_define([_DEFAULT_CHANNEL_SUBBUF_SIZE], [16384])
7659d490
PP
434m4_define([_DEFAULT_CHANNEL_SUBBUF_NUM], [4])
435m4_define([_DEFAULT_CHANNEL_SWITCH_TIMER], [0])
436m4_define([_DEFAULT_CHANNEL_LIVE_TIMER], [0])
437m4_define([_DEFAULT_CHANNEL_READ_TIMER], [200000])
e9404c27 438m4_define([_DEFAULT_CHANNEL_MONITOR_TIMER], [1000000])
491d1539 439m4_define([_DEFAULT_CHANNEL_BLOCKING_TIMEOUT], [0])
2288467f
JG
440_AC_DEFINE_AND_SUBST([DEFAULT_AGENT_TCP_PORT_RANGE_BEGIN], [5345])
441_AC_DEFINE_AND_SUBST([DEFAULT_AGENT_TCP_PORT_RANGE_END], [5354])
7659d490
PP
442_AC_DEFINE_AND_SUBST([DEFAULT_APP_SOCKET_RW_TIMEOUT], [5])
443_AC_DEFINE_AND_SUBST([DEFAULT_CHANNEL_SUBBUF_SIZE], [_DEFAULT_CHANNEL_SUBBUF_SIZE])
444_AC_DEFINE_AND_SUBST([DEFAULT_CHANNEL_TRACEFILE_COUNT], [0])
445_AC_DEFINE_AND_SUBST([DEFAULT_CHANNEL_TRACEFILE_SIZE], [0])
446_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_LIVE_TIMER], [_DEFAULT_CHANNEL_LIVE_TIMER])
447_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_READ_TIMER], [_DEFAULT_CHANNEL_READ_TIMER])
448_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM], [_DEFAULT_CHANNEL_SUBBUF_NUM])
c9eb1ddc 449_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE], [1048576])
7659d490 450_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
e9404c27 451_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_MONITOR_TIMER])
491d1539 452_AC_DEFINE_AND_SUBST([DEFAULT_KERNEL_CHANNEL_BLOCKING_TIMEOUT], [_DEFAULT_CHANNEL_BLOCKING_TIMEOUT])
7659d490
PP
453_AC_DEFINE_AND_SUBST([DEFAULT_LTTNG_LIVE_TIMER], [1000000])
454_AC_DEFINE_AND_SUBST([DEFAULT_METADATA_CACHE_SIZE], [4096])
455_AC_DEFINE_AND_SUBST([DEFAULT_METADATA_READ_TIMER], [0])
456_AC_DEFINE_AND_SUBST([DEFAULT_METADATA_SUBBUF_NUM], [2])
457_AC_DEFINE_AND_SUBST([DEFAULT_METADATA_SUBBUF_SIZE], [4096])
458_AC_DEFINE_AND_SUBST([DEFAULT_METADATA_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
459_AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_CONTROL_PORT], [5342])
460_AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_DATA_PORT], [5343])
461_AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_VIEWER_PORT], [5344])
462_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_LIVE_TIMER], [_DEFAULT_CHANNEL_LIVE_TIMER])
463_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_READ_TIMER], [0])
491d1539 464_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_BLOCKING_TIMEOUT], [0])
7659d490
PP
465_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_SUBBUF_NUM], [_DEFAULT_CHANNEL_SUBBUF_NUM])
466_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_SUBBUF_SIZE], [_DEFAULT_CHANNEL_SUBBUF_SIZE])
467_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
e9404c27 468_AC_DEFINE_AND_SUBST([DEFAULT_UST_PID_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_MONITOR_TIMER])
7659d490
PP
469_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_LIVE_TIMER], [_DEFAULT_CHANNEL_LIVE_TIMER])
470_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_READ_TIMER], [0])
491d1539 471_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_BLOCKING_TIMEOUT], [0])
7659d490 472_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SUBBUF_NUM], [_DEFAULT_CHANNEL_SUBBUF_NUM])
c9eb1ddc 473_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SUBBUF_SIZE], [524288])
7659d490 474_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_SWITCH_TIMER], [_DEFAULT_CHANNEL_SWITCH_TIMER])
e9404c27 475_AC_DEFINE_AND_SUBST([DEFAULT_UST_UID_CHANNEL_MONITOR_TIMER], [_DEFAULT_CHANNEL_MONITOR_TIMER])
7659d490
PP
476_AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_AGENT_BIND_ADDRESS], [localhost])
477_AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_CONTROL_BIND_ADDRESS], [0.0.0.0])
478_AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_DATA_BIND_ADDRESS], [0.0.0.0])
479_AC_DEFINE_QUOTED_AND_SUBST([DEFAULT_NETWORK_VIEWER_BIND_ADDRESS], [localhost])
715e6fb1 480_AC_DEFINE_AND_SUBST([DEFAULT_NETWORK_RELAYD_CTRL_MAX_PAYLOAD_SIZE], [134217728])
92816cc3 481_AC_DEFINE_AND_SUBST([DEFAULT_ROTATE_PENDING_TIMER], [500000])
90aa04a1 482_AC_DEFINE_AND_SUBST([DEFAULT_EVENT_NOTIFIER_ERROR_COUNT_MAP_SIZE], [4096])
7659d490 483
61fa5028 484# Command short descriptions
484b2a0c
PP
485_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_CONTEXT], [Add context fields to be recorded])
486_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ADD_TRIGGER], [Add a trigger])
e9711845
PP
487_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CLEAR], [Clear a recording session])
488_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create a recording session])
489_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DESTROY], [Destroy recording sessions])
484b2a0c
PP
490_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_CHANNEL], [Disable channels])
491_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_EVENT], [Disable recording event rules])
e9711845 492_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a recording session rotation schedule])
484b2a0c
PP
493_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_CHANNEL], [Create or enable a channel])
494_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_EVENT], [Create or enable recording event rules])
e9711845 495_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a recording session rotation schedule])
484b2a0c 496_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_HELP], [Show the help of a command])
e9711845 497_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List recording sessions and instrumentation points])
484b2a0c 498_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST_TRIGGERS], [List triggers])
e9711845
PP
499_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LOAD], [Load recording session configurations])
500_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REGENERATE], [Regenerate specific recording session data])
484b2a0c 501_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REMOVE_TRIGGER], [Remove a trigger])
e9711845
PP
502_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ROTATE], [Archive the current trace chunk of a recording session])
503_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SAVE], [Save recording session configurations])
504_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SET_SESSION], [Set the current recording session])
505_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Take a recording session snapshot])
506_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_START], [Start a recording session])
507_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STATUS], [Show the status of the current recording session])
508_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STOP], [Stop a recording session])
26f0c779
PP
509_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Allow specific processes to record events])
510_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Disallow specific processes to record events])
484b2a0c
PP
511_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VERSION], [Show LTTng-tools version information])
512_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VIEW], [Launch a trace reader])
61fa5028 513
26296c48
JG
514if test "x$prefix" = "xNONE"; then
515 prefix=$ac_default_prefix
516fi
517CONFDIR=`eval echo $sysconfdir`
518AC_SUBST(CONFDIR)
519AC_DEFINE_UNQUOTED([CONFIG_LTTNG_SYSTEM_CONFIGDIR],"$CONFDIR", [LTTng system configuration directory.])
520
7602c3c7 521AX_DEFINE_DIR([CONFIG_LTTNG_SYSTEM_DATADIR], [datadir], [LTTng system data directory.])
dcf266c0 522
fac6795d 523# Check libpopt
e9cee23a 524PKG_CHECK_MODULES([POPT], [popt],
4f985cf8
MJ
525 [
526 dnl PKG_CHECK_MODULES defines POPT_LIBS
527 ],
528 [
529 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])
530 AC_MSG_WARN([Finding libpopt without pkg-config.])
531 AC_CHECK_LIB([popt],
532 [poptGetContext],
533 [POPT_LIBS="-lpopt"],
534 [
535 AC_MSG_FAILURE([Cannot find libpopt. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
536 ]
537 )
538 ]
fac6795d 539)
4f985cf8 540AC_SUBST(POPT_LIBS)
fac6795d 541
34707125 542PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6])
6c1494fd 543
707de922
JG
544AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])])
545
6e59ae26 546# URCU library version needed or newer
87900062 547PKG_CHECK_MODULES([URCU], [liburcu >= 0.11])
87900062 548PKG_CHECK_MODULES([URCU_CDS], [liburcu-cds >= 0.11])
62b7418e 549AM_CPPFLAGS="$AM_CPPFLAGS $URCU_CFLAGS"
ce4d4083 550
83dcc026
MJ
551# Check for libkmod, it will be auto-neabled if found but won't fail if it's not,
552# it can be explicitly disabled with --without-kmod
553AH_TEMPLATE([HAVE_KMOD], [Define if you have kmod support])
554AC_ARG_WITH([kmod],
555 [AS_HELP_STRING([--with-kmod], [build with lkmod support @<:@default=check@:>@])],
556 [],
557 [with_kmod=check]
558)
234170ac 559
83dcc026
MJ
560AS_IF([test "x$with_kmod" != "xno"],
561 [
562 AC_CHECK_LIB([kmod], [kmod_module_probe_insert_module],
563 [
564 AC_DEFINE([HAVE_KMOD], [1])
565 KMOD_LIBS="-lkmod"
566 ],
567 [
568 if test "x$with_kmod" != xcheck; then
569 AC_MSG_FAILURE([Cannot find libkmod. Use [LDFLAGS]=-Ldir and [CPPFLAGS]=-Idir to specify its location.])
570 else
571 with_kmod=no
572 fi
573 ]
574 )
575 ]
576)
577AC_SUBST(KMOD_LIBS)
234170ac 578
5744bf89
MJ
579# Check for liblttng-ust-ctl, fail if it's not found,
580# it can be explicitly disabled with --without-lttng-ust
581AH_TEMPLATE([HAVE_LIBLTTNG_UST_CTL], [Define if you have LTTng-UST control support])
582AC_ARG_WITH([lttng-ust],
583 [AS_HELP_STRING([--without-lttng-ust], [build without LTTng-UST (Userspace Tracing) support])],
584 [],
585 [with_lttng_ust=yes]
586)
587
20dd2de1
MJ
588AS_IF([test "x$with_lttng_ust" = "xyes"], [
589 AC_DEFINE([HAVE_LIBLTTNG_UST_CTL], [1])
590
591 # Check for liblttng-ust
592 PKG_CHECK_MODULES([UST], [lttng-ust >= $major_version.$minor_version])
593
594 # Check for liblttng-ust-ctl
595 PKG_CHECK_MODULES([UST_CTL], [lttng-ust-ctl >= $major_version.$minor_version])
596
597 AM_CPPFLAGS="$AM_CPPFLAGS $UST_CFLAGS"
598])
599
5744bf89
MJ
600AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [test "x$with_lttng_ust" = "xyes"])
601
b91dd016 602
53a80697
MD
603# Check for fmemopen
604AC_CHECK_LIB([c], [fmemopen],
605[
606 AC_DEFINE_UNQUOTED([LTTNG_HAVE_FMEMOPEN], 1, [Has fmemopen support.])
607]
608)
609
6faa26ca
JD
610# check for libpfm
611AC_CHECK_LIB([pfm], [pfm_initialize],
612 [
613 have_libpfm=yes
614 ])
615AM_CONDITIONAL([LTTNG_TOOLS_BUILD_WITH_LIBPFM], [test "x$have_libpfm" = "xyes"])
616
36907cb5
DS
617# For Python
618# SWIG version needed or newer:
619swig_version=2.0.0
620
621AC_ARG_ENABLE([python-bindings],
faa88ea8 622 [AS_HELP_STRING([--enable-python-bindings],
36907cb5 623 [compile Python bindings])],
e9c45a26 624 [enable_python_binding=$enableval], [enable_python_binding=no])
36907cb5 625
e9c45a26 626AM_CONDITIONAL([PYTHON_BINDING], [test "x$enable_python_binding" = xyes])
36907cb5 627
e9c45a26 628if test "x$enable_python_binding" = xyes; then
36907cb5 629 AX_PKG_SWIG($swig_version, [], [ AC_MSG_ERROR([SWIG $swig_version or newer is needed]) ])
f558e55e 630 AS_IF([test x$enable_shared = xno], [ AC_MSG_ERROR([Python bindings require shared libraries.]) ])
56aa2354 631 AM_PATH_PYTHON([3.0])
36907cb5
DS
632
633 AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for python, bypassing python-config])
634 AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
635 AS_IF([test -z "$PYTHON_INCLUDE"], [
636 AS_IF([test -z "$PYTHON_CONFIG"], [
637 AC_PATH_PROGS([PYTHON_CONFIG],
638 [python$PYTHON_VERSION-config python-config],
639 [no],
640 [`dirname $PYTHON`])
641 AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON. Do you have python-dev installed?])])
642 ])
643 AC_MSG_CHECKING([python include flags])
644 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
645 AC_MSG_RESULT([$PYTHON_INCLUDE])
646 ])
647
648else
649 AC_MSG_NOTICE([You may configure with --enable-python-bindings ]dnl
650[if you want Python bindings.])
651
652fi
653
3ffccaed 654# Epoll check. If not present, the build will fallback on poll() API
71615260
DG
655AX_HAVE_EPOLL(
656 [AX_CONFIG_FEATURE_ENABLE(epoll)],
657 [AX_CONFIG_FEATURE_DISABLE(epoll)]
658)
71615260
DG
659AX_CONFIG_FEATURE(
660 [epoll], [This platform supports epoll(7)],
0060607b 661 [HAVE_EPOLL], [This platform supports epoll(7).]
71615260 662)
71615260 663
18710679
JG
664AS_IF([test "x$ac_cv_func_dirfd" = "xyes"],
665 [AX_CONFIG_FEATURE_ENABLE(dirfd)],
666 [AX_CONFIG_FEATURE_DISABLE(dirfd)]
667)
668AX_CONFIG_FEATURE(
669 [dirfd], [Use directory file descriptors],
4fb28dfc 670 [HAVE_DIRFD], [This platform supports directory file descriptors.]
18710679 671)
18710679 672
839a9569
MJ
673AM_CONDITIONAL([TEST_JAVA_JUL_AGENT], [test "x$test_java_agent_jul" = "xyes"])
674AM_CONDITIONAL([TEST_JAVA_LOG4J_AGENT], [test "x$test_java_agent_log4j" = "xyes"])
0fd2fd15 675AM_CONDITIONAL([TEST_JAVA_LOG4J2_AGENT], [test "x$test_java_agent_log4j2" = "xyes"])
37175ce4 676
0fd2fd15 677if test "x$test_java_agent_jul" = "xyes" || test "x$test_java_agent_log4j" = "xyes" || test "x$test_java_agent_log4j2" = "xyes"; then
839a9569
MJ
678 AX_JAVA_OPTIONS
679 AX_PROG_JAVAC
680 AX_PROG_JAVA
681 AX_PROG_JAR
37175ce4 682
839a9569 683 AX_CHECK_CLASSPATH
504d4ace 684
839a9569
MJ
685 # Check for Java UST agent common class first
686 AX_CHECK_CLASS(org.lttng.ust.agent.AbstractLttngAgent)
687 if test "x$ac_cv_class_org_lttng_ust_agent_AbstractLttngAgent" = "xno"; then
688 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"])
504d4ace 689 fi
0b7af945 690
839a9569
MJ
691 if test "x$test_java_agent_jul" = "xyes"; then
692 # Check for JUL agent class
693 AX_CHECK_CLASS(org.lttng.ust.agent.jul.LttngLogHandler)
694 if test "x$ac_cv_class_org_lttng_ust_agent_jul_LttngLogHandler" = "xno"; then
695 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"])
0b7af945
MJ
696 fi
697 fi
698
839a9569
MJ
699 if test "x$test_java_agent_log4j" = "xyes"; then
700 # Check for Log4j agent class
701 AX_CHECK_CLASS(org.lttng.ust.agent.log4j.LttngLogAppender)
702 if test "x$ac_cv_class_org_lttng_ust_agent_log4j_LttngLogAppender" = "xno"; then
703 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"])
704 fi
0b7af945 705
839a9569
MJ
706 # Check for Log4j class
707 AX_CHECK_CLASS(org.apache.log4j.Logger)
708 if test "x$ac_cv_class_org_apache_log4j_Logger" = "xno"; then
709 AC_MSG_ERROR([The Log4j class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/log4j.jar"])
710 fi
711 fi
0fd2fd15
MJ
712
713 if test "x$test_java_agent_log4j2" = "xyes"; then
714 # Check for Log4j2 agent class
715 AX_CHECK_CLASS(org.lttng.ust.agent.log4j2.LttngLogAppender)
716 if test "x$ac_cv_class_org_lttng_ust_agent_log4j2_LttngLogAppender" = "xno"; then
717 AC_MSG_ERROR([The UST Java agent Log4j 2.x class was not found. Please specify the location of the jar via the Java CLASSPATH e.g: export CLASSPATH="/path/to/lttng-ust-agent-log4j2.jar"])
718 fi
719
720 # Check for Log4j 2.x classes
721 AX_CHECK_CLASS([org.apache.logging.log4j.Logger])
722 AX_CHECK_CLASS([org.apache.logging.log4j.core.Core])
723 if test "x$ac_cv_class_org_apache_logging_log4j_Logger" = "xno" || test "x$ac_cv_class_org_apache_logging_log4j_core_Core" = "xno"; then
724 AC_MSG_ERROR([The Log4j 2.x API or core class was not found. Please specify the location of the jars via the Java CLASSPATH e.g: export CLASSPATH="/path/to/log4j-core.jar:/path/to/log4j-api.jar"])
725 fi
726 fi
839a9569 727fi
37175ce4 728
a3eae3c9 729# enable building man pages (user's intention)
008559fa 730AC_ARG_ENABLE(
a3eae3c9 731 man-pages,
008559fa 732 AS_HELP_STRING(
a3eae3c9 733 [--disable-man-pages],
24c872d0 734 [Do not build and install man pages (already built in a distributed tarball)]
008559fa 735 ),
a3eae3c9
PP
736 [man_pages_opt=$enableval],
737 [man_pages_opt=yes]
008559fa
PP
738)
739
008559fa 740# check for asciidoc and xmlto if we enabled building the man pages
a3eae3c9 741have_asciidoc_xmlto=no
a24d43ae 742warn_prebuilt_man_pages=no
a3eae3c9
PP
743
744AS_IF([test "x$man_pages_opt" = "xyes"], [
008559fa
PP
745 AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
746 AC_PATH_PROG([XMLTO], [xmlto], [no])
747
748 AS_IF([test "x$ASCIIDOC" = "xno" || test "x$XMLTO" = "xno"], [
a3eae3c9
PP
749 AS_IF([test "x$in_git_repo" = "xyes"], [
750 # this is an error because we're in the Git repo, which
751 # means the man pages are not already generated for us,
752 # thus asciidoc/xmlto are required because we were asked
753 # to build the man pages
754 AC_MSG_ERROR([
fd3e1238 755You need asciidoc and xmlto to build the LTTng-tools man pages. Use
a3eae3c9
PP
756--disable-man-pages to disable building the man pages, in which case
757they will not be installed.
758 ])
759 ], [
760 # only warn here: since we're in the tarball, the man
761 # pages should already be generated at this point, thus
762 # asciidoc/xmlto are not strictly required
a24d43ae 763 warn_prebuilt_man_pages=yes
a3eae3c9
PP
764 ])
765 ], [
766 have_asciidoc_xmlto=yes
008559fa
PP
767 ])
768])
769
a3eae3c9
PP
770# export man page build condition: build the man pages if the user
771# asked for it, and if the tools are available
772AM_CONDITIONAL([MAN_PAGES_OPT], [test "x$man_pages_opt" != "xno"])
773AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"])
774
f9c59cd0
MJ
775AC_DEFINE_UNQUOTED([MANPATH], ["`eval eval echo $mandir`"], [Path to man pages.])
776
4fc83d94
PP
777# embedded --help message
778AC_ARG_ENABLE(
779 [embedded-help],
780 AS_HELP_STRING(
781 [--enable-embedded-help],
782 [Embed the --help messages in the executable files]
783 ),
784 [embedded_help=$enableval],
785 [embedded_help=no]
786)
787AS_IF([test "x$embedded_help" = "xyes"], [
788 AS_IF([test "x$man_pages_opt" = "xno"], [
789 AC_MSG_ERROR([You need the --enable-man-pages option with the --enable-embedded-help option.])
790 ])
791 AC_PATH_PROG([man_prog_path], [man], [no])
792 AS_IF([test "x$man_prog_path" = "xno"], [
793 AC_MSG_ERROR([You need man with the --enable-embedded-help option.])
794 ])
795 AC_DEFINE_UNQUOTED([LTTNG_EMBED_HELP], 1, [Embed --help messages.])
796 AC_SUBST([MANPROG], [$man_prog_path])
797])
798AM_CONDITIONAL([EMBED_HELP], [test "x$embedded_help" != "xno"])
799
9586c198
JR
800# Python agent test
801UST_PYTHON_AGENT="lttngust"
802
803AC_ARG_ENABLE(test-python2-agent,
804 AS_HELP_STRING([--enable-test-python2-agent],
805 [enable tests for python2 agent. Python2 interpreter path can be overridden by setting the PYTHON2 environment variable. Default: Autodetect]
806 ),[:],[test_python2_agent_autodetect=yes]
807)
808
809AC_ARG_ENABLE(test-python3-agent,
810 AS_HELP_STRING([--enable-test-python3-agent],
811 [enable tests for python3 agent. Python3 interpreter path can be overridden by setting the PYTHON3 environment variable. Default: Autodetect]
812 ),[:],[test_python3_agent_autodetect=yes]
813)
814
815AC_ARG_ENABLE(test-python-agent-all,
816 AS_HELP_STRING([--enable-test-python-agent-all],
817 [enable test for all python{2/3} agent.]
818 ),
819)
820
821AS_IF([test ! -z "$enable_test_python_agent_all"], [
822 unset test_python2_agent_autodetect
823 unset test_python3_agent_autodetect
824])
825
826AS_IF([test "x$enable_test_python_agent_all" = "xyes"], [
827 enable_test_python2_agent=yes
828 enable_test_python3_agent=yes
829])
830
831AS_IF([test "x$enable_test_python_agent_all" = "xno"], [
832 enable_test_python2_agent=no
833 enable_test_python3_agent=no
834])
835
836
837AS_IF([test "x$enable_test_python2_agent" = "xyes" -o "x$test_python2_agent_autodetect" = "xyes" ], [
838 AS_IF([test -z "$PYTHON2"], [
839 PYTHON2=python2
840 ], [
841 AC_MSG_WARN([Using user-defined PYTHON2 ($PYTHON2) for lttng-ust python2 agent check])
842 ])
843
844 AC_PATH_PROG([PYTHON2_BIN],[$PYTHON2])
845 AS_IF([test -z "$PYTHON2_BIN"], [
846 AS_IF([test -z "$test_python2_agent_autodetect"],[
847 AC_MSG_ERROR([No python2 interpreter found. PYTHON2 can be set to override default interpreter path])
848 ])
849 ], [
850 AC_MSG_CHECKING([for python2 lttng-ust agent])
851 AS_IF([$PYTHON2_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [
852 PYTHON2_AGENT=$PYTHON2_BIN
853 AC_MSG_RESULT([yes])
854 RUN_PYTHON_AGENT_TEST=yes
855 ], [
856 AC_MSG_RESULT([no])
857 AS_IF([test -z "$test_python2_agent_autodetect"],[
858 AC_MSG_ERROR([No python2 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.])
859 ])
860 ])
861
862 ])
863
864])
865
866AS_IF([test "x$enable_test_python3_agent" = "xyes" -o "x$test_python3_agent_autodetect" = "xyes" ], [
867 AS_IF([test -z "$PYTHON3"], [
868 PYTHON3=python3
869 ], [
870 AC_MSG_WARN([Using user-defined PYTHON3 ($PYTHON3) for lttng-ust python3 agent check])
871 ])
872
873 AC_PATH_PROG([PYTHON3_BIN],[$PYTHON3])
874 AS_IF([test -z "$PYTHON3_BIN"], [
875 AS_IF([test -z "$test_python3_agent_autodetect"],[
876 AC_MSG_ERROR([No python3 interpreter found. PYTHON3 can be set to override default interpreter path])
877 ])
878 ], [
879 AC_MSG_CHECKING([for python3 lttng-ust agent])
880 AS_IF([$PYTHON3_BIN -c "import $UST_PYTHON_AGENT" 2>/dev/null], [
881 PYTHON3_AGENT=$PYTHON3_BIN
882 AC_MSG_RESULT([yes])
883 RUN_PYTHON_AGENT_TEST=yes
884 ], [
885 AC_MSG_RESULT([no])
886 AS_IF([test -z "$test_python3_agent_autodetect"],[
887 AC_MSG_ERROR([No python3 agent found. The path to the agent can be specified by setting the PYTHONPATH environment variable.])
888 ])
889 ])
890
891 ])
892])
9586c198
JR
893AC_SUBST([RUN_PYTHON_AGENT_TEST])
894AC_SUBST([PYTHON2_AGENT])
895AC_SUBST([PYTHON3_AGENT])
896
1a1986ce
MJ
897AC_ARG_ENABLE([test-sdt-uprobe],
898 [AS_HELP_STRING([--enable-test-sdt-uprobe], [enable the LTTng UST SDT uprobe tests [default=autodetect]])],
899 [test_sdt_uprobe="$enableval"],
900 [test_sdt_uprobe=autodetect]
901)
902
903AS_IF([test "$test_sdt_uprobe" != "no"], [
904 LTTNG_CHECK_SDT_WORKS
905 AC_PATH_PROG([DTRACE], [dtrace])
906])
907
908AS_IF([test "$test_sdt_uprobe" = "yes"], [
909 AS_IF([test "$lttng_cv_sdt_works" = "no"], [
910 AC_MSG_ERROR([Cannot find 'sys/sdt.h'.])
911 ])
912 AS_IF([test "x$DTRACE" = "x"], [
913 AC_MSG_ERROR([Cannot find SystemTap dtrace. You can set the DTRACE variable to override automatic detection.])
914 ])
915])
916
917AS_IF([test "$test_sdt_uprobe" = "autodetect"], [
918 AS_IF([test "$lttng_cv_sdt_works" = "yes"], [
919 AS_IF([test "x$DTRACE" != "x"], [
920 test_sdt_uprobe=yes
921 ])
922 ])
923])
924
925AM_CONDITIONAL([TEST_SDT_UPROBE], [test "$test_sdt_uprobe" = "yes"])
926
87fb9fc0
JR
927# Arguments for binaries build exclusion
928AC_ARG_ENABLE([bin-lttng], AS_HELP_STRING([--disable-bin-lttng],[Disable the build of lttng binaries]))
929AC_ARG_ENABLE([bin-lttng-consumerd], AS_HELP_STRING([--disable-bin-lttng-consumerd],
930 [Disable the build of lttng-consumerd binaries]))
931AC_ARG_ENABLE([bin-lttng-crash], AS_HELP_STRING([--disable-bin-lttng-crash],[Disable the build of lttng-crash binaries]))
932AC_ARG_ENABLE([bin-lttng-relayd], AS_HELP_STRING([--disable-bin-lttng-relayd],
933 [Disable the build of lttng-relayd binaries]))
934AC_ARG_ENABLE([bin-lttng-sessiond], AS_HELP_STRING([--disable-bin-lttng-sessiond],
935 [Disable the build of lttng-sessiond binaries]))
936AC_ARG_ENABLE([extras], AS_HELP_STRING([--disable-extras],
937 [Disable the build of the extra components]))
938
939
87fb9fc0 940build_lib_consumer=no
87fb9fc0
JR
941build_lib_health=no
942build_lib_index=no
943build_lib_kernel_consumer=no
944build_lib_kernel_ctl=no
945build_lib_lttng_ctl=no
946build_lib_relayd=no
947build_lib_sessiond_comm=no
948build_lib_testpoint=no
949build_lib_ust_consumer=no
950
951# There is an overlap for enabled dependencies, but this makes everything
952# simpler. libcommon and libconfig are always compiled so they are not repeated
953# here.
954
955# Enable binary dependencies.
956AS_IF([test x$enable_bin_lttng != xno],
957 [
958 build_lib_lttng_ctl=yes
959 ]
960)
961
962AS_IF([test x$enable_bin_lttng_consumerd != xno],
963 [
964 build_lib_consumer=yes
965 build_lib_sessiond_comm=yes
966 build_lib_index=yes
967 build_lib_health=yes
968 build_lib_testpoint=yes
969 ]
970)
971
972AS_IF([test x$enable_bin_lttng_crash != xno],
973 # Do nothing since libconfig and libcommon are built by default.
974 []
975)
976
977AS_IF([test x$enable_bin_lttng_relayd != xno],
978 [
87fb9fc0 979 build_lib_sessiond_comm=yes
87fb9fc0
JR
980 build_lib_index=yes
981 build_lib_health=yes
982 build_lib_testpoint=yes
983 ]
984)
985AS_IF([test x$enable_bin_lttng_sessiond != xno],
986 [
987 build_lib_lttng_ctl=yes
988 build_lib_sessiond_comm=yes
989 build_lib_kernel_ctl=yes
87fb9fc0
JR
990 build_lib_relayd=yes
991 build_lib_testpoint=yes
992 build_lib_health=yes
87fb9fc0
JR
993 ]
994)
995
996# Libraries dependencies enabling
997AS_IF([test x$build_lib_lttng_ctl = xyes],
998 [
999 build_lib_sessiond_comm=yes
87fb9fc0
JR
1000 ]
1001)
1002
1003AS_IF([test x$build_lib_consumer = xyes],
1004 [
1005 build_lib_sessiond_comm=yes
1006 build_lib_kernel_consumer=yes
87fb9fc0 1007 build_lib_relayd=yes
5744bf89 1008 AS_IF([test "x$with_lttng_ust" = "xyes"], [build_lib_ust_consumer=yes])
87fb9fc0
JR
1009 ]
1010)
1011
1012AS_IF([test x$build_lib_kernel_consumer = xyes],
1013 [
1014 build_lib_kernel_ctl=yes
1015 build_lib_relayd=yes
1016 ]
1017)
1018
1019AS_IF([test x$build_lib_relayd = xyes],
1020 [
1021 build_lib_sessiond_comm=yes
1022 ]
1023)
1024
373148e9
FG
1025# Find arch type
1026AS_CASE([$host_cpu],
1027 [k1om], [ARCHTYPE="x86"],
1028 [i386], [ARCHTYPE="x86"],
1029 [i486], [ARCHTYPE="x86"],
1030 [i586], [ARCHTYPE="x86"],
1031 [i686], [ARCHTYPE="x86"],
1032 [amd64], [ARCHTYPE="x86"],
1033 [x86_64], [ARCHTYPE="x86"],
1034 [powerpc], [ARCHTYPE="ppc"],
1035 [ppc64], [ARCHTYPE="ppc"],
1036 [powerpc64], [ARCHTYPE="ppc"],
1037 [powerpc64le], [ARCHTYPE="ppc"],
1038 [ppc], [ARCHTYPE="ppc"],
1039 [s390], [ARCHTYPE="s390"],
1040 [s390x], [ARCHTYPE="s390"],
1041 [sparc], [ARCHTYPE="sparc64"],
1042 [sparc64], [ARCHTYPE="sparc64"],
1043 [alpha*], [ARCHTYPE="alpha"],
1044 [ia64], [ARCHTYPE="ia64"],
1045 [arm*], [ARCHTYPE="arm"],
1046 [aarch64*], [ARCHTYPE="aarch64"],
1047 [mips*], [ARCHTYPE="mips"],
1048 [nios2*], [ARCHTYPE="nios2"],
1049 [tile*], [ARCHTYPE="tile"],
1050 [hppa*], [ARCHTYPE="hppa"],
1051 [m68k], [ARCHTYPE="m68k"],
1052 [riscv*], [ARCHTYPE="riscv"],
1053 [ARCHTYPE="unknown"]
1054)
1055
1056AC_SUBST(ARCHTYPE)
1057
5dee2ed2
MJ
1058AS_CASE([$host_os],
1059 [linux*], [OSTYPE="linux"],
1060 [freebsd*], [OSTYPE="freebsd"],
1061 [solaris*], [OSTYPE="solaris"],
1062 [cygwin*], [OSTYPE="cygwin"],
1063 [mingw*], [OSTYPE="mingw"],
1064 [OSTYPE="unknown"]
1065)
1066AC_SUBST(OSTYPE)
1067AM_CONDITIONAL([IS_LINUX], [test $OSTYPE = "linux"])
1068
1069
1070
1071# Userspace callstack capture is only supported by the Linux kernel on x86.
373148e9 1072AH_TEMPLATE([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [Define if you have LTTng-modules userspace callstack tracing support])
5dee2ed2 1073AS_IF([test "x$ARCHTYPE" = "xx86" && test "x$OSTYPE" = "xlinux"],[
373148e9
FG
1074 have_modules_userspace_callstack_context=yes
1075 AC_DEFINE([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [1])
373148e9 1076])
5dee2ed2 1077AM_CONDITIONAL([HAVE_MODULES_USERSPACE_CALLSTACK_CONTEXT], [test x$have_modules_userspace_callstack_context = xyes])
87fb9fc0
JR
1078
1079# Export binaries build conditions.
1080AM_CONDITIONAL([BUILD_BIN_LTTNG], [test x$enable_bin_lttng != xno])
1081AM_CONDITIONAL([BUILD_BIN_LTTNG_CONSUMERD], [test x$enable_bin_lttng_consumerd != xno])
1082AM_CONDITIONAL([BUILD_BIN_LTTNG_CRASH], [test x$enable_bin_lttng_crash != xno])
1083AM_CONDITIONAL([BUILD_BIN_LTTNG_RELAYD], [test x$enable_bin_lttng_relayd != xno])
1084AM_CONDITIONAL([BUILD_BIN_LTTNG_SESSIOND], [test x$enable_bin_lttng_sessiond != xno])
1085
1086# Export the tests and extras build conditions.
1087AS_IF([\
1088test "x$enable_bin_lttng" != "xno" && \
1089test "x$enable_bin_lttng_consumerd" != "xno" && \
1090test "x$enable_bin_lttng_crash" != "xno" && \
1091test "x$enable_bin_lttng_relayd" != "xno" && \
1092test "x$enable_bin_lttng_sessiond" != "xno"],
1093[build_tests=yes],
1094[build_tests=no]
1095)
1096
1097AM_CONDITIONAL([BUILD_TESTS], [test x$build_tests = xyes])
1098AM_CONDITIONAL([BUILD_EXTRAS], [test x$enable_extras != xno])
1099
1100# Export libraries build conditions.
87fb9fc0 1101AM_CONDITIONAL([BUILD_LIB_CONSUMER], [test x$build_lib_consumer = xyes])
87fb9fc0
JR
1102AM_CONDITIONAL([BUILD_LIB_HEALTH], [test x$build_lib_health = xyes])
1103AM_CONDITIONAL([BUILD_LIB_INDEX], [test x$build_lib_index = xyes])
1104AM_CONDITIONAL([BUILD_LIB_KERNEL_CONSUMER], [test x$build_lib_kernel_consumer = xyes])
1105AM_CONDITIONAL([BUILD_LIB_KERNEL_CTL], [test x$build_lib_kernel_ctl = xyes])
1106AM_CONDITIONAL([BUILD_LIB_LTTNG_CTL], [test x$build_lib_lttng_ctl = xyes])
1107AM_CONDITIONAL([BUILD_LIB_RELAYD], [test x$build_lib_relayd = xyes])
1108AM_CONDITIONAL([BUILD_LIB_SESSIOND_COMM], [test x$build_lib_sessiond_comm = xyes])
1109AM_CONDITIONAL([BUILD_LIB_TESTPOINT], [test x$build_lib_testpoint = xyes])
1110AM_CONDITIONAL([BUILD_LIB_UST_CONSUMER], [test x$build_lib_ust_consumer = xyes])
953192ba 1111
4bd69c5f 1112AM_CFLAGS="-fvisibility=hidden $OPT_CFLAGS $WARN_CFLAGS $PTHREAD_CFLAGS"
343af227 1113AC_SUBST(AM_CFLAGS)
6e2d116c 1114
4bd69c5f 1115AM_CXXFLAGS="-fvisibility=hidden -fvisibility-inlines-hidden $OPT_CXXFLAGS $WARN_CXXFLAGS $PTHREAD_CFLAGS"
c30417c1
SM
1116AC_SUBST(AM_CXXFLAGS)
1117
234009e7
SM
1118# This is set even though it is empty, so Makefiles can do "AM_LDFLAGS += ...".
1119AM_LDFLAGS=""
1120AC_SUBST(AM_LDFLAGS)
1121
9aba4735
JR
1122# The order in which the include folders are searched is important.
1123# The top_builddir should always be searched first in the event that a build
1124# time generated file is included. An example of this is the "version.i" file.
1125# In a scenario where lttng-tools is built from a distribution tarball and in a
1126# out-of-tree manner, the generated "version.i" has priority on the one from
1127# the source (distribution tarball) and must be found first.
e4d2f27a 1128AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include config.h $AM_CPPFLAGS"
343af227 1129AC_SUBST(AM_CPPFLAGS)
6e2d116c
DG
1130
1131lttngincludedir="${includedir}/lttng"
6e2d116c 1132AC_SUBST(lttngincludedir)
a58c490f
JG
1133
1134lttngactionincludedir="${includedir}/lttng/action"
1135AC_SUBST(lttngactionincludedir)
1136
1137lttngconditionincludedir="${includedir}/lttng/condition"
1138AC_SUBST(lttngconditionincludedir)
1139
1140lttngnotificationincludedir="${includedir}/lttng/notification"
1141AC_SUBST(lttngnotificationincludedir)
1142
1143lttngtriggerincludedir="${includedir}/lttng/trigger"
1144AC_SUBST(lttngtriggerincludedir)
1145
7a3dcaf6
JR
1146lttngeventruleincludedir="${includedir}/lttng/event-rule"
1147AC_SUBST(lttngeventruleincludedir)
1148
386418ba
MD
1149lttnglibexecdir="${libdir}/lttng/libexec"
1150AC_SUBST(lttnglibexecdir)
1151
fac6795d
DG
1152AC_CONFIG_FILES([
1153 Makefile
10a8a223 1154 doc/Makefile
595ed92e 1155 doc/examples/Makefile
95ce9d29 1156 doc/examples/rotation/Makefile
595ed92e 1157 doc/examples/trigger-condition-event-matches/Makefile
6991b181 1158 doc/man/Makefile
c4ee4984 1159 doc/man/asciidoc-attrs.conf
fac6795d 1160 include/Makefile
36907cb5
DS
1161 extras/Makefile
1162 extras/bindings/Makefile
1163 extras/bindings/swig/Makefile
1164 extras/bindings/swig/python/Makefile
57f0bd0c 1165 extras/core-handler/Makefile
10a8a223
DG
1166 src/Makefile
1167 src/common/Makefile
10a8a223
DG
1168 src/lib/Makefile
1169 src/lib/lttng-ctl/Makefile
2c452d45 1170 src/lib/lttng-ctl/lttng-ctl.pc
10a8a223
DG
1171 src/bin/Makefile
1172 src/bin/lttng-consumerd/Makefile
1173 src/bin/lttng-sessiond/Makefile
b8aa1682 1174 src/bin/lttng-relayd/Makefile
10a8a223 1175 src/bin/lttng/Makefile
d7ba1388 1176 src/bin/lttng-crash/Makefile
116a02e3
JG
1177 src/vendor/Makefile
1178 src/vendor/msgpack/Makefile
fac6795d 1179 tests/Makefile
512eb148 1180 tests/destructive/Makefile
9ac429ef
CB
1181 tests/regression/Makefile
1182 tests/regression/kernel/Makefile
1183 tests/regression/tools/Makefile
1184 tests/regression/tools/streaming/Makefile
1185 tests/regression/tools/filtering/Makefile
1186 tests/regression/tools/health/Makefile
d946d662 1187 tests/regression/tools/tracefile-limits/Makefile
07b86b52 1188 tests/regression/tools/snapshots/Makefile
1b368955 1189 tests/regression/tools/live/Makefile
345121ec 1190 tests/regression/tools/exclusion/Makefile
e02b109b 1191 tests/regression/tools/save-load/Makefile
192ac418 1192 tests/regression/tools/save-load/configuration/Makefile
68270f0f 1193 tests/regression/tools/mi/Makefile
075ffe1f 1194 tests/regression/tools/wildcard/Makefile
fbee8987 1195 tests/regression/tools/channel/Makefile
4c80129b 1196 tests/regression/tools/crash/Makefile
eded6438 1197 tests/regression/tools/regen-metadata/Makefile
54cd6107 1198 tests/regression/tools/regen-statedump/Makefile
434f8068 1199 tests/regression/tools/notification/Makefile
09a783a8 1200 tests/regression/tools/rotation/Makefile
2a166864 1201 tests/regression/tools/base-path/Makefile
01654d69 1202 tests/regression/tools/metadata/Makefile
ba5e8d0a 1203 tests/regression/tools/tracker/Makefile
f3630ec4 1204 tests/regression/tools/working-directory/Makefile
a9115ebf 1205 tests/regression/tools/relayd-grouping/Makefile
c28fcefd 1206 tests/regression/tools/clear/Makefile
b4b7369f 1207 tests/regression/tools/trigger/Makefile
7f4d5b07 1208 tests/regression/tools/trigger/rate-policy/Makefile
6ba31891
FD
1209 tests/regression/tools/trigger/start-stop/Makefile
1210 tests/regression/tools/trigger/utils/Makefile
2d0e6286 1211 tests/regression/tools/trigger/name/Makefile
1cc00241 1212 tests/regression/tools/trigger/hidden/Makefile
9ac429ef
CB
1213 tests/regression/ust/Makefile
1214 tests/regression/ust/nprocesses/Makefile
1215 tests/regression/ust/high-throughput/Makefile
1216 tests/regression/ust/low-throughput/Makefile
1217 tests/regression/ust/before-after/Makefile
f5481aa9 1218 tests/regression/ust/buffers-pid/Makefile
a788a3ed 1219 tests/regression/ust/periodical-metadata-flush/Makefile
9ac429ef 1220 tests/regression/ust/multi-session/Makefile
3f7f208a 1221 tests/regression/ust/multi-lib/Makefile
9ac429ef
CB
1222 tests/regression/ust/overlap/Makefile
1223 tests/regression/ust/overlap/demo/Makefile
91c75285 1224 tests/regression/ust/linking/Makefile
43c28d50 1225 tests/regression/ust/daemon/Makefile
ee28adfb 1226 tests/regression/ust/exit-fast/Makefile
37bd6c8e 1227 tests/regression/ust/fork/Makefile
5836cdc2 1228 tests/regression/ust/libc-wrapper/Makefile
d4f53cc3 1229 tests/regression/ust/baddr-statedump/Makefile
c70c42cc 1230 tests/regression/ust/ust-dl/Makefile
37175ce4 1231 tests/regression/ust/java-jul/Makefile
504d4ace 1232 tests/regression/ust/java-log4j/Makefile
0fd2fd15 1233 tests/regression/ust/java-log4j2/Makefile
568d7e2d 1234 tests/regression/ust/getcpu-override/Makefile
199800b2 1235 tests/regression/ust/clock-override/Makefile
10b56aef 1236 tests/regression/ust/type-declarations/Makefile
ced06804 1237 tests/regression/ust/rotation-destroy-flush/Makefile
de7e372e 1238 tests/regression/ust/blocking/Makefile
bbf15743 1239 tests/regression/ust/namespaces/Makefile
605ac758 1240 tests/stress/Makefile
81d029da 1241 tests/unit/Makefile
1501a7f3 1242 tests/unit/ini_config/Makefile
6faa26ca 1243 tests/perf/Makefile
86a96e6c
CB
1244 tests/utils/Makefile
1245 tests/utils/tap/Makefile
7e0cc23b 1246 tests/utils/testapp/Makefile
5f0d4e78 1247 tests/utils/testapp/gen-ns-events/Makefile
ba5e8d0a 1248 tests/utils/testapp/gen-kernel-test-events/Makefile
eb7277b0 1249 tests/utils/testapp/gen-py-events/Makefile
7e0cc23b 1250 tests/utils/testapp/gen-ust-events/Makefile
8a558304 1251 tests/utils/testapp/gen-ust-events-ns/Makefile
591ee332 1252 tests/utils/testapp/gen-syscall-events-callstack/Makefile
ffb08a8c 1253 tests/utils/testapp/gen-ust-nevents/Makefile
5400d18f 1254 tests/utils/testapp/gen-ust-nevents-str/Makefile
030312cf 1255 tests/utils/testapp/gen-syscall-events/Makefile
b02dcdb8 1256 tests/utils/testapp/gen-ust-tracef/Makefile
a9c2df2b
FD
1257 tests/utils/testapp/userspace-probe-elf-binary/Makefile
1258 tests/utils/testapp/userspace-probe-elf-cxx-binary/Makefile
1259 tests/utils/testapp/userspace-probe-sdt-binary/Makefile
208e4eea 1260 tests/utils/xml-utils/Makefile
fac6795d
DG
1261])
1262
87fb9fc0 1263# Inject variable into python test script.
9586c198 1264AC_CONFIG_FILES([tests/regression/ust/python-logging/test_python_logging],[chmod +x tests/regression/ust/python-logging/test_python_logging])
6faa26ca
JD
1265# Inject LTTNG_TOOLS_BUILD_WITH_LIBPFM variable in test script.
1266AC_CONFIG_FILES([tests/perf/test_perf_raw],[chmod +x tests/perf/test_perf_raw])
bc1d8ca0 1267AC_CONFIG_FILES([tests/regression/ust/ust-dl/test_ust-dl],[chmod +x tests/regression/ust/ust-dl/test_ust-dl])
9586c198 1268
fac6795d 1269AC_OUTPUT
6299f964 1270
994dd8a4 1271#
87fb9fc0 1272# Mini-report on what will be built.
994dd8a4 1273#
994dd8a4 1274
9d8c7763
JG
1275PPRINT_INIT
1276PPRINT_SET_INDENT(1)
1277PPRINT_SET_TS(38)
1278
1279AS_ECHO
1280AS_ECHO("${PPRINT_COLOR_BLDBLU}LTTng-tools $PACKAGE_VERSION \"$version_name\"$PPRINT_COLOR_RST")
1281AS_ECHO
1282
1283AS_IF([test -n "$report_fold"], [
1284 AS_ECHO("`AS_ECHO("$version_description") | $report_fold -s`")
1285], [
1286 AS_ECHO("$version_description")
1287])
0e4cbe7e 1288
9d8c7763
JG
1289AS_ECHO
1290PPRINT_SUBTITLE([Features])
0e4cbe7e 1291
87fb9fc0 1292# Target architecture we're building for.
2d90c6c8 1293target_arch=$host_cpu
994dd8a4
AM
1294[
1295for f in $CFLAGS; do
1296 if test $f = "-m32"; then
1297 target_arch="32-bit"
1298 elif test $f = "-m64"; then
1299 target_arch="64-bit"
1300 fi
1301done
1302]
9d8c7763 1303PPRINT_PROP_STRING([Target architecture], $target_arch)
994dd8a4 1304
234170ac 1305# kmod enabled/disabled
83dcc026 1306test "x$with_kmod" != "xno" && value=1 || value=0
9d8c7763 1307PPRINT_PROP_BOOL([libkmod support], $value)
234170ac 1308
994dd8a4 1309# LTTng-UST enabled/disabled
5744bf89 1310test "x$with_lttng_ust" = "xyes" && value=1 || value=0
9d8c7763 1311PPRINT_PROP_BOOL([LTTng-UST support], $value)
55bed213 1312
9d8c7763
JG
1313AS_ECHO
1314PPRINT_SUBTITLE([Binaries])
87fb9fc0
JR
1315
1316# List binaries to be built
9d8c7763
JG
1317test x$enable_bin_lttng != xno && value=1 || value=0
1318PPRINT_PROP_BOOL([lttng], $value)
87fb9fc0 1319
9d8c7763
JG
1320test x$enable_bin_lttng_consumerd != xno && value=1 || value=0
1321PPRINT_PROP_BOOL([lttng-consumerd], $value)
87fb9fc0 1322
9d8c7763
JG
1323test x$enable_bin_lttng_crash != xno && value=1 || value=0
1324PPRINT_PROP_BOOL([lttng-crash], $value)
87fb9fc0 1325
9d8c7763
JG
1326test x$enable_bin_lttng_relayd != xno && value=1 || value=0
1327PPRINT_PROP_BOOL([lttng-relayd], $value)
87fb9fc0 1328
9d8c7763
JG
1329test x$enable_bin_lttng_sessiond != xno && value=1 || value=0
1330PPRINT_PROP_BOOL([lttng-sessiond], $value)
87fb9fc0 1331
9d8c7763
JG
1332# Extras
1333test x$enable_extras != xno && value=1 || value=0
1334AS_ECHO
1335PPRINT_SET_INDENT(0)
1336PPRINT_PROP_BOOL([Extras], $value, $PPRINT_COLOR_SUBTITLE)
1337PPRINT_SET_INDENT(1)
87fb9fc0 1338
9d8c7763
JG
1339AS_ECHO
1340PPRINT_SUBTITLE([Tests])
87fb9fc0
JR
1341
1342# Print clear message that tests won't be built
1343AS_IF([test "x$build_tests" = "xno"],[
9d8c7763 1344 PPRINT_WARN([Tests won't be built since some binaries were disabled])
87fb9fc0
JR
1345])
1346
839a9569 1347# LTTng UST Java agent JUL tests enabled/disabled
9d8c7763
JG
1348test "x$test_java_agent_jul" = "xyes" && value=1 || value=0
1349PPRINT_PROP_BOOL([LTTng-UST Java agent JUL tests], $value)
839a9569 1350
0fd2fd15 1351# LTTng UST Java agent Log4j 1.x tests enabled/disabled
9d8c7763 1352test "x$test_java_agent_log4j" = "xyes" && value=1 || value=0
0fd2fd15
MJ
1353PPRINT_PROP_BOOL([LTTng-UST Java agent Log4j 1.x tests], $value)
1354
1355# LTTng UST Java agent Log4j 2.x tests enabled/disabled
1356test "x$test_java_agent_log4j2" = "xyes" && value=1 || value=0
1357PPRINT_PROP_BOOL([LTTng-UST Java agent Log4j 2.x tests], $value)
839a9569 1358
9d8c7763
JG
1359test ! -z "$PYTHON2_AGENT" && value=1 || value=0
1360PPRINT_PROP_BOOL([LTTng-UST Python2 agent tests], $value)
9586c198 1361
9d8c7763
JG
1362test ! -z "$PYTHON3_AGENT" && value=1 || value=0
1363PPRINT_PROP_BOOL([LTTng-UST Python3 agent tests], $value)
008559fa 1364
c9a0fa95 1365# userspace-probe SDT instrumentation tests enabled/disabled
1a1986ce 1366test "x$test_sdt_uprobe" = "xyes" && value=1 || value=0
c9a0fa95 1367PPRINT_PROP_BOOL([LTTng-modules SDT uprobe tests], $value)
1a1986ce 1368
36907cb5 1369#Python binding enabled/disabled
e9c45a26 1370test "x$enable_python_binding" = xyes && value=1 || value=0
9d8c7763
JG
1371AS_ECHO
1372PPRINT_SET_INDENT(0)
1373PPRINT_PROP_BOOL([Python binding], $value, $PPRINT_COLOR_SUBTITLE)
008559fa
PP
1374
1375# man pages build enabled/disabled
a3eae3c9
PP
1376m4_pushdef([build_man_pages_msg], [Build and install man pages])
1377
1378AS_IF([test "x$man_pages_opt" != "xno"], [
008559fa 1379 AS_IF([test "x$in_git_repo" = "xyes"], [
a3eae3c9 1380 PPRINT_PROP_BOOL([build_man_pages_msg], 1, $PPRINT_COLOR_SUBTITLE)
008559fa 1381 ], [
a3eae3c9
PP
1382 AS_IF([test "x$have_asciidoc_xmlto" = "xyes"], [
1383 PPRINT_PROP_BOOL([build_man_pages_msg], 1, $PPRINT_COLOR_SUBTITLE)
1384 ], [
1385 PPRINT_PROP_STRING([build_man_pages_msg],
1386 [${PPRINT_COLOR_BLDGRN}yes (already built)],
1387 $PPRINT_COLOR_SUBTITLE)
1388 ])
008559fa 1389 ])
a3eae3c9
PP
1390], [
1391 PPRINT_PROP_BOOL([build_man_pages_msg], 0, $PPRINT_COLOR_SUBTITLE)
008559fa
PP
1392])
1393
a3eae3c9
PP
1394m4_popdef([build_man_pages_msg])
1395
4fc83d94
PP
1396test "x$embedded_help" = xyes && value=1 || value=0
1397PPRINT_PROP_BOOL([Embed --help messages], $value, $PPRINT_COLOR_SUBTITLE)
1398
a3eae3c9 1399PPRINT_SET_INDENT(1)
008559fa 1400
9d8c7763
JG
1401report_bindir="`eval eval echo $bindir`"
1402report_libdir="`eval eval echo $libdir`"
1403
1404# Print the bindir and libdir this `make install' will install into.
1405AS_ECHO
1406PPRINT_SUBTITLE([Install directories])
1407PPRINT_PROP_STRING([Binaries], [$report_bindir])
1408PPRINT_PROP_STRING([Libraries], [$report_libdir])
1409
1410AS_ECHO
1411PPRINT_SUBTITLE([Search directories])
008559fa
PP
1412
1413# If we build the sessiond, print the paths it will use
4601fcce 1414AS_IF([test "$SESSIOND_BIN" = ""],[
9d8c7763 1415 path="$report_bindir/lttng-sessiond"
4601fcce 1416],[
9d8c7763 1417 path="$SESSIOND_BIN"
4601fcce 1418])
9d8c7763 1419PPRINT_PROP_STRING([lttng-sessiond executable], [$path])
b8ec3da8 1420
4601fcce 1421AS_IF([test "$CONSUMERD32_BIN" = ""],[
9d8c7763 1422 path="`eval eval echo $lttnglibexecdir`/lttng-consumerd"
4601fcce 1423],[
9d8c7763 1424 path="$CONSUMERD32_BIN"
4601fcce 1425])
9d8c7763 1426PPRINT_PROP_STRING([32-bit lttng-consumerd executable], [$path])
994dd8a4 1427
4601fcce 1428AS_IF([test "$CONSUMERD32_LIBDIR" = ""],[
9d8c7763 1429 path="`eval eval echo $libdir`"
4601fcce 1430],[
9d8c7763 1431 path="$CONSUMERD32_LIBDIR"
4601fcce 1432])
9d8c7763 1433PPRINT_PROP_STRING([32-bit consumer libraries], [$path])
994dd8a4 1434
4601fcce 1435AS_IF([test "$CONSUMERD64_BIN" = ""],[
9d8c7763 1436 path="`eval eval echo $lttnglibexecdir`/lttng-consumerd"
4601fcce 1437],[
9d8c7763 1438 path="$CONSUMERD64_BIN"
4601fcce 1439])
9d8c7763 1440PPRINT_PROP_STRING([64-bit lttng-consumerd executable], [$path])
994dd8a4 1441
4601fcce 1442AS_IF([test "$CONSUMERD64_LIBDIR" = ""],[
9d8c7763 1443 path="`eval eval echo $libdir`"
4601fcce 1444],[
9d8c7763 1445 path="$CONSUMERD64_LIBDIR"
994dd8a4 1446])
9d8c7763 1447PPRINT_PROP_STRING([64-bit consumer libraries], [$path])
a24d43ae
PP
1448PPRINT_SET_INDENT(0)
1449
1450AS_IF([test "x$warn_prebuilt_man_pages" = "xyes" ], [
1451 AS_ECHO
1452 PPRINT_WARN([You need asciidoc and xmlto to build the LTTng-tools man pages.
1453
1454Note that the man pages are already built in this distribution tarball,
1455therefore asciidoc and xmlto are only needed if you intend to modify
1456their sources.
1457
1458Also note that the installed man pages will contain the project's
1459default command-line option and environment variable values.
1460
1461Use --disable-man-pages to completely disable building and installing
1462the man pages.])
1463])
This page took 0.13475 seconds and 4 git commands to generate.