Cleanup: uuid library detection
[babeltrace.git] / configure.ac
index 68efa882e5d10891818b595e6240181b6feeb849..a3d66c90bea81eee47f9b8cf9a8e8770c5036873 100644 (file)
@@ -2,7 +2,7 @@ AC_PREREQ([2.50])
 m4_define([bt_version_major], [2])
 m4_define([bt_version_minor], [0])
 m4_define([bt_version_patch], [0])
-m4_define([bt_version_extra], [-pre])
+m4_define([bt_version_extra], [-pre1])
 m4_define([bt_version], bt_version_major[.]bt_version_minor[.]bt_version_patch[]bt_version_extra)
 AC_INIT([babeltrace],bt_version,[jeremie dot galarneau at efficios dot com])
 
@@ -10,7 +10,7 @@ AC_INIT([babeltrace],bt_version,[jeremie dot galarneau at efficios dot com])
 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
 AC_SUBST([BABELTRACE_LIBRARY_VERSION], bt_version_major[:]bt_version_minor[:]bt_version_patch)
 
-AC_CONFIG_HEADERS([config.h])
+AC_CONFIG_HEADERS([include/config.h])
 AC_CONFIG_AUX_DIR([config])
 AC_CONFIG_MACRO_DIR([m4])
 
@@ -22,7 +22,7 @@ AC_DEFINE([BT_VERSION_EXTRA], ["]bt_version_extra["], [Babeltrace library extra
 AC_CANONICAL_TARGET
 AC_CANONICAL_HOST
 
-AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar])
+AM_INIT_AUTOMAKE([foreign dist-bzip2 no-dist-gzip tar-ustar nostdinc])
 AM_MAINTAINER_MODE([enable])
 
 # Enable silent rules if available (Introduced in AM 1.11)
@@ -38,7 +38,7 @@ AC_PROG_CC_STDC
 
 # Checks for programs.
 AC_PROG_MAKE_SET
-LT_INIT
+LT_INIT(win32-dll)
 AC_PROG_YACC
 AC_PROG_LEX
 AC_PROG_MKDIR_P
@@ -50,9 +50,6 @@ AS_IF([test "x$ax_cv___attribute__" = "xyes"],
        [AC_MSG_ERROR([The compiler does not support __attribute__ extensions])])
 
 AX_PTHREAD(,[AC_MSG_ERROR([Could not configure pthreads support])])
-LIBS="$PTHREAD_LIBS $LIBS"
-CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-CC="$PTHREAD_CC"
 
 # Check linker option
 AX_APPEND_LINK_FLAGS([-Wl,--no-as-needed], [LD_NO_AS_NEEDED])
