* ltmain.in (win32_libid): Rewritten to improve speed.

This commit is contained in:
Charles Wilson 2003-02-17 18:55:45 +00:00 committed by Robert Boehne
parent 9673b55453
commit 709bbb1731
2 changed files with 30 additions and 16 deletions

View File

@ -1,3 +1,7 @@
2003-02-17 Charles Wilson <cwilson@ece.gatech.edu>
* ltmain.in (win32_libid): Rewritten to improve speed.
2003-02-11 Richard Dawe <rich@phekda.freeserve.co.uk>
* libtoolize.in: Use the program found by AC_PROG_LN_S

View File

@ -123,24 +123,34 @@ o2lo="s/\\.${objext}\$/.lo/"
# that is supplied when $file_magic_command is called.
win32_libid () {
win32_libid_type="unknown"
if eval $OBJDUMP -f $1 2>/dev/null | \
grep -E 'file format pei+-i386(.*architecture: i386)?' >/dev/null ; then
win32_libid_type="x86 DLL"
else
if eval $OBJDUMP -f $1 2>/dev/null | \
grep -E 'file format pei*-i386(.*architecture: i386)?' >/dev/null ; then
win32_libid_type="x86"
if eval file $1 2>/dev/null | \
grep -E 'ar archive' >/dev/null; then
win32_libid_type="$win32_libid_type archive"
if eval $NM -f posix -A $1 | awk '{print $3}' | grep "I" >/dev/null ; then
win32_libid_type="$win32_libid_type import"
else
win32_libid_type="$win32_libid_type static"
fi
win32_fileres=`file -L $1 2>/dev/null`
case $win32_fileres in
*ar\ archive\ import\ library*) # definitely import
win32_libid_type="x86 archive import"
;;
*ar\ archive*) # could be an import, or static
if eval $OBJDUMP -f $1 | head -n 10 2>/dev/null | \
grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
win32_nmres=`eval $NM -f posix -A $1 | \
sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;}}'`
if test "X$win32_nmres" = "Ximport" ; then
win32_libid_type="x86 archive import"
else
win32_libid_type="x86 archive static"
fi
fi
fi
;;
*DLL*)
win32_libid_type="x86 DLL"
;;
*executable*) # but shell scripts are "executable" too...
case $win32_fileres in
*MS\ Windows\ PE\ Intel*)
win32_libid_type="x86 DLL"
;;
esac
;;
esac
echo $win32_libid_type
}