Mail Archives: cygwin/2009/08/09/02:53:35
--------------060607060607080206080201
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
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
--------------060607060607080206080201
Content-Type: text/plain;
name="2.2.7a-lib-subdir-dll-into-bin.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="2.2.7a-lib-subdir-dll-into-bin.patch"
2009-08-09 Yaakov Selkowitz <yselkowitz AT users DOT sourceforge DOT 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
--------------060607060607080206080201
Content-Type: text/plain; charset=us-ascii
--
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
--------------060607060607080206080201--
- Raw text -