From: Michael Jeanson Date: Wed, 10 May 2017 21:01:36 +0000 (-0400) Subject: Cleanup: uuid library detection X-Git-Tag: v2.11.0-rc1~544 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=009eade45d13e95430fcfaf2d21c05815ac40c92 Cleanup: uuid library detection 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 --- diff --git a/configure.ac b/configure.ac index 6ac213497..8e9a208e1 100644 --- a/configure.ac +++ b/configure.ac @@ -336,48 +336,47 @@ PKG_CHECK_MODULES([POPT], [popt], PKG_CHECK_MODULES([libxml2], [libxml-2.0 >= 2.7.6]) -# Check for uuid in system libs +# First, check for uuid in system libs +AH_TEMPLATE([LTTNG_HAVE_LIBUUID], [Define if you have libuuid support]) AC_CHECK_FUNCS([uuid_generate], -[ - AC_DEFINE_UNQUOTED([LTTNG_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="$LIBS $UUID_LIBS" - AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBUUID], 1, [Has libuuid support.]) - link_with_libuuid=yes -], -[ - # Check for libuuid - AC_CHECK_LIB([uuid], - [uuid_generate], - [ - AC_DEFINE_UNQUOTED([LTTNG_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], - [ - AC_DEFINE_UNQUOTED([LTTNG_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) - link_with_libc_uuid=yes - ], - [ - AC_MSG_ERROR([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]) - ] - ) - ] - ) -]) -]) - -AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBUUID], [test "x$link_with_libuuid" = "xyes"]) -AM_CONDITIONAL([LTTNG_BUILD_WITH_LIBC_UUID], [test "x$link_with_libc_uuid" = "xyes"]) + [ + AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) + UUID_LIBS="" + ], + [ + # 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([LTTNG_HAVE_LIBUUID], [1]) + dnl PKG_CHECK_MODULES defines UUID_LIBS + ], + [ + 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([LTTNG_HAVE_LIBUUID], [1]) + UUID_LIBS="-luuid" + ], + [ + # libuuid not found, check for uuid_create in libc. + AC_CHECK_LIB([c], [uuid_create], + [ + AC_DEFINE([LTTNG_HAVE_LIBUUID], [1]) + UUID_LIBS="-lc" + ], + [ + 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]) + ] + ) + ] + ) + ] + ) + ] +) +AC_SUBST(UUID_LIBS) AC_CHECK_FUNC([clock_gettime], [AC_DEFINE_UNQUOTED([LTTNG_HAVE_CLOCK_GETTIME], 1, [Has clock_gettime() support.])]) diff --git a/src/common/Makefile.am b/src/common/Makefile.am index 3b5077779..3995b2f76 100644 --- a/src/common/Makefile.am +++ b/src/common/Makefile.am @@ -78,13 +78,8 @@ libcommon_la_SOURCES = error.h error.c utils.c utils.h runas.c runas.h \ waiter.h waiter.c libcommon_la_LIBADD = \ - $(top_builddir)/src/common/config/libconfig.la -if LTTNG_BUILD_WITH_LIBUUID -libcommon_la_LIBADD += -luuid -endif -if LTTNG_BUILD_WITH_LIBC_UUID -libcommon_la_LIBADD += -lc -endif + $(top_builddir)/src/common/config/libconfig.la \ + $(UUID_LIBS) all-local: @if [ x"$(srcdir)" != x"$(builddir)" ]; then \