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