Add support for handling new multi-arch under Debian.
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Sep 2011 22:33:17 +0000 (22:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Sep 2011 22:33:17 +0000 (22:33 +0000)
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
configure.in

index c58a43c8684d4c4bdab17a59942dd4ad2a627dda..dc5c98705040bd987ce439d1a8d7fefff157585c 100755 (executable)
--- a/configure
+++ b/configure
@@ -26999,8 +26999,8 @@ SEARCH_INCLUDE="\
                               \
     /usr/openwin/share/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* )
 
 case "${host}" in
     *-*-irix6* )
@@ -27052,9 +27052,6 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
                         fi
                     done
                 done
                         fi
                     done
                 done
-                if test "x$wx_cv_std_libpath" = "x"; then
-                    wx_cv_std_libpath="lib"
-                fi
 
 
 fi
 
 
 fi
     *-*-solaris2* )
                 if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then
             wx_cv_std_libpath="lib/64"
     *-*-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* )
         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
         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
         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
 
         ;;
 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
 
 if test "$build" != "$host" -a "$GCC" = yes; then
                     if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
index 225c887197e12444501fdd399798a483d61f87c5..a45717410e0f6535356bfc429f61be7b6d3419bd 100644 (file)
@@ -2251,7 +2251,7 @@ SEARCH_INCLUDE="\
 
 dnl try to find out the standard lib locations for the systems with multiple
 dnl ABIs
 
 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* )
 
 case "${host}" in
     *-*-irix6* )
@@ -2273,9 +2273,6 @@ case "${host}" in
                         fi
                     done
                 done
                         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"
         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* )
         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
         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
         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
 
         ;;
 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
 
 dnl Cross compiling with gcc?
 if test "$build" != "$host" -a "$GCC" = yes; then