Cleanup: uuid library detection
authorMichael Jeanson <mjeanson@efficios.com>
Thu, 29 Jun 2017 19:41:58 +0000 (15:41 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Mon, 17 Jul 2017 21:09:36 +0000 (17:09 -0400)
Simplify libuuid detection code and use a variable to store the detected
lib instead of adding conditionnal code to each Makefile.

Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
configure.ac
lib/ctf-ir/Makefile.am
lib/ctf-writer/Makefile.am
plugins/ctf/common/metadata/Makefile.am

index 93c6a8d17ed1e33650f87ae0e8061d8061f97602..c740e986fbadc8a3b418239d1cf7a7b3d337ba8c 100644 (file)
@@ -174,46 +174,50 @@ AS_CASE([$host_os],
 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],
   [
-    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],
index ca59585b0389ec632b04121406116ad3ba3fce56..852cb5a46b19d302ff8acc7b9029621b451ea4f9 100644 (file)
@@ -17,12 +17,4 @@ libctf_ir_la_SOURCES = \
        validation.c \
        visitor.c
 
-libctf_ir_la_LIBADD =
-
-if BABELTRACE_BUILD_WITH_LIBUUID
-libctf_ir_la_LIBADD += -luuid
-endif
-
-if BABELTRACE_BUILD_WITH_LIBC_UUID
-libctf_ir_la_LIBADD += -lc
-endif
+libctf_ir_la_LIBADD = $(UUID_LIBS)
index 9330141fc21f91c26b9ed2546b780807b354563a..8ea82b0bde9fac5d2dcf77acee42c9c9b8c3d89d 100644 (file)
@@ -6,11 +6,4 @@ libctf_writer_la_SOURCES = \
        functor.c \
        serialize.c
 
-libctf_writer_la_LIBADD =
-
-if BABELTRACE_BUILD_WITH_LIBUUID
-libctf_writer_la_LIBADD += -luuid
-endif
-if BABELTRACE_BUILD_WITH_LIBC_UUID
-libctf_writer_la_LIBADD += -lc
-endif
+libctf_writer_la_LIBADD = $(UUID_LIBS)
index 8c6e877913718b22d0f79a6ecd6d58e071c66a93..925b31a9493153d3f63dbf341cb8c0fbebbab19c 100644 (file)
@@ -25,15 +25,7 @@ libctf_ast_la_SOURCES = \
        logging.c \
        logging.h
 
-libctf_ast_la_LIBADD =
-
-if BABELTRACE_BUILD_WITH_LIBUUID
-libctf_ast_la_LIBADD += -luuid
-endif
-
-if BABELTRACE_BUILD_WITH_LIBC_UUID
-libctf_ast_la_LIBADD += -lc
-endif
+libctf_ast_la_LIBADD = $(UUID_LIBS)
 
 if BABELTRACE_BUILD_WITH_MINGW
 libctf_ast_la_LIBADD += -lrpcrt4 -lintl -liconv -lole32 $(POPT_LIBS)
This page took 0.026808 seconds and 4 git commands to generate.