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