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