From: Roger Pau Monne Date: Wed, 14 Mar 2012 14:19:42 +0000 (+0000) Subject: autoconf: check for uuid.h or uuid/uuid.h with -luuid X-Git-Tag: 4.2.0-rc1~634 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=35ab4e22797545b4ed3f5430fb18d9ca002bf373;p=xen.git autoconf: check for uuid.h or uuid/uuid.h with -luuid Check for uuid/uuid.h and if found check for -luuid usability (Linux case), if not, check for uuid (NetBSD). One of this tests has to succeed to be able to build Xen tools. Signed-off-by: Roger Pau Monne Acked-by: Ian Jackson Committed-by: Ian Jackson --- diff --git a/tools/configure b/tools/configure index 50426f10aa..0678d0437d 100755 --- a/tools/configure +++ b/tools/configure @@ -6270,25 +6270,64 @@ if test x"${XGETTEXT}" == x"no" then as_fn_error $? "Unable to find xgettext, please install xgettext" "$LINENO" 5 fi -if test "x$host_os" == "xlinux-gnu" -then - ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" + +ac_fn_c_check_header_mongrel "$LINENO" "uuid/uuid.h" "ac_cv_header_uuid_uuid_h" "$ac_includes_default" if test "x$ac_cv_header_uuid_uuid_h" = x""yes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_clear in -luuid" >&5 +$as_echo_n "checking for uuid_clear in -luuid... " >&6; } +if test "${ac_cv_lib_uuid_uuid_clear+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-luuid $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char uuid_clear (); +int +main () +{ +return uuid_clear (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_uuid_uuid_clear=yes else - as_fn_error $? "cannot find uuid headers" "$LINENO" 5 + ac_cv_lib_uuid_uuid_clear=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_clear" >&5 +$as_echo "$ac_cv_lib_uuid_uuid_clear" >&6; } +if test "x$ac_cv_lib_uuid_uuid_clear" = x""yes; then : + libuuid="y" fi -else - ac_fn_c_check_header_mongrel "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default" -if test "x$ac_cv_header_uuid_h" = x""yes; then : +fi -else - as_fn_error $? "cannot find uuid headers" "$LINENO" 5 + +ac_fn_c_check_header_mongrel "$LINENO" "uuid.h" "ac_cv_header_uuid_h" "$ac_includes_default" +if test "x$ac_cv_header_uuid_h" = x""yes; then : + libuuid="y" fi +if test "$libuuid" != "y"; then : + + as_fn_error $? "cannot find a valid uuid library" "$LINENO" 5 + fi @@ -6915,53 +6954,6 @@ _ACEOF fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uuid_clear in -luuid" >&5 -$as_echo_n "checking for uuid_clear in -luuid... " >&6; } -if test "${ac_cv_lib_uuid_uuid_clear+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-luuid $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char uuid_clear (); -int -main () -{ -return uuid_clear (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_uuid_uuid_clear=yes -else - ac_cv_lib_uuid_uuid_clear=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_uuid_uuid_clear" >&5 -$as_echo "$ac_cv_lib_uuid_uuid_clear" >&6; } -if test "x$ac_cv_lib_uuid_uuid_clear" = x""yes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBUUID 1 -_ACEOF - - LIBS="-luuid $LIBS" - -else - as_fn_error $? "Could not find libuuid" "$LINENO" 5 -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for yajl_alloc in -lyajl" >&5 $as_echo_n "checking for yajl_alloc in -lyajl... " >&6; } if test "${ac_cv_lib_yajl_yajl_alloc+set}" = set; then : diff --git a/tools/configure.ac b/tools/configure.ac index cf376bf05f..aeeb7b07c2 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -116,8 +116,6 @@ AC_SUBST(libgcrypt) AC_CHECK_LIB([pthread], [pthread_create], [] , [AC_MSG_ERROR([Could not find libpthread])]) AC_CHECK_LIB([rt], [clock_gettime]) -AC_CHECK_LIB([uuid], [uuid_clear], [], - [AC_MSG_ERROR([Could not find libuuid])]) AC_CHECK_LIB([yajl], [yajl_alloc], [], [AC_MSG_ERROR([Could not find yajl])]) AC_CHECK_LIB([z], [deflateCopy], [], [AC_MSG_ERROR([Could not find zlib])]) diff --git a/tools/m4/uuid.m4 b/tools/m4/uuid.m4 index 8e5cd31861..117da5c09d 100644 --- a/tools/m4/uuid.m4 +++ b/tools/m4/uuid.m4 @@ -1,10 +1,9 @@ -AC_DEFUN([AX_CHECK_UUID], -[if test "x$host_os" == "xlinux-gnu" -then - AC_CHECK_HEADER([uuid/uuid.h],, - [AC_MSG_ERROR([cannot find uuid headers])]) -else - AC_CHECK_HEADER([uuid.h],, - [AC_MSG_ERROR([cannot find uuid headers])]) -fi +AC_DEFUN([AX_CHECK_UUID], [ +AC_CHECK_HEADER([uuid/uuid.h],[ + AC_CHECK_LIB([uuid], [uuid_clear], [libuuid="y"]) +]) +AC_CHECK_HEADER([uuid.h],[libuuid="y"]) +AS_IF([test "$libuuid" != "y"], [ + AC_MSG_ERROR([cannot find a valid uuid library]) +]) ])