On 28/07/2009 05:56, Dave Korn wrote:
   Yeh, me too.  I have a horrible hack in the distro gcc that ascends
directories until it finds ...../lib/ and replaces that with ..../bin/

I'm not sure how you did it, so I just made the attached patch to do just that. It's a bit of a hack but I don't think it's so horrible. Chuck, what do you think?

   Only libtool knows about the DLL.  Only the Makefile knows about the setting
of $bindir from configure.  Currently however the Makefile only passes the
path to the output in $libdir.  Therefore ISTM that the only correct solution
is to add a --bindir= option to libtool and modify automake or libtoolise to
ensure it gets passed by the makefiles when they invoke libtool.

It might be more correct, but implementing this would be *VERY* messy. Trust me. The first solution would be much, much easier.


Yaakov
2009-08-09  Yaakov Selkowitz  <yselkow...@users.sourceforge.net>

        * libltdl/config/ltmain.m4sh (func_mode_link) [cygwin*]:
        If a shared library is installed into a subdirectory of $prefix/lib,
        install the DLL into $prefix/bin so that it will be in $PATH.

--- origsrc/libtool-2.2.7a/libltdl/config/ltmain.m4sh   2009-08-08 
23:47:33.051542300 -0500
+++ src/libtool-2.2.7a/libltdl/config/ltmain.m4sh       2009-08-09 
01:39:35.688299700 -0500
@@ -7741,7 +7741,21 @@ EOF
          # place dlname in correct position for cygwin
          tdlname=$dlname
          case $host,$output,$installed,$module,$dlname in
-           *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | 
*cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+           *cygwin*,*lai,yes,no,*.dll)
+          tdlname=../$dlname
+          case "$install_libdir" in
+            */lib/*)
+              tlibdir="$install_libdir"
+              while :; do
+                func_dirname_and_basename "$tlibdir"
+                test "$func_basename_result" = "lib" && break
+                tlibdir="$func_dirname_result"
+                tdlname=../$tdlname
+              done
+            ;;
+          esac
+        ;;
+           *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) 
tdlname=../bin/$dlname ;;
          esac
          $ECHO > $output "\
 # $outputname - a libtool library file

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to