From d01948697248ce7b5bb1dfcee129fe68e1641a9d Mon Sep 17 00:00:00 2001 From: Nathan Scott Date: Fri, 5 Mar 2004 04:12:55 +0000 Subject: [PATCH] Fix xfsprogs builds on certain platforms with unusual libuuid locations. --- aclocal.m4 | 35 +++++++++++++++++++++++------------ configure.in | 6 ++---- m4/package_uuiddev.m4 | 35 +++++++++++++++++++++++------------ 3 files changed, 48 insertions(+), 28 deletions(-) diff --git a/aclocal.m4 b/aclocal.m4 index b376d02f9..625b2a112 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -184,20 +184,31 @@ AC_DEFUN([AC_PACKAGE_NEED_UUID_H], fi ]) -AC_DEFUN([AC_PACKAGE_NEED_UUIDCOMPARE], +AC_DEFUN([AC_PACKAGE_CHECK_LIBUUID], [ AC_CHECK_FUNCS(uuid_compare) - if test $ac_cv_func_uuid_compare = no; then - AC_CHECK_LIB(uuid, uuid_compare, [libuuid=/usr/lib/libuuid.a], [ - echo - echo 'FATAL ERROR: could not find a valid UUID library.' - echo 'Install the Universally Unique Identifiers library package.' - exit 1]) + if test $ac_cv_func_uuid_compare = yes; then + libuuid="" + elif test "$enable_shared_uuid" = no; then + AC_MSG_CHECKING([for libuuid]) + OLDLIBS="$LIBS" + UUIDLIBS="/usr/lib/libuuid.a /usr/lib64/libuuid.a" + for uuidlib in $UUIDLIBS; do + LIBS="$OLDLIBS $uuidlib" + AC_LINK_IFELSE([AC_LANG_PROGRAM(, [ uuid_compare(); ])], + [ libuuid="$uuidlib" ], [ continue ],) + AC_MSG_RESULT($libuuid) + done + if test -z "$libuuid"; then + AC_MSG_RESULT(not found) + echo + echo 'FATAL ERROR: could not find a valid UUID library.' + echo 'Install the Universally Unique Identifiers library package.' + exit 1 + fi + LIBS="$OLDLIBS" + else + libuuid="-luuid" fi - AC_SUBST(libuuid) - ]) - -AC_DEFUN([AC_PACKAGE_CHECK_LIBUUID], - [ test $pkg_platform = freebsd && libuuid="" ]) AC_DEFUN([AC_PACKAGE_NEED_PTHREAD_H], diff --git a/configure.in b/configure.in index df99023a8..19f37ad41 100644 --- a/configure.in +++ b/configure.in @@ -29,12 +29,10 @@ AC_PACKAGE_GLOBALS(xfsprogs) AC_PACKAGE_UTILITIES(xfsprogs) AC_PACKAGE_NEED_UUID_H -AC_PACKAGE_NEED_UUIDCOMPARE AC_ARG_ENABLE(shared-uuid, [ --enable-shared-uuid=[yes/no] Link shared libuuid [default=no].], - libuuid="/usr/lib/libuuid.a" - test "$enable_shared_uuid" = yes && libuuid="-luuid", - libuuid="/usr/lib/libuuid.a") + enable_shared_uuid=yes, + enable_shared_uuid=no) AC_PACKAGE_CHECK_LIBUUID AC_SUBST(libuuid) diff --git a/m4/package_uuiddev.m4 b/m4/package_uuiddev.m4 index 1e406772c..4a2772f89 100644 --- a/m4/package_uuiddev.m4 +++ b/m4/package_uuiddev.m4 @@ -9,18 +9,29 @@ AC_DEFUN([AC_PACKAGE_NEED_UUID_H], fi ]) -AC_DEFUN([AC_PACKAGE_NEED_UUIDCOMPARE], +AC_DEFUN([AC_PACKAGE_CHECK_LIBUUID], [ AC_CHECK_FUNCS(uuid_compare) - if test $ac_cv_func_uuid_compare = no; then - AC_CHECK_LIB(uuid, uuid_compare, [libuuid=/usr/lib/libuuid.a], [ - echo - echo 'FATAL ERROR: could not find a valid UUID library.' - echo 'Install the Universally Unique Identifiers library package.' - exit 1]) + if test $ac_cv_func_uuid_compare = yes; then + libuuid="" + elif test "$enable_shared_uuid" = no; then + AC_MSG_CHECKING([for libuuid]) + OLDLIBS="$LIBS" + UUIDLIBS="/usr/lib/libuuid.a /usr/lib64/libuuid.a" + for uuidlib in $UUIDLIBS; do + LIBS="$OLDLIBS $uuidlib" + AC_LINK_IFELSE([AC_LANG_PROGRAM(, [ uuid_compare(); ])], + [ libuuid="$uuidlib" ], [ continue ],) + AC_MSG_RESULT($libuuid) + done + if test -z "$libuuid"; then + AC_MSG_RESULT(not found) + echo + echo 'FATAL ERROR: could not find a valid UUID library.' + echo 'Install the Universally Unique Identifiers library package.' + exit 1 + fi + LIBS="$OLDLIBS" + else + libuuid="-luuid" fi - AC_SUBST(libuuid) - ]) - -AC_DEFUN([AC_PACKAGE_CHECK_LIBUUID], - [ test $pkg_platform = freebsd && libuuid="" ]) -- 2.47.2