From 87d2c6f5074ee5a90635ecdec41506bf7ecc9567 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 23 Sep 2011 22:33:17 +0000 Subject: [PATCH] Add support for handling new multi-arch under Debian. The libraries are now in /usr/lib/arch-linux-gnu and not /usr/lib{32,64} so check for them there too. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69186 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- configure | 46 +++++++++++++++++++++++++++++----------------- configure.in | 50 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 63 insertions(+), 33 deletions(-) diff --git a/configure b/configure index c58a43c868..dc5c987050 100755 --- a/configure +++ b/configure @@ -26999,8 +26999,8 @@ SEARCH_INCLUDE="\ \ /usr/openwin/share/include" -{ echo "$as_me:$LINENO: checking for libraries directory" >&5 -echo $ECHO_N "checking for libraries directory... $ECHO_C" >&6; } +{ echo "$as_me:$LINENO: checking for libraries directories" >&5 +echo $ECHO_N "checking for libraries directories... $ECHO_C" >&6; } case "${host}" in *-*-irix6* ) @@ -27052,9 +27052,6 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ fi done done - if test "x$wx_cv_std_libpath" = "x"; then - wx_cv_std_libpath="lib" - fi fi @@ -27064,29 +27061,44 @@ fi *-*-solaris2* ) if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then wx_cv_std_libpath="lib/64" - else - wx_cv_std_libpath="lib" fi ;; *-*-linux* ) - if test "$ac_cv_sizeof_void_p" = 8 -a \ - -d "/usr/lib64" -a ! -h "/usr/lib64"; then - wx_cv_std_libpath="lib64" + if test "$ac_cv_sizeof_void_p" = 8; then + if test -d "/usr/lib/`uname -m`-linux-gnu"; then + wx_cv_std_libfullpath="/usr/lib/`uname -m`-linux-gnu" + elif test -d "/usr/lib64" -a ! -h "/usr/lib64"; then + wx_cv_std_libpath="lib64" + fi else - wx_cv_std_libpath="lib" + case "${host}" in + i*86-*-linux* ) + if test -d '/usr/lib/i386-linux-gnu'; then + wx_cv_std_libfullpath='/usr/lib/i386-linux-gnu' + fi + esac fi - ;; - *) - wx_cv_std_libpath="lib"; + if test -n "$wx_cv_std_libfullpath" -a -d "/usr/lib"; then + wx_cv_std_libfullpath="$wx_cv_std_libfullpath /usr/lib" + fi ;; esac -{ echo "$as_me:$LINENO: result: $wx_cv_std_libpath" >&5 -echo "${ECHO_T}$wx_cv_std_libpath" >&6; } +if test -z "$wx_cv_std_libpath"; then + wx_cv_std_libpath="lib" +fi + +if test -z "$wx_cv_std_libfullpath"; then + wx_cv_std_libfullpath="/usr/$wx_cv_std_libpath" +fi + + +{ echo "$as_me:$LINENO: result: $wx_cv_std_libfullpath" >&5 +echo "${ECHO_T}$wx_cv_std_libfullpath" >&6; } -SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath" +SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` $wx_cv_std_libfullpath" if test "$build" != "$host" -a "$GCC" = yes; then if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then diff --git a/configure.in b/configure.in index 225c887197..a45717410e 100644 --- a/configure.in +++ b/configure.in @@ -2251,7 +2251,7 @@ SEARCH_INCLUDE="\ dnl try to find out the standard lib locations for the systems with multiple dnl ABIs -AC_MSG_CHECKING([for libraries directory]) +AC_MSG_CHECKING([for libraries directories]) case "${host}" in *-*-irix6* ) @@ -2273,9 +2273,6 @@ case "${host}" in fi done done - if test "x$wx_cv_std_libpath" = "x"; then - wx_cv_std_libpath="lib" - fi ] ) ;; @@ -2284,29 +2281,50 @@ case "${host}" in dnl use ../lib or ../lib/64 depending on the size of void* if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then wx_cv_std_libpath="lib/64" - else - wx_cv_std_libpath="lib" fi ;; *-*-linux* ) - dnl use ../lib or ../lib64 depending on the size of void* - if test "$ac_cv_sizeof_void_p" = 8 -a \ - -d "/usr/lib64" -a ! -h "/usr/lib64"; then - wx_cv_std_libpath="lib64" + dnl Recent Debian versions (as of 2011) use new approach to multiarch + dnl and put the libraries under /usr/lib/arch-linux-gnu. Annoyingly, + dnl "arch" here is not `uname -m` because it is "i386" even when uname + dnl returns e.g. "i686". So we need to test for it explicitly. + if test "$ac_cv_sizeof_void_p" = 8; then + if test -d "/usr/lib/`uname -m`-linux-gnu"; then + wx_cv_std_libfullpath="/usr/lib/`uname -m`-linux-gnu" + elif test -d "/usr/lib64" -a ! -h "/usr/lib64"; then + wx_cv_std_libpath="lib64" + fi else - wx_cv_std_libpath="lib" + case "${host}" in + i*86-*-linux* ) + if test -d '/usr/lib/i386-linux-gnu'; then + wx_cv_std_libfullpath='/usr/lib/i386-linux-gnu' + fi + esac fi - ;; - *) - wx_cv_std_libpath="lib"; + dnl And on top of all this, some packages haven't been updated for + dnl full multiarch support yet so we still need to look in /usr/lib + dnl too as well. + if test -n "$wx_cv_std_libfullpath" -a -d "/usr/lib"; then + wx_cv_std_libfullpath="$wx_cv_std_libfullpath /usr/lib" + fi ;; esac -AC_MSG_RESULT($wx_cv_std_libpath) +if test -z "$wx_cv_std_libpath"; then + wx_cv_std_libpath="lib" +fi + +if test -z "$wx_cv_std_libfullpath"; then + wx_cv_std_libfullpath="/usr/$wx_cv_std_libpath" +fi + + +AC_MSG_RESULT($wx_cv_std_libfullpath) -SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath" +SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` $wx_cv_std_libfullpath" dnl Cross compiling with gcc? if test "$build" != "$host" -a "$GCC" = yes; then -- 2.47.2