ctf: grow stored_values array when necessary
[babeltrace.git] / configure.ac
CommitLineData
0235b0db 1dnl SPDX-License-Identifier: MIT
9ffc0257 2dnl
0235b0db 3dnl Copyright (C) 2017 EfficiOS, Inc.
9ffc0257 4dnl
0235b0db 5dnl Process this file with autoconf to produce a configure script.
9ffc0257 6
08fe49d3 7# Project version information
a2edfc7d 8m4_define([bt_version_major], [2])
d5427d80 9m4_define([bt_version_minor], [1])
a2edfc7d 10m4_define([bt_version_patch], [0])
d5427d80 11m4_define([bt_version_dev_stage], [-rc1])
2671dfad 12m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_dev_stage)
08fe49d3
MJ
13m4_define([bt_version_name], [[Codename TBD]])
14m4_define([bt_version_description], [[Description TBD]])
3fbccce7 15
08fe49d3 16# Library version information of "libbabeltrace2"
3fbccce7
MD
17# Following the numbering scheme proposed by libtool for the library version
18# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
7e69c04f
MJ
19m4_define([bt_lib_version_current], [0])
20m4_define([bt_lib_version_revision], [0])
21m4_define([bt_lib_version_age], [0])
22m4_define([bt_lib_version], bt_lib_version_current[:]bt_lib_version_revision[:]bt_lib_version_age)
08fe49d3
MJ
23
24
25## ##
26## Autoconf base setup ##
27## ##
28
29AC_PREREQ([2.69])
30AC_INIT([babeltrace2],[bt_version],[jeremie dot galarneau at efficios dot com],[],[https://efficios.com/babeltrace/])
af597f37 31
7e69c04f 32AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_lib_version)
3fbccce7 33
578e048b 34AC_CONFIG_HEADERS([src/common/config.h])
ac65e355 35AC_CONFIG_AUX_DIR([config])
80e2fb15
MJ
36AC_CONFIG_MACRO_DIR([m4])
37
7e69c04f
MJ
38AC_DEFINE([BT_VERSION_MAJOR], bt_version_major, [Babeltrace major version])
39AC_DEFINE([BT_VERSION_MINOR], bt_version_minor, [Babeltrace minor version])
40AC_DEFINE([BT_VERSION_PATCH], bt_version_patch, [Babeltrace patch version])
2671dfad 41AC_DEFINE([BT_VERSION_DEV_STAGE], ["]bt_version_dev_stage["], [Babeltrace version development stage (can be empty)])
aaa8b698 42AC_DEFINE([BT_VERSION_NAME], ["]bt_version_name["], [Babeltrace version name])
08fe49d3 43AC_DEFINE([BT_VERSION_DESCRIPTION], ["]AS_ESCAPE(bt_version_description)["], [Babeltrace version description])
a2edfc7d 44
ac65e355
MD
45AC_CANONICAL_TARGET
46AC_CANONICAL_HOST
80e2fb15 47
9ffc0257
MJ
48
49## ##
50## Automake base setup ##
51## ##
52
82c49689 53AM_INIT_AUTOMAKE([1.13 foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc -Wall -Wno-portability -Werror])
99e3ba41 54AM_MAINTAINER_MODE([enable])
ac65e355 55
e97fe75e
MJ
56# Enable silent rules by default
57AM_SILENT_RULES([yes])
0671bd13 58
3d5e9596 59
9ffc0257
MJ
60## ##
61## OS specific defaults ##
62## ##
63
64MINGW32=no
9ffc0257
MJ
65LT_NO_UNDEFINED=""
66AS_CASE([$host_os],
67 [solaris*|darwin*],
68 [
900ddc21 69 AE_FEATURE_DISABLE([debug-info])
9ffc0257 70 ],
f4f8f798
MJ
71 [freebsd*],
72 [
900ddc21 73 AE_FEATURE_DISABLE([debug-info])
f4f8f798 74 ],
9ffc0257
MJ
75 [cygwin*],
76 [
900ddc21
MJ
77 AE_FEATURE_DISABLE([debug-info])
78 LT_NO_UNDEFINED="-no-undefined"
9ffc0257
MJ
79 ],
80 [mingw*],
81 [
900ddc21
MJ
82 MINGW32=yes
83 AE_FEATURE_DISABLE([debug-info])
84 LT_NO_UNDEFINED="-no-undefined"
9ffc0257
MJ
85 ]
86)
87
88AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
89AC_SUBST(LT_NO_UNDEFINED)
90
91
92## ##
93## C compiler checks ##
94## ##
95
c09b8e7b 96# Choose the C compiler
b877064f 97AC_PROG_CC
c09b8e7b 98# AC_PROG_CC_STDC was merged in AC_PROG_CC in autoconf 2.70
b877064f 99m4_version_prereq([2.70], [], [AC_PROG_CC_STDC])
217108a9 100
c09b8e7b 101# Make sure the C compiler supports C99
e97fe75e
MJ
102AS_IF([test "$ac_cv_prog_cc_c99" = "no"], [AC_MSG_ERROR([The compiler does not support C99])])
103
104# Enable available system extensions and LFS support
105AC_USE_SYSTEM_EXTENSIONS
106AC_SYS_LARGEFILE
ac65e355 107
c09b8e7b 108# Make sure the C compiler supports __attributes__
ec8add54 109AX_C___ATTRIBUTE__
9ffc0257
MJ
110AS_IF([test "x$ax_cv___attribute__" != "xyes"],
111 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
ec8add54 112
9ffc0257
MJ
113# Make sur we have pthread support
114AX_PTHREAD([], [AC_MSG_ERROR([Could not configure pthread support])])
115
116# Checks for typedefs, structures, and compiler characteristics.
117AC_C_INLINE
118AC_C_TYPEOF
9ffc0257
MJ
119AC_TYPE_INT16_T
120AC_TYPE_INT32_T
121AC_TYPE_INT64_T
122AC_TYPE_INT8_T
123AC_TYPE_OFF_T
c09b8e7b
MJ
124AC_TYPE_PID_T
125AC_TYPE_SIZE_T
9ffc0257
MJ
126AC_TYPE_SSIZE_T
127AC_TYPE_UINT16_T
128AC_TYPE_UINT32_T
129AC_TYPE_UINT64_T
130AC_TYPE_UINT8_T
131AC_CHECK_TYPES([ptrdiff_t])
a2bc83d4 132
9ffc0257 133
c20049fd
MJ
134## ##
135## C++ compiler checks ##
136## ##
137
138# Require a C++11 compiler without GNU extensions (-std=c++11)
139AX_CXX_COMPILE_STDCXX([11], [noext], [mandatory])
140
141
9ffc0257
MJ
142## ##
143## Header checks ##
144## ##
f0d8d709 145
f847f3ae
MJ
146AC_HEADER_STDBOOL
147AC_CHECK_HEADERS([ \
900ddc21
MJ
148 fcntl.h \
149 float.h \
150 ftw.h \
151 libintl.h \
152 limits.h \
153 malloc.h \
154 netdb.h \
155 netinet/in.h \
156 stddef.h \
157 sys/socket.h \
158 sys/time.h
f847f3ae 159])
80e2fb15 160
9ffc0257
MJ
161
162## ##
163## Linker checks ##
164## ##
165
166# Check if the linker supports no-as-needed
167AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
168AC_SUBST([LD_NO_AS_NEEDED])
169
1244e794
MJ
170# Check if the linker supports whole-archive
171AX_CHECK_LINK_FLAG([-Wl,--whole-archive,--no-whole-archive],
172 [
173 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,--whole-archive,])
174 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [,--no-whole-archive])
175 ],[
176 # Fallback to force_load for the macOS linker
177 AX_CHECK_LINK_FLAG([-Wl,-force_load],
178 [
179 AC_SUBST([LD_WHOLE_ARCHIVE], [-Wl,-force_load,])
180 AC_SUBST([LD_NO_WHOLE_ARCHIVE], [])
181 ],[
182 AC_MSG_WARN([Can't find a linker option to force the inclusion of the static plugin archive objects.])
183 ]
184 )
185 ]
186)
187
5e8a0751
MJ
188# Check if the linker supports the "notext" keyword
189AX_CHECK_LINK_FLAG([-Wl,-z,notext],[
900ddc21 190 AC_SUBST([LD_NOTEXT], [-Wl,-z,notext])
5e8a0751
MJ
191])
192
9ffc0257
MJ
193
194## ##
195## Programs checks ##
196## ##
197
e97fe75e 198AM_PROG_AR
9ffc0257
MJ
199AC_PROG_MAKE_SET
200AC_PROG_MKDIR_P
201AC_PROG_LN_S
e97fe75e 202AC_PROG_SED
5aced3e6
MJ
203AC_CHECK_PROGS([FOLD], [fold])
204AC_CHECK_PROGS([ASCIIDOC], [asciidoc])
205AC_CHECK_PROGS([XMLTO], [xmlto])
9ffc0257 206
540d833d
MJ
207# check for bison
208AC_PROG_YACC
042f640b 209AX_PROG_BISON_VERSION([2.5], [have_bison=yes])
540d833d
MJ
210
211AS_IF([test "x$have_bison" != "xyes"], [
e0c79724 212 AE_IF_IN_GIT_REPO([
9ffc0257 213 AC_MSG_FAILURE([dnl
921cd9bd 214Bison >= 2.5 is required when building from the Git repository. You can
540d833d
MJ
215set the YACC variable to override automatic detection.
216 ])
217 ], [
9ffc0257 218 AC_MSG_WARN([dnl
921cd9bd 219Missing Bison >= 2.5. Note that the parser files are already built in
540d833d
MJ
220this distribution tarball, so Bison is only needed if you intend to
221modify their sources. You can set the YACC variable to override automatic
222detection.
223 ])
224 ])
225])
226AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
227
228# check for flex
b877064f
SM
229# Prior to autoconf 2.70, AC_PROG_FLEX did not take an argument. This is not a
230# problem since the argument is silently ignored by older versions.
231AC_PROG_LEX([noyywrap])
540d833d
MJ
232AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
233
234AS_IF([test "x$have_flex" != "xyes"], [
e0c79724 235 AE_IF_IN_GIT_REPO([
9ffc0257 236 AC_MSG_FAILURE([dnl
540d833d
MJ
237Flex >= 2.5.35 is required when building from the Git repository. You can
238set the LEX variable to override automatic detection.
239 ])
240 ], [
9ffc0257 241 AC_MSG_WARN([dnl
540d833d
MJ
242Missing Flex >= 2.5.35. Note that the lexer files are already built in
243this distribution tarball, so Flex is only needed if you intend to
244modify their sources. You can set the LEX variable to override automatic
245detection.
246 ])
247 ])
248])
249AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
331d78f5 250
5aced3e6
MJ
251# Always check for python, we will fail later if some features require it and
252# it's unavailable.
041857ec 253AM_PATH_PYTHON([3.4], [
5aced3e6
MJ
254 AE_PATH_PYTHON_MODULES([PYTHON])
255
256 # pythondir is the path where extra modules are to be installed
257 pythondir=$PYTHON_PREFIX/$PYTHON_MODULES_PATH
258
259 # pyexecdir is the path that contains shared objects used by the extra modules
260 pyexecdir=$PYTHON_EXEC_PREFIX/$PYTHON_MODULES_PATH
261
262 # If no PYTHON_CONFIG was specified by the user, try to find it, starting
263 # with the one specific to the configured python version.
264 AS_IF([test "x$PYTHON_CONFIG" = "x"], [
265 AC_CHECK_PROGS([PYTHON_CONFIG], [python$PYTHON_VERSION-config python-config])
266 ])
267
268 # If PYTHON_CONFIG is set use it to get the includes and ld flags, unless
269 # they were specified by the user.
270 AS_IF([test "x$PYTHON_CONFIG" != "x" ], [
271 AS_IF([test "x$PYTHON_INCLUDE" = "x"], [
272 AC_MSG_CHECKING([Python include flags])
273 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
274 AC_MSG_RESULT([$PYTHON_INCLUDE])
275 ])
276
277 AS_IF([test "x$PYTHON_LDFLAGS" = "x"], [
278 AC_MSG_CHECKING([Python library flags])
279 # Python 3.8+ requires that we pass --embed to get the -lpython3.x flag.
280 AS_IF([! PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags --embed`], [
281 PYTHON_LDFLAGS=`$PYTHON_CONFIG --ldflags`
282 ])
283 AC_MSG_RESULT([$PYTHON_LDFLAGS])
284 ])
285 ])
286], [:])
287
e97fe75e
MJ
288# Initialize and configure libtool
289LT_INIT([win32-dll])
290
e5f5317f 291
9ffc0257
MJ
292## ##
293## Library checks ##
294## ##
ac65e355 295
39fa4402
MJ
296# Check what libraries are required on this platform to link sockets programs.
297AX_LIB_SOCKET_NSL
298
ef9559ae
SM
299# Check for glib >= 2.28 with gmodule support
300AM_PATH_GLIB_2_0([2.28.0], [],
301 AC_MSG_ERROR([glib >= 2.28 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
9ffc0257
MJ
302 [gmodule-no-export]
303)
ac65e355
MD
304
305# Checks for library functions.
f847f3ae
MJ
306AC_FUNC_ALLOCA
307AC_FUNC_FORK
f847f3ae 308AC_FUNC_MKTIME
ac65e355 309AC_FUNC_MMAP
f847f3ae 310AC_FUNC_STRERROR_R
9ffc0257 311AC_FUNC_STRNLEN
2f8c0e47 312AC_CHECK_FUNCS([ \
900ddc21
MJ
313 atexit \
314 dup2 \
315 ftruncate \
316 gethostbyname \
317 gettimeofday \
318 localtime_r \
319 memchr \
320 memset \
321 mkdir \
322 mkdtemp \
323 munmap \
324 rmdir \
325 setenv \
326 socket \
327 strchr \
328 strdup \
329 strerror \
330 strndup \
331 strnlen \
332 strrchr \
333 strstr \
334 strtoul \
335 strtoull \
336 tzset \
2f8c0e47 337])
ac65e355 338
dc4cb410
MJ
339# AC_FUNC_MALLOC causes problems when cross-compiling.
340#AC_FUNC_MALLOC
341#AC_FUNC_REALLOC
342
f8370579
MD
343# Check for fmemopen
344AC_CHECK_LIB([c], [fmemopen],
9ffc0257 345 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_FMEMOPEN], 1, [Has fmemopen support.])]
f8370579
MD
346)
347
348# Check for open_memstream
349AC_CHECK_LIB([c], [open_memstream],
9ffc0257 350 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])]
f8370579
MD
351)
352
a323afb2
JG
353# Check for posix_fallocate
354AC_CHECK_LIB([c], [posix_fallocate],
9ffc0257 355 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_POSIX_FALLOCATE], 1, [Has posix_fallocate support.])]
a323afb2
JG
356)
357
887d26fa 358
9ffc0257
MJ
359## ##
360## User variables ##
361## ##
362
363AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for Python, bypassing python-config])
0b9113bf 364AC_ARG_VAR([PYTHON_LDFLAGS], [Linker flags for Python, bypassing python-config])
9ffc0257
MJ
365AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
366
056632bf
MJ
367# BABELTRACE_PLUGINS_DIR: Plugins directory
368AC_ARG_VAR([BABELTRACE_PLUGINS_DIR], [built-in plugins install directory [LIBDIR/babeltrace2/plugins]])
369AS_IF([test "x$BABELTRACE_PLUGINS_DIR" = x], [BABELTRACE_PLUGINS_DIR='${libdir}/babeltrace2/plugins'])
a094f13b 370
b14c7bf1
MJ
371# BABELTRACE_PLUGIN_PROVIDERS_DIR: Plugin providers directory
372AC_ARG_VAR([BABELTRACE_PLUGIN_PROVIDERS_DIR], [built-in plugin providers install directory [LIBDIR/babeltrace2/plugin-providers]])
373AS_IF([test "x$BABELTRACE_PLUGIN_PROVIDERS_DIR" = x], [BABELTRACE_PLUGIN_PROVIDERS_DIR='${libdir}/babeltrace2/plugin-providers'])
374
9ffc0257 375# BABELTRACE_MINIMAL_LOG_LEVEL:
dd22a91f 376AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (TRACE, DEBUG (default), or INFO)])
f7a9ecd3 377AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = x], [BABELTRACE_MINIMAL_LOG_LEVEL="DEBUG"])
ef267d12 378AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "TRACE" && \
9ffc0257 379 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && \
dd22a91f
PP
380 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO"],
381 [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use TRACE, DEBUG, or INFO.])]
9ffc0257 382)
510400a9 383AC_DEFINE_UNQUOTED([BT_MINIMAL_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
9ffc0257 384
464ebc31
PP
385# BABELTRACE_DEV_MODE:
386AC_ARG_VAR([BABELTRACE_DEV_MODE], [Set to 1 to enable the Babeltrace developer mode (enables run-time checks for plugin developers)])
387AS_IF([test "x$BABELTRACE_DEV_MODE" = x1], [
900ddc21 388 AC_DEFINE([BT_DEV_MODE], 1, [Babeltrace developer mode])
464ebc31 389], [BABELTRACE_DEV_MODE=0])
5d7e8359 390AM_CONDITIONAL([DEV_MODE], [test "x$BABELTRACE_DEV_MODE" = x1])
464ebc31
PP
391
392# BABELTRACE_DEBUG_MODE:
393AC_ARG_VAR([BABELTRACE_DEBUG_MODE], [Set to 1 to enable the Babeltrace debug mode (enables internal assertions for Babeltrace maintainers)])
394AS_IF([test "x$BABELTRACE_DEBUG_MODE" = x1], [
900ddc21 395 AC_DEFINE([BT_DEBUG_MODE], 1, [Babeltrace debug mode])
464ebc31
PP
396], [BABELTRACE_DEBUG_MODE=0])
397
9ffc0257
MJ
398
399## ##
400## Optionnal features selection ##
401## ##
24a3136a 402
9ffc0257
MJ
403# Python bindings
404# Disabled by default
887d26fa
MJ
405AE_FEATURE_DEFAULT_DISABLE
406AE_FEATURE([python-bindings],[build the Python bindings])
9ffc0257 407
ba64dfcc
SM
408# Python bindings documentation
409# Disabled by default
887d26fa
MJ
410AE_FEATURE_DEFAULT_DISABLE
411AE_FEATURE([python-bindings-doc],[build the Python bindings documentation])
ba64dfcc 412
9ffc0257
MJ
413# Python plugins
414# Disabled by default
887d26fa
MJ
415AE_FEATURE_DEFAULT_DISABLE
416AE_FEATURE([python-plugins],[enable the Python plugins support for the library and converter])
9ffc0257
MJ
417
418# Debug info
419# Enabled by default, except on some platforms
887d26fa
MJ
420AE_FEATURE_DEFAULT_ENABLE
421AE_FEATURE([debug-info],[disable the debug info support (default on macOS, Solaris and Windows)])
9ffc0257
MJ
422
423# API documentation
424# Disabled by default
887d26fa
MJ
425AE_FEATURE_DEFAULT_DISABLE
426AE_FEATURE([api-doc],[build the HTML API documentation])
9ffc0257
MJ
427
428# Built-in plugins
429# Disabled by default
887d26fa
MJ
430AE_FEATURE_DEFAULT_DISABLE
431AE_FEATURE([built-in-plugins],[Statically-link in-tree plug-ins into the babeltrace2 executable])
9ffc0257
MJ
432
433# Built-in python plugin support
434# Disabled by default
887d26fa
MJ
435AE_FEATURE_DEFAULT_DISABLE
436AE_FEATURE([built-in-python-plugin-support],[Statically-link Python plugin support into the babeltrace library])
9ffc0257 437
0659f3af
PP
438# Man pages
439# Enabled by default
887d26fa
MJ
440AE_FEATURE_DEFAULT_ENABLE
441AE_FEATURE([man-pages],[Do not build and install man pages (already built in a distributed tarball])
0659f3af 442
c20049fd 443# When given, add -Werror to WARN_CFLAGS and WARN_CXXFLAGS.
887d26fa
MJ
444# Disabled by default
445AE_FEATURE_DEFAULT_DISABLE
446AE_FEATURE([Werror],[Treat compiler warnings as errors.])
9ffc0257 447
0b0893d4
SM
448# When given, build with AddressSanitizer.
449AE_FEATURE_DEFAULT_DISABLE
450AE_FEATURE([asan],[Build with AddressSanitizer.])
50cb048d 451AE_FEATURE([ubsan],[Build with UndefinedBehaviorSanitizer.])
9ffc0257 452
887d26fa
MJ
453## ##
454## Check for conflicting features selection ##
455## ##
9ffc0257 456
887d26fa
MJ
457# Check for conflicting Python related features user choices.
458AE_IF_FEATURE_ENABLED([python-plugins], [
459 AE_IF_FEATURE_UNDEF([python-bindings], [
460 # --enable-python-plugins was provided but --enable-python-bindings was
461 # omitted. Turn the Python bindings ON anyway because it's needed to
462 # use the Python plugins.
463 AE_FEATURE_ENABLE([python-bindings])
464 ], [
465 AE_IF_FEATURE_DISABLED([python-bindings], [
466 # --enable-python-plugins _and_ --disable-python-bindings were
467 # used. This is invalid because Python plugins need the Python
468 # bindings to be useful.
469 AC_MSG_ERROR(--enable-python-bindings must be used to support Python plugins)
470 ])
471 ])
472])
9ffc0257 473
887d26fa
MJ
474# Check for conflicting optional features user choices
475AE_IF_FEATURE_ENABLED([built-in-plugins], [
900ddc21
MJ
476 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
477 AE_IF_FEATURE_NOT_ENABLED([static], [AC_MSG_ERROR(--enable-static must be used to bundle plug-ins in the babeltrace2 executable)])
478 AE_IF_FEATURE_ENABLED([shared], [AC_MSG_ERROR(--disable-shared must be used to bundle plug-ins in the babeltrace2 executable)])
887d26fa 479])
9ffc0257 480
887d26fa 481AE_IF_FEATURE_ENABLED([built-in-python-plugin-support], [
900ddc21
MJ
482 AE_IF_FEATURE_NOT_ENABLED([python-plugins], [AC_MSG_ERROR([--enable-python-plugins must be used to bundle Python plugin support in the babeltrace2 executable])])
483 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
484 AE_IF_FEATURE_NOT_ENABLED([static], [AC_MSG_ERROR(--enable-static must be used to bundle Python plugin support in the babeltrace2 executable)])
485 AE_IF_FEATURE_ENABLED([shared], [AC_MSG_ERROR(--disable-shared must be used to bundle Python plugin support in the babeltrace2 executable)])
887d26fa 486])
0659f3af 487
0659f3af 488
c09b8e7b
MJ
489## ##
490## Set automake variables for optional feature conditionnals in Makefile.am ##
491## ##
9ffc0257 492
887d26fa
MJ
493AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], AE_IS_FEATURE_ENABLED([python-bindings]))
494AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], AE_IS_FEATURE_ENABLED([python-bindings-doc]))
495AM_CONDITIONAL([ENABLE_PYTHON_PLUGINS], AE_IS_FEATURE_ENABLED([python-plugins]))
496AM_CONDITIONAL([ENABLE_DEBUG_INFO], AE_IS_FEATURE_ENABLED([debug-info]))
497AM_CONDITIONAL([ENABLE_API_DOC], AE_IS_FEATURE_ENABLED([api-doc]))
498AM_CONDITIONAL([ENABLE_BUILT_IN_PLUGINS], AE_IS_FEATURE_ENABLED([built-in-plugins]))
499AM_CONDITIONAL([ENABLE_BUILT_IN_PYTHON_PLUGIN_SUPPORT], AE_IS_FEATURE_ENABLED([built-in-python-plugin-support]))
500AM_CONDITIONAL([ENABLE_MAN_PAGES], AE_IS_FEATURE_ENABLED([man-pages]))
501AM_CONDITIONAL([ENABLE_PYTHON_COMMON_DEPS], AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python-plugins]))
0b0893d4 502AM_CONDITIONAL([ENABLE_ASAN], AE_IS_FEATURE_ENABLED([asan]))
9ffc0257 503
887d26fa 504
c09b8e7b
MJ
505## ##
506## Set defines for optional features conditionnals in the source code ##
507## ##
887d26fa
MJ
508
509AE_IF_FEATURE_ENABLED([built-in-plugins],
510 [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])]
9ffc0257
MJ
511)
512
887d26fa
MJ
513AE_IF_FEATURE_ENABLED([built-in-python-plugin-support],
514 [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
55bb57e0 515)
9cf643d1 516
887d26fa
MJ
517AE_IF_FEATURE_ENABLED([debug-info], [ENABLE_DEBUG_INFO_VAL=1], [ENABLE_DEBUG_INFO_VAL=0])
518AC_SUBST([ENABLE_DEBUG_INFO_VAL])
519
0b0893d4
SM
520AE_IF_FEATURE_ENABLED([asan], [ENABLE_ASAN=1], [ENABLE_ASAN=0])
521AC_SUBST([ENABLE_ASAN])
4f5f37d9 522
c09b8e7b
MJ
523## ##
524## Check for optional features dependencies ##
525## ##
9ffc0257 526
887d26fa 527# The Python bindings require SWIG
de767439 528AE_IF_FEATURE_ENABLED([python-bindings],
9ffc0257
MJ
529 [AX_PKG_SWIG(2.0.0, [], [AC_MSG_ERROR([SWIG 2.0.0 or newer is required to build the python bindings])])]
530)
531
419fff0b
PP
532AS_IF([test "$PYTHON" != :], [have_python=yes], [have_python=no])
533AS_IF([test -n "$PYTHON_CONFIG"], [have_python_dev=yes], [have_python_dev=no])
534
535AM_CONDITIONAL([HAVE_PYTHON], [test "x$have_python" = xyes])
536AM_CONDITIONAL([HAVE_PYTHON_DEV], [test "x$have_python_dev" = xyes])
537
cb50b38f
MJ
538AS_IF([test "x$have_python" = xyes], [
539 AX_COMPARE_VERSION(["$PYTHON_VERSION"], [ge], ["3.12"], [
540 have_python_312_or_greater=yes
541 ])
542])
543
544AM_CONDITIONAL([HAVE_PYTHON_312_OR_GREATER], [test "x$have_python_312_or_greater" = xyes])
545
887d26fa 546AS_IF([AE_IS_FEATURE_ENABLED([python-bindings]) || AE_IS_FEATURE_ENABLED([python-plugins])], [
419fff0b
PP
547 AS_IF([test "x$have_python_dev" = xno], [
548 AC_MSG_ERROR([Cannot find a suitable python-config. You can override the python-config path with the PYTHON_CONFIG environment variable.])
549 ])
6ec97181
MJ
550
551 AX_COMPARE_VERSION(["$PYTHON_VERSION"], [ge], ["3.12"], [
552 AC_MSG_CHECKING([for python setuptools])
553 AS_IF(["$PYTHON" -c "import setuptools" 2>/dev/null], [
554 AC_MSG_RESULT([yes])
555 ], [
556 AC_MSG_RESULT([no])
557 AC_MSG_ERROR([Python >= 3.12 removed 'distutils', the 'setuptools' module needs to be installed for the selected interpreter.])
558 ])
559 ])
419fff0b 560])
55bb57e0 561
887d26fa 562AE_IF_FEATURE_ENABLED([python-bindings-doc],
ba64dfcc 563 [
435aa29a 564 AE_CHECK_PYTHON_SPHINX([PYTHON])
ba64dfcc
SM
565 AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno], [
566 AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation])
567 ])
568
887d26fa 569 AE_IF_FEATURE_NOT_ENABLED([python-bindings], [
ba64dfcc
SM
570 AC_MSG_ERROR([The Python bindings are required to build their documentation])
571 ])
572 ]
573)
574
887d26fa 575AE_IF_FEATURE_ENABLED([debug-info], [
e97fe75e
MJ
576 # Check if libelf and libdw are present
577 PKG_CHECK_MODULES([ELFUTILS], [libelf >= 0.154 libdw >= 0.154],
578 [
579 dnl PKG_CHECK_MODULES defines ELFUTILS_LIBS
580 ],
581 [
1c482ed8
MJ
582 AC_MSG_WARN([pkg-config was unable to find a valid .pc for libelf/libdw. Set PKG_CONFIG_PATH to specify the pkg-config configuration file location.])
583
584 # Turns out SLES12 doesn't bother shipping .pc file for libelf
585 AC_MSG_WARN([Finding libelf without pkg-config.])
2bf8d324
MJ
586 AC_CHECK_LIB([elf], [elf_version], [:], [AC_MSG_ERROR(Missing libelf (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
587 AC_CHECK_LIB([dw], [dwarf_begin], [:], [AC_MSG_ERROR(Missing libdw (from elfutils >= 0.154) which is required by debug info. You can disable this feature using --disable-debug-info.)])
1c482ed8
MJ
588 AE_LIB_ELFUTILS([0], [154], [], [AC_MSG_ERROR(elfutils >= 0.154 is required to use the debug info feature. You can disable this feature using --disable-debug-info.)])
589 ELFUTILS_LIBS="-lelf -ldw"
e97fe75e
MJ
590 ])
591])
901e5c12 592AC_SUBST([ELFUTILS_LIBS])
6fbd4105 593
887d26fa 594AE_IF_FEATURE_ENABLED([api-doc],
9ffc0257
MJ
595 [
596 DX_DOXYGEN_FEATURE(ON)
597 DX_DOT_FEATURE(OFF)
598 DX_HTML_FEATURE(ON)
599 DX_CHM_FEATURE(OFF)
600 DX_CHI_FEATURE(OFF)
601 DX_MAN_FEATURE(OFF)
602 DX_RTF_FEATURE(OFF)
603 DX_XML_FEATURE(OFF)
604 DX_PDF_FEATURE(OFF)
605 DX_PS_FEATURE(OFF)
43c59509 606 DX_INIT_DOXYGEN([Babeltrace 2], [$(builddir)/Doxyfile], [output])
9ffc0257 607 AS_IF([test -z "$DX_DOXYGEN"],
900ddc21 608 [AC_MSG_ERROR([You need doxygen to enable the API documentation])]
9ffc0257
MJ
609 )
610 ]
611)
ac65e355 612
0659f3af
PP
613have_asciidoc_xmlto=no
614warn_prebuilt_man_pages=no
615
887d26fa 616AE_IF_FEATURE_ENABLED([man-pages], [
5aced3e6 617 AS_IF([test "x$ASCIIDOC" = "x" || test "x$XMLTO" = "x"], [
e0c79724 618 AE_IF_IN_GIT_REPO([
0659f3af
PP
619 # this is an error because we're in the Git repo, which
620 # means the man pages are not already generated for us,
621 # thus asciixmlto are required because we were asked
622 # to build the man pages
623 AC_MSG_ERROR([
624You need asciidoc and xmlto to build the Babeltrace man pages. Use
625--disable-man-pages to disable building the man pages, in which case
626they will not be installed.
627 ])
628 ], [
629 # only warn here: since we're in the tarball, the man
630 # pages should already be generated at this point, thus
631 # asciidoc/xmlto are not strictly required
632 warn_prebuilt_man_pages=yes
633 ])
634 ], [
635 have_asciidoc_xmlto=yes
636 ])
637])
638
639# export AsciiDoc and xmlto existence
640AM_CONDITIONAL([HAVE_ASCIIDOC_XMLTO], [test "x$have_asciidoc_xmlto" = "xyes"])
641
642# a wonderful hack that seems necessary because $libdir is
643# literally `${exec_prefix}/lib`, and $exec_prefix is set to `NONE`
644# by autoconf when it's not specified by the user
645AS_IF([test "x$exec_prefix" = xNONE], [
646 AS_IF([test "x$prefix" = xNONE], [
647 PREFIX="$ac_default_prefix"
648 ], [
649 PREFIX="$prefix"
650 ])
651
652 LIBDIR="$PREFIX/lib"
653], [
654 LIBDIR="$libdir"
655])
656
657AC_SUBST(LIBDIR)
658
0b0893d4
SM
659# If --enable-asan is used...
660AE_IF_FEATURE_ENABLED([asan], [
661 # ... add -fsanitize=address to the *FLAGS variables.
662 ASAN_CFLAGS="-fsanitize=address"
663 ASAN_CXXFLAGS="-fsanitize=address"
664 ASAN_LDFLAGS="-fsanitize=address"
665])
887d26fa 666
50cb048d
SM
667# If --enable-ubsan is used...
668AE_IF_FEATURE_ENABLED([ubsan], [
669 # ... add -fsanitize=undefined to the *FLAGS variables.
670 UBSAN_CFLAGS="-fsanitize=undefined"
671 UBSAN_CXXFLAGS="-fsanitize=undefined"
672 UBSAN_LDFLAGS="-fsanitize=undefined"
673])
887d26fa 674
02bb4fcc
SM
675# CFLAGS from libraries (the glib ones are needed for the following sizeof
676# test).
50cb048d
SM
677AM_CFLAGS="-fvisibility=hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CFLAGS} ${UBSAN_CFLAGS}"
678AM_CXXFLAGS="-fvisibility=hidden -fvisibility-inlines-hidden ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} ${ASAN_CXXFLAGS} ${UBSAN_CFLAGS}"
679AM_LDFLAGS="${ASAN_LDFLAGS} ${UBSAN_CFLAGS}"
38424656 680
5b5959d4
MJ
681# Check that the current size_t matches the size that glib thinks it should
682# be. This catches problems on multi-arch where people try to do a 32-bit
683# build while pointing at 64-bit glib headers. This is a common error because
684# glib.h is not platform specific but it includes glibconfig.h which is and
685# is usually installed in a non-standard path.
686
02bb4fcc
SM
687# Do this before enabling all the warning flags, as the
688# AC_LANG_PROGRAM-generated program may generate some warning, which makes this
689# test fail unnecessarily.
690
3d130ada
MJ
691# Older versions of the pkg-config macros disallows PKG_* in the autoconf
692# output. Specifically allow pkg_config_libdir to be able to print the
693# error message.
694m4_pattern_allow([PKG_CONFIG_LIBDIR])
695
5b5959d4
MJ
696save_CFLAGS=${CFLAGS}
697CFLAGS="${CFLAGS} ${AM_CFLAGS}"
698AC_COMPILE_IFELSE([
699 AC_LANG_PROGRAM([dnl
700#include <glib.h>
701#include <unistd.h>
702 ], [dnl
703G_STATIC_ASSERT(sizeof(size_t) == GLIB_SIZEOF_SIZE_T);
704 ])
705],[:],[
706 AC_MSG_ERROR([dnl
707sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T. You probably need to set
708PKG_CONFIG_LIBDIR to point to the right pkg-config files for your build
709target.
710 ])
711])
712CFLAGS=${save_CFLAGS}
713
02bb4fcc 714# Detect C and LD warning flags supported by the compiler.
28ba44ad 715
c20049fd
MJ
716# Detect warning flags supported by the C and C++ compilers and append them to
717# WARN_CFLAGS and WARN_CXXFLAGS.
28ba44ad 718#
c20049fd 719m4_define([WARN_FLAGS_LIST], [ dnl
900ddc21
MJ
720 -Wall dnl
721 -Wextra dnl
722 -Wmissing-prototypes dnl
723 -Wmissing-declarations dnl
724 -Wnull-dereference dnl
725 -Wundef dnl
726 -Wredundant-decls dnl
727 -Wshadow dnl
d6ed1edd
SM
728 dnl GCC's -Wshadow warns about constructor parameters shadowing fields, but
729 dnl Clang's does not. Enable Clang's `-Wshadow-field-in-constructor`, to make
730 dnl Clang warn about that.
731 -Wshadow-field-in-constructor dnl
200e2a8d 732 -Wshadow-field dnl
900ddc21
MJ
733 -Wjump-misses-init dnl
734 -Wsuggest-attribute=format dnl
735 -Wtautological-constant-out-of-range-compare dnl
736 -Wnested-externs dnl
737 -Wwrite-strings dnl
738 -Wformat=2 dnl
739 -Wstrict-aliasing dnl
740 -Wmissing-noreturn dnl
741 -Winit-self dnl
742 -Wduplicated-cond dnl
743 -Wduplicated-branches dnl
744 -Wlogical-op dnl
63b7bb4e 745 -Wsuggest-override dnl
900ddc21
MJ
746 -Wno-unused-parameter dnl
747 -Wno-sign-compare dnl
748 dnl
749 dnl Some versions of SWIG (like 3.0.12) generate code that produces
750 dnl -Wcast-function-type warnings. This warning is present in gcc >= 8. This
751 dnl combo happens on RHEL/Centos 8, for example. Later versions of SWIG (like
752 dnl 4.0.1) have the correct function signatures to not produce this warning.
753 dnl It's simpler to just disable the warning globally.
754 dnl
755 dnl Note that the Debian/Ubuntu SWIG package 3.0.12-2 contains a local patch to
756 dnl fix this (python-fix-function-cast-warnings.patch), so you won't be able to
757 dnl reproduce the warning using that package.
758 dnl
759 dnl Ref: https://github.com/swig/swig/issues/1259
760 -Wno-cast-function-type dnl
761 -Wno-missing-field-initializers dnl
419d8c49 762 -Wno-maybe-uninitialized dnl
900ddc21 763])
c20049fd
MJ
764
765# Pass -Werror as an extra flag during the test: this is needed to make the
766# -Wunknown-warning-option diagnostic fatal with clang.
767AC_LANG([C++])
768AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CXXFLAGS], [-Werror])
769AC_LANG([C])
770AX_APPEND_COMPILE_FLAGS([WARN_FLAGS_LIST], [WARN_CFLAGS], [-Werror])
28ba44ad 771
c20049fd 772AE_IF_FEATURE_ENABLED([Werror], [WARN_CXXFLAGS="${WARN_CXXFLAGS} -Werror"])
887d26fa 773AE_IF_FEATURE_ENABLED([Werror], [WARN_CFLAGS="${WARN_CFLAGS} -Werror"])
02bb4fcc 774
28ba44ad 775# The test used in AX_APPEND_COMPILE_FLAGS, generated using AC_LANG_PROGRAM, is
65679347
SM
776# written in such a way that it triggers warnings with the following warning
777# flags. So they would always end up disabled if we put them there, because
778# the test program would not build.
02bb4fcc 779#
65679347 780# Enable them here unconditionally. They are supported by GCC >= 4.8 and by
c20049fd 781# Clang >= 3.3 (required by the project) and are only valid for C code.
65679347 782WARN_CFLAGS="${WARN_CFLAGS} -Wold-style-definition -Wstrict-prototypes"
02bb4fcc 783
28ba44ad 784# CFLAGS from AX_APPEND_COMPILE_FLAGS.
c20049fd 785AM_CXXFLAGS="${AM_CXXFLAGS} ${WARN_CXXFLAGS}"
28ba44ad 786AM_CFLAGS="${AM_CFLAGS} ${WARN_CFLAGS}"
02bb4fcc 787
0b0893d4 788# Done for AM_CXXFLAGS, AM_CFLAGS and AM_LDFLAGS.
c20049fd 789AC_SUBST(AM_CXXFLAGS)
02bb4fcc 790AC_SUBST(AM_CFLAGS)
0b0893d4 791AC_SUBST(AM_LDFLAGS)
02bb4fcc
SM
792
793# Set global CPPFLAGS in AM_CPPFLAGS
794AM_CPPFLAGS="-I\$(top_srcdir)/include -I\$(top_builddir)/src -I\$(top_srcdir)/src -include common/config.h"
795AC_SUBST(AM_CPPFLAGS)
796
797# Add glib to global link libs
798LIBS="$LIBS $GLIB_LIBS"
799
9ffc0257 800# Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
ec2c5e50 801# to rename babeltrace2.bin to babeltrace2 at install time.
bb30da78 802program_transform_name="s&babeltrace2\.bin&babeltrace2&;$program_transform_name"
33b34c43 803AC_SUBST(program_transform_name)
591999ca 804
ac65e355 805AC_CONFIG_FILES([
900ddc21
MJ
806 doc/api/Makefile
807 doc/api/libbabeltrace2/Doxyfile
808 doc/api/libbabeltrace2/Makefile
809 doc/bindings/Makefile
810 doc/bindings/python/Makefile
811 doc/contributing-images/Makefile
812 doc/Makefile
813 doc/man/asciidoc-attrs.conf
814 doc/man/Makefile
815 include/Makefile
816 Makefile
817 src/argpar/Makefile
818 src/autodisc/Makefile
819 src/babeltrace2-ctf-writer.pc
820 src/babeltrace2.pc
821 src/bindings/Makefile
822 src/bindings/python/bt2/bt2/version.py
823 src/bindings/python/bt2/Makefile
824 src/bindings/python/bt2/setup.py
825 src/bindings/python/Makefile
826 src/cli/Makefile
827 src/common/Makefile
01bf7a3a 828 src/cpp-common/Makefile
900ddc21
MJ
829 src/compat/Makefile
830 src/ctfser/Makefile
831 src/ctf-writer/Makefile
832 src/fd-cache/Makefile
833 src/lib/graph/Makefile
834 src/lib/graph/message/Makefile
835 src/lib/Makefile
836 src/lib/plugin/Makefile
837 src/lib/prio-heap/Makefile
838 src/lib/trace-ir/Makefile
839 src/logging/Makefile
840 src/Makefile
841 src/plugins/common/Makefile
842 src/plugins/common/muxing/Makefile
843 src/plugins/common/param-validation/Makefile
844 src/plugins/ctf/common/bfcr/Makefile
845 src/plugins/ctf/common/Makefile
846 src/plugins/ctf/common/metadata/Makefile
847 src/plugins/ctf/common/msg-iter/Makefile
848 src/plugins/ctf/fs-sink/Makefile
849 src/plugins/ctf/fs-src/Makefile
850 src/plugins/ctf/lttng-live/Makefile
851 src/plugins/ctf/Makefile
852 src/plugins/lttng-utils/debug-info/Makefile
853 src/plugins/lttng-utils/Makefile
854 src/plugins/Makefile
855 src/plugins/text/dmesg/Makefile
856 src/plugins/text/Makefile
857 src/plugins/text/pretty/Makefile
858 src/plugins/text/details/Makefile
859 src/plugins/utils/counter/Makefile
860 src/plugins/utils/dummy/Makefile
861 src/plugins/utils/Makefile
862 src/plugins/utils/muxer/Makefile
863 src/plugins/utils/trimmer/Makefile
864 src/py-common/Makefile
865 src/python-plugin-provider/Makefile
866 src/param-parse/Makefile
867 src/string-format/Makefile
868 tests/bitfield/Makefile
869 tests/ctf-writer/Makefile
870 tests/lib/Makefile
871 tests/lib/test-plugin-plugins/Makefile
872 tests/lib/conds/Makefile
484a3024 873 tests/lib/utils/Makefile
900ddc21
MJ
874 tests/Makefile
875 tests/param-validation/Makefile
876 tests/plugins/Makefile
877 tests/plugins/src.ctf.fs/Makefile
878 tests/plugins/src.ctf.fs/succeed/Makefile
879 tests/plugins/sink.ctf.fs/Makefile
880 tests/plugins/sink.ctf.fs/succeed/Makefile
881 tests/plugins/flt.lttng-utils.debug-info/Makefile
882 tests/plugins/flt.utils.muxer/Makefile
883 tests/plugins/flt.utils.muxer/succeed/Makefile
884 tests/plugins/flt.utils.trimmer/Makefile
885 tests/plugins/sink.text.pretty/Makefile
886 tests/utils/Makefile
887 tests/utils/tap/Makefile
ac65e355 888])
c41a7502 889
e46cbefe
MJ
890AC_CONFIG_FILES([tests/utils/env.sh],[chmod +x tests/utils/env.sh])
891
ac65e355 892AC_OUTPUT
1a0399f9
MJ
893
894#
895# Mini-report on what will be built.
896#
897
898PPRINT_INIT
899PPRINT_SET_INDENT(1)
900PPRINT_SET_TS(38)
901
902AS_ECHO
aaa8b698
PP
903
904AS_IF([test -n "bt_version_name"], [
900ddc21 905 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION \"bt_version_name\"$PPRINT_COLOR_RST")
aaa8b698 906], [
900ddc21 907 AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION")
aaa8b698
PP
908])
909
1a0399f9
MJ
910AS_ECHO
911
e97fe75e 912AS_IF([test -n "bt_version_description"], [
5aced3e6
MJ
913 AS_IF([test -n "$FOLD"], [
914 AS_ECHO("`AS_ECHO("bt_version_description") | $FOLD -s`")
900ddc21
MJ
915 ], [
916 AS_ECHO("bt_version_description")
917 ])
aaa8b698 918
900ddc21 919 AS_ECHO
aaa8b698
PP
920])
921
4266f2ad 922PPRINT_SUBTITLE([System])
1a0399f9
MJ
923
924# Target architecture we're building for.
925target_arch=$host_cpu
926[
927for f in $CFLAGS; do
900ddc21
MJ
928 if test $f = "-m32"; then
929 target_arch="32-bit"
930 elif test $f = "-m64"; then
931 target_arch="64-bit"
932 fi
1a0399f9
MJ
933done
934]
beb0fb75 935
4266f2ad 936PPRINT_PROP_STRING([Target architecture], $target_arch)
d1dab1d2 937
4266f2ad
PP
938AS_ECHO
939PPRINT_SUBTITLE([Python 3 language support])
419fff0b
PP
940test "x$have_python" = "xyes" && value=1 || value=0
941PPRINT_PROP_BOOL([Have Python interpreter], $value)
942test "x$have_python_dev" = "xyes" && value=1 || value=0
943PPRINT_PROP_BOOL([Have Python development libraries], $value)
55bb57e0 944test "x$enable_python_bindings" = "xyes" && value=1 || value=0
f75e50ab 945PPRINT_PROP_BOOL_CUSTOM([Python bindings], $value, [To enable, use --enable-python-bindings])
55bb57e0 946test "x$enable_python_plugins" = "xyes" && value=1 || value=0
f75e50ab 947PPRINT_PROP_BOOL_CUSTOM([Python plugin support], $value, [To enable, use --enable-python-plugins])
419fff0b
PP
948AS_IF([test "x$have_python" = "xyes"], [
949 PPRINT_PROP_STRING([Python interpreter path], [$PYTHON])
950])
951AS_IF([test "x$have_python_dev" = "xyes"], [
952 PPRINT_PROP_STRING([python-config path], [$PYTHON_CONFIG])
4266f2ad 953 PPRINT_PROP_STRING([Python include paths], [$PYTHON_INCLUDE])
0b9113bf 954 PPRINT_PROP_STRING([Python linker flags], [$PYTHON_LDFLAGS])
419fff0b 955])
887d26fa 956AE_IF_FEATURE_ENABLED([python-bindings], [
8c102541
SM
957 PPRINT_PROP_STRING([SWIG executable], [$SWIG])
958 PPRINT_PROP_STRING([SWIG library], [$SWIG_LIB])
4266f2ad 959])
55bb57e0 960
4266f2ad
PP
961AS_ECHO
962PPRINT_SUBTITLE([Plugins])
963PPRINT_PROP_BOOL(['ctf' plugin], 1)
9ffc0257 964test "x$enable_debug_info" = "xyes" && value=1 || value=0
f75e50ab 965PPRINT_PROP_BOOL_CUSTOM(['lttng-utils' plugin], $value, [To enable, use --enable-debug-info])
4266f2ad
PP
966PPRINT_PROP_BOOL(['text' plugin], 1)
967PPRINT_PROP_BOOL(['utils' plugin], 1)
968
969AS_ECHO
970PPRINT_SUBTITLE([Built-in features])
9ffc0257 971test "x$enable_built_in_plugins" = "xyes" && value=1 || value=0
f75e50ab 972PPRINT_PROP_BOOL_CUSTOM([Built-in plugins], $value, [To enable, use --enable-built-in-plugins])
9ffc0257 973test "x$enable_built_in_python_plugin_support" = "xyes" && value=1 || value=0
f75e50ab 974PPRINT_PROP_BOOL_CUSTOM([Built-in Python plugin support], $value, [To enable, use --enable-built-in-python-plugin-support])
6fbd4105 975
4266f2ad
PP
976AS_ECHO
977PPRINT_SUBTITLE([Documentation])
0659f3af
PP
978
979# man pages build enabled/disabled
980m4_pushdef([build_man_pages_msg], [Build and install man pages])
981
e0c79724
MJ
982AE_IF_FEATURE_ENABLED([man-pages], [
983 AE_IF_IN_GIT_REPO([
0659f3af
PP
984 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
985 ], [
986 AS_IF([test "x$have_asciidoc_xmlto" = "xyes"], [
987 PPRINT_PROP_BOOL([build_man_pages_msg], 1)
988 ], [
989 PPRINT_PROP_STRING([build_man_pages_msg],
990 [${PPRINT_COLOR_BLDGRN}yes (already built)],
991 $PPRINT_COLOR_SUBTITLE)
992 ])
993 ])
994], [
f75e50ab 995 PPRINT_PROP_BOOL_CUSTOM([build_man_pages_msg], 0, [To build man pages, use --enable-man-pages])
0659f3af
PP
996])
997
998m4_popdef([build_man_pages_msg])
999
4266f2ad 1000test "x$enable_api_doc" = "xyes" && value=1 || value=0
f75e50ab 1001PPRINT_PROP_BOOL_CUSTOM([HTML API documentation], $value, [To build documentation, use --enable-api-doc])
ba64dfcc
SM
1002test "x$enable_python_bindings_doc" = "xyes" && value=1 || value=0
1003PPRINT_PROP_BOOL_CUSTOM([Python bindings documentation], $value, [To build the Python bindings documentation, use --enable-python-bindings-doc])
1a0399f9 1004
4266f2ad
PP
1005AS_ECHO
1006PPRINT_SUBTITLE([Logging])
1007PPRINT_PROP_STRING([Minimal log level], $BABELTRACE_MINIMAL_LOG_LEVEL)
1008
464ebc31
PP
1009AS_ECHO
1010PPRINT_SUBTITLE([Special build modes])
f75e50ab
GB
1011PPRINT_PROP_BOOL_CUSTOM([Debug mode], $BABELTRACE_DEBUG_MODE, [To enable, set the BABELTRACE_DEBUG_MODE environment variable to 1])
1012PPRINT_PROP_BOOL_CUSTOM([Developer mode], $BABELTRACE_DEV_MODE, [To enable, set the BABELTRACE_DEV_MODE environment variable to 1])
464ebc31 1013
1a0399f9
MJ
1014report_bindir="`eval eval echo $bindir`"
1015report_libdir="`eval eval echo $libdir`"
4266f2ad 1016report_sysconfdif="`eval eval echo $sysconfdir`"
056632bf 1017report_pluginsdir="`eval eval eval echo $BABELTRACE_PLUGINS_DIR`"
b14c7bf1 1018report_pluginprovidersdir="`eval eval eval echo $BABELTRACE_PLUGIN_PROVIDERS_DIR`"
1a0399f9
MJ
1019
1020# Print the bindir and libdir this `make install' will install into.
1021AS_ECHO
1022PPRINT_SUBTITLE([Install directories])
1023PPRINT_PROP_STRING([Binaries], [$report_bindir])
1024PPRINT_PROP_STRING([Libraries], [$report_libdir])
056632bf 1025PPRINT_PROP_STRING([Plugins], [$report_pluginsdir])
b14c7bf1 1026PPRINT_PROP_STRING([Plugin providers], [$report_pluginprovidersdir])
4266f2ad 1027PPRINT_PROP_STRING([Configuration], [$report_sysconfdif])
900ddc21
MJ
1028
1029# vim: shiftwidth=2 softtabstop=2 expandtab
This page took 0.152466 seconds and 4 git commands to generate.