Cygwin: Remove weak symbols attributes due to semantic differences
[lttng-ust.git] / configure.ac
index 24ef9d35c6a498abda1e556c3d14ce5ef99c5810..73c7b897e522e169437437bba582ffe90e2f6ca7 100644 (file)
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-AC_INIT([lttng-ust],[2.0.3],[mathieu dot desnoyers at efficios dot com])
+AC_INIT([lttng-ust],[2.0.6],[mathieu dot desnoyers at efficios dot com])
 
 # Following the numbering scheme proposed by libtool for the library version
 # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
@@ -39,6 +39,33 @@ version_description="New type of beer, 100% from Quebec, flavored with sapin bea
 AC_DEFINE_UNQUOTED([VERSION_NAME], [$version_name], [UST version name])
 AC_DEFINE_UNQUOTED([VERSION_DESCRIPTION], [$version_description], [UST version description])
 
+AC_PROG_GREP
+# libtool link_all_deplibs fixup. See http://bugs.lttng.org/issues/321.
+AC_ARG_ENABLE(libtool-linkdep-fixup,
+       AS_HELP_STRING([--disable-libtool-linkdep-fixup],
+                       [disable the libtool fixup for linking all dependent libraries (link_all_deplibs)]),
+       libtool_fixup=$enableval,
+       libtool_fixup=yes)
+
+AS_IF([test "x$libtool_fixup" = "xyes"],
+           [
+           libtool_m4="$srcdir/config/libtool.m4"
+           libtool_flag_pattern=".*link_all_deplibs\s*,\s*\$1\s*)"
+           AC_MSG_CHECKING([for occurence(s) of link_all_deplibs = no in $libtool_m4])
+           libtool_flag_pattern_count=$(grep -c "$libtool_flag_pattern\s*=\s*no" $libtool_m4)
+           AS_IF([test $libtool_flag_pattern_count -ne 0],
+           [
+                 AC_MSG_RESULT([$libtool_flag_pattern_count])
+                 AC_MSG_WARN([the detected libtool will not link all dependencies, forcing link_all_deplibs = unknown])
+                 sed -i "s/\($libtool_flag_pattern\)\s*=\s*no/\1=unknown/g" $libtool_m4
+                 ],
+                 [
+                 AC_MSG_RESULT([none])
+                 ])
+           ])
+
+AM_CONDITIONAL([NO_SHARED], [test "x$enable_shared" = "xno"])
+
 # Checks for programs.
 AC_PROG_CC
 AC_PROG_CXX
@@ -50,9 +77,25 @@ AC_CHECK_LIB([dl], [dlopen])
 AC_CHECK_LIB([pthread], [pthread_create])
 
 # Check for libuuid
-AC_CHECK_LIB([uuid], [uuid_generate], [],
-       [AC_MSG_ERROR([Cannot find libuuid. Use [LDFLAGS]=-Ldir to specify its location.])]
+AC_CHECK_LIB([uuid], [uuid_generate],
+[
+       AC_DEFINE_UNQUOTED([LTTNG_UST_HAVE_LIBUUID], 1, [Has libuuid support.])
+       have_libuuid=yes
+],
+[
+       # libuuid not found, check for uuid_create in libc.
+       AC_CHECK_LIB([c], [uuid_create],
+       [
+               AC_DEFINE_UNQUOTED([LTTNG_UST_HAVE_LIBC_UUID], 1, [Has libc uuid support.])
+               have_libc_uuid=yes
+       ],
+       [
+               AC_MSG_ERROR([Cannot find libuuid uuid_generate nor libc uuid_create. Use [LDFLAGS]=-Ldir to specify its location.])
+       ])
+]
 )
+AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBUUID], [test "x$have_libuuid" = "xyes"])
+AM_CONDITIONAL([LTTNG_UST_BUILD_WITH_LIBC_UUID], [test "x$have_libc_uuid" = "xyes"])
 
 # Checks for header files.
 #AC_CHECK_HEADERS([fcntl.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
@@ -78,13 +121,6 @@ AC_CHECK_FUNCS([gettimeofday munmap socket strerror strtol sched_getcpu sysconf]
 
 CFLAGS="-Wall $CFLAGS"
 
-# Check for texinfo, required for building the documentation
-# TODO: make this (and building the documentation) optional
-AC_CHECK_PROG([TEXINFO], [makeinfo], [yes])
-AS_IF([test "x$TEXINFO" != "xyes"],[
-       AC_MSG_ERROR([Please install the 'texinfo' program and make sure 'makeinfo' is in the PATH.])
-])
-
 # URCU
 
 # urcu - check if we just find the headers it out of the box.
@@ -133,6 +169,10 @@ got it
                     [ust_cv_i386_is_x86_64=no])
                     CPPFLAGS="$save_CPPFLAGS"])
     ;;
+    # All symbols must be resolved at link time on Cygwin/MinGW/Windows,
+    # else libtool will not be able to build shared libraries.
+    *-*-cygwin*)
+    LDFLAGS="-Wl,-no-undefined $LDFLAGS";;
 esac
 
 AC_MSG_CHECKING([library format for the host system])
@@ -241,6 +281,13 @@ AS_IF([test "x$with_sdt" = "xyes"],[
 
 #      liblttng-ust-java/Makefile
 
+# Disabled for now, because these libraries
+# rely on the dlsym(3) RTLD_NEXT GNU extension.
+# This is not implemented in Cygwin.
+#liblttng-ust-fork/Makefile
+#liblttng-ust-libc-wrapper/Makefile
+#tests/fork/Makefile
+
 AC_CONFIG_FILES([
        Makefile
        doc/Makefile
@@ -252,15 +299,12 @@ AC_CONFIG_FILES([
        liblttng-ust-comm/Makefile
        liblttng-ust/Makefile
        liblttng-ust-ctl/Makefile
-       liblttng-ust-fork/Makefile
-       liblttng-ust-libc-wrapper/Makefile
        tools/Makefile
        tests/Makefile
        tests/hello/Makefile
        tests/hello-static-lib/Makefile
        tests/hello.cxx/Makefile
        tests/demo/Makefile
-       tests/fork/Makefile
        tests/ust-basic-tracing/Makefile
        tests/ust-multi-test/Makefile
        lttng-ust.pc
This page took 0.025575 seconds and 4 git commands to generate.