From: Samuel Martin Date: Wed, 1 Jun 2016 19:56:32 +0000 (+0200) Subject: configure: fix uuid support detection on static build X-Git-Tag: v1.5.0-rc1~22 X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=d94e7873e9080e820e7742e468736b1317a88de1 configure: fix uuid support detection on static build This change adds uuid detection using pkg-config helper before falling back on the standard AC_CHECK_LIB detection for platforms missing pkg-config. AC_CHECK_LIB function achieves its test by trying to link against the requested library, without taking care of its dependency requirements/flags that may differ between different targets. Therefore, in case of static build, it can fail on the uuid detection like [1], because the uuid's dependency flags (regarding gettext) are missing. Instead, using pkg-config to do the check will take care of getting and setting all required flags. This issue [1] has been triggered on Buildroot farms. [1] http://autobuild.buildroot.net/results/43b/43b98ddf9eb44152ed9ac4a98d887af14831d8da/build-end.log Signed-off-by: Samuel Martin Signed-off-by: Jérémie Galarneau --- diff --git a/configure.ac b/configure.ac index 97d949ef..189387db 100644 --- a/configure.ac +++ b/configure.ac @@ -152,24 +152,35 @@ AC_CHECK_FUNCS([uuid_generate], link_with_libuuid=no ], [ - # Check for libuuid - AC_CHECK_LIB([uuid], [uuid_generate], + # 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 ], [ - # libuuid not found, check for uuid_create in libc. - AC_CHECK_LIB([c], [uuid_create], + # Check for libuuid + AC_CHECK_LIB([uuid], [uuid_generate], [ - AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) - link_with_libc_uuid=yes + AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBUUID], 1, [Has libuuid support.]) + link_with_libuuid=yes ], [ - # for MinGW32 we have our own internal implemenation 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 + # libuuid not found, check for uuid_create in libc. + AC_CHECK_LIB([c], [uuid_create], + [ + AC_DEFINE_UNQUOTED([BABELTRACE_HAVE_LIBC_UUID], 1, [Has libc uuid support.]) + link_with_libc_uuid=yes + ], + [ + # for MinGW32 we have our own internal implemenation 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 + ]) ]) ]) ])