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