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