From a20685bb2ffdb08e61a4e26e90d2dc2ba7b3669e Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Sat, 31 Aug 2013 15:32:39 +0200 Subject: AUTOTOOLS: Refactor unicode library detection If $libdir is not in default library path libunistring cannot be found. (pkg-config can not be used in this case). This patch helps to search libunistring in "$libdir" directory. In refactoring part, indentation was updated to be more readable and some duplicated parts were removed. --- configure.ac | 15 +++++++-------- src/build_macros.m4 | 14 ++++++++++++++ src/external/libunistring.m4 | 31 ++++++++++++++++++++++++------- 3 files changed, 45 insertions(+), 15 deletions(-) diff --git a/configure.ac b/configure.ac index 03070239a..00290e82f 100644 --- a/configure.ac +++ b/configure.ac @@ -155,16 +155,15 @@ m4_include([src/util/signal.m4]) WITH_UNICODE_LIB if test x$unicode_lib = xlibunistring; then - m4_include([src/external/libunistring.m4]) - AC_DEFINE_UNQUOTED(HAVE_LIBUNISTRING, 1, [Using libunistring for unicode]) - UNICODE_LIBS=-lunistring - AC_SUBST(UNICODE_LIBS) + m4_include([src/external/libunistring.m4]) + AC_DEFINE_UNQUOTED(HAVE_LIBUNISTRING, 1, [Using libunistring for unicode]) + UNICODE_LIBS=$UNISTRING_LIBS else - m4_include([src/external/glib.m4]) - AC_DEFINE_UNQUOTED(HAVE_GLIB2, 1, [Using libunistring for unicode]) - UNICODE_LIBS=$GLIB2_LIBS - AC_SUBST(UNICODE_LIBS) + m4_include([src/external/glib.m4]) + AC_DEFINE_UNQUOTED(HAVE_GLIB2, 1, [Using glib2 for unicode]) + UNICODE_LIBS=$GLIB2_LIBS fi +AC_SUBST(UNICODE_LIBS) WITH_INITSCRIPT if test x$initscript = xsystemd; then diff --git a/src/build_macros.m4 b/src/build_macros.m4 index 8cd2d3cde..92d7c65d1 100644 --- a/src/build_macros.m4 +++ b/src/build_macros.m4 @@ -34,3 +34,17 @@ $3 ])dnl fi[]dnl ])]) + +dnl SSS_AC_EXPAND_LIB_DIR() prepare variable sss_extra_libdir, +dnl variable will contain expanded version of string "$libdir" +dnl therefore this variable can be safely added to LDFLAGS as +dnl "-L$sss_extra_libdir ". +AC_DEFUN([SSS_AC_EXPAND_LIB_DIR], +[ + AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) + dnl By default, look in $includedir and $libdir. + AC_LIB_WITH_FINAL_PREFIX([ + eval additional_libdir=\"$libdir\" + ]) + sss_extra_libdir="$additional_libdir" +]) diff --git a/src/external/libunistring.m4 b/src/external/libunistring.m4 index 18ea3e62a..bbc92b332 100644 --- a/src/external/libunistring.m4 +++ b/src/external/libunistring.m4 @@ -1,14 +1,31 @@ -AC_CHECK_HEADERS(unistr.h, - [AC_CHECK_LIB([unistring], [u8_strlen], [ UNISTRING_LIBS="-lunistring" ], [AC_MSG_ERROR([No usable libunistring library found])])], +SSS_AC_EXPAND_LIB_DIR() + +AC_CHECK_HEADERS([unistr.h], + [AC_CHECK_LIB([unistring], + [u8_strlen], + [UNISTRING_LIBS="-lunistring"], + [AC_MSG_ERROR([No usable libunistring library found])], + [-L$sss_extra_libdir])], [AC_MSG_ERROR([libunistring header files are not installed])] ) -AC_CHECK_HEADERS(unicase.h, - [AC_CHECK_LIB([unistring], [u8_casecmp], [ UNISTRING_LIBS="-lunistring" ], [AC_MSG_ERROR([No usable libunistring library found])])], +AC_CHECK_HEADERS([unicase.h], + [AC_CHECK_LIB([unistring], + [u8_casecmp], + [UNISTRING_LIBS="-lunistring"], + [AC_MSG_ERROR([No usable libunistring library found])], + [-L$sss_extra_libdir])], [AC_MSG_ERROR([libunistring header files are not installed])] ) -AC_CHECK_HEADERS(unistr.h, - [AC_CHECK_LIB([unistring], [u8_check], [ UNISTRING_LIBS="-lunistring" ], [AC_MSG_ERROR([No usable libunistring library found])])], +AC_CHECK_HEADERS([unistr.h], + [AC_CHECK_LIB([unistring], + [u8_check], + [UNISTRING_LIBS="-lunistring"], + [AC_MSG_ERROR([No usable libunistring library found])], + [-L$sss_extra_libdir])], [AC_MSG_ERROR([libunistring header files are not installed])] -) \ No newline at end of file +) + + +UNISTRING_LIBS="-L$sss_extra_libdir $UNISTRING_LIBS " -- cgit