diff options
author | rmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d> | 2012-04-04 06:58:03 +0000 |
---|---|---|
committer | rmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d> | 2012-04-04 06:58:03 +0000 |
commit | b6765d719358b3241d51c995fafe049f18b1ada0 (patch) | |
tree | 58cb34ed7092f00031b415563a2b62db4b309eb2 | |
parent | 6743f4e15f83cb856c82b538d52146d1e14420c5 (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.U | 16 |
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 |