summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2012-04-04 06:58:03 +0000
committerrmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d>2012-04-04 06:58:03 +0000
commitb6765d719358b3241d51c995fafe049f18b1ada0 (patch)
tree58cb34ed7092f00031b415563a2b62db4b309eb2
parent6743f4e15f83cb856c82b538d52146d1e14420c5 (diff)
Improved library detection by using the compiler to perform a link check.
git-svn-id: svn://svn.code.sf.net/p/dist/code/trunk/dist@146 2592e710-e01b-42a5-8df0-11608a6cc53d
-rw-r--r--mcon/U/libs.U16
1 files changed, 15 insertions, 1 deletions
diff --git a/mcon/U/libs.U b/mcon/U/libs.U
index 4e1d879..f92fd0b 100644
--- a/mcon/U/libs.U
+++ b/mcon/U/libs.U
@@ -210,7 +210,21 @@ for thislib in $libswanted; do
fi
done
if $test ! -f "$xxx"; then
- echo "No -l$thislib."
+?X:
+?X: Try linking aginst the library: gcc on linux platforms is notorious for
+?X: using complex library search logic, especially on systems mixing 32-bit
+?X: and 64-bit versions.
+?X:
+ if $cc -o lt $ccflags $ldflags lt.c -l$thislib >/dev/null 2>&1
+ then
+ echo "Found -l$thislib (via $cc)."
+ case " $dflt " in
+ *"-l$thislib "*) ;;
+ *) dflt="$dflt -l$thislib";;
+ esac
+ else
+ echo "No -l$thislib."
+ fi
fi
done
set X $dflt