+2008-08-02 Peter Rosin <peda@lysator.liu.se>
+
+ On Windows, find potential libs regardless of file name case.
+ * libltdl/m4/libtool.m4 (_LT_CHECK_MAGIC_METHOD),
+ libltdl/config/ltmain.m4sh (func_mode_link): On Windows,
+ find potential libs regardless of file name case.
+ * tests/nocase.at: New test, to check for regressions
+ of the above.
+ * Makefile.am: Add above new test.
+
2008-08-02 Peter Rosin <peda@lysator.liu.se>
Allow Microsoft lib to be used as the archiver.
fi
if test -n "$a_deplib" ; then
libname=`eval "\\$ECHO \"$libname_spec\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
- potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ if test "$want_nocaseglob" = yes; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ $nocaseglob
+ else
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ fi
for potent_lib in $potential_libs; do
# Follow soft links.
if ls -lLd "$potent_lib" 2>/dev/null |
;;
esac
])
+
+case $host_os in
+cygwin* | mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ file_magic_glob=
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ want_nocaseglob=no
+ fi
+ ;;
+*)
+ file_magic_glob=
+ want_nocaseglob=no
+ ;;
+esac
+
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
[Method to check whether dependent libraries are shared objects])
_LT_DECL([], [file_magic_cmd], [1],
[Command to use when deplibs_check_method == "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+ [How to find potential files when deplibs_check_method == "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+ [Find potential files using nocaseglob when deplibs_check_method == "file_magic"])
])# _LT_CHECK_MAGIC_METHOD
--- /dev/null
+# nocase.at -- test for nocase lib search -*- Autotest -*-
+#
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# Written by Peter Rosin, 2007
+#
+# This file is part of GNU Libtool.
+#
+# GNU Libtool is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 2 of
+# the License, or (at your option) any later version.
+#
+# GNU Libtool is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+####
+
+
+AT_SETUP([nocase library search])
+AT_KEYWORDS([libtool])
+
+eval `$LIBTOOL --config | $EGREP '^(want_nocaseglob|file_magic_glob)='`
+
+AT_CHECK([test "$want_nocaseglob" != yes && ]dnl
+ [test -z "$file_magic_glob" && exit 77],
+ [1], [ignore], [ignore])
+
+mkdir foo
+AT_DATA([foo/Foo.c],
+[
+int Foo(void) { return 1; }
+])
+
+mkdir bar
+AT_DATA([bar/bar.c],
+[
+extern int Foo(void);
+int bar(void) { return Foo(); }
+])
+
+AT_DATA([main.c],
+[
+extern int bar(void);
+int main(void) { return bar(); }
+])
+
+libdir=`pwd`/inst/lib
+mkdir inst inst/bin inst/lib
+
+$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o foo/Foo.lo foo/Foo.c
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC $CFLAGS $LDFLAGS -o foo/libFoo.la foo/Foo.lo ]dnl
+ [-no-undefined -version-info 1:0:0 -rpath $libdir],
+ [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=install cp foo/libFoo.la $libdir],
+ [], [ignore], [ignore])
+
+rm -f $libdir/libFoo.la
+
+$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o bar/bar.lo bar/bar.c
+AT_CHECK([$LIBTOOL --mode=link --tag=CC $CC $CFLAGS $LDFLAGS -o bar/libbar.la bar/bar.lo ]dnl
+ [-L$libdir -lfoo -no-undefined -version-info 1:0:0 -rpath $libdir],
+ [], [ignore], [ignore])
+AT_CHECK([$LIBTOOL --mode=install cp bar/libbar.la $libdir],
+ [], [ignore], [ignore])
+
+eval `$EGREP '^(old_library)=' < $libdir/libbar.la`
+libbar=$old_library
+rm -f $libdir/$libbar
+
+$LIBTOOL --mode=compile --tag=CC $CC $CPPFLAGS $CFLAGS -c -o main.$OBJEXT main.c
+
+AT_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o main main.$OBJEXT -L$libdir -lbar],
+ [], [ignore], [ignore])
+
+AT_CLEANUP