Port: 'struct tm' member count vary across platforms
[babeltrace.git] / configure.ac
... / ...
CommitLineData
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl Copyright (c) 2017 EfficiOS, Inc.
4dnl
5dnl Permission is hereby granted, free of charge, to any person obtaining a copy
6dnl of this software and associated documentation files (the "Software"), to deal
7dnl in the Software without restriction, including without limitation the rights
8dnl to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9dnl copies of the Software, and to permit persons to whom the Software is
10dnl furnished to do so, subject to the following conditions:
11dnl
12dnl The above copyright notice and this permission notice shall be included in
13dnl all copies or substantial portions of the Software.
14dnl
15dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18dnl AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20dnl OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21dnl SOFTWARE.
22
23## ##
24## Autoconf base setup ##
25## ##
26
27AC_PREREQ([2.50])
28
29m4_define([bt_version_major], [2])
30m4_define([bt_version_minor], [0])
31m4_define([bt_version_patch], [0])
32m4_define([bt_version_extra], [-pre1])
33m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_extra)
34
35AC_INIT([babeltrace], bt_version, [jeremie dot galarneau at efficios dot com], [], [https://efficios.com/babeltrace/])
36
37# Following the numbering scheme proposed by libtool for the library version
38# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
39AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_version_major[:]bt_version_minor[:]bt_version_patch)
40
41AC_CONFIG_HEADERS([include/config.h])
42AC_CONFIG_AUX_DIR([config])
43AC_CONFIG_MACRO_DIR([m4])
44AC_REQUIRE_AUX_FILE([tap-driver.sh])
45
46AC_DEFINE([BT_VERSION_MAJOR], bt_version_major, [Babeltrace library major version])
47AC_DEFINE([BT_VERSION_MINOR], bt_version_minor, [Babeltrace library minor version])
48AC_DEFINE([BT_VERSION_PATCH], bt_version_patch, [Babeltrace library patch version])
49AC_DEFINE([BT_VERSION_EXTRA], ["]bt_version_extra["], [Babeltrace library extra version])
50
51AC_CANONICAL_TARGET
52AC_CANONICAL_HOST
53
54
55## ##
56## Automake base setup ##
57## ##
58
59AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc])
60AM_MAINTAINER_MODE([enable])
61
62# Enable silent rules if available (Introduced in AM 1.11)
63m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
64
65
66## ##
67## OS specific defaults ##
68## ##
69
70MINGW32=no
71DEFAULT_ENABLE_DEBUG_INFO=yes
72LT_NO_UNDEFINED=""
73AS_CASE([$host_os],
74 [solaris*|darwin*],
75 [
76 DEFAULT_ENABLE_DEBUG_INFO=no
77 ],
78 [cygwin*],
79 [
80 DEFAULT_ENABLE_DEBUG_INFO=no
81 LT_NO_UNDEFINED="-no-undefined"
82 ],
83 [mingw*],
84 [
85 MINGW32=yes
86 DEFAULT_ENABLE_DEBUG_INFO=no
87 LT_NO_UNDEFINED="-no-undefined"
88 ]
89)
90
91AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
92AC_SUBST(LT_NO_UNDEFINED)
93
94
95## ##
96## C compiler checks ##
97## ##
98
99AC_USE_SYSTEM_EXTENSIONS
100AC_SYS_LARGEFILE
101
102# Choose the c compiler
103AC_PROG_CC
104
105# Make sure the c compiler supports C99
106AC_PROG_CC_C99([], [AC_MSG_ERROR([The compiler does not support C99])])
107
108# Make sure the c compiler supports __attributes__
109AX_C___ATTRIBUTE__
110AS_IF([test "x$ax_cv___attribute__" != "xyes"],
111 [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
112
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
119AC_TYPE_PID_T
120AC_TYPE_SIZE_T
121AC_TYPE_INT16_T
122AC_TYPE_INT32_T
123AC_TYPE_INT64_T
124AC_TYPE_INT8_T
125AC_TYPE_OFF_T
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])
132
133
134## ##
135## Header checks ##
136## ##
137
138AC_HEADER_STDBOOL
139AC_CHECK_HEADERS([ \
140 fcntl.h \
141 float.h \
142 ftw.h \
143 libintl.h \
144 limits.h \
145 malloc.h \
146 netdb.h \
147 netinet/in.h \
148 stddef.h \
149 sys/socket.h \
150 sys/time.h
151])
152
153
154## ##
155## Linker checks ##
156## ##
157
158# Check if the linker supports no-as-needed
159AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
160AC_SUBST([LD_NO_AS_NEEDED])
161
162# Initialize and configure libtool
163LT_INIT([win32-dll])
164
165
166## ##
167## Programs checks ##
168## ##
169
170AC_PROG_MAKE_SET
171AC_PROG_MKDIR_P
172AC_PROG_LN_S
173
174# set $IN_GIT_REPO if we're in the Git repository; the `bootstrap` file
175# is not distributed in tarballs
176AS_IF([test -f "$srcdir/bootstrap"], [in_git_repo=yes], [in_git_repo=no])
177AM_CONDITIONAL([IN_GIT_REPO], [test "x$in_git_repo" = "xyes"])
178
179# check for bison
180AC_PROG_YACC
181AX_PROG_BISON_VERSION([2.4], [have_bison=yes])
182
183AS_IF([test "x$have_bison" != "xyes"], [
184 AS_IF([test "x$in_git_repo" = "xyes"], [
185 AC_MSG_FAILURE([dnl
186Bison >= 2.4 is required when building from the Git repository. You can
187set the YACC variable to override automatic detection.
188 ])
189 ], [
190 AC_MSG_WARN([dnl
191Missing Bison >= 2.4. Note that the parser files are already built in
192this distribution tarball, so Bison is only needed if you intend to
193modify their sources. You can set the YACC variable to override automatic
194detection.
195 ])
196 ])
197])
198AM_CONDITIONAL([HAVE_BISON], [test "x$have_bison" = "xyes"])
199
200# check for flex
201AC_PROG_LEX
202AX_PROG_FLEX_VERSION([2.5.35], [have_flex=yes])
203
204AS_IF([test "x$have_flex" != "xyes"], [
205 AS_IF([test "x$in_git_repo" = "xyes"], [
206 AC_MSG_FAILURE([dnl
207Flex >= 2.5.35 is required when building from the Git repository. You can
208set the LEX variable to override automatic detection.
209 ])
210 ], [
211 AC_MSG_WARN([dnl
212Missing Flex >= 2.5.35. Note that the lexer files are already built in
213this distribution tarball, so Flex is only needed if you intend to
214modify their sources. You can set the LEX variable to override automatic
215detection.
216 ])
217 ])
218])
219AM_CONDITIONAL([HAVE_FLEX], [test "x$have_flex" = "xyes"])
220
221
222## ##
223## Library checks ##
224## ##
225
226# Check what libraries are required on this platform to link sockets programs.
227AX_LIB_SOCKET_NSL
228
229# Check for glib >= 2.22 with gmodule support
230AM_PATH_GLIB_2_0([2.22.0], [],
231 AC_MSG_ERROR([glib >= 2.22 is required - download it from ftp://ftp.gtk.org/pub/gtk]),
232 [gmodule-no-export]
233)
234
235# Checks for library functions.
236AC_FUNC_ALLOCA
237AC_FUNC_FORK
238AC_FUNC_MKTIME
239AC_FUNC_MMAP
240AC_FUNC_STRERROR_R
241AC_FUNC_STRNLEN
242AC_CHECK_FUNCS([ \
243 atexit \
244 dup2 \
245 ftruncate \
246 gethostbyname \
247 gethostname \
248 gettimeofday \
249 localtime_r \
250 memchr \
251 memset \
252 mkdir \
253 mkdtemp \
254 munmap \
255 rmdir \
256 setenv \
257 socket \
258 strchr \
259 strdup \
260 strerror \
261 strndup \
262 strnlen \
263 strrchr \
264 strstr \
265 strtoul \
266 strtoull \
267 tzset \
268 uname \
269])
270
271# AC_FUNC_MALLOC causes problems when cross-compiling.
272#AC_FUNC_MALLOC
273#AC_FUNC_REALLOC
274
275# First, check for uuid in system libs
276AH_TEMPLATE([BABELTRACE_HAVE_LIBUUID], [Define if you have libuuid support])
277AC_CHECK_FUNCS([uuid_generate],
278 [
279 AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
280 UUID_LIBS=""
281 ],
282 [
283 # Then, check if the pkg-config module is available, otherwise explicitly check
284 # for libuuid, or uuid support in the C-library.
285 PKG_CHECK_MODULES([UUID], [uuid],
286 [
287 AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
288 dnl PKG_CHECK_MODULES defines UUID_LIBS
289 ],
290 [
291 AC_MSG_WARN([pkg-config was unable to find a valid .pc for libuuid. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
292 AC_MSG_WARN([Finding libuuid without pkg-config.])
293 AC_CHECK_LIB([uuid], [uuid_generate],
294 [
295 AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
296 UUID_LIBS="-luuid"
297 ],
298 [
299 # libuuid not found, check for uuid_create in libc.
300 AC_CHECK_LIB([c], [uuid_create],
301 [
302 AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
303 UUID_LIBS="-lc"
304 ],
305 [
306 # for MinGW32 we have our own internal implementation of uuid using Windows functions.
307 AS_IF([test "x$MINGW32" = xno],
308 [AC_MSG_FAILURE([Cannot find libuuid uuid_generate nor libc uuid_create. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])]
309 )
310 ]
311 )
312 ]
313 )
314 ]
315 )
316 ]
317)
318AC_SUBST(UUID_LIBS)
319
320# Check for fmemopen
321AC_CHECK_LIB([c], [fmemopen],
322 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_FMEMOPEN], 1, [Has fmemopen support.])]
323)
324
325# Check for open_memstream
326AC_CHECK_LIB([c], [open_memstream],
327 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_OPEN_MEMSTREAM], 1, [Has open_memstream support.])]
328)
329
330# Check for posix_fallocate
331AC_CHECK_LIB([c], [posix_fallocate],
332 [AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_POSIX_FALLOCATE], 1, [Has posix_fallocate support.])]
333)
334
335# Check libpopt
336PKG_CHECK_MODULES([POPT], [popt],
337 [
338 dnl PKG_CHECK_MODULES defines POPT_LIBS
339 ],
340 [
341 AC_MSG_WARN([pkg-config was unable to find a valid .pc for libpopt. Set PKG_CONFIG_PATH to specify the pkgconfig configuration file location])
342 AC_MSG_WARN([Finding libpopt without pkg-config.])
343 AC_CHECK_LIB([popt],
344 [poptGetContext],
345 [POPT_LIBS="-lpopt"],
346 [
347 AC_MSG_FAILURE([Cannot find libpopt. Either set PKG_CONFIG_PATH to the configuration file location or use LDFLAGS=-Ldir to specify the library location])
348 ]
349 )
350 ]
351)
352AC_SUBST(POPT_LIBS)
353
354
355## ##
356## User variables ##
357## ##
358
359AC_ARG_VAR([PYTHON_INCLUDE], [Include flags for Python, bypassing python-config])
360AC_ARG_VAR([PYTHON_LIBS], [Library flags for Python, bypassing python-config])
361AC_ARG_VAR([PYTHON_CONFIG], [Path to python-config])
362
363# PLUGINSDIR: Plugins directory
364AC_ARG_VAR([PLUGINSDIR], [built-in plugins install directory [LIBDIR/babeltrace/plugins]])
365AS_IF([test "x$PLUGINSDIR" = x], [PLUGINSDIR='$(libdir)/babeltrace/plugins'])
366
367# BABELTRACE_MINIMAL_LOG_LEVEL:
368AC_ARG_VAR([BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level for Babeltrace program, library, and plugins (VERBOSE, DEBUG, INFO, WARN, ERROR (default), FATAL, or NONE)])
369AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = x], [BABELTRACE_MINIMAL_LOG_LEVEL="VERBOSE"])
370AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "VERBOSE" && \
371 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && \
372 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO" && \
373 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "WARN" && \
374 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "ERROR" && \
375 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "FATAL" && \
376 test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "NONE"],
377 [AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use VERBOSE, DEBUG, INFO, WARN, ERROR, FATAL, or NONE.])]
378)
379AC_DEFINE_UNQUOTED([BT_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
380
381
382## ##
383## Optionnal features selection ##
384## ##
385
386# Python bindings
387# Disabled by default
388AC_ARG_ENABLE([python-bindings],
389 [AC_HELP_STRING([--enable-python-bindings], [build the Python bindings])],
390 [], dnl AC_ARG_ENABLE will fill enable_python_bindings with the user choice
391 [enable_python_bindings=no]
392)
393
394# Python bindings documentation
395# Disabled by default
396AC_ARG_ENABLE([python-bindings-doc],
397 [AC_HELP_STRING([--enable-python-bindings-doc], [build the Python bindings documentation])],
398 [], dnl AC_ARG_ENABLE will fill enable_python_bindings_doc with the user choice
399 [enable_python_bindings_doc=no]
400)
401
402# Python bindings tests
403# Disabled by default
404AC_ARG_ENABLE([python-bindings-tests],
405 [AC_HELP_STRING([--enable-python-bindings-tests], [run the Python bindings tests])],
406 [], dnl AC_ARG_ENABLE will fill enable_python_bindings_tests with the user choice
407 [enable_python_bindings_tests=no]
408)
409
410# Python plugins
411# Disabled by default
412AC_ARG_ENABLE([python-plugins],
413 [AC_HELP_STRING([--enable-python-plugins], [enable the Python plugins support for the library and converter])],
414 [], dnl AC_ARG_ENABLE will fill enable_python_plugins with the user choice
415 [enable_python_plugins=no]
416)
417
418# Debug info
419# Enabled by default, except on some platforms
420AC_ARG_ENABLE([debug-info],
421 [AC_HELP_STRING([--disable-debug-info], [disable the debug info support (default on macOS, Solaris and Windows)])],
422 [], dnl AC_ARG_ENABLE will fill enable_debug_info with the user choice
423 [enable_debug_info="$DEFAULT_ENABLE_DEBUG_INFO"]
424)
425
426# API documentation
427# Disabled by default
428AC_ARG_ENABLE([api-doc],
429 [AC_HELP_STRING([--enable-api-doc], [build the HTML API documentation])],
430 [enable_api_doc=$enableval],
431 [enable_api_doc=no]
432)
433
434# Built-in plugins
435# Disabled by default
436AC_ARG_ENABLE([built-in-plugins],
437 [AC_HELP_STRING([--enable-built-in-plugins], [Statically-link in-tree plug-ins into the babeltrace binary])],
438 [], dnl AC_ARG_ENABLE will fill enable_built_in_plugins with the user choice
439 [enable_built_in_plugins=no]
440)
441
442# Built-in python plugin support
443# Disabled by default
444AC_ARG_ENABLE([built-in-python-plugin-support],
445 [AC_HELP_STRING([--enable-built-in-python-plugin-support], [Statically-link Python plugin support into the babeltrace library])],
446 [], dnl AC_ARG_ENABLE will fill enable_built_in_python_plugin_support with the user choice
447 [enable_built_in_python_plugin_support=no]
448)
449
450
451# Set automake variables for optionnal feature conditionnals in Makefile.am
452AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS], [test "x$enable_python_bindings" = xyes])
453AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_DOC], [test "x$enable_python_bindings_doc" = xyes])
454AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS_TESTS], [test "x$enable_python_bindings_tests" = xyes])
455AM_CONDITIONAL([ENABLE_PYTHON_PLUGINS], [test "x$enable_python_plugins" = xyes])
456AM_CONDITIONAL([ENABLE_DEBUG_INFO], [test "x$enable_debug_info" = xyes])
457AM_CONDITIONAL([ENABLE_API_DOC], [test "x$enable_api_doc" = xyes])
458AM_CONDITIONAL([ENABLE_BUILT_IN_PLUGINS], [test "x$enable_built_in_plugins" = xyes])
459AM_CONDITIONAL([ENABLE_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [test "x$enable_built_in_python_plugin_support" = xyes])
460
461
462# Set defines for optionnal features conditionnals in the source code
463
464## jgalar: still used?
465AS_IF([test "x$enable_python_plugins" = xyes],
466 [AC_DEFINE([PYTHON_PLUGINS], [1], [Python plugin support.])]
467)
468
469AS_IF([test "x$enable_debug_info" = xyes],
470 [AC_DEFINE([ENABLE_DEBUG_INFO], [1], [Define to 1 if you enable the 'debug info' feature])]
471)
472
473AS_IF([test "x$enable_built_in_plugins" = xyes],
474 [AC_DEFINE([BT_BUILT_IN_PLUGINS], [1], [Define to 1 to register plug-in attributes in static executable sections])]
475)
476
477AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
478 [AC_DEFINE([BT_BUILT_IN_PYTHON_PLUGIN_SUPPORT], [1], [Define to 1 to register plug-in attributes in static executable sections])]
479)
480
481
482# Check for conflicting optionnal features user choices
483
484AS_IF([test "x$enable_python_bindings" = xno],
485 [
486 AS_IF([test "x$enable_python_bindings_doc" = xyes], [AC_MSG_ERROR([--enable-python-bindings-doc was specified without --enable-python-bindings])])
487 AS_IF([test "x$enable_python_bindings_tests" = xyes], AC_MSG_ERROR([--enable-python-bindings-tests was specified without --enable-python-bindings]))
488 ]
489)
490
491AS_IF([test "x$enable_built_in_plugins" = xyes],
492 [
493 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
494 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle plug-ins in the babeltrace executable)])
495 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle plug-ins in the babeltrace executable)])
496 ]
497)
498
499AS_IF([test "x$enable_built_in_python_plugin_support" = xyes],
500 [
501 AS_IF([test "x$enable_python_plugins" = xno], [AC_MSG_ERROR([--enable-python-plugins must be used to bundle Python plugin support in the babeltrace executable])])
502 # Built-in plug-ins are only available when the --disable-shared --enable-static options are used.
503 AS_IF([test "x$enable_static" != xyes], [AC_MSG_ERROR(--enable-static must be used to bundle Python plugin support in the babeltrace executable)])
504 AS_IF([test "x$enable_shared" = xyes], [AC_MSG_ERROR(--disable-shared must be used to bundle Python plugin support in the babeltrace executable)])
505 ]
506)
507
508
509# Check for optionnal features dependencies
510
511AS_IF([test "x$enable_python_bindings" = xyes],
512 [AX_PKG_SWIG(2.0.0, [], [AC_MSG_ERROR([SWIG 2.0.0 or newer is required to build the python bindings])])]
513)
514
515AS_IF([test "x$enable_python_bindings" = xyes || test "x$enable_python_plugins" = xyes],
516 [
517 AM_PATH_PYTHON([3.0], [], [AC_MSG_ERROR(Python 3 is not available or is not the default Python interpreter on your system. See the README file to learn how to override your distribution's default Python interpreter.)])
518
519 AM_PATH_PYTHON_MODULES([PYTHON])
520 # pythondir is the path where extra modules are to be installed
521 pythondir=$PYTHON_PREFIX/$PYTHON_MODULES_PATH
522 # pyexecdir is the path that contains shared objects used by the extra modules
523 pyexecdir=$PYTHON_EXEC_PREFIX/$PYTHON_MODULES_PATH
524 AS_IF([test -z "$PYTHON_INCLUDE"], [
525 AS_IF([test -z "$PYTHON_CONFIG"], [
526 AC_PATH_PROGS([PYTHON_CONFIG],
527 [python$PYTHON_VERSION-config python-config],
528 [no],
529 [`dirname $PYTHON`])
530 AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON. Is python-dev installed?])])
531 ])
532 AC_MSG_CHECKING([Python include flags])
533 PYTHON_INCLUDE=`$PYTHON_CONFIG --includes`
534 AC_MSG_RESULT([$PYTHON_INCLUDE])
535 ])
536 AS_IF([test -z "$PYTHON_LIBS"], [
537 AS_IF([test -z "$PYTHON_CONFIG"], [
538 AC_PATH_PROGS([PYTHON_CONFIG],
539 [python$PYTHON_VERSION-config python-config],
540 [no],
541 [`dirname $PYTHON`])
542 AS_IF([test "$PYTHON_CONFIG" = no], [AC_MSG_ERROR([cannot find python-config for $PYTHON. Is python-dev installed?])])
543 ])
544 AC_MSG_CHECKING([Python library flags])
545 PYTHON_LIBS=`$PYTHON_CONFIG --libs`
546 AC_MSG_RESULT([$PYTHON_LIBS])
547 ])
548 ]
549)
550
551AS_IF([test "x$enable_python_bindings_doc" = xyes],
552 [
553 AM_CHECK_PYTHON_SPHINX([PYTHON])
554 AS_IF([test "x$PYTHON_SPHINX_EXISTS" = xno],
555 [AC_MSG_ERROR([The Sphinx package for Python 3 is required to build the Python bindings documentation])]
556 )
557 ]
558)
559
560AS_IF([test "x$enable_python_bindings_tests" = xyes],
561 [
562 AM_CHECK_PYTHON_TAPPY([PYTHON])
563 AS_IF([test "x$PYTHON_TAPPY_EXISTS" = xno],
564 [AC_MSG_ERROR([You need the tappy Python project to test the Python bindings (see <https://github.com/python-tap/tappy>)])]
565 )
566 ]
567)
568
569AS_IF([test "x$enable_debug_info" = xyes],
570 [
571 # Check if libelf and libdw are present
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 BT_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 ]
576)
577
578AS_IF([test "x$enable_api_doc" = "xyes"],
579 [
580 DX_DOXYGEN_FEATURE(ON)
581 DX_DOT_FEATURE(OFF)
582 DX_HTML_FEATURE(ON)
583 DX_CHM_FEATURE(OFF)
584 DX_CHI_FEATURE(OFF)
585 DX_MAN_FEATURE(OFF)
586 DX_RTF_FEATURE(OFF)
587 DX_XML_FEATURE(OFF)
588 DX_PDF_FEATURE(OFF)
589 DX_PS_FEATURE(OFF)
590 DX_INIT_DOXYGEN([Babeltrace], [$(srcdir)/Doxyfile], [output])
591 AS_IF([test -z "$DX_DOXYGEN"],
592 [AC_MSG_ERROR([You need doxygen to enable the API documentation])]
593 )
594 ]
595)
596
597
598# Set global CFLAGS in AM_CFLAGS
599AM_CFLAGS="-Wall -Wformat $PTHREAD_CFLAGS $GLIB_CFLAGS"
600AC_SUBST(AM_CFLAGS)
601
602# Set global CPPFLAGS in AM_CPPFLAGS
603AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -include config.h"
604AC_SUBST(AM_CPPFLAGS)
605
606# Add glib to global link libs
607LIBS="$LIBS $GLIB_LIBS"
608
609# Abuse autoconf's AC_ARG_PROGRAM output variable 'program_transform_name'
610# to rename babeltrace.bin to babeltrace at install time.
611program_transform_name="s&babeltrace\.bin&babeltrace&;s&babeltrace-log\.bin&babeltrace-log&;$program_transform_name"
612AC_SUBST(program_transform_name)
613
614
615 #TODO: removed, work in progress
616 #bindings/python/Makefile
617 #bindings/python/babeltrace/Makefile
618 #bindings/python/bt2/Makefile
619 #bindings/python/bt2/__init__.py
620AC_CONFIG_FILES([
621 Makefile
622 common/Makefile
623 compat/Makefile
624 cli/Makefile
625 doc/Makefile
626 doc/api/Makefile
627 doc/api/Doxyfile
628 doc/bindings/Makefile
629 doc/bindings/python/Makefile
630 doc/images/Makefile
631 lib/Makefile
632 lib/prio_heap/Makefile
633 lib/plugin/Makefile
634 lib/graph/Makefile
635 lib/graph/notification/Makefile
636 lib/ctf-ir/Makefile
637 lib/ctf-writer/Makefile
638 include/Makefile
639 logging/Makefile
640 bindings/Makefile
641 tests/Makefile
642 tests/cli/Makefile
643 tests/cli/intersection/Makefile
644 tests/lib/Makefile
645 tests/lib/writer/Makefile
646 tests/lib/test-plugin-plugins/Makefile
647 tests/utils/Makefile
648 tests/utils/tap/Makefile
649 tests/bindings/Makefile
650 tests/bindings/python/Makefile
651 tests/bindings/python/bt2/Makefile
652 tests/plugins/Makefile
653 extras/Makefile
654 extras/valgrind/Makefile
655 plugins/Makefile
656 plugins/ctf/Makefile
657 plugins/ctf/common/Makefile
658 plugins/ctf/common/btr/Makefile
659 plugins/ctf/common/metadata/Makefile
660 plugins/ctf/common/notif-iter/Makefile
661 plugins/ctf/fs-src/Makefile
662 plugins/ctf/fs-sink/Makefile
663 plugins/ctf/lttng-live/Makefile
664 plugins/text/Makefile
665 plugins/text/dmesg/Makefile
666 plugins/text/pretty/Makefile
667 plugins/utils/Makefile
668 plugins/utils/dummy/Makefile
669 plugins/utils/counter/Makefile
670 plugins/utils/trimmer/Makefile
671 plugins/utils/muxer/Makefile
672 python-plugin-provider/Makefile
673 plugins/libctfcopytrace/Makefile
674 plugins/lttng-utils/Makefile
675 babeltrace.pc
676 babeltrace-ctf.pc
677])
678
679AC_CONFIG_FILES([tests/cli/intersection/bt_python_helper.py])
680AC_CONFIG_FILES([tests/cli/intersection/test_intersection], [chmod +x tests/cli/intersection/test_intersection])
681AC_CONFIG_FILES([tests/cli/test_convert_args], [chmod +x tests/cli/test_convert_args])
682AC_CONFIG_FILES([tests/cli/test_debug_info], [chmod +x tests/cli/test_debug_info])
683AC_CONFIG_FILES([tests/cli/test_packet_seq_num], [chmod +x tests/cli/test_packet_seq_num])
684AC_CONFIG_FILES([tests/cli/test_trace_copy], [chmod +x tests/cli/test_trace_copy])
685AC_CONFIG_FILES([tests/cli/test_trace_read], [chmod +x tests/cli/test_trace_read])
686AC_CONFIG_FILES([tests/cli/test_trimmer], [chmod +x tests/cli/test_trimmer])
687AC_CONFIG_FILES([tests/lib/test_bin_info_complete], [chmod +x tests/lib/test_bin_info_complete])
688AC_CONFIG_FILES([tests/lib/test_ctf_writer_complete], [chmod +x tests/lib/test_ctf_writer_complete])
689AC_CONFIG_FILES([tests/lib/test_dwarf_complete], [chmod +x tests/lib/test_dwarf_complete])
690AC_CONFIG_FILES([tests/lib/test_plugin_complete], [chmod +x tests/lib/test_plugin_complete])
691AC_CONFIG_FILES([tests/lib/writer/bt_python_helper.py])
692AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_empty_packet.py])
693AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_no_packet_context.py])
694AC_CONFIG_FILES([tests/plugins/test-utils-muxer-complete], [chmod +x tests/plugins/test-utils-muxer-complete])
695
696AS_IF([test "x$enable_python" = xyes],
697 [AC_CONFIG_FILES([tests/bindings/python/bt2/testall.sh], [chmod +x tests/bindings/python/bt2/testall.sh])]
698)
699
700AC_OUTPUT
701
702#
703# Mini-report on what will be built.
704#
705
706PPRINT_INIT
707PPRINT_SET_INDENT(1)
708PPRINT_SET_TS(38)
709
710AS_ECHO
711AS_ECHO("${PPRINT_COLOR_BLDBLU}Babeltrace $PACKAGE_VERSION$PPRINT_COLOR_RST")
712AS_ECHO
713
714PPRINT_SUBTITLE([System])
715
716# Target architecture we're building for.
717target_arch=$host_cpu
718[
719for f in $CFLAGS; do
720 if test $f = "-m32"; then
721 target_arch="32-bit"
722 elif test $f = "-m64"; then
723 target_arch="64-bit"
724 fi
725done
726]
727
728PPRINT_PROP_STRING([Target architecture], $target_arch)
729
730AS_ECHO
731PPRINT_SUBTITLE([Python 3 language support])
732test "x$enable_python_bindings" = "xyes" && value=1 || value=0
733PPRINT_PROP_BOOL([Python bindings], $value)
734test "x$enable_python_plugins" = "xyes" && value=1 || value=0
735PPRINT_PROP_BOOL([Python plugin support], $value)
736AS_IF([test "x$enable_python_bindings" = "xyes" || test "x$enable_python_plugins" = "xyes"], [
737 PPRINT_PROP_STRING([Python include paths], [$PYTHON_INCLUDE])
738 PPRINT_PROP_STRING([Python libraries], [$PYTHON_LIBS])
739])
740
741AS_ECHO
742PPRINT_SUBTITLE([Plugins])
743PPRINT_PROP_BOOL(['ctf' plugin], 1)
744test "x$enable_debug_info" = "xyes" && value=1 || value=0
745PPRINT_PROP_BOOL(['lttng-utils' plugin], $value)
746PPRINT_PROP_BOOL(['text' plugin], 1)
747PPRINT_PROP_BOOL(['utils' plugin], 1)
748
749AS_ECHO
750PPRINT_SUBTITLE([Built-in features])
751test "x$enable_built_in_plugins" = "xyes" && value=1 || value=0
752PPRINT_PROP_BOOL([Built-in plugins], $value)
753test "x$enable_built_in_python_plugin_support" = "xyes" && value=1 || value=0
754PPRINT_PROP_BOOL([Built-in Python plugin support], $value)
755
756AS_ECHO
757PPRINT_SUBTITLE([Documentation])
758test "x$enable_api_doc" = "xyes" && value=1 || value=0
759PPRINT_PROP_BOOL([HTML API documentation], $value)
760test "x$enable_python_bindings_doc" = "xyes" && value=1 || value=0
761PPRINT_PROP_BOOL([Python bindings documentation], $value)
762
763AS_ECHO
764PPRINT_SUBTITLE([Logging])
765PPRINT_PROP_STRING([Minimal log level], $BABELTRACE_MINIMAL_LOG_LEVEL)
766
767AS_ECHO
768PPRINT_SUBTITLE([Testing])
769test "x$enable_python_bindings_tests" = "xyes" && value=1 || value=0
770PPRINT_PROP_BOOL([Python bindings tests], $value)
771
772report_bindir="`eval eval echo $bindir`"
773report_libdir="`eval eval echo $libdir`"
774report_sysconfdif="`eval eval echo $sysconfdir`"
775
776# Print the bindir and libdir this `make install' will install into.
777AS_ECHO
778PPRINT_SUBTITLE([Install directories])
779PPRINT_PROP_STRING([Binaries], [$report_bindir])
780PPRINT_PROP_STRING([Libraries], [$report_libdir])
781PPRINT_PROP_STRING([Plugins], [$report_libdir/babeltrace/plugins])
782PPRINT_PROP_STRING([Configuration], [$report_sysconfdif])
This page took 0.024746 seconds and 4 git commands to generate.