@@ -62,6 +59,7 @@ AC_HEADER_STDBOOL
 AC_CHECK_HEADERS([ \
        fcntl.h \
        float.h \
+       ftw.h \
        libintl.h \
        limits.h \
        malloc.h \
@@ -94,7 +92,7 @@ if test ! -f "$srcdir/plugins/ctf/common/metadata/lexer.c"; then
 fi
 
 
-AM_PATH_GLIB_2_0(2.22.0, ,AC_MSG_ERROR([glib is required in order to compile BabelTrace - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule)
+AM_PATH_GLIB_2_0(2.22.0, ,AC_MSG_ERROR([glib is required in order to compile BabelTrace - download it from ftp://ftp.gtk.org/pub/gtk]) , gmodule-no-export)
 
 # Check what libraries are required on this platform to link sockets programs.
 AX_LIB_SOCKET_NSL
@@ -117,14 +115,11 @@ AC_TYPE_UINT8_T
 # Checks for library functions.
 AC_FUNC_ALLOCA
 AC_FUNC_FORK
-AC_FUNC_MALLOC
 AC_FUNC_MKTIME
 AC_FUNC_MMAP
-AC_FUNC_REALLOC
 AC_FUNC_STRERROR_R
 AC_CHECK_FUNCS([ \
        atexit \
-       dirfd \
        dup2 \
        ftruncate \
        gethostbyname \
@@ -151,64 +146,78 @@ AC_CHECK_FUNCS([ \
        uname \
 ])
 
+# AC_FUNC_MALLOC causes problems when cross-compiling.
+#AC_FUNC_MALLOC
+#AC_FUNC_REALLOC
+
 MINGW32=no
 DEFAULT_ENABLE_DEBUG_INFO=yes
+LT_NO_UNDEFINED=""
 AS_CASE([$host_os],
   [solaris*|darwin*],
     [
        DEFAULT_ENABLE_DEBUG_INFO=no
     ],
+  [cygwin*],
+    [
+       DEFAULT_ENABLE_DEBUG_INFO=no
+       LT_NO_UNDEFINED="-no-undefined"
+    ],
   [mingw*],
     [
        MINGW32=yes
        DEFAULT_ENABLE_DEBUG_INFO=no
+       LT_NO_UNDEFINED="-no-undefined"
     ]
 )
 
 AM_CONDITIONAL([BABELTRACE_BUILD_WITH_MINGW], [test "x$MINGW32" = "xyes"])
+AC_SUBST(LT_NO_UNDEFINED)
 
-# Check for uuid in system libs
+# First, check for uuid in system libs
+AH_TEMPLATE([BABELTRACE_HAVE_LIBUUID], [Define if you have libuuid support])
 AC_CHECK_FUNCS([uuid_generate],
-[
-  AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
-  link_with_libuuid=no
-],
-[
-  # First, check the pkg-config module is available, otherwise explicitly check
-  # for libuuid, or uuid support in the C-library.
-  PKG_CHECK_MODULES([UUID], [uuid],
   [
-    LIBS="${UUID_LIBS} ${LIBS}"
-    CFLAGS="${CFLAGS} ${UUID_CFLAGS}"
-    AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
-    link_with_libuuid=yes
+    AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+    UUID_LIBS=""
   ],
   [
-    # Check for libuuid
-    AC_CHECK_LIB([uuid], [uuid_generate],
-    [
-      AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.])
-      link_with_libuuid=yes
-    ],
-    [
-      # libuuid not found, check for uuid_create in libc.
-      AC_CHECK_LIB([c], [uuid_create],
+    # Then, check if the pkg-config module is available, otherwise explicitly check
+    # for libuuid, or uuid support in the C-library.
+    PKG_CHECK_MODULES([UUID], [uuid],
       [
-        AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
-        link_with_libc_uuid=yes
+        AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+        dnl PKG_CHECK_MODULES defines UUID_LIBS
       ],
       [
-        # for MinGW32 we have our own internal implementation of uuid using Windows functions.
-        if test "x$MINGW32" = xno; then
-          AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify their location.])
-        fi
-      ])
-    ])
-  ])
-])
-
-AM_CONDITIONAL([BABELTRACE_BUILD_WITH_LIBUUID], [test "x$link_with_libuuid" = "xyes"])
-AM_CONDITIONAL([BABELTRACE_BUILD_WITH_LIBC_UUID], [test "x$link_with_libc_uuid" = "xyes"])
+        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])
+        AC_MSG_WARN([Finding libuuid without pkg-config.])
+        AC_CHECK_LIB([uuid], [uuid_generate],
+          [
+            AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+            UUID_LIBS="-luuid"
+          ],
+          [
+            # libuuid not found, check for uuid_create in libc.
+            AC_CHECK_LIB([c], [uuid_create],
+              [
+                AC_DEFINE([BABELTRACE_HAVE_LIBUUID], [1])
+                UUID_LIBS="-lc"
+              ],
+              [
+                # for MinGW32 we have our own internal implementation of uuid using Windows functions.
+                if test "x$MINGW32" = xno; then
+                  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])
+               fi
+              ]
+            )
+          ]
+        )
+      ]
+    )
+  ]
+)
+AC_SUBST(UUID_LIBS)
 
 # Check for fmemopen
 AC_CHECK_LIB([c], [fmemopen],
@@ -231,16 +240,24 @@ AC_CHECK_LIB([c], [posix_fallocate],
 ]
 )
 
-# Check for faccessat
-AC_CHECK_LIB([c], [faccessat],
-[
-       AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_FACCESSAT], 1, [Has faccessat support.])
-]
-)
-
-AC_CHECK_LIB([popt], [poptGetContext], [],
-        [AC_MSG_ERROR([Cannot find popt.])]
+# Check libpopt
+PKG_CHECK_MODULES([POPT], [popt],
+  [
+    dnl PKG_CHECK_MODULES defines POPT_LIBS
+  ],
+  [
+    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])
+    AC_MSG_WARN([Finding libpopt without pkg-config.])
+    AC_CHECK_LIB([popt],
+      [poptGetContext],
+      [POPT_LIBS="-lpopt"],
+      [
+        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])
+      ]
+    )
+  ]
 )
+AC_SUBST(POPT_LIBS)
 
 # Plugins
 AC_ARG_VAR([PLUGINSDIR], [built-in plugins install directory [LIBDIR/babeltrace/plugins]])
@@ -403,22 +420,23 @@ AS_IF([test "x$BUILT_IN_PYTHON_PLUGIN_SUPPORT" != x], [
 ])
 AM_CONDITIONAL([BUILT_IN_PYTHON_PLUGIN_SUPPORT], [test "x$built_in_python_plugin_support" = "xyes"])
 
-PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= 2.0.0])
+PKG_CHECK_MODULES(GMODULE, [gmodule-no-export-2.0 >= 2.0.0])
 
 # Logging
 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)])
-AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = "x"], [BABELTRACE_MINIMAL_LOG_LEVEL=DEBUG])
+AS_IF([test "x$BABELTRACE_MINIMAL_LOG_LEVEL" = "x"], [BABELTRACE_MINIMAL_LOG_LEVEL=VERBOSE])
 AS_IF([test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "VERBOSE" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "DEBUG" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "INFO" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "WARN" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "ERROR" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "FATAL" && test "$BABELTRACE_MINIMAL_LOG_LEVEL" != "NONE"], [
        AC_MSG_ERROR([Invalid BABELTRACE_MINIMAL_LOG_LEVEL value ($BABELTRACE_MINIMAL_LOG_LEVEL): use VERBOSE, DEBUG, INFO, WARN, ERROR, FATAL, or NONE.])
 ])
 AC_DEFINE_UNQUOTED([BT_LOG_LEVEL], [BT_LOG_$BABELTRACE_MINIMAL_LOG_LEVEL], [Minimal log level])
 
-LIBS="$LIBS $GMODULE_LIBS"
-PACKAGE_CFLAGS="$GMODULE_CFLAGS -Wall -Wformat"
-AC_SUBST(PACKAGE_CFLAGS)
+AM_CFLAGS="-Wall -Wformat $PTHREAD_CFLAGS $GLIB_CFLAGS"
+AC_SUBST(AM_CFLAGS)
+
+AM_CPPFLAGS="-I\$(top_builddir)/include -I\$(top_srcdir)/include -include config.h"
+AC_SUBST(AM_CPPFLAGS)
 
-DEFAULT_INCLUDES="-I\$(top_srcdir) -I\$(top_builddir) -I\$(top_builddir)/include -include config.h"
-AC_SUBST(DEFAULT_INCLUDES)
+LIBS="$GLIB_LIBS"
 
 babeltraceincludedir="${includedir}/babeltrace"
 AC_SUBST(babeltraceincludedir)
@@ -438,7 +456,7 @@ AC_SUBST(babeltracepluginincludedir)
 babeltracegraphincludedir="${includedir}/babeltrace/graph"
 AC_SUBST(babeltracegraphincludedir)
 
-program_transform_name="s&babeltrace\.bin&babeltrace&;$program_transform_name"
+program_transform_name="s&babeltrace\.bin&babeltrace&;s&babeltrace-log\.bin&babeltrace-log&;$program_transform_name"
 AC_SUBST(program_transform_name)
 
 # check for Doxygen
@@ -517,9 +535,11 @@ AC_CONFIG_FILES([
        plugins/ctf/fs-sink/Makefile
        plugins/ctf/lttng-live/Makefile
        plugins/text/Makefile
+  plugins/text/dmesg/Makefile
        plugins/text/pretty/Makefile
        plugins/utils/Makefile
        plugins/utils/dummy/Makefile
+       plugins/utils/counter/Makefile
        plugins/utils/trimmer/Makefile
        plugins/utils/muxer/Makefile
        python-plugin-provider/Makefile
@@ -538,9 +558,15 @@ AC_CONFIG_FILES([tests/lib/test_bin_info_complete], [chmod +x tests/lib/test_bin
 AC_CONFIG_FILES([tests/plugins/test-utils-muxer-complete], [chmod +x tests/plugins/test-utils-muxer-complete])
 
 AC_CONFIG_FILES([tests/cli/test_trace_read], [chmod +x tests/cli/test_trace_read])
+AC_CONFIG_FILES([tests/cli/test_trace_copy], [chmod +x tests/cli/test_trace_copy])
+AC_CONFIG_FILES([tests/cli/test_debug_info], [chmod +x tests/cli/test_debug_info])
+AC_CONFIG_FILES([tests/cli/test_trimmer], [chmod +x tests/cli/test_trimmer])
 AC_CONFIG_FILES([tests/cli/intersection/test_intersection], [chmod +x tests/cli/intersection/test_intersection])
+AC_CONFIG_FILES([tests/cli/test_convert_args], [chmod +x tests/cli/test_convert_args])
 AC_CONFIG_FILES([tests/cli/intersection/bt_python_helper.py])
 AC_CONFIG_FILES([tests/lib/writer/bt_python_helper.py])
+AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_empty_packet.py])
+AC_CONFIG_FILES([tests/lib/writer/test_ctf_writer_no_packet_context.py])
 AC_CONFIG_FILES([tests/cli/test_packet_seq_num], [chmod +x tests/cli/test_packet_seq_num])
 
 AS_IF([test "x$enable_python" = "xyes"], [
This page took 0.026175 seconds and 4 git commands to generate.