From 8a995d734d70250221b53d1ae2e49e0a5661f9f1 Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Thu, 29 Jun 2017 15:41:58 -0400 Subject: [PATCH] Cleanup: uuid library detection MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Signed-off-by: Jérémie Galarneau --- configure.ac | 70 +++++++++++++------------ lib/ctf-ir/Makefile.am | 10 +--- lib/ctf-writer/Makefile.am | 9 +--- plugins/ctf/common/metadata/Makefile.am | 10 +--- 4 files changed, 40 insertions(+), 59 deletions(-) diff --git a/configure.ac b/configure.ac index 93c6a8d1..c740e986 100644 --- a/configure.ac +++ b/configure.ac @@ -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], diff --git a/lib/ctf-ir/Makefile.am b/lib/ctf-ir/Makefile.am index ca59585b..852cb5a4 100644 --- a/lib/ctf-ir/Makefile.am +++ b/lib/ctf-ir/Makefile.am @@ -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) diff --git a/lib/ctf-writer/Makefile.am b/lib/ctf-writer/Makefile.am index 9330141f..8ea82b0b 100644 --- a/lib/ctf-writer/Makefile.am +++ b/lib/ctf-writer/Makefile.am @@ -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) diff --git a/plugins/ctf/common/metadata/Makefile.am b/plugins/ctf/common/metadata/Makefile.am index 8c6e8779..925b31a9 100644 --- a/plugins/ctf/common/metadata/Makefile.am +++ b/plugins/ctf/common/metadata/Makefile.am @@ -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) -- 2.34.1