tUpdate libtool support scripts to most recent version. - vaccinewars - be a doctor and try to vaccinate the world
 (HTM) git clone git://src.adamsgaard.dk/vaccinewars
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 9c6396a30753acd7b3af07108f173bfc0378d681
 (DIR) parent 7923b1f20f82c8133b0940d350ccc8979d5305ca
 (HTM) Author: Ben Webb <ben@salilab.org>
       Date:   Fri, 30 Dec 2005 02:27:26 +0000
       
       Update libtool support scripts to most recent version.
       
       
       Diffstat:
         M config.guess                        |     140 ++++++++++++++++---------------
         M config.sub                          |      67 ++++++++++++++++++++++---------
         M ltmain.sh                           |    3312 ++++++++++++++++++++++---------
       
       3 files changed, 2465 insertions(+), 1054 deletions(-)
       ---
 (DIR) diff --git a/config.guess b/config.guess
       t@@ -3,7 +3,7 @@
        #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
        
       -timestamp='2003-01-10'
       +timestamp='2003-06-17'
        
        # This file is free software; you can redistribute it and/or modify it
        # under the terms of the GNU General Public License as published by
       t@@ -106,6 +106,7 @@ trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
        : ${TMPDIR=/tmp} ;
         { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
         { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
       + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
         { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
        dummy=$tmp/dummy ;
        tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
       t@@ -135,6 +136,13 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
        UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
        UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
        
       +## for Red Hat Linux
       +if test -f /etc/redhat-release ; then
       +    VENDOR=redhat ;
       +else
       +    VENDOR= ;
       +fi
       +
        # Note: order is significant - the case branches are not exclusive.
        
        case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
       t@@ -235,74 +243,56 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            *:OpenBSD:*:*)
                echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
                exit 0 ;;
       -    *:MicroBSD:*:*)
       -        echo ${UNAME_MACHINE}-unknown-microbsd${UNAME_RELEASE}
       -        exit 0 ;;
            alpha:OSF1:*:*)
                if test $UNAME_RELEASE = "V4.0"; then
                        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
                fi
       +        # According to Compaq, /usr/sbin/psrinfo has been available on
       +        # OSF/1 and Tru64 systems produced since 1995.  I hope that
       +        # covers most systems running today.  This code pipes the CPU
       +        # types through head -n 1, so we only detect the type of CPU 0.
       +        ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
       +        case "$ALPHA_CPU_TYPE" in
       +            "EV4 (21064)")
       +                UNAME_MACHINE="alpha" ;;
       +            "EV4.5 (21064)")
       +                UNAME_MACHINE="alpha" ;;
       +            "LCA4 (21066/21068)")
       +                UNAME_MACHINE="alpha" ;;
       +            "EV5 (21164)")
       +                UNAME_MACHINE="alphaev5" ;;
       +            "EV5.6 (21164A)")
       +                UNAME_MACHINE="alphaev56" ;;
       +            "EV5.6 (21164PC)")
       +                UNAME_MACHINE="alphapca56" ;;
       +            "EV5.7 (21164PC)")
       +                UNAME_MACHINE="alphapca57" ;;
       +            "EV6 (21264)")
       +                UNAME_MACHINE="alphaev6" ;;
       +            "EV6.7 (21264A)")
       +                UNAME_MACHINE="alphaev67" ;;
       +            "EV6.8CB (21264C)")
       +                UNAME_MACHINE="alphaev68" ;;
       +            "EV6.8AL (21264B)")
       +                UNAME_MACHINE="alphaev68" ;;
       +            "EV6.8CX (21264D)")
       +                UNAME_MACHINE="alphaev68" ;;
       +            "EV6.9A (21264/EV69A)")
       +                UNAME_MACHINE="alphaev69" ;;
       +            "EV7 (21364)")
       +                UNAME_MACHINE="alphaev7" ;;
       +            "EV7.9 (21364A)")
       +                UNAME_MACHINE="alphaev79" ;;
       +        esac
                # A Vn.n version is a released version.
                # A Tn.n version is a released field test version.
                # A Xn.n version is an unreleased experimental baselevel.
                # 1.2 uses "1.2" for uname -r.
       -        eval $set_cc_for_build
       -        cat <<EOF >$dummy.s
       -        .data
       -\$Lformat:
       -        .byte 37,100,45,37,120,10,0        # "%d-%x\n"
       -
       -        .text
       -        .globl main
       -        .align 4
       -        .ent main
       -main:
       -        .frame \$30,16,\$26,0
       -        ldgp \$29,0(\$27)
       -        .prologue 1
       -        .long 0x47e03d80 # implver \$0
       -        lda \$2,-1
       -        .long 0x47e20c21 # amask \$2,\$1
       -        lda \$16,\$Lformat
       -        mov \$0,\$17
       -        not \$1,\$18
       -        jsr \$26,printf
       -        ldgp \$29,0(\$26)
       -        mov 0,\$16
       -        jsr \$26,exit
       -        .end main
       -EOF
       -        $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null
       -        if test "$?" = 0 ; then
       -                case `$dummy` in
       -                        0-0)
       -                                UNAME_MACHINE="alpha"
       -                                ;;
       -                        1-0)
       -                                UNAME_MACHINE="alphaev5"
       -                                ;;
       -                        1-1)
       -                                UNAME_MACHINE="alphaev56"
       -                                ;;
       -                        1-101)
       -                                UNAME_MACHINE="alphapca56"
       -                                ;;
       -                        2-303)
       -                                UNAME_MACHINE="alphaev6"
       -                                ;;
       -                        2-307)
       -                                UNAME_MACHINE="alphaev67"
       -                                ;;
       -                        2-1307)
       -                                UNAME_MACHINE="alphaev68"
       -                                ;;
       -                        3-1307)
       -                                UNAME_MACHINE="alphaev7"
       -                                ;;
       -                esac
       -        fi
                echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
                exit 0 ;;
       +    Alpha*:OpenVMS:*:*)
       +        echo alpha-hp-vms
       +        exit 0 ;;
            Alpha\ *:Windows_NT*:*)
                # How do we know it's Interix rather than the generic POSIX subsystem?
                # Should we change UNAME_MACHINE based on the output of uname instead
       t@@ -341,6 +331,9 @@ EOF
            NILE*:*:*:dcosx)
                echo pyramid-pyramid-svr4
                exit 0 ;;
       +    DRS?6000:unix:4.0:6*)
       +        echo sparc-icl-nx6
       +        exit 0 ;;
            DRS?6000:UNIX_SV:4.2*:7*)
                case `/usr/bin/uname -p` in
                    sparc) echo sparc-icl-nx7 && exit 0 ;;
       t@@ -765,7 +758,7 @@ EOF
            *:BSD/OS:*:*)
                echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
                exit 0 ;;
       -    *:FreeBSD:*:*)
       +    *:FreeBSD:*:*|*:GNU/FreeBSD:*:*)
                # Determine whether the default compiler uses glibc.
                eval $set_cc_for_build
                sed 's/^        //' << EOF >$dummy.c
       t@@ -788,8 +781,8 @@ EOF
            i*:PW*:*)
                echo ${UNAME_MACHINE}-pc-pw32
                exit 0 ;;
       -    x86:Interix*:3*)
       -        echo i586-pc-interix3
       +    x86:Interix*:[34]*)
       +        echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
                exit 0 ;;
            [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
                echo i${UNAME_MACHINE}-pc-mks
       t@@ -818,8 +811,11 @@ EOF
            arm*:Linux:*:*)
                echo ${UNAME_MACHINE}-unknown-linux-gnu
                exit 0 ;;
       +    cris:Linux:*:*)
       +        echo cris-axis-linux-gnu
       +        exit 0 ;;
            ia64:Linux:*:*)
       -        echo ${UNAME_MACHINE}-unknown-linux-gnu
       +        echo ${UNAME_MACHINE}-${VENDOR:-unknown}-linux-gnu
                exit 0 ;;
            m68*:Linux:*:*)
                echo ${UNAME_MACHINE}-unknown-linux-gnu
       t@@ -863,10 +859,10 @@ EOF
                test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
                ;;
            ppc:Linux:*:*)
       -        echo powerpc-unknown-linux-gnu
       +        echo powerpc-${VENDOR:-unknown}-linux-gnu
                exit 0 ;;
            ppc64:Linux:*:*)
       -        echo powerpc64-unknown-linux-gnu
       +        echo powerpc64-${VENDOR:-unknown}-linux-gnu
                exit 0 ;;
            alpha:Linux:*:*)
                case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
       t@@ -894,7 +890,10 @@ EOF
                echo hppa64-unknown-linux-gnu
                exit 0 ;;
            s390:Linux:*:* | s390x:Linux:*:*)
       -        echo ${UNAME_MACHINE}-ibm-linux
       +        echo ${UNAME_MACHINE}-${VENDOR:-ibm}-linux-gnu
       +        exit 0 ;;
       +    sh64*:Linux:*:*)
       +            echo ${UNAME_MACHINE}-unknown-linux-gnu
                exit 0 ;;
            sh*:Linux:*:*)
                echo ${UNAME_MACHINE}-unknown-linux-gnu
       t@@ -903,7 +902,7 @@ EOF
                echo ${UNAME_MACHINE}-unknown-linux-gnu
                exit 0 ;;
            x86_64:Linux:*:*)
       -        echo x86_64-unknown-linux-gnu
       +        echo x86_64-${VENDOR:-unknown}-linux-gnu
                exit 0 ;;
            i*86:Linux:*:*)
                # The BFD linker knows what the default object file format is, so
       t@@ -955,7 +954,7 @@ EOF
                #endif
        EOF
                eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
       -        test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
       +        test x"${LIBC}" != x && echo "${UNAME_MACHINE}-${VENDOR:-pc}-linux-${LIBC}" && exit 0
                test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
                ;;
            i*86:DYNIX/ptx:4*:*)
       t@@ -1054,7 +1053,7 @@ EOF
                exit 0 ;;
            M68*:*:R3V[567]*:*)
                test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
       -    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
       +    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
                OS_REL=''
                test -r /etc/.relid \
                && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
       t@@ -1210,6 +1209,9 @@ EOF
            *:ITS:*:*)
                echo pdp10-unknown-its
                exit 0 ;;
       +    SEI:*:*:SEIUX)
       +        echo mips-sei-seiux${UNAME_RELEASE}
       +        exit 0 ;;
        esac
        
        #echo '(No uname command or uname output not recognized.)' 1>&2
 (DIR) diff --git a/config.sub b/config.sub
       t@@ -3,7 +3,7 @@
        #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
        #   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
        
       -timestamp='2003-01-03'
       +timestamp='2003-06-18'
        
        # This file is (in principle) common to ALL GNU software.
        # The presence of a machine in this file suggests that SOME GNU software
       t@@ -229,7 +229,7 @@ case $basic_machine in
                | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
                | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
                | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
       -        | clipper \
       +        | c4x | clipper \
                | d10v | d30v | dlx | dsp16xx \
                | fr30 | frv \
                | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
       t@@ -258,11 +258,11 @@ case $basic_machine in
                | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
                | pyramid \
                | s390 | s390x \
       -        | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
       +        | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
                | sh64 | sh64le \
       -        | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
       +        | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
                | strongarm \
       -        | tahoe | thumb | tic80 | tron \
       +        | tahoe | thumb | tic4x | tic80 | tron \
                | v850 | v850e \
                | we32k \
                | x86 | xscale | xstormy16 | xtensa \
       t@@ -297,7 +297,7 @@ case $basic_machine in
                | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
                | avr-* \
                | bs2000-* \
       -        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \
       +        | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
                | clipper-* | cydra-* \
                | d10v-* | d30v-* | dlx-* \
                | elxsi-* \
       t@@ -331,11 +331,13 @@ case $basic_machine in
                | pyramid-* \
                | romp-* | rs6000-* \
                | s390-* | s390x-* \
       -        | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
       +        | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
                | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
                | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
       -        | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
       -        | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \
       +        | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
       +        | tahoe-* | thumb-* \
       +        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
       +        | tron-* \
                | v850-* | v850e-* | vax-* \
                | we32k-* \
                | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
       t@@ -373,6 +375,9 @@ case $basic_machine in
                        basic_machine=a29k-none
                        os=-bsd
                        ;;
       +        amd64)
       +                basic_machine=x86_64-pc
       +                ;;
                amdahl)
                        basic_machine=580-amdahl
                        os=-sysv
       t@@ -768,18 +773,24 @@ case $basic_machine in
                pentiumpro | p6 | 6x86 | athlon | athlon_*)
                        basic_machine=i686-pc
                        ;;
       -        pentiumii | pentium2)
       +        pentiumii | pentium2 | pentiumiii | pentium3)
                        basic_machine=i686-pc
                        ;;
       +        pentium4)
       +                basic_machine=i786-pc
       +                ;;
                pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
                        basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                        ;;
                pentiumpro-* | p6-* | 6x86-* | athlon-*)
                        basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                        ;;
       -        pentiumii-* | pentium2-*)
       +        pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
                        basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                        ;;
       +        pentium4-*)
       +                basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
       +                ;;
                pn)
                        basic_machine=pn-gould
                        ;;
       t@@ -832,6 +843,10 @@ case $basic_machine in
                sb1el)
                        basic_machine=mipsisa64sb1el-unknown
                        ;;
       +        sei)
       +                basic_machine=mips-sei
       +                os=-seiux
       +                ;;
                sequent)
                        basic_machine=i386-sequent
                        ;;
       t@@ -839,6 +854,9 @@ case $basic_machine in
                        basic_machine=sh-hitachi
                        os=-hms
                        ;;
       +        sh64)
       +                basic_machine=sh64-unknown
       +                ;;
                sparclite-wrs | simso-wrs)
                        basic_machine=sparclite-wrs
                        os=-vxworks
       t@@ -913,14 +931,18 @@ case $basic_machine in
                        basic_machine=t90-cray
                        os=-unicos
                        ;;
       -        tic4x | c4x*)
       -                basic_machine=tic4x-unknown
       -                os=-coff
       -                ;;
                tic54x | c54x*)
                        basic_machine=tic54x-unknown
                        os=-coff
                        ;;
       +        tic55x | c55x*)
       +                basic_machine=tic55x-unknown
       +                os=-coff
       +                ;;
       +        tic6x | c6x*)
       +                basic_machine=tic6x-unknown
       +                os=-coff
       +                ;;
                tx39)
                        basic_machine=mipstx39-unknown
                        ;;
       t@@ -1023,13 +1045,13 @@ case $basic_machine in
                we32k)
                        basic_machine=we32k-att
                        ;;
       -        sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
       +        sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
                        basic_machine=sh-unknown
                        ;;
                sh64)
                        basic_machine=sh64-unknown
                        ;;
       -        sparc | sparcv9 | sparcv9b)
       +        sparc | sparcv8 | sparcv9 | sparcv9b)
                        basic_machine=sparc-sun
                        ;;
                cydra)
       t@@ -1114,7 +1136,7 @@ case $os in
                      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
                      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
                      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
       -              | -powermax* | -dnix* | -microbsd*)
       +              | -powermax* | -dnix* | -nx6 | -nx7 | -sei*)
                # Remember, each alternative MUST END IN *, to match a version number.
                        ;;
                -qnx*)
       t@@ -1223,6 +1245,12 @@ case $os in
                -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
                        os=-mint
                        ;;
       +        -aros*)
       +                os=-aros
       +                ;;
       +        -kaos*)
       +                os=-kaos
       +                ;;
                -none)
                        ;;
                *)
       t@@ -1254,6 +1282,9 @@ case $basic_machine in
                arm*-semi)
                        os=-aout
                        ;;
       +        c4x-* | tic4x-*)
       +                os=-coff
       +                ;;
                # This must come before the *-dec entry.
                pdp10-*)
                        os=-tops20
 (DIR) diff --git a/ltmain.sh b/ltmain.sh
       t@@ -1,7 +1,7 @@
        # ltmain.sh - Provide generalized library-building support services.
        # NOTE: Changing this file will not affect anything until you rerun configure.
        #
       -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
       +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
        # Free Software Foundation, Inc.
        # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
        #
       t@@ -17,13 +17,41 @@
        #
        # You should have received a copy of the GNU General Public License
        # along with this program; if not, write to the Free Software
       -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
       +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
        #
        # As a special exception to the GNU General Public License, if you
        # distribute this file as part of a program that contains a
        # configuration script generated by Autoconf, you may include it under
        # the same distribution terms that you use for the rest of that program.
        
       +basename="s,^.*/,,g"
       +
       +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
       +# is ksh but when the shell is invoked as "sh" and the current value of
       +# the _XPG environment variable is not equal to 1 (one), the special
       +# positional parameter $0, within a function call, is the name of the
       +# function.
       +progpath="$0"
       +
       +# The name of this program:
       +progname=`echo "$progpath" | $SED $basename`
       +modename="$progname"
       +
       +# Global variables:
       +EXIT_SUCCESS=0
       +EXIT_FAILURE=1
       +
       +PROGRAM=ltmain.sh
       +PACKAGE=libtool
       +VERSION=1.5.16
       +TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)"
       +
       +# See if we are running on zsh, and set the options which allow our
       +# commands through without removal of \ escapes.
       +if test -n "${ZSH_VERSION+set}" ; then
       +  setopt NO_GLOB_SUBST
       +fi
       +
        # Check that we have a working $echo.
        if test "X$1" = X--no-reexec; then
          # Discard the --no-reexec flag, and continue.
       t@@ -36,7 +64,7 @@ elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
          :
        else
          # Restart under the correct shell, and then maybe $echo will work.
       -  exec $SHELL "$0" --no-reexec ${1+"$@"}
       +  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
        fi
        
        if test "X$1" = X--fallback-echo; then
       t@@ -45,22 +73,9 @@ if test "X$1" = X--fallback-echo; then
          cat <<EOF
        $*
        EOF
       -  exit 0
       +  exit $EXIT_SUCCESS
        fi
        
       -# define SED for historic ltconfig's generated by Libtool 1.3
       -test -z "$SED" && SED=sed
       -
       -# The name of this program.
       -progname=`$echo "$0" | ${SED} 's%^.*/%%'`
       -modename="$progname"
       -
       -# Constants.
       -PROGRAM=ltmain.sh
       -PACKAGE=libtool
       -VERSION=1.4.3
       -TIMESTAMP=" (1.922.2.111 2002/10/23 02:54:36)"
       -
        default_mode=
        help="Try \`$progname --help' for more information."
        magic="%%%MAGIC variable%%%"
       t@@ -72,17 +87,17 @@ rm="rm -f"
        # metacharacters that are still active within double-quoted strings.
        Xsed="${SED}"' -e 1s/^X//'
        sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
       -# test EBCDIC or ASCII                                                         
       -case `echo A|od -x` in                                                         
       - *[Cc]1*) # EBCDIC based system                                                
       -  SP2NL="tr '\100' '\n'"                                                       
       -  NL2SP="tr '\r\n' '\100\100'"                                                 
       -  ;;                                                                           
       - *) # Assume ASCII based system                                                
       -  SP2NL="tr '\040' '\012'"                                                     
       -  NL2SP="tr '\015\012' '\040\040'"                                             
       -  ;;                                                                           
       -esac                                                                           
       +# test EBCDIC or ASCII
       +case `echo A|tr A '\301'` in
       + A) # EBCDIC based system
       +  SP2NL="tr '\100' '\n'"
       +  NL2SP="tr '\r\n' '\100\100'"
       +  ;;
       + *) # Assume ASCII based system
       +  SP2NL="tr '\040' '\012'"
       +  NL2SP="tr '\015\012' '\040\040'"
       +  ;;
       +esac
        
        # NLS nuisances.
        # Only set LANG and LC_ALL to C if already set.
       t@@ -97,12 +112,14 @@ if test "${LANG+set}" = set; then
        fi
        
        # Make sure IFS has a sensible default
       -: ${IFS="         "}
       +lt_nl='
       +'
       +IFS="         $lt_nl"
        
        if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
       -  echo "$modename: not configured to build any kind of library" 1>&2
       -  echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
       -  exit 1
       +  $echo "$modename: not configured to build any kind of library" 1>&2
       +  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
       +  exit $EXIT_FAILURE
        fi
        
        # Global variables.
       t@@ -116,9 +133,227 @@ show_help=
        execute_dlfiles=
        lo2o="s/\\.lo\$/.${objext}/"
        o2lo="s/\\.${objext}\$/.lo/"
       +quote_scanset='[[~#^*{};<>?'"'"'         ]'
       +
       +#####################################
       +# Shell function definitions:
       +# This seems to be the best place for them
       +
       +# func_win32_libid arg
       +# return the library type of file 'arg'
       +#
       +# Need a lot of goo to handle *both* DLLs and import libs
       +# Has to be a shell function in order to 'eat' the argument
       +# that is supplied when $file_magic_command is called.
       +func_win32_libid ()
       +{
       +  win32_libid_type="unknown"
       +  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 | $SED -e '10q' 2>/dev/null | \
       +      $EGREP -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
       +    ;;
       +  *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
       +}
       +
       +
       +# func_infer_tag arg
       +# Infer tagged configuration to use if any are available and
       +# if one wasn't chosen via the "--tag" command line option.
       +# Only attempt this if the compiler in the base compile
       +# command doesn't match the default compiler.
       +# arg is usually of the form 'gcc ...'
       +func_infer_tag ()
       +{
       +    if test -n "$available_tags" && test -z "$tagname"; then
       +      CC_quoted=
       +      for arg in $CC; do
       +        case $arg in
       +          *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +          arg="\"$arg\""
       +          ;;
       +        esac
       +        CC_quoted="$CC_quoted $arg"
       +      done
       +      case $@ in
       +      # Blanks in the command may have been stripped by the calling shell,
       +      # but not from the CC environment variable when configure was run.
       +      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
       +      # Blanks at the start of $base_compile will cause this to fail
       +      # if we don't check for them as well.
       +      *)
       +        for z in $available_tags; do
       +          if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
       +            # Evaluate the configuration.
       +            eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
       +            CC_quoted=
       +            for arg in $CC; do
       +            # Double-quote args containing other shell metacharacters.
       +            case $arg in
       +              *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +              arg="\"$arg\""
       +              ;;
       +            esac
       +            CC_quoted="$CC_quoted $arg"
       +          done
       +            case "$@ " in
       +              " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
       +              # The compiler in the base compile command matches
       +              # the one in the tagged configuration.
       +              # Assume this is the tagged configuration we want.
       +              tagname=$z
       +              break
       +              ;;
       +            esac
       +          fi
       +        done
       +        # If $tagname still isn't set, then no tagged configuration
       +        # was found and let the user know that the "--tag" command
       +        # line option must be used.
       +        if test -z "$tagname"; then
       +          $echo "$modename: unable to infer tagged configuration"
       +          $echo "$modename: specify a tag with \`--tag'" 1>&2
       +          exit $EXIT_FAILURE
       +#        else
       +#          $echo "$modename: using $tagname tagged configuration"
       +        fi
       +        ;;
       +      esac
       +    fi
       +}
       +
       +
       +# func_extract_an_archive dir oldlib
       +func_extract_an_archive ()
       +{
       +    f_ex_an_ar_dir="$1"; shift
       +    f_ex_an_ar_oldlib="$1"
       +
       +    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
       +    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
       +    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
       +     :
       +    else
       +      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
       +      exit $EXIT_FAILURE
       +    fi
       +}
       +
       +# func_extract_archives gentop oldlib ...
       +func_extract_archives ()
       +{
       +    my_gentop="$1"; shift
       +    my_oldlibs=${1+"$@"}
       +    my_oldobjs=""
       +    my_xlib=""
       +    my_xabs=""
       +    my_xdir=""
       +    my_status=""
       +
       +    $show "${rm}r $my_gentop"
       +    $run ${rm}r "$my_gentop"
       +    $show "$mkdir $my_gentop"
       +    $run $mkdir "$my_gentop"
       +    my_status=$?
       +    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
       +      exit $my_status
       +    fi
       +
       +    for my_xlib in $my_oldlibs; do
       +      # Extract the objects.
       +      case $my_xlib in
       +        [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
       +        *) my_xabs=`pwd`"/$my_xlib" ;;
       +      esac
       +      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
       +      my_xdir="$my_gentop/$my_xlib"
       +
       +      $show "${rm}r $my_xdir"
       +      $run ${rm}r "$my_xdir"
       +      $show "$mkdir $my_xdir"
       +      $run $mkdir "$my_xdir"
       +      status=$?
       +      if test "$status" -ne 0 && test ! -d "$my_xdir"; then
       +        exit $status
       +      fi
       +      case $host in
       +      *-darwin*)
       +        $show "Extracting $my_xabs"
       +        # Do not bother doing anything if just a dry run
       +        if test -z "$run"; then
       +          darwin_orig_dir=`pwd`
       +          cd $my_xdir || exit $?
       +          darwin_archive=$my_xabs
       +          darwin_curdir=`pwd`
       +          darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
       +          darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
       +          if test -n "$darwin_arches"; then 
       +            darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
       +            darwin_arch=
       +            $show "$darwin_base_archive has multiple architectures $darwin_arches"
       +            for darwin_arch in  $darwin_arches ; do
       +              mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
       +              lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
       +              cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
       +              func_extract_an_archive "`pwd`" "${darwin_base_archive}"
       +              cd "$darwin_curdir"
       +              $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
       +            done # $darwin_arches
       +      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
       +            darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
       +            darwin_file=
       +            darwin_files=
       +            for darwin_file in $darwin_filelist; do
       +              darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
       +              lipo -create -output "$darwin_file" $darwin_files
       +            done # $darwin_filelist
       +            ${rm}r unfat-$$
       +            cd "$darwin_orig_dir"
       +          else
       +            cd "$darwin_orig_dir"
       +             func_extract_an_archive "$my_xdir" "$my_xabs"
       +          fi # $darwin_arches
       +        fi # $run
       +      ;;
       +      *)
       +        func_extract_an_archive "$my_xdir" "$my_xabs"
       +        ;;
       +      esac
       +      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
       +    done
       +    func_extract_archives_result="$my_oldobjs"
       +}
       +# End of Shell function definitions
       +#####################################
       +
       +# Darwin sucks
       +eval std_shrext=\"$shrext_cmds\"
        
        # Parse our command line options once, thoroughly.
       -while test $# -gt 0
       +while test "$#" -gt 0
        do
          arg="$1"
          shift
       t@@ -134,6 +369,34 @@ do
            execute_dlfiles)
              execute_dlfiles="$execute_dlfiles $arg"
              ;;
       +    tag)
       +      tagname="$arg"
       +      preserve_args="${preserve_args}=$arg"
       +
       +      # Check whether tagname contains only valid characters
       +      case $tagname in
       +      *[!-_A-Za-z0-9,/]*)
       +        $echo "$progname: invalid tag name: $tagname" 1>&2
       +        exit $EXIT_FAILURE
       +        ;;
       +      esac
       +
       +      case $tagname in
       +      CC)
       +        # Don't test for the "default" C tag, as we know, it's there, but
       +        # not specially marked.
       +        ;;
       +      *)
       +        if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
       +          taglist="$taglist $tagname"
       +          # Evaluate the configuration.
       +          eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
       +        else
       +          $echo "$progname: ignoring unknown tag $tagname" 1>&2
       +        fi
       +        ;;
       +      esac
       +      ;;
            *)
              eval "$prev=\$arg"
              ;;
       t@@ -151,18 +414,27 @@ do
            ;;
        
          --version)
       -    echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
       -    exit 0
       +    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
       +    $echo
       +    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
       +    $echo "This is free software; see the source for copying conditions.  There is NO"
       +    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
       +    exit $?
            ;;
        
          --config)
       -    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
       -    exit 0
       +    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
       +    # Now print the configurations for the tags.
       +    for tagname in $taglist; do
       +      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
       +    done
       +    exit $?
            ;;
        
          --debug)
       -    echo "$progname: enabling shell trace mode"
       +    $echo "$progname: enabling shell trace mode"
            set -x
       +    preserve_args="$preserve_args $arg"
            ;;
        
          --dry-run | -n)
       t@@ -170,18 +442,18 @@ do
            ;;
        
          --features)
       -    echo "host: $host"
       +    $echo "host: $host"
            if test "$build_libtool_libs" = yes; then
       -      echo "enable shared libraries"
       +      $echo "enable shared libraries"
            else
       -      echo "disable shared libraries"
       +      $echo "disable shared libraries"
            fi
            if test "$build_old_libs" = yes; then
       -      echo "enable static libraries"
       +      $echo "enable static libraries"
            else
       -      echo "disable static libraries"
       +      $echo "disable static libraries"
            fi
       -    exit 0
       +    exit $?
            ;;
        
          --finish) mode="finish" ;;
       t@@ -193,6 +465,15 @@ do
        
          --quiet | --silent)
            show=:
       +    preserve_args="$preserve_args $arg"
       +    ;;
       +
       +  --tag) prevopt="--tag" prev=tag ;;
       +  --tag=*)
       +    set tag "$optarg" ${1+"$@"}
       +    shift
       +    prev=tag
       +    preserve_args="$preserve_args --tag"
            ;;
        
          -dlopen)
       t@@ -203,7 +484,7 @@ do
          -*)
            $echo "$modename: unrecognized option \`$arg'" 1>&2
            $echo "$help" 1>&2
       -    exit 1
       +    exit $EXIT_FAILURE
            ;;
        
          *)
       t@@ -216,7 +497,7 @@ done
        if test -n "$prevopt"; then
          $echo "$modename: option \`$prevopt' requires an argument" 1>&2
          $echo "$help" 1>&2
       -  exit 1
       +  exit $EXIT_FAILURE
        fi
        
        # If this variable is set in any of the actions, the command in it
       t@@ -228,8 +509,10 @@ if test -z "$show_help"; then
        
          # Infer the operation mode.
          if test -z "$mode"; then
       +    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
       +    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
            case $nonopt in
       -    *cc | *++ | gcc* | *-gcc* | xlc*)
       +    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
              mode=link
              for arg
              do
       t@@ -270,7 +553,7 @@ if test -z "$show_help"; then
          if test -n "$execute_dlfiles" && test "$mode" != execute; then
            $echo "$modename: unrecognized option \`-dlopen'" 1>&2
            $echo "$help" 1>&2
       -    exit 1
       +    exit $EXIT_FAILURE
          fi
        
          # Change the help message to a mode-specific one.
       t@@ -284,158 +567,127 @@ if test -z "$show_help"; then
            modename="$modename: compile"
            # Get the compilation command and the source file.
            base_compile=
       -    prev=
       -    lastarg=
       -    srcfile="$nonopt"
       +    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
       +    suppress_opt=yes
            suppress_output=
       +    arg_mode=normal
       +    libobj=
       +    later=
        
       -    user_target=no
            for arg
            do
       -      case $prev in
       -      "") ;;
       -      xcompiler)
       -        # Aesthetically quote the previous argument.
       -        prev=
       -        lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
       -
       -        case $arg in
       -        # Double-quote args containing other shell metacharacters.
       -        # Many Bourne shells cannot handle close brackets correctly
       -        # in scan sets, so we specify it separately.
       -        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       -          arg="\"$arg\""
       -          ;;
       -        esac
       +      case "$arg_mode" in
       +      arg  )
       +        # do not "continue".  Instead, add this to base_compile
       +        lastarg="$arg"
       +        arg_mode=normal
       +        ;;
        
       -        # Add the previous argument to base_compile.
       -        if test -z "$base_compile"; then
       -          base_compile="$lastarg"
       -        else
       -          base_compile="$base_compile $lastarg"
       -        fi
       +      target )
       +        libobj="$arg"
       +        arg_mode=normal
                continue
                ;;
       -      esac
        
       -      # Accept any command-line options.
       -      case $arg in
       -      -o)
       -        if test "$user_target" != "no"; then
       -          $echo "$modename: you cannot specify \`-o' more than once" 1>&2
       -          exit 1
       -        fi
       -        user_target=next
       -        ;;
       +      normal )
       +        # Accept any command-line options.
       +        case $arg in
       +        -o)
       +          if test -n "$libobj" ; then
       +            $echo "$modename: you cannot specify \`-o' more than once" 1>&2
       +            exit $EXIT_FAILURE
       +          fi
       +          arg_mode=target
       +          continue
       +          ;;
        
       -      -static)
       -        build_old_libs=yes
       -        continue
       -        ;;
       +        -static | -prefer-pic | -prefer-non-pic)
       +          later="$later $arg"
       +          continue
       +          ;;
        
       -      -prefer-pic)
       -        pic_mode=yes
       -        continue
       -        ;;
       +        -no-suppress)
       +          suppress_opt=no
       +          continue
       +          ;;
        
       -      -prefer-non-pic)
       -        pic_mode=no
       -        continue
       -        ;;
       +        -Xcompiler)
       +          arg_mode=arg  #  the next one goes into the "base_compile" arg list
       +          continue      #  The current "srcfile" will either be retained or
       +          ;;            #  replaced later.  I would guess that would be a bug.
        
       -      -Xcompiler)
       -        prev=xcompiler
       -        continue
       -        ;;
       +        -Wc,*)
       +          args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
       +          lastarg=
       +          save_ifs="$IFS"; IFS=','
       +           for arg in $args; do
       +            IFS="$save_ifs"
        
       -      -Wc,*)
       -        args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
       -        lastarg=
       -        save_ifs="$IFS"; IFS=','
       -        for arg in $args; do
       +            # Double-quote args containing other shell metacharacters.
       +            # Many Bourne shells cannot handle close brackets correctly
       +            # in scan sets, so we specify it separately.
       +            case $arg in
       +              *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +              arg="\"$arg\""
       +              ;;
       +            esac
       +            lastarg="$lastarg $arg"
       +          done
                  IFS="$save_ifs"
       +          lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
        
       -          # Double-quote args containing other shell metacharacters.
       -          # Many Bourne shells cannot handle close brackets correctly
       -          # in scan sets, so we specify it separately.
       -          case $arg in
       -            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       -            arg="\"$arg\""
       -            ;;
       -          esac
       -          lastarg="$lastarg $arg"
       -        done
       -        IFS="$save_ifs"
       -        lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
       -
       -        # Add the arguments to base_compile.
       -        if test -z "$base_compile"; then
       -          base_compile="$lastarg"
       -        else
       +          # Add the arguments to base_compile.
                  base_compile="$base_compile $lastarg"
       -        fi
       -        continue
       -        ;;
       -      esac
       +          continue
       +          ;;
        
       -      case $user_target in
       -      next)
       -        # The next one is the -o target name
       -        user_target=yes
       -        continue
       -        ;;
       -      yes)
       -        # We got the output file
       -        user_target=set
       -        libobj="$arg"
       -        continue
       +        * )
       +          # Accept the current argument as the source file.
       +          # The previous "srcfile" becomes the current argument.
       +          #
       +          lastarg="$srcfile"
       +          srcfile="$arg"
       +          ;;
       +        esac  #  case $arg
                ;;
       -      esac
       -
       -      # Accept the current argument as the source file.
       -      lastarg="$srcfile"
       -      srcfile="$arg"
       +      esac    #  case $arg_mode
        
              # Aesthetically quote the previous argument.
       -
       -      # Backslashify any backslashes, double quotes, and dollar signs.
       -      # These are the only characters that are still specially
       -      # interpreted inside of double-quoted scrings.
              lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
        
       +      case $lastarg in
              # Double-quote args containing other shell metacharacters.
              # Many Bourne shells cannot handle close brackets correctly
       -      # in scan sets, so we specify it separately.
       -      case $lastarg in
       -      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +      # in scan sets, and some SunOS ksh mistreat backslash-escaping
       +      # in scan sets (worked around with variable expansion),
       +      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
       +      # at all, so we specify them separately.
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                lastarg="\"$lastarg\""
                ;;
              esac
        
       -      # Add the previous argument to base_compile.
       -      if test -z "$base_compile"; then
       -        base_compile="$lastarg"
       -      else
       -        base_compile="$base_compile $lastarg"
       -      fi
       -    done
       +      base_compile="$base_compile $lastarg"
       +    done # for arg
        
       -    case $user_target in
       -    set)
       +    case $arg_mode in
       +    arg)
       +      $echo "$modename: you must specify an argument for -Xcompile"
       +      exit $EXIT_FAILURE
              ;;
       -    no)
       -      # Get the name of the library object.
       -      libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
       +    target)
       +      $echo "$modename: you must specify a target with \`-o'" 1>&2
       +      exit $EXIT_FAILURE
              ;;
            *)
       -      $echo "$modename: you must specify a target with \`-o'" 1>&2
       -      exit 1
       +      # Get the name of the library object.
       +      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
              ;;
            esac
        
            # Recognize several different file suffixes.
            # If the user specifies -o file.o, it is replaced with file.lo
       -    xform='[cCFSfmso]'
       +    xform='[cCFSifmso]'
            case $libobj in
            *.ada) xform=ada ;;
            *.adb) xform=adb ;;
       t@@ -443,10 +695,13 @@ if test -z "$show_help"; then
            *.asm) xform=asm ;;
            *.c++) xform=c++ ;;
            *.cc) xform=cc ;;
       +    *.ii) xform=ii ;;
       +    *.class) xform=class ;;
            *.cpp) xform=cpp ;;
            *.cxx) xform=cxx ;;
            *.f90) xform=f90 ;;
            *.for) xform=for ;;
       +    *.java) xform=java ;;
            esac
        
            libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
       t@@ -455,25 +710,64 @@ if test -z "$show_help"; then
            *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
            *)
              $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
              ;;
            esac
        
       +    func_infer_tag $base_compile
       +
       +    for arg in $later; do
       +      case $arg in
       +      -static)
       +        build_old_libs=yes
       +        continue
       +        ;;
       +
       +      -prefer-pic)
       +        pic_mode=yes
       +        continue
       +        ;;
       +
       +      -prefer-non-pic)
       +        pic_mode=no
       +        continue
       +        ;;
       +      esac
       +    done
       +
       +    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
       +    case $qlibobj in
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +        qlibobj="\"$qlibobj\"" ;;
       +    esac
       +    if test "X$libobj" != "X$qlibobj"; then
       +        $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
       +        exit $EXIT_FAILURE
       +    fi
       +    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
       +    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
       +    if test "X$xdir" = "X$obj"; then
       +      xdir=
       +    else
       +      xdir=$xdir/
       +    fi
       +    lobj=${xdir}$objdir/$objname
       +
            if test -z "$base_compile"; then
              $echo "$modename: you must specify a compilation command" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            # Delete any leftover library objects.
            if test "$build_old_libs" = yes; then
       -      removelist="$obj $libobj"
       +      removelist="$obj $lobj $libobj ${libobj}T"
            else
       -      removelist="$libobj"
       +      removelist="$lobj $libobj ${libobj}T"
            fi
        
            $run $rm $removelist
       -    trap "$run $rm $removelist; exit 1" 1 2 15
       +    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
        
            # On Cygwin there's no "real" PIC flag so we must build both object types
            case $host_os in
       t@@ -492,8 +786,9 @@ if test -z "$show_help"; then
              output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
              lockfile="$output_obj.lock"
              removelist="$removelist $output_obj $lockfile"
       -      trap "$run $rm $removelist; exit 1" 1 2 15
       +      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
            else
       +      output_obj=
              need_locks=no
              lockfile=
            fi
       t@@ -501,13 +796,13 @@ if test -z "$show_help"; then
            # Lock this critical section if it is needed
            # We use this script file to make the link, it avoids creating a new file
            if test "$need_locks" = yes; then
       -      until $run ln "$0" "$lockfile" 2>/dev/null; do
       +      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
                $show "Waiting for $lockfile to be removed"
                sleep 2
              done
            elif test "$need_locks" = warn; then
              if test -f "$lockfile"; then
       -        echo "\
       +        $echo "\
        *** ERROR, $lockfile exists and contains:
        `cat $lockfile 2>/dev/null`
        
       t@@ -519,14 +814,33 @@ avoid parallel builds (make -j) in this platform, or get a better
        compiler."
        
                $run $rm $removelist
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
       -      echo $srcfile > "$lockfile"
       +      $echo "$srcfile" > "$lockfile"
            fi
        
            if test -n "$fix_srcfile_path"; then
              eval srcfile=\"$fix_srcfile_path\"
            fi
       +    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
       +    case $qsrcfile in
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +      qsrcfile="\"$qsrcfile\"" ;;
       +    esac
       +
       +    $run $rm "$libobj" "${libobj}T"
       +
       +    # Create a libtool object file (analogous to a ".la" file),
       +    # but don't create it if we're doing a dry run.
       +    test -z "$run" && cat > ${libobj}T <<EOF
       +# $libobj - a libtool object file
       +# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
       +#
       +# Please DO NOT delete this file!
       +# It is necessary for linking the library.
       +
       +# Name of the PIC object.
       +EOF
        
            # Only build a PIC object if we are building libtool libraries.
            if test "$build_libtool_libs" = yes; then
       t@@ -534,53 +848,38 @@ compiler."
              fbsd_hideous_sh_bug=$base_compile
        
              if test "$pic_mode" != no; then
       -        # All platforms use -DPIC, to notify preprocessed assembler code.
       -        command="$base_compile $srcfile $pic_flag -DPIC"
       +        command="$base_compile $qsrcfile $pic_flag"
              else
                # Don't build PIC code
       -        command="$base_compile $srcfile"
       +        command="$base_compile $qsrcfile"
              fi
       -      if test "$build_old_libs" = yes; then
       -        lo_libobj="$libobj"
       -        dir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
       -        if test "X$dir" = "X$libobj"; then
       -          dir="$objdir"
       -        else
       -          dir="$dir/$objdir"
       -        fi
       -        libobj="$dir/"`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
        
       -        if test -d "$dir"; then
       -          $show "$rm $libobj"
       -          $run $rm $libobj
       -        else
       -          $show "$mkdir $dir"
       -          $run $mkdir $dir
       -          status=$?
       -          if test $status -ne 0 && test ! -d $dir; then
       -            exit $status
       -          fi
       +      if test ! -d "${xdir}$objdir"; then
       +        $show "$mkdir ${xdir}$objdir"
       +        $run $mkdir ${xdir}$objdir
       +        status=$?
       +        if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
       +          exit $status
                fi
              fi
       -      if test "$compiler_o_lo" = yes; then
       -        output_obj="$libobj"
       -        command="$command -o $output_obj"
       -      elif test "$compiler_c_o" = yes; then
       -        output_obj="$obj"
       -        command="$command -o $output_obj"
       +
       +      if test -z "$output_obj"; then
       +        # Place PIC objects in $objdir
       +        command="$command -o $lobj"
              fi
        
       -      $run $rm "$output_obj"
       +      $run $rm "$lobj" "$output_obj"
       +
              $show "$command"
              if $run eval "$command"; then :
              else
                test -n "$output_obj" && $run $rm $removelist
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
        
              if test "$need_locks" = warn &&
       -         test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
       -        echo "\
       +         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
       +        $echo "\
        *** ERROR, $lockfile contains:
        `cat $lockfile 2>/dev/null`
        
       t@@ -595,13 +894,13 @@ avoid parallel builds (make -j) in this platform, or get a better
        compiler."
        
                $run $rm $removelist
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
        
              # Just move the object if needed, then go on to compile the next one
       -      if test x"$output_obj" != x"$libobj"; then
       -        $show "$mv $output_obj $libobj"
       -        if $run $mv $output_obj $libobj; then :
       +      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
       +        $show "$mv $output_obj $lobj"
       +        if $run $mv $output_obj $lobj; then :
                else
                  error=$?
                  $run $rm $removelist
       t@@ -609,77 +908,50 @@ compiler."
                fi
              fi
        
       -      # If we have no pic_flag, then copy the object into place and finish.
       -      if (test -z "$pic_flag" || test "$pic_mode" != default) &&
       -         test "$build_old_libs" = yes; then
       -        # Rename the .lo from within objdir to obj
       -        if test -f $obj; then
       -          $show $rm $obj
       -          $run $rm $obj
       -        fi
       +      # Append the name of the PIC object to the libtool object file.
       +      test -z "$run" && cat >> ${libobj}T <<EOF
       +pic_object='$objdir/$objname'
        
       -        $show "$mv $libobj $obj"
       -        if $run $mv $libobj $obj; then :
       -        else
       -          error=$?
       -          $run $rm $removelist
       -          exit $error
       -        fi
       +EOF
        
       -        xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
       -        if test "X$xdir" = "X$obj"; then
       -          xdir="."
       -        else
       -          xdir="$xdir"
       -        fi
       -        baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"`
       -        libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
       -        # Now arrange that obj and lo_libobj become the same file
       -        $show "(cd $xdir && $LN_S $baseobj $libobj)"
       -        if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then
       -          # Unlock the critical section if it was locked
       -          if test "$need_locks" != no; then
       -            $run $rm "$lockfile"
       -          fi
       -          exit 0
       -        else
       -          error=$?
       -          $run $rm $removelist
       -          exit $error
       -        fi
       +      # Allow error messages only from the first compilation.
       +      if test "$suppress_opt" = yes; then
       +        suppress_output=' >/dev/null 2>&1'
              fi
       +    else
       +      # No PIC object so indicate it doesn't exist in the libtool
       +      # object file.
       +      test -z "$run" && cat >> ${libobj}T <<EOF
       +pic_object=none
        
       -      # Allow error messages only from the first compilation.
       -      suppress_output=' >/dev/null 2>&1'
       +EOF
            fi
        
            # Only build a position-dependent object if we build old libraries.
            if test "$build_old_libs" = yes; then
              if test "$pic_mode" != yes; then
                # Don't build PIC code
       -        command="$base_compile $srcfile"
       +        command="$base_compile $qsrcfile"
              else
       -        # All platforms use -DPIC, to notify preprocessed assembler code.
       -        command="$base_compile $srcfile $pic_flag -DPIC"
       +        command="$base_compile $qsrcfile $pic_flag"
              fi
              if test "$compiler_c_o" = yes; then
                command="$command -o $obj"
       -        output_obj="$obj"
              fi
        
              # Suppress compiler output if we already did a PIC compilation.
              command="$command$suppress_output"
       -      $run $rm "$output_obj"
       +      $run $rm "$obj" "$output_obj"
              $show "$command"
              if $run eval "$command"; then :
              else
                $run $rm $removelist
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
        
              if test "$need_locks" = warn &&
       -         test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then
       -        echo "\
       +         test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
       +        $echo "\
        *** ERROR, $lockfile contains:
        `cat $lockfile 2>/dev/null`
        
       t@@ -694,11 +966,11 @@ avoid parallel builds (make -j) in this platform, or get a better
        compiler."
        
                $run $rm $removelist
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
        
              # Just move the object if needed
       -      if test x"$output_obj" != x"$obj"; then
       +      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
                $show "$mv $output_obj $obj"
                if $run $mv $output_obj $obj; then :
                else
       t@@ -708,29 +980,31 @@ compiler."
                fi
              fi
        
       -      # Create an invalid libtool object if no PIC, so that we do not
       -      # accidentally link it into a program.
       -      if test "$build_libtool_libs" != yes; then
       -        $show "echo timestamp > $libobj"
       -        $run eval "echo timestamp > \$libobj" || exit $?
       -      else
       -        # Move the .lo from within objdir
       -        $show "$mv $libobj $lo_libobj"
       -        if $run $mv $libobj $lo_libobj; then :
       -        else
       -          error=$?
       -          $run $rm $removelist
       -          exit $error
       -        fi
       -      fi
       +      # Append the name of the non-PIC object the libtool object file.
       +      # Only append if the libtool object file exists.
       +      test -z "$run" && cat >> ${libobj}T <<EOF
       +# Name of the non-PIC object.
       +non_pic_object='$objname'
       +
       +EOF
       +    else
       +      # Append the name of the non-PIC object the libtool object file.
       +      # Only append if the libtool object file exists.
       +      test -z "$run" && cat >> ${libobj}T <<EOF
       +# Name of the non-PIC object.
       +non_pic_object=none
       +
       +EOF
            fi
        
       +    $run $mv "${libobj}T" "${libobj}"
       +
            # Unlock the critical section if it was locked
            if test "$need_locks" != no; then
              $run $rm "$lockfile"
            fi
        
       -    exit 0
       +    exit $EXIT_SUCCESS
            ;;
        
          # libtool link mode
       t@@ -741,7 +1015,7 @@ compiler."
              # It is impossible to link a dll without this setting, and
              # we shouldn't force the makefile maintainer to figure out
              # which system we are compiling for in order to pass an extra
       -      # flag for every libtool invokation.
       +      # flag for every libtool invocation.
              # allow_undefined=no
        
              # FIXME: Unfortunately, there are problems with the above when trying
       t@@ -756,6 +1030,7 @@ compiler."
              ;;
            esac
            libtool_args="$nonopt"
       +    base_compile="$nonopt $@"
            compile_command="$nonopt"
            finalize_command="$nonopt"
        
       t@@ -786,6 +1061,8 @@ compiler."
            module=no
            no_install=no
            objs=
       +    non_pic_objects=
       +    precious_files_regex=
            prefer_static_libs=no
            preload=no
            prev=
       t@@ -797,6 +1074,9 @@ compiler."
            temp_rpath=
            thread_safe=no
            vinfo=
       +    vinfo_number=no
       +
       +    func_infer_tag $base_compile
        
            # We need to know -static, to get the right output filenames.
            for arg
       t@@ -827,11 +1107,11 @@ compiler."
            test -n "$old_archive_from_new_cmds" && build_old_libs=yes
        
            # Go through the arguments, transforming them on the way.
       -    while test $# -gt 0; do
       +    while test "$#" -gt 0; do
              arg="$1"
              shift
              case $arg in
       -      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
                ;;
              *) qarg=$arg ;;
       t@@ -892,7 +1172,7 @@ compiler."
                  export_symbols="$arg"
                  if test ! -f "$arg"; then
                    $echo "$modename: symbol file \`$arg' does not exist"
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
                  prev=
                  continue
       t@@ -902,23 +1182,135 @@ compiler."
                  prev=
                  continue
                  ;;
       -        inst_prefix)
       +        inst_prefix)
                  inst_prefix_dir="$arg"
                  prev=
                  continue
                  ;;
       +        precious_regex)
       +          precious_files_regex="$arg"
       +          prev=
       +          continue
       +          ;;
                release)
                  release="-$arg"
                  prev=
                  continue
                  ;;
       +        objectlist)
       +          if test -f "$arg"; then
       +            save_arg=$arg
       +            moreargs=
       +            for fil in `cat $save_arg`
       +            do
       +#              moreargs="$moreargs $fil"
       +              arg=$fil
       +              # A libtool-controlled object.
       +
       +              # Check to see that this really is a libtool object.
       +              if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +                pic_object=
       +                non_pic_object=
       +
       +                # Read the .lo file
       +                # If there is no directory component, then add one.
       +                case $arg in
       +                */* | *\\*) . $arg ;;
       +                *) . ./$arg ;;
       +                esac
       +
       +                if test -z "$pic_object" || \
       +                   test -z "$non_pic_object" ||
       +                   test "$pic_object" = none && \
       +                   test "$non_pic_object" = none; then
       +                  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
       +                  exit $EXIT_FAILURE
       +                fi
       +
       +                # Extract subdirectory from the argument.
       +                xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
       +                if test "X$xdir" = "X$arg"; then
       +                  xdir=
       +                else
       +                  xdir="$xdir/"
       +                fi
       +
       +                if test "$pic_object" != none; then
       +                  # Prepend the subdirectory the object is found in.
       +                  pic_object="$xdir$pic_object"
       +
       +                  if test "$prev" = dlfiles; then
       +                    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
       +                      dlfiles="$dlfiles $pic_object"
       +                      prev=
       +                      continue
       +                    else
       +                      # If libtool objects are unsupported, then we need to preload.
       +                      prev=dlprefiles
       +                    fi
       +                  fi
       +
       +                  # CHECK ME:  I think I busted this.  -Ossama
       +                  if test "$prev" = dlprefiles; then
       +                    # Preload the old-style object.
       +                    dlprefiles="$dlprefiles $pic_object"
       +                    prev=
       +                  fi
       +
       +                  # A PIC object.
       +                  libobjs="$libobjs $pic_object"
       +                  arg="$pic_object"
       +                fi
       +
       +                # Non-PIC object.
       +                if test "$non_pic_object" != none; then
       +                  # Prepend the subdirectory the object is found in.
       +                  non_pic_object="$xdir$non_pic_object"
       +
       +                  # A standard non-PIC object
       +                  non_pic_objects="$non_pic_objects $non_pic_object"
       +                  if test -z "$pic_object" || test "$pic_object" = none ; then
       +                    arg="$non_pic_object"
       +                  fi
       +                fi
       +              else
       +                # Only an error if not doing a dry-run.
       +                if test -z "$run"; then
       +                  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
       +                  exit $EXIT_FAILURE
       +                else
       +                  # Dry-run case.
       +
       +                  # Extract subdirectory from the argument.
       +                  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
       +                  if test "X$xdir" = "X$arg"; then
       +                    xdir=
       +                  else
       +                    xdir="$xdir/"
       +                  fi
       +
       +                  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
       +                  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
       +                  libobjs="$libobjs $pic_object"
       +                  non_pic_objects="$non_pic_objects $non_pic_object"
       +                fi
       +              fi
       +            done
       +          else
       +            $echo "$modename: link input file \`$save_arg' does not exist"
       +            exit $EXIT_FAILURE
       +          fi
       +          arg=$save_arg
       +          prev=
       +          continue
       +          ;;
                rpath | xrpath)
                  # We need an absolute path.
                  case $arg in
                  [\\/]* | [A-Za-z]:[\\/]*) ;;
                  *)
                    $echo "$modename: only absolute run-paths are allowed" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                    ;;
                  esac
                  if test "$prev" = rpath; then
       t@@ -950,13 +1342,31 @@ compiler."
                  finalize_command="$finalize_command $wl$qarg"
                  continue
                  ;;
       +        xcclinker)
       +          linker_flags="$linker_flags $qarg"
       +          compiler_flags="$compiler_flags $qarg"
       +          prev=
       +          compile_command="$compile_command $qarg"
       +          finalize_command="$finalize_command $qarg"
       +          continue
       +          ;;
       +        shrext)
       +            shrext_cmds="$arg"
       +          prev=
       +          continue
       +          ;;
       +        darwin_framework)
       +          compiler_flags="$compiler_flags $arg"
       +          prev=
       +          continue
       +          ;;
                *)
                  eval "$prev=\"\$arg\""
                  prev=
                  continue
                  ;;
                esac
       -      fi # test -n $prev
       +      fi # test -n "$prev"
        
              prevarg="$arg"
        
       t@@ -998,7 +1408,7 @@ compiler."
              -export-symbols | -export-symbols-regex)
                if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
                  $echo "$modename: more than one -exported-symbols argument is not allowed"
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
                if test "X$arg" = "X-export-symbols"; then
                  prev=expsyms
       t@@ -1008,6 +1418,12 @@ compiler."
                continue
                ;;
        
       +      -framework)
       +        prev=darwin_framework
       +        compiler_flags="$compiler_flags $arg"
       +        continue
       +        ;;
       +
              -inst-prefix-dir)
                prev=inst_prefix
                continue
       t@@ -1017,7 +1433,7 @@ compiler."
              # so, if we see these flags be careful not to treat them like -L
              -L[A-Z][A-Z]*:*)
                case $with_gcc/$host in
       -        no/*-*-irix* | no/*-*-nonstopux*)
       +        no/*-*-irix* | /*-*-irix*)
                  compile_command="$compile_command $arg"
                  finalize_command="$finalize_command $arg"
                  ;;
       t@@ -1034,7 +1450,7 @@ compiler."
                  absdir=`cd "$dir" && pwd`
                  if test -z "$absdir"; then
                    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
                  dir="$absdir"
                  ;;
       t@@ -1068,28 +1484,78 @@ compiler."
                    # These systems don't actually have a C library (as such)
                    test "X$arg" = "X-lc" && continue
                    ;;
       -          *-*-openbsd* | *-*-freebsd*)
       +          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
                    # Do not include libc due to us having libc/libc_r.
                    test "X$arg" = "X-lc" && continue
                    ;;
       -          esac
       -         elif test "X$arg" = "X-lc_r"; then
       -          case $host in
       -         *-*-openbsd* | *-*-freebsd*)
       -            # Do not include libc_r directly, use -pthread flag.
       +          *-*-rhapsody* | *-*-darwin1.[012])
       +            # Rhapsody C and math libraries are in the System framework
       +            deplibs="$deplibs -framework System"
                    continue
       -            ;;
                  esac
       +        elif test "X$arg" = "X-lc_r"; then
       +         case $host in
       +         *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
       +           # Do not include libc_r directly, use -pthread flag.
       +           continue
       +           ;;
       +         esac
                fi
                deplibs="$deplibs $arg"
                continue
                ;;
        
       +      # Tru64 UNIX uses -model [arg] to determine the layout of C++
       +      # classes, name mangling, and exception handling.
       +      -model)
       +        compile_command="$compile_command $arg"
       +        compiler_flags="$compiler_flags $arg"
       +        finalize_command="$finalize_command $arg"
       +        prev=xcompiler
       +        continue
       +        ;;
       +
       +     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
       +        compiler_flags="$compiler_flags $arg"
       +        compile_command="$compile_command $arg"
       +        finalize_command="$finalize_command $arg"
       +        continue
       +        ;;
       +
              -module)
                module=yes
                continue
                ;;
        
       +      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
       +      # -r[0-9][0-9]* specifies the processor on the SGI compiler
       +      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
       +      # +DA*, +DD* enable 64-bit mode on the HP compiler
       +      # -q* pass through compiler args for the IBM compiler
       +      # -m* pass through architecture-specific compiler args for GCC
       +      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
       +
       +        # Unknown arguments in both finalize_command and compile_command need
       +        # to be aesthetically quoted because they are evaled later.
       +        arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
       +        case $arg in
       +        *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
       +          arg="\"$arg\""
       +          ;;
       +        esac
       +        compile_command="$compile_command $arg"
       +        finalize_command="$finalize_command $arg"
       +        if test "$with_gcc" = "yes" ; then
       +          compiler_flags="$compiler_flags $arg"
       +        fi
       +        continue
       +        ;;
       +
       +      -shrext)
       +        prev=shrext
       +        continue
       +        ;;
       +
              -no-fast-install)
                fast_install=no
                continue
       t@@ -1114,8 +1580,18 @@ compiler."
                continue
                ;;
        
       +      -objectlist)
       +        prev=objectlist
       +        continue
       +        ;;
       +
              -o) prev=output ;;
        
       +      -precious-files-regex)
       +        prev=precious_regex
       +        continue
       +        ;;
       +
              -release)
                prev=release
                continue
       t@@ -1138,7 +1614,7 @@ compiler."
                [\\/]* | [A-Za-z]:[\\/]*) ;;
                *)
                  $echo "$modename: only absolute run-paths are allowed" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
                case "$xrpath " in
       t@@ -1166,6 +1642,11 @@ compiler."
                prev=vinfo
                continue
                ;;
       +      -version-number)
       +        prev=vinfo
       +        vinfo_number=yes
       +        continue
       +        ;;
        
              -Wc,*)
                args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
       t@@ -1174,7 +1655,7 @@ compiler."
                for flag in $args; do
                  IFS="$save_ifs"
                  case $flag in
       -            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +            *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                    flag="\"$flag\""
                    ;;
                  esac
       t@@ -1192,7 +1673,7 @@ compiler."
                for flag in $args; do
                  IFS="$save_ifs"
                  case $flag in
       -            *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +            *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                    flag="\"$flag\""
                    ;;
                  esac
       t@@ -1214,41 +1695,118 @@ compiler."
                continue
                ;;
        
       +      -XCClinker)
       +        prev=xcclinker
       +        continue
       +        ;;
       +
              # Some other compiler flag.
              -* | +*)
                # Unknown arguments in both finalize_command and compile_command need
                # to be aesthetically quoted because they are evaled later.
                arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                case $arg in
       -        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +        *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                  arg="\"$arg\""
                  ;;
                esac
                ;;
        
       -      *.lo | *.$objext)
       -        # A library or standard object.
       -        if test "$prev" = dlfiles; then
       -          # This file was specified with -dlopen.
       -          if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
       -            dlfiles="$dlfiles $arg"
       -            prev=
       -            continue
       -          else
       -            # If libtool objects are unsupported, then we need to preload.
       -            prev=dlprefiles
       -          fi
       -        fi
       +      *.$objext)
       +        # A standard object.
       +        objs="$objs $arg"
       +        ;;
        
       -        if test "$prev" = dlprefiles; then
       -          # Preload the old-style object.
       -          dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"`
       -          prev=
       -        else
       +      *.lo)
       +        # A libtool-controlled object.
       +
       +        # Check to see that this really is a libtool object.
       +        if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +          pic_object=
       +          non_pic_object=
       +
       +          # Read the .lo file
       +          # If there is no directory component, then add one.
                  case $arg in
       -          *.lo) libobjs="$libobjs $arg" ;;
       -          *) objs="$objs $arg" ;;
       +          */* | *\\*) . $arg ;;
       +          *) . ./$arg ;;
                  esac
       +
       +          if test -z "$pic_object" || \
       +             test -z "$non_pic_object" ||
       +             test "$pic_object" = none && \
       +             test "$non_pic_object" = none; then
       +            $echo "$modename: cannot find name of object for \`$arg'" 1>&2
       +            exit $EXIT_FAILURE
       +          fi
       +
       +          # Extract subdirectory from the argument.
       +          xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
       +          if test "X$xdir" = "X$arg"; then
       +            xdir=
       +           else
       +            xdir="$xdir/"
       +          fi
       +
       +          if test "$pic_object" != none; then
       +            # Prepend the subdirectory the object is found in.
       +            pic_object="$xdir$pic_object"
       +
       +            if test "$prev" = dlfiles; then
       +              if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
       +                dlfiles="$dlfiles $pic_object"
       +                prev=
       +                continue
       +              else
       +                # If libtool objects are unsupported, then we need to preload.
       +                prev=dlprefiles
       +              fi
       +            fi
       +
       +            # CHECK ME:  I think I busted this.  -Ossama
       +            if test "$prev" = dlprefiles; then
       +              # Preload the old-style object.
       +              dlprefiles="$dlprefiles $pic_object"
       +              prev=
       +            fi
       +
       +            # A PIC object.
       +            libobjs="$libobjs $pic_object"
       +            arg="$pic_object"
       +          fi
       +
       +          # Non-PIC object.
       +          if test "$non_pic_object" != none; then
       +            # Prepend the subdirectory the object is found in.
       +            non_pic_object="$xdir$non_pic_object"
       +
       +            # A standard non-PIC object
       +            non_pic_objects="$non_pic_objects $non_pic_object"
       +            if test -z "$pic_object" || test "$pic_object" = none ; then
       +              arg="$non_pic_object"
       +            fi
       +          fi
       +        else
       +          # Only an error if not doing a dry-run.
       +          if test -z "$run"; then
       +            $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
       +            exit $EXIT_FAILURE
       +          else
       +            # Dry-run case.
       +
       +            # Extract subdirectory from the argument.
       +            xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
       +            if test "X$xdir" = "X$arg"; then
       +              xdir=
       +            else
       +              xdir="$xdir/"
       +            fi
       +
       +            pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
       +            non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
       +            libobjs="$libobjs $pic_object"
       +            non_pic_objects="$non_pic_objects $non_pic_object"
       +          fi
                fi
                ;;
        
       t@@ -1282,7 +1840,7 @@ compiler."
                # to be aesthetically quoted because they are evaled later.
                arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
                case $arg in
       -        *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*|"")
       +        *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                  arg="\"$arg\""
                  ;;
                esac
       t@@ -1299,7 +1857,7 @@ compiler."
            if test -n "$prev"; then
              $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
       t@@ -1308,6 +1866,7 @@ compiler."
              finalize_command="$finalize_command $arg"
            fi
        
       +    oldlibs=
            # calculate the name of the file, without its directory
            outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
            libobjs_save="$libobjs"
       t@@ -1328,11 +1887,11 @@ compiler."
              output_objdir="$output_objdir/$objdir"
            fi
            # Create the object directory.
       -    if test ! -d $output_objdir; then
       +    if test ! -d "$output_objdir"; then
              $show "$mkdir $output_objdir"
              $run $mkdir $output_objdir
              status=$?
       -      if test $status -ne 0 && test ! -d $output_objdir; then
       +      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
                exit $status
              fi
            fi
       t@@ -1342,7 +1901,7 @@ compiler."
            "")
              $echo "$modename: you must specify an output file" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
              ;;
            *.$libext) linkmode=oldlib ;;
            *.lo | *.$objext) linkmode=obj ;;
       t@@ -1350,7 +1909,17 @@ compiler."
            *) linkmode=prog ;; # Anything else should be a program.
            esac
        
       +    case $host in
       +    *cygwin* | *mingw* | *pw32*)
       +      # don't eliminate duplications in $postdeps and $predeps
       +      duplicate_compiler_generated_deps=yes
       +      ;;
       +    *)
       +      duplicate_compiler_generated_deps=$duplicate_deps
       +      ;;
       +    esac
            specialdeplibs=
       +
            libs=
            # Find all interdependent deplibs by searching for libraries
            # that are linked more than once (e.g. -la -lb -la)
       t@@ -1362,6 +1931,25 @@ compiler."
              fi
              libs="$libs $deplib"
            done
       +
       +    if test "$linkmode" = lib; then
       +      libs="$predeps $libs $compiler_lib_search_path $postdeps"
       +
       +      # Compute libraries that are listed more than once in $predeps
       +      # $postdeps and mark them as special (i.e., whose duplicates are
       +      # not to be eliminated).
       +      pre_post_deps=
       +      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
       +        for pre_post_dep in $predeps $postdeps; do
       +          case "$pre_post_deps " in
       +          *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
       +          esac
       +          pre_post_deps="$pre_post_deps $pre_post_dep"
       +        done
       +      fi
       +      pre_post_deps=
       +    fi
       +
            deplibs=
            newdependency_libs=
            newlib_search_path=
       t@@ -1376,7 +1964,7 @@ compiler."
                  *.la) ;;
                  *)
                    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                    ;;
                  esac
                done
       t@@ -1393,39 +1981,55 @@ compiler."
                ;;
            esac
            for pass in $passes; do
       -      if test $linkmode = prog; then
       -        # Determine which files to process
       +      if test "$linkmode,$pass" = "lib,link" ||
       +         test "$linkmode,$pass" = "prog,scan"; then
       +        libs="$deplibs"
       +        deplibs=
       +      fi
       +      if test "$linkmode" = prog; then
                case $pass in
       -        dlopen)
       -          libs="$dlfiles"
       -          save_deplibs="$deplibs" # Collect dlpreopened libraries
       -          deplibs=
       -          ;;
       +        dlopen) libs="$dlfiles" ;;
                dlpreopen) libs="$dlprefiles" ;;
                link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
                esac
              fi
       +      if test "$pass" = dlopen; then
       +        # Collect dlpreopened libraries
       +        save_deplibs="$deplibs"
       +        deplibs=
       +      fi
              for deplib in $libs; do
                lib=
                found=no
                case $deplib in
       -        -l*)
       -          if test $linkmode = oldlib && test $linkmode = obj; then
       -            $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2
       -            continue
       +        -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
       +          if test "$linkmode,$pass" = "prog,link"; then
       +            compile_deplibs="$deplib $compile_deplibs"
       +            finalize_deplibs="$deplib $finalize_deplibs"
       +          else
       +            compiler_flags="$compiler_flags $deplib"
                  fi
       -          if test $pass = conv; then
       -            deplibs="$deplib $deplibs"
       +          continue
       +          ;;
       +        -l*)
       +          if test "$linkmode" != lib && test "$linkmode" != prog; then
       +            $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
                    continue
                  fi
                  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
                  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
       -            # Search the libtool library
       -            lib="$searchdir/lib${name}.la"
       -            if test -f "$lib"; then
       -              found=yes
       -              break
       -            fi
       +            for search_ext in .la $std_shrext .so .a; do
       +              # Search the libtool library
       +              lib="$searchdir/lib${name}${search_ext}"
       +              if test -f "$lib"; then
       +                if test "$search_ext" = ".la"; then
       +                  found=yes
       +                else
       +                  found=no
       +                fi
       +                break 2
       +              fi
       +            done
                  done
                  if test "$found" != yes; then
                    # deplib doesn't seem to be a libtool library
       t@@ -1434,40 +2038,76 @@ compiler."
                      finalize_deplibs="$deplib $finalize_deplibs"
                    else
                      deplibs="$deplib $deplibs"
       -              test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs"
       +              test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
                    fi
                    continue
       +          else # deplib is a libtool library
       +            # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
       +            # We need to do some special things here, and not later.
       +            if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +              case " $predeps $postdeps " in
       +              *" $deplib "*)
       +                if (${SED} -e '2q' $lib |
       +                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +                  library_names=
       +                  old_library=
       +                  case $lib in
       +                  */* | *\\*) . $lib ;;
       +                  *) . ./$lib ;;
       +                  esac
       +                  for l in $old_library $library_names; do
       +                    ll="$l"
       +                  done
       +                  if test "X$ll" = "X$old_library" ; then # only static version available
       +                    found=no
       +                    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
       +                    test "X$ladir" = "X$lib" && ladir="."
       +                    lib=$ladir/$old_library
       +                    if test "$linkmode,$pass" = "prog,link"; then
       +                      compile_deplibs="$deplib $compile_deplibs"
       +                      finalize_deplibs="$deplib $finalize_deplibs"
       +                    else
       +                      deplibs="$deplib $deplibs"
       +                      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
       +                    fi
       +                    continue
       +                  fi
       +                fi
       +                ;;
       +              *) ;;
       +              esac
       +            fi
                  fi
                  ;; # -l
                -L*)
                  case $linkmode in
                  lib)
                    deplibs="$deplib $deplibs"
       -            test $pass = conv && continue
       +            test "$pass" = conv && continue
                    newdependency_libs="$deplib $newdependency_libs"
                    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
                    ;;
                  prog)
       -            if test $pass = conv; then
       +            if test "$pass" = conv; then
                      deplibs="$deplib $deplibs"
                      continue
                    fi
       -            if test $pass = scan; then
       +            if test "$pass" = scan; then
                      deplibs="$deplib $deplibs"
       -              newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
                    else
                      compile_deplibs="$deplib $compile_deplibs"
                      finalize_deplibs="$deplib $finalize_deplibs"
                    fi
       +            newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
                    ;;
                  *)
       -            $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2
       +            $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
                    ;;
                  esac # linkmode
                  continue
                  ;; # -L
                -R*)
       -          if test $pass = link; then
       +          if test "$pass" = link; then
                    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
                    # Make sure the xrpath contains only unique directories.
                    case "$xrpath " in
       t@@ -1480,30 +2120,45 @@ compiler."
                  ;;
                *.la) lib="$deplib" ;;
                *.$libext)
       -          if test $pass = conv; then
       +          if test "$pass" = conv; then
                    deplibs="$deplib $deplibs"
                    continue
                  fi
                  case $linkmode in
                  lib)
       -            if test "$deplibs_check_method" != pass_all; then
       -              echo
       -              echo "*** Warning: Trying to link with static lib archive $deplib."
       -              echo "*** I have the capability to make that library automatically link in when"
       -              echo "*** you link to this library.  But I can only do this if you have a"
       -              echo "*** shared version of the library, which you do not appear to have"
       -              echo "*** because the file extensions .$libext of this argument makes me believe"
       -              echo "*** that it is just a static archive that I should not used here."
       +            valid_a_lib=no
       +            case $deplibs_check_method in
       +              match_pattern*)
       +                set dummy $deplibs_check_method
       +                match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
       +                if eval $echo \"$deplib\" 2>/dev/null \
       +                    | $SED 10q \
       +                    | $EGREP "$match_pattern_regex" > /dev/null; then
       +                  valid_a_lib=yes
       +                fi
       +                ;;
       +              pass_all)
       +                valid_a_lib=yes
       +                ;;
       +            esac
       +            if test "$valid_a_lib" != yes; then
       +              $echo
       +              $echo "*** Warning: Trying to link with static lib archive $deplib."
       +              $echo "*** I have the capability to make that library automatically link in when"
       +              $echo "*** you link to this library.  But I can only do this if you have a"
       +              $echo "*** shared version of the library, which you do not appear to have"
       +              $echo "*** because the file extensions .$libext of this argument makes me believe"
       +              $echo "*** that it is just a static archive that I should not used here."
                    else
       -              echo
       -              echo "*** Warning: Linking the shared library $output against the"
       -              echo "*** static library $deplib is not portable!"
       +              $echo
       +              $echo "*** Warning: Linking the shared library $output against the"
       +              $echo "*** static library $deplib is not portable!"
                      deplibs="$deplib $deplibs"
                    fi
                    continue
                    ;;
                  prog)
       -            if test $pass != link; then
       +            if test "$pass" != link; then
                      deplibs="$deplib $deplibs"
                    else
                      compile_deplibs="$deplib $compile_deplibs"
       t@@ -1514,14 +2169,18 @@ compiler."
                  esac # linkmode
                  ;; # *.$libext
                *.lo | *.$objext)
       -          if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
       -            # If there is no dlopen support or we're linking statically,
       -            # we need to preload.
       -            newdlprefiles="$newdlprefiles $deplib"
       -            compile_deplibs="$deplib $compile_deplibs"
       -            finalize_deplibs="$deplib $finalize_deplibs"
       -          else
       -            newdlfiles="$newdlfiles $deplib"
       +          if test "$pass" = conv; then
       +            deplibs="$deplib $deplibs"
       +          elif test "$linkmode" = prog; then
       +            if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
       +              # If there is no dlopen support or we're linking statically,
       +              # we need to preload.
       +              newdlprefiles="$newdlprefiles $deplib"
       +              compile_deplibs="$deplib $compile_deplibs"
       +              finalize_deplibs="$deplib $finalize_deplibs"
       +            else
       +              newdlfiles="$newdlfiles $deplib"
       +            fi
                  fi
                  continue
                  ;;
       t@@ -1530,17 +2189,17 @@ compiler."
                  continue
                  ;;
                esac # case $deplib
       -        if test $found = yes || test -f "$lib"; then :
       +        if test "$found" = yes || test -f "$lib"; then :
                else
                  $echo "$modename: cannot find the library \`$lib'" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                # Check to see that this really is a libtool archive.
       -        if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
       +        if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
                else
                  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
       t@@ -1553,8 +2212,11 @@ compiler."
                library_names=
                old_library=
                # If the library was installed with an old release of libtool,
       -        # it will not redefine variable installed.
       +        # it will not redefine variables installed, or shouldnotlink
                installed=yes
       +        shouldnotlink=no
       +        avoidtemprpath=
       +
        
                # Read the .la file
                case $lib in
       t@@ -1564,19 +2226,18 @@ compiler."
        
                if test "$linkmode,$pass" = "lib,link" ||
                   test "$linkmode,$pass" = "prog,scan" ||
       -           { test $linkmode = oldlib && test $linkmode = obj; }; then
       -           # Add dl[pre]opened files of deplib
       +           { test "$linkmode" != prog && test "$linkmode" != lib; }; then
                  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
                  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
                fi
        
       -        if test $pass = conv; then
       +        if test "$pass" = conv; then
                  # Only check for convenience libraries
                  deplibs="$lib $deplibs"
                  if test -z "$libdir"; then
                    if test -z "$old_library"; then
                      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
       -              exit 1
       +              exit $EXIT_FAILURE
                    fi
                    # It is a libtool convenience library, so add in its objects.
                    convenience="$convenience $ladir/$objdir/$old_library"
       t@@ -1591,13 +2252,14 @@ compiler."
                      fi
                      tmp_libs="$tmp_libs $deplib"
                    done
       -          elif test $linkmode != prog && test $linkmode != lib; then
       +          elif test "$linkmode" != prog && test "$linkmode" != lib; then
                    $echo "$modename: \`$lib' is not a convenience library" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
                  continue
                fi # $pass = conv
        
       +
                # Get the name of the library we link against.
                linklib=
                for l in $old_library $library_names; do
       t@@ -1605,19 +2267,23 @@ compiler."
                done
                if test -z "$linklib"; then
                  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                # This library was specified with -dlopen.
       -        if test $pass = dlopen; then
       +        if test "$pass" = dlopen; then
                  if test -z "$libdir"; then
                    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
       -          if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
       +          if test -z "$dlname" ||
       +             test "$dlopen_support" != yes ||
       +             test "$build_libtool_libs" = no; then
                    # If there is no dlname, no dlopen support or we're linking
       -            # statically, we need to preload.
       -            dlprefiles="$dlprefiles $lib"
       +            # statically, we need to preload.  We also need to preload any
       +            # dependent libraries so libltdl's deplib preloader doesn't
       +            # bomb out in the load deplibs phase.
       +            dlprefiles="$dlprefiles $lib $dependency_libs"
                  else
                    newdlfiles="$newdlfiles $lib"
                  fi
       t@@ -1649,19 +2315,27 @@ compiler."
                    dir="$libdir"
                    absdir="$libdir"
                  fi
       +          test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
                else
       -          dir="$ladir/$objdir"
       -          absdir="$abs_ladir/$objdir"
       -          # Remove this search path later
       -          notinst_path="$notinst_path $abs_ladir"
       +          if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
       +            dir="$ladir"
       +            absdir="$abs_ladir"
       +            # Remove this search path later
       +            notinst_path="$notinst_path $abs_ladir"
       +          else
       +            dir="$ladir/$objdir"
       +            absdir="$abs_ladir/$objdir"
       +            # Remove this search path later
       +            notinst_path="$notinst_path $abs_ladir"
       +          fi
                fi # $installed = yes
                name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
        
                # This library was specified with -dlpreopen.
       -        if test $pass = dlpreopen; then
       +        if test "$pass" = dlpreopen; then
                  if test -z "$libdir"; then
                    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
                  # Prefer using a static library (so that no silly _DYNAMIC symbols
                  # are required to link).
       t@@ -1677,18 +2351,19 @@ compiler."
        
                if test -z "$libdir"; then
                  # Link the convenience library
       -          if test $linkmode = lib; then
       +          if test "$linkmode" = lib; then
                    deplibs="$dir/$old_library $deplibs"
                  elif test "$linkmode,$pass" = "prog,link"; then
                    compile_deplibs="$dir/$old_library $compile_deplibs"
                    finalize_deplibs="$dir/$old_library $finalize_deplibs"
                  else
       -            deplibs="$lib $deplibs"
       +            deplibs="$lib $deplibs" # used for prog,scan pass
                  fi
                  continue
                fi
        
       -        if test $linkmode = prog && test $pass != link; then
       +
       +        if test "$linkmode" = prog && test "$pass" != link; then
                  newlib_search_path="$newlib_search_path $ladir"
                  deplibs="$lib $deplibs"
        
       t@@ -1704,7 +2379,7 @@ compiler."
                    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
                    esac
                    # Need to link against all dependency_libs?
       -            if test $linkalldeplibs = yes; then
       +            if test "$linkalldeplibs" = yes; then
                      deplibs="$deplib $deplibs"
                    else
                      # Need to hardcode shared library paths
       t@@ -1721,13 +2396,19 @@ compiler."
                  continue
                fi # $linkmode = prog...
        
       -        link_static=no # Whether the deplib will be linked statically
       -        if test -n "$library_names" &&
       -           { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
       -          # Link against this shared library
       +        if test "$linkmode,$pass" = "prog,link"; then
       +          if test -n "$library_names" &&
       +             { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
       +            # We need to hardcode the library path
       +            if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
       +              # Make sure the rpath contains only unique directories.
       +              case "$temp_rpath " in
       +              *" $dir "*) ;;
       +              *" $absdir "*) ;;
       +              *) temp_rpath="$temp_rpath $dir" ;;
       +              esac
       +            fi
        
       -          if test "$linkmode,$pass" = "prog,link" ||
       -           { test $linkmode = lib && test $hardcode_into_libs = yes; }; then
                    # Hardcode the library path.
                    # Skip directories that are in the system default run-time
                    # search path.
       t@@ -1749,17 +2430,6 @@ compiler."
                      esac
                      ;;
                    esac
       -            if test $linkmode = prog; then
       -              # We need to hardcode the library path
       -              if test -n "$shlibpath_var"; then
       -                # Make sure the rpath contains only unique directories.
       -                case "$temp_rpath " in
       -                *" $dir "*) ;;
       -                *" $absdir "*) ;;
       -                *) temp_rpath="$temp_rpath $dir" ;;
       -                esac
       -              fi
       -            fi
                  fi # $linkmode,$pass = prog,link...
        
                  if test "$alldeplibs" = yes &&
       t@@ -1769,11 +2439,52 @@ compiler."
                    # We only need to search for static libraries
                    continue
                  fi
       +        fi
        
       +        link_static=no # Whether the deplib will be linked statically
       +        if test -n "$library_names" &&
       +           { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
                  if test "$installed" = no; then
                    notinst_deplibs="$notinst_deplibs $lib"
                    need_relink=yes
                  fi
       +          # This is a shared library
       +
       +          # Warn about portability, can't link against -module's on
       +          # some systems (darwin)
       +          if test "$shouldnotlink" = yes && test "$pass" = link ; then
       +            $echo
       +            if test "$linkmode" = prog; then
       +              $echo "*** Warning: Linking the executable $output against the loadable module"
       +            else
       +              $echo "*** Warning: Linking the shared library $output against the loadable module"
       +            fi
       +            $echo "*** $linklib is not portable!"
       +          fi
       +          if test "$linkmode" = lib &&
       +             test "$hardcode_into_libs" = yes; then
       +            # Hardcode the library path.
       +            # Skip directories that are in the system default run-time
       +            # search path.
       +            case " $sys_lib_dlsearch_path " in
       +            *" $absdir "*) ;;
       +            *)
       +              case "$compile_rpath " in
       +              *" $absdir "*) ;;
       +              *) compile_rpath="$compile_rpath $absdir"
       +              esac
       +              ;;
       +            esac
       +            case " $sys_lib_dlsearch_path " in
       +            *" $libdir "*) ;;
       +            *)
       +              case "$finalize_rpath " in
       +              *" $libdir "*) ;;
       +              *) finalize_rpath="$finalize_rpath $libdir"
       +              esac
       +              ;;
       +            esac
       +          fi
        
                  if test -n "$old_archive_from_expsyms_cmds"; then
                    # figure out the soname
       t@@ -1787,7 +2498,7 @@ compiler."
                    elif test -n "$soname_spec"; then
                      # bleh windows
                      case $host in
       -              *cygwin*)
       +              *cygwin* | mingw*)
                        major=`expr $current - $age`
                        versuffix="-$major"
                        ;;
       t@@ -1799,17 +2510,18 @@ compiler."
        
                    # Make a new name for the extract_expsyms_cmds to use
                    soroot="$soname"
       -            soname=`echo $soroot | ${SED} -e 's/^.*\///'`
       -            newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
       +            soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
       +            newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
        
                    # If the library has no export list, then create one now
                    if test -f "$output_objdir/$soname-def"; then :
                    else
                      $show "extracting exported symbol list from \`$soname'"
                      save_ifs="$IFS"; IFS='~'
       -              eval cmds=\"$extract_expsyms_cmds\"
       +              cmds=$extract_expsyms_cmds
                      for cmd in $cmds; do
                        IFS="$save_ifs"
       +                eval cmd=\"$cmd\"
                        $show "$cmd"
                        $run eval "$cmd" || exit $?
                      done
       t@@ -1820,9 +2532,10 @@ compiler."
                    if test -f "$output_objdir/$newlib"; then :; else
                      $show "generating import library for \`$soname'"
                      save_ifs="$IFS"; IFS='~'
       -              eval cmds=\"$old_archive_from_expsyms_cmds\"
       +              cmds=$old_archive_from_expsyms_cmds
                      for cmd in $cmds; do
                        IFS="$save_ifs"
       +                eval cmd=\"$cmd\"
                        $show "$cmd"
                        $run eval "$cmd" || exit $?
                      done
       t@@ -1831,9 +2544,9 @@ compiler."
                    # make sure the library variables are pointing to the new library
                    dir=$output_objdir
                    linklib=$newlib
       -          fi # test -n $old_archive_from_expsyms_cmds
       +          fi # test -n "$old_archive_from_expsyms_cmds"
        
       -          if test $linkmode = prog || test "$mode" != relink; then
       +          if test "$linkmode" = prog || test "$mode" != relink; then
                    add_shlibpath=
                    add_dir=
                    add=
       t@@ -1842,6 +2555,22 @@ compiler."
                    immediate | unsupported)
                      if test "$hardcode_direct" = no; then
                        add="$dir/$linklib"
       +                case $host in
       +                  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
       +                  *-*-darwin* )
       +                    # if the lib is a module then we can not link against
       +                    # it, someone is ignoring the new warnings I added
       +                    if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
       +                      $echo "** Warning, lib $linklib is a module, not a shared library"
       +                      if test -z "$old_library" ; then
       +                        $echo
       +                        $echo "** And there doesn't seem to be a static archive available"
       +                        $echo "** The link will probably fail, sorry"
       +                      else
       +                        add="$dir/$old_library"
       +                      fi
       +                    fi
       +                esac
                      elif test "$hardcode_minus_L" = no; then
                        case $host in
                        *-*-sunos*) add_shlibpath="$dir" ;;
       t@@ -1860,6 +2589,14 @@ compiler."
                        add="$dir/$linklib"
                      elif test "$hardcode_minus_L" = yes; then
                        add_dir="-L$dir"
       +                # Try looking first in the location we're being installed to.
       +                if test -n "$inst_prefix_dir"; then
       +                  case "$libdir" in
       +                    [\\/]*)
       +                      add_dir="$add_dir -L$inst_prefix_dir$libdir"
       +                      ;;
       +                  esac
       +                fi
                        add="-l$name"
                      elif test "$hardcode_shlibpath_var" = yes; then
                        add_shlibpath="$dir"
       t@@ -1873,7 +2610,7 @@ compiler."
        
                    if test "$lib_linked" != yes; then
                      $echo "$modename: configuration error: unsupported hardcode properties"
       -              exit 1
       +              exit $EXIT_FAILURE
                    fi
        
                    if test -n "$add_shlibpath"; then
       t@@ -1882,7 +2619,7 @@ compiler."
                      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
                      esac
                    fi
       -            if test $linkmode = prog; then
       +            if test "$linkmode" = prog; then
                      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
                      test -n "$add" && compile_deplibs="$add $compile_deplibs"
                    else
       t@@ -1899,7 +2636,7 @@ compiler."
                    fi
                  fi
        
       -          if test $linkmode = prog || test "$mode" = relink; then
       +          if test "$linkmode" = prog || test "$mode" = relink; then
                    add_shlibpath=
                    add_dir=
                    add=
       t@@ -1907,16 +2644,7 @@ compiler."
                    if test "$hardcode_direct" = yes; then
                      add="$libdir/$linklib"
                    elif test "$hardcode_minus_L" = yes; then
       -              # Try looking first in the location we're being installed to.
       -              add_dir=
       -              if test -n "$inst_prefix_dir"; then
       -                case "$libdir" in
       -                [\\/]*)
       -                  add_dir="-L$inst_prefix_dir$libdir"
       -                  ;;
       -                esac
       -              fi
       -              add_dir="$add_dir -L$libdir"
       +              add_dir="-L$libdir"
                      add="-l$name"
                    elif test "$hardcode_shlibpath_var" = yes; then
                      case :$finalize_shlibpath: in
       t@@ -1924,22 +2652,28 @@ compiler."
                      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
                      esac
                      add="-l$name"
       +            elif test "$hardcode_automatic" = yes; then
       +              if test -n "$inst_prefix_dir" &&
       +                 test -f "$inst_prefix_dir$libdir/$linklib" ; then
       +                add="$inst_prefix_dir$libdir/$linklib"
       +              else
       +                add="$libdir/$linklib"
       +              fi
                    else
                      # We cannot seem to hardcode it, guess we'll fake it.
       +              add_dir="-L$libdir"
                      # Try looking first in the location we're being installed to.
       -              add_dir=
                      if test -n "$inst_prefix_dir"; then
                        case "$libdir" in
       -                [\\/]*)
       -                  add_dir="-L$inst_prefix_dir$libdir"
       -                  ;;
       +                  [\\/]*)
       +                    add_dir="$add_dir -L$inst_prefix_dir$libdir"
       +                    ;;
                        esac
                      fi
       -              add_dir="$add_dir -L$libdir"
                      add="-l$name"
                    fi
        
       -            if test $linkmode = prog; then
       +            if test "$linkmode" = prog; then
                      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
                      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
                    else
       t@@ -1947,16 +2681,7 @@ compiler."
                      test -n "$add" && deplibs="$add $deplibs"
                    fi
                  fi
       -        elif test $linkmode = prog; then
       -          if test "$alldeplibs" = yes &&
       -             { test "$deplibs_check_method" = pass_all ||
       -               { test "$build_libtool_libs" = yes &&
       -                 test -n "$library_names"; }; }; then
       -            # We only need to search for static libraries
       -            continue
       -          fi
       -
       -          # Try to link the static library
       +        elif test "$linkmode" = prog; then
                  # Here we assume that one of hardcode_direct or hardcode_minus_L
                  # is not unsupported.  This is valid on all known static and
                  # shared platforms.
       t@@ -1976,21 +2701,21 @@ compiler."
        
                    # Just print a warning and add the library to dependency_libs so
                    # that the program can be linked against the static library.
       -            echo
       -            echo "*** Warning: This system can not link to static lib archive $lib."
       -            echo "*** I have the capability to make that library automatically link in when"
       -            echo "*** you link to this library.  But I can only do this if you have a"
       -            echo "*** shared version of the library, which you do not appear to have."
       +            $echo
       +            $echo "*** Warning: This system can not link to static lib archive $lib."
       +            $echo "*** I have the capability to make that library automatically link in when"
       +            $echo "*** you link to this library.  But I can only do this if you have a"
       +            $echo "*** shared version of the library, which you do not appear to have."
                    if test "$module" = yes; then
       -              echo "*** But as you try to build a module library, libtool will still create "
       -              echo "*** a static module, that should work as long as the dlopening application"
       -              echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
       +              $echo "*** But as you try to build a module library, libtool will still create "
       +              $echo "*** a static module, that should work as long as the dlopening application"
       +              $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
                      if test -z "$global_symbol_pipe"; then
       -                echo
       -                echo "*** However, this would only work if libtool was able to extract symbol"
       -                echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
       -                echo "*** not find such a program.  So, this module is probably useless."
       -                echo "*** \`nm' from GNU binutils and a full rebuild may help."
       +                $echo
       +                $echo "*** However, this would only work if libtool was able to extract symbol"
       +                $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
       +                $echo "*** not find such a program.  So, this module is probably useless."
       +                $echo "*** \`nm' from GNU binutils and a full rebuild may help."
                      fi
                      if test "$build_old_libs" = no; then
                        build_libtool_libs=module
       t@@ -2007,10 +2732,11 @@ compiler."
                  fi
                fi # link shared/static library?
        
       -        if test $linkmode = lib; then
       +        if test "$linkmode" = lib; then
                  if test -n "$dependency_libs" &&
       -             { test $hardcode_into_libs != yes || test $build_old_libs = yes ||
       -               test $link_static = yes; }; then
       +             { test "$hardcode_into_libs" != yes ||
       +               test "$build_old_libs" = yes ||
       +               test "$link_static" = yes; }; then
                    # Extract -R from dependency_libs
                    temp_deplibs=
                    for libdir in $dependency_libs; do
       t@@ -2041,7 +2767,7 @@ compiler."
                    tmp_libs="$tmp_libs $deplib"
                  done
        
       -          if test $link_all_deplibs != no; then
       +          if test "$link_all_deplibs" != no; then
                    # Add the search paths of all dependency libraries
                    for deplib in $dependency_libs; do
                      case $deplib in
       t@@ -2061,38 +2787,83 @@ compiler."
                          ;;
                        esac
                        if grep "^installed=no" $deplib > /dev/null; then
       -                  path="-L$absdir/$objdir"
       +                  path="$absdir/$objdir"
                        else
                          eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                          if test -z "$libdir"; then
                            $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
       -                    exit 1
       +                    exit $EXIT_FAILURE
                          fi
                          if test "$absdir" != "$libdir"; then
                            $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
                          fi
       -                  path="-L$absdir"
       +                  path="$absdir"
                        fi
       +                depdepl=
       +                case $host in
       +                *-*-darwin*)
       +                  # we do not want to link against static libs,
       +                  # but need to link against shared
       +                  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
       +                  if test -n "$deplibrary_names" ; then
       +                    for tmp in $deplibrary_names ; do
       +                      depdepl=$tmp
       +                    done
       +                    if test -f "$path/$depdepl" ; then
       +                      depdepl="$path/$depdepl"
       +                    fi
       +                    # do not add paths which are already there
       +                    case " $newlib_search_path " in
       +                    *" $path "*) ;;
       +                    *) newlib_search_path="$newlib_search_path $path";;
       +                    esac
       +                  fi
       +                  path=""
       +                  ;;
       +                *)
       +                  path="-L$path"
       +                  ;;
       +                esac
       +                ;;
       +              -l*)
       +                case $host in
       +                *-*-darwin*)
       +                  # Again, we only want to link against shared libraries
       +                  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
       +                  for tmp in $newlib_search_path ; do
       +                    if test -f "$tmp/lib$tmp_libs.dylib" ; then
       +                      eval depdepl="$tmp/lib$tmp_libs.dylib"
       +                      break
       +                    fi
       +                  done
       +                  path=""
       +                  ;;
       +                *) continue ;;
       +                esac
                        ;;
                      *) continue ;;
                      esac
                      case " $deplibs " in
                      *" $path "*) ;;
       -              *) deplibs="$deplibs $path" ;;
       +              *) deplibs="$path $deplibs" ;;
       +              esac
       +              case " $deplibs " in
       +              *" $depdepl "*) ;;
       +              *) deplibs="$depdepl $deplibs" ;;
                      esac
                    done
                  fi # link_all_deplibs != no
                fi # linkmode = lib
              done # for deplib in $libs
       -      if test $pass = dlpreopen; then
       +      dependency_libs="$newdependency_libs"
       +      if test "$pass" = dlpreopen; then
                # Link the dlpreopened libraries before other libraries
                for deplib in $save_deplibs; do
                  deplibs="$deplib $deplibs"
                done
              fi
       -      if test $pass != dlopen; then
       -        test $pass != scan && dependency_libs="$newdependency_libs"
       -        if test $pass != conv; then
       +      if test "$pass" != dlopen; then
       +        if test "$pass" != conv; then
                  # Make sure lib_search_path contains only unique directories.
                  lib_search_path=
                  for dir in $newlib_search_path; do
       t@@ -2114,9 +2885,30 @@ compiler."
                  eval tmp_libs=\"\$$var\"
                  new_libs=
                  for deplib in $tmp_libs; do
       +            # FIXME: Pedantically, this is the right thing to do, so
       +            #        that some nasty dependency loop isn't accidentally
       +            #        broken:
       +            #new_libs="$deplib $new_libs"
       +            # Pragmatically, this seems to cause very few problems in
       +            # practice:
                    case $deplib in
                    -L*) new_libs="$deplib $new_libs" ;;
       +            -R*) ;;
                    *)
       +              # And here is the reason: when a library appears more
       +              # than once as an explicit dependence of a library, or
       +              # is implicitly linked in more than once by the
       +              # compiler, it is considered special, and multiple
       +              # occurrences thereof are not removed.  Compare this
       +              # with having the same library being listed as a
       +              # dependency of multiple other libraries: in this case,
       +              # we know (pedantically, we assume) the library does not
       +              # need to be listed more than once, so we keep only the
       +              # last copy.  This is not always right, but it is rare
       +              # enough that we require users that really mean to play
       +              # such unportable linking tricks to link the library
       +              # using -Wl,-lname, so that libtool does not consider it
       +              # for duplicate removal.
                      case " $specialdeplibs " in
                      *" $deplib "*) new_libs="$deplib $new_libs" ;;
                      *)
       t@@ -2144,19 +2936,32 @@ compiler."
                  eval $var=\"$tmp_libs\"
                done # for var
              fi
       -      if test "$pass" = "conv" &&
       -       { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then
       -        libs="$deplibs" # reset libs
       -        deplibs=
       -      fi
       +      # Last step: remove runtime libs from dependency_libs
       +      # (they stay in deplibs)
       +      tmp_libs=
       +      for i in $dependency_libs ; do
       +        case " $predeps $postdeps $compiler_lib_search_path " in
       +        *" $i "*)
       +          i=""
       +          ;;
       +        esac
       +        if test -n "$i" ; then
       +          tmp_libs="$tmp_libs $i"
       +        fi
       +      done
       +      dependency_libs=$tmp_libs
            done # for pass
       -    if test $linkmode = prog; then
       +    if test "$linkmode" = prog; then
              dlfiles="$newdlfiles"
              dlprefiles="$newdlprefiles"
            fi
        
            case $linkmode in
            oldlib)
       +      if test -n "$deplibs"; then
       +        $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
       +      fi
       +
              if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
                $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
              fi
       t@@ -2170,7 +2975,7 @@ compiler."
              fi
        
              if test -n "$vinfo"; then
       -        $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2
       +        $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
              fi
        
              if test -n "$release"; then
       t@@ -2192,17 +2997,19 @@ compiler."
              case $outputname in
              lib*)
                name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
       +        eval shared_ext=\"$shrext_cmds\"
                eval libname=\"$libname_spec\"
                ;;
              *)
                if test "$module" = no; then
                  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
                if test "$need_lib_prefix" != no; then
                  # Add the "lib" prefix for modules if required
                  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
       +          eval shared_ext=\"$shrext_cmds\"
                  eval libname=\"$libname_spec\"
                else
                  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
       t@@ -2213,11 +3020,11 @@ compiler."
              if test -n "$objs"; then
                if test "$deplibs_check_method" != pass_all; then
                  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
       -          exit 1
       +          exit $EXIT_FAILURE
                else
       -          echo
       -          echo "*** Warning: Linking the shared library $output against the non-libtool"
       -          echo "*** objects $objs is not portable!"
       +          $echo
       +          $echo "*** Warning: Linking the shared library $output against the non-libtool"
       +          $echo "*** objects $objs is not portable!"
                  libobjs="$libobjs $objs"
                fi
              fi
       t@@ -2227,7 +3034,7 @@ compiler."
              fi
        
              set dummy $rpath
       -      if test $# -gt 2; then
       +      if test "$#" -gt 2; then
                $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
              fi
              install_libdir="$2"
       t@@ -2236,14 +3043,16 @@ compiler."
              if test -z "$rpath"; then
                if test "$build_libtool_libs" = yes; then
                  # Building a libtool convenience library.
       -          libext=al
       +          # Some compilers have problems with a `.al' extension so
       +          # convenience libraries should have the same extension an
       +          # archive normally would.
                  oldlibs="$output_objdir/$libname.$libext $oldlibs"
                  build_libtool_libs=convenience
                  build_old_libs=yes
                fi
        
                if test -n "$vinfo"; then
       -          $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2
       +          $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
                fi
        
                if test -n "$release"; then
       t@@ -2259,45 +3068,82 @@ compiler."
                if test -n "$8"; then
                  $echo "$modename: too many parameters to \`-version-info'" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
       -        current="$2"
       -        revision="$3"
       -        age="$4"
       +        # convert absolute version numbers to libtool ages
       +        # this retains compatibility with .la files and attempts
       +        # to make the code below a bit more comprehensible
       +
       +        case $vinfo_number in
       +        yes)
       +          number_major="$2"
       +          number_minor="$3"
       +          number_revision="$4"
       +          #
       +          # There are really only two kinds -- those that
       +          # use the current revision as the major version
       +          # and those that subtract age and use age as
       +          # a minor version.  But, then there is irix
       +          # which has an extra 1 added just for fun
       +          #
       +          case $version_type in
       +          darwin|linux|osf|windows)
       +            current=`expr $number_major + $number_minor`
       +            age="$number_minor"
       +            revision="$number_revision"
       +            ;;
       +          freebsd-aout|freebsd-elf|sunos)
       +            current="$number_major"
       +            revision="$number_minor"
       +            age="0"
       +            ;;
       +          irix|nonstopux)
       +            current=`expr $number_major + $number_minor - 1`
       +            age="$number_minor"
       +            revision="$number_minor"
       +            ;;
       +          esac
       +          ;;
       +        no)
       +          current="$2"
       +          revision="$3"
       +          age="$4"
       +          ;;
       +        esac
        
                # Check that each of the things are valid numbers.
                case $current in
       -        [0-9]*) ;;
       +        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
                *)
       -          $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
       +          $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
                  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
        
                case $revision in
       -        [0-9]*) ;;
       +        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
                *)
       -          $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
       +          $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
                  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
        
                case $age in
       -        [0-9]*) ;;
       +        0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
                *)
       -          $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
       +          $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
                  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
        
       -        if test $age -gt $current; then
       +        if test "$age" -gt "$current"; then
                  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
                  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                # Calculate the version variables.
       t@@ -2314,7 +3160,7 @@ compiler."
                  versuffix="$major.$age.$revision"
                  # Darwin ld doesn't like 0 for these options...
                  minor_current=`expr $current + 1`
       -          verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
       +          verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
                  ;;
        
                freebsd-aout)
       t@@ -2338,7 +3184,7 @@ compiler."
        
                  # Add in all the interfaces that we are compatible with.
                  loop=$revision
       -          while test $loop != 0; do
       +          while test "$loop" -ne 0; do
                    iface=`expr $revision - $loop`
                    loop=`expr $loop - 1`
                    verstring="$verstring_prefix$major.$iface:$verstring"
       t@@ -2361,7 +3207,7 @@ compiler."
        
                  # Add in all the interfaces that we are compatible with.
                  loop=$age
       -          while test $loop != 0; do
       +          while test "$loop" -ne 0; do
                    iface=`expr $current - $loop`
                    loop=`expr $loop - 1`
                    verstring="$verstring:${iface}.0"
       t@@ -2385,20 +3231,19 @@ compiler."
        
                *)
                  $echo "$modename: unknown library version type \`$version_type'" 1>&2
       -          echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
       -          exit 1
       +          $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
       +          exit $EXIT_FAILURE
                  ;;
                esac
        
                # Clear the version info if we defaulted, and they specified a release.
                if test -z "$vinfo" && test -n "$release"; then
                  major=
       -          verstring="0.0"
                  case $version_type in
                  darwin)
                    # we can't check for "0.0" in archive_cmds due to quoting
                    # problems, so we reset it completely
       -            verstring=""
       +            verstring=
                    ;;
                  *)
                    verstring="0.0"
       t@@ -2432,9 +3277,30 @@ compiler."
              fi
        
              if test "$mode" != relink; then
       -        # Remove our outputs.
       -        $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*"
       -        $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*
       +        # Remove our outputs, but don't remove object files since they
       +        # may have been created when compiling PIC objects.
       +        removelist=
       +        tempremovelist=`$echo "$output_objdir/*"`
       +        for p in $tempremovelist; do
       +          case $p in
       +            *.$objext)
       +               ;;
       +            $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
       +               if test "X$precious_files_regex" != "X"; then
       +                 if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
       +                 then
       +                   continue
       +                 fi
       +               fi
       +               removelist="$removelist $p"
       +               ;;
       +            *) ;;
       +          esac
       +        done
       +        if test -n "$removelist"; then
       +          $show "${rm}r $removelist"
       +          $run ${rm}r $removelist
       +        fi
              fi
        
              # Now set the variables for building old libraries.
       t@@ -2447,9 +3313,9 @@ compiler."
        
              # Eliminate all temporary directories.
              for path in $notinst_path; do
       -        lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
       -        deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
       -        dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
       +        lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
       +        deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
       +        dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
              done
        
              if test -n "$xrpath"; then
       t@@ -2462,7 +3328,7 @@ compiler."
                  *) finalize_rpath="$finalize_rpath $libdir" ;;
                  esac
                done
       -        if test $hardcode_into_libs != yes || test $build_old_libs = yes; then
       +        if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
                  dependency_libs="$temp_xrpath $dependency_libs"
                fi
              fi
       t@@ -2500,12 +3366,13 @@ compiler."
                  *-*-netbsd*)
                    # Don't link with libc until the a.out ld.so is fixed.
                    ;;
       -          *-*-openbsd* | *-*-freebsd*)
       +          *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
                    # Do not include libc due to us having libc/libc_r.
       +            test "X$arg" = "X-lc" && continue
                    ;;
       -          *)
       +           *)
                    # Add libc to deplibs on all other systems if necessary.
       -            if test $build_libtool_need_lc = "yes"; then
       +            if test "$build_libtool_need_lc" = "yes"; then
                      deplibs="$deplibs -lc"
                    fi
                    ;;
       t@@ -2532,7 +3399,7 @@ compiler."
                  # This might be a little naive.  We might want to check
                  # whether the library exists or not.  But this is on
                  # osf3 & osf4 and I'm not really sure... Just
       -          # implementing what was already the behaviour.
       +          # implementing what was already the behavior.
                  newdeplibs=$deplibs
                  ;;
                test_compile)
       t@@ -2545,68 +3412,88 @@ compiler."
                  int main() { return 0; }
        EOF
                  $rm conftest
       -          $CC -o conftest conftest.c $deplibs
       -          if test $? -eq 0 ; then
       +          $LTCC -o conftest conftest.c $deplibs
       +          if test "$?" -eq 0 ; then
                    ldd_output=`ldd conftest`
                    for i in $deplibs; do
                      name="`expr $i : '-l\(.*\)'`"
                      # If $name is empty we are operating on a -L argument.
       -              if test -n "$name" && test "$name" != "0"; then
       -                libname=`eval \\$echo \"$libname_spec\"`
       -                deplib_matches=`eval \\$echo \"$library_names_spec\"`
       -                set dummy $deplib_matches
       -                deplib_match=$2
       -                if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
       -                  newdeplibs="$newdeplibs $i"
       -                else
       -                  droppeddeps=yes
       -                  echo
       -                  echo "*** Warning: dynamic linker does not accept needed library $i."
       -                  echo "*** I have the capability to make that library automatically link in when"
       -                  echo "*** you link to this library.  But I can only do this if you have a"
       -                  echo "*** shared version of the library, which I believe you do not have"
       -                  echo "*** because a test_compile did reveal that the linker did not use it for"
       -                  echo "*** its dynamic dependency list that programs get resolved with at runtime."
       +              if test "$name" != "" && test "$name" -ne "0"; then
       +                if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +                  case " $predeps $postdeps " in
       +                  *" $i "*)
       +                    newdeplibs="$newdeplibs $i"
       +                    i=""
       +                    ;;
       +                  esac
       +                fi
       +                if test -n "$i" ; then
       +                  libname=`eval \\$echo \"$libname_spec\"`
       +                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
       +                  set dummy $deplib_matches
       +                  deplib_match=$2
       +                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
       +                    newdeplibs="$newdeplibs $i"
       +                  else
       +                    droppeddeps=yes
       +                    $echo
       +                    $echo "*** Warning: dynamic linker does not accept needed library $i."
       +                    $echo "*** I have the capability to make that library automatically link in when"
       +                    $echo "*** you link to this library.  But I can only do this if you have a"
       +                    $echo "*** shared version of the library, which I believe you do not have"
       +                    $echo "*** because a test_compile did reveal that the linker did not use it for"
       +                    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
       +                  fi
                        fi
                      else
                        newdeplibs="$newdeplibs $i"
                      fi
                    done
                  else
       -            # Error occured in the first compile.  Let's try to salvage
       +            # Error occurred in the first compile.  Let's try to salvage
                    # the situation: Compile a separate program for each library.
                    for i in $deplibs; do
                      name="`expr $i : '-l\(.*\)'`"
       -             # If $name is empty we are operating on a -L argument.
       -              if test -n "$name" && test "$name" != "0"; then
       -                $rm conftest
       -                $CC -o conftest conftest.c $i
       -                # Did it work?
       -                if test $? -eq 0 ; then
       -                  ldd_output=`ldd conftest`
       -                  libname=`eval \\$echo \"$libname_spec\"`
       -                  deplib_matches=`eval \\$echo \"$library_names_spec\"`
       -                  set dummy $deplib_matches
       -                  deplib_match=$2
       -                  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
       -                    newdeplibs="$newdeplibs $i"
       -                  else
       -                    droppeddeps=yes
       -                    echo
       -                    echo "*** Warning: dynamic linker does not accept needed library $i."
       -                    echo "*** I have the capability to make that library automatically link in when"
       -                    echo "*** you link to this library.  But I can only do this if you have a"
       -                    echo "*** shared version of the library, which you do not appear to have"
       -                    echo "*** because a test_compile did reveal that the linker did not use this one"
       -                    echo "*** as a dynamic dependency that programs can get resolved with at runtime."
       +              # If $name is empty we are operating on a -L argument.
       +              if test "$name" != "" && test "$name" != "0"; then
       +                $rm conftest
       +                $LTCC -o conftest conftest.c $i
       +                # Did it work?
       +                if test "$?" -eq 0 ; then
       +                  ldd_output=`ldd conftest`
       +                  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +                    case " $predeps $postdeps " in
       +                    *" $i "*)
       +                      newdeplibs="$newdeplibs $i"
       +                      i=""
       +                      ;;
       +                    esac
       +                  fi
       +                  if test -n "$i" ; then
       +                    libname=`eval \\$echo \"$libname_spec\"`
       +                    deplib_matches=`eval \\$echo \"$library_names_spec\"`
       +                    set dummy $deplib_matches
       +                    deplib_match=$2
       +                    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
       +                      newdeplibs="$newdeplibs $i"
       +                    else
       +                      droppeddeps=yes
       +                      $echo
       +                      $echo "*** Warning: dynamic linker does not accept needed library $i."
       +                      $echo "*** I have the capability to make that library automatically link in when"
       +                      $echo "*** you link to this library.  But I can only do this if you have a"
       +                      $echo "*** shared version of the library, which you do not appear to have"
       +                      $echo "*** because a test_compile did reveal that the linker did not use this one"
       +                      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
       +                    fi
                          fi
                        else
                          droppeddeps=yes
       -                  echo
       -                  echo "*** Warning!  Library $i is needed by this library but I was not able to"
       -                  echo "***  make it link in!  You will probably need to install it or some"
       -                  echo "*** library that it depends on before this library will be fully"
       -                  echo "*** functional.  Installing it before continuing would be even better."
       +                  $echo
       +                  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
       +                  $echo "***  make it link in!  You will probably need to install it or some"
       +                  $echo "*** library that it depends on before this library will be fully"
       +                  $echo "*** functional.  Installing it before continuing would be even better."
                        fi
                      else
                        newdeplibs="$newdeplibs $i"
       t@@ -2620,11 +3507,20 @@ EOF
                  for a_deplib in $deplibs; do
                    name="`expr $a_deplib : '-l\(.*\)'`"
                    # If $name is empty we are operating on a -L argument.
       -            if test -n "$name" && test "$name" != "0"; then
       -              libname=`eval \\$echo \"$libname_spec\"`
       -              for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
       -                    potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
       -                    for potent_lib in $potential_libs; do
       +            if test "$name" != "" && test  "$name" != "0"; then
       +              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +                case " $predeps $postdeps " in
       +                *" $a_deplib "*)
       +                  newdeplibs="$newdeplibs $a_deplib"
       +                  a_deplib=""
       +                  ;;
       +                esac
       +              fi
       +              if test -n "$a_deplib" ; then
       +                libname=`eval \\$echo \"$libname_spec\"`
       +                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
       +                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
       +                  for potent_lib in $potential_libs; do
                              # Follow soft links.
                              if ls -lLd "$potent_lib" 2>/dev/null \
                                 | grep " -> " >/dev/null; then
       t@@ -2645,26 +3541,27 @@ EOF
                              done
                              if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
                                 | ${SED} 10q \
       -                         | egrep "$file_magic_regex" > /dev/null; then
       +                         | $EGREP "$file_magic_regex" > /dev/null; then
                                newdeplibs="$newdeplibs $a_deplib"
                                a_deplib=""
                                break 2
                              fi
       -                    done
       -              done
       +                  done
       +                done
       +              fi
                      if test -n "$a_deplib" ; then
                        droppeddeps=yes
       -                echo
       -                echo "*** Warning: linker path does not have real file for library $a_deplib."
       -                echo "*** I have the capability to make that library automatically link in when"
       -                echo "*** you link to this library.  But I can only do this if you have a"
       -                echo "*** shared version of the library, which you do not appear to have"
       -                echo "*** because I did check the linker path looking for a file starting"
       +                $echo
       +                $echo "*** Warning: linker path does not have real file for library $a_deplib."
       +                $echo "*** I have the capability to make that library automatically link in when"
       +                $echo "*** you link to this library.  But I can only do this if you have a"
       +                $echo "*** shared version of the library, which you do not appear to have"
       +                $echo "*** because I did check the linker path looking for a file starting"
                        if test -z "$potlib" ; then
       -                  echo "*** with $libname but no candidates were found. (...for file magic test)"
       +                  $echo "*** with $libname but no candidates were found. (...for file magic test)"
                        else
       -                  echo "*** with $libname and none of the candidates passed a file format test"
       -                  echo "*** using a file magic. Last file checked: $potlib"
       +                  $echo "*** with $libname and none of the candidates passed a file format test"
       +                  $echo "*** using a file magic. Last file checked: $potlib"
                        fi
                      fi
                    else
       t@@ -2680,33 +3577,43 @@ EOF
                    name="`expr $a_deplib : '-l\(.*\)'`"
                    # If $name is empty we are operating on a -L argument.
                    if test -n "$name" && test "$name" != "0"; then
       -              libname=`eval \\$echo \"$libname_spec\"`
       -              for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
       -                potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
       -                for potent_lib in $potential_libs; do
       -                  potlib="$potent_lib" # see symlink-check below in file_magic test
       -                  if eval echo \"$potent_lib\" 2>/dev/null \
       -                      | ${SED} 10q \
       -                      | egrep "$match_pattern_regex" > /dev/null; then
       -                    newdeplibs="$newdeplibs $a_deplib"
       -                    a_deplib=""
       -                    break 2
       -                  fi
       +              if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +                case " $predeps $postdeps " in
       +                *" $a_deplib "*)
       +                  newdeplibs="$newdeplibs $a_deplib"
       +                  a_deplib=""
       +                  ;;
       +                esac
       +              fi
       +              if test -n "$a_deplib" ; then
       +                libname=`eval \\$echo \"$libname_spec\"`
       +                for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
       +                  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
       +                  for potent_lib in $potential_libs; do
       +                    potlib="$potent_lib" # see symlink-check above in file_magic test
       +                    if eval $echo \"$potent_lib\" 2>/dev/null \
       +                        | ${SED} 10q \
       +                        | $EGREP "$match_pattern_regex" > /dev/null; then
       +                      newdeplibs="$newdeplibs $a_deplib"
       +                      a_deplib=""
       +                      break 2
       +                    fi
       +                  done
                        done
       -              done
       +              fi
                      if test -n "$a_deplib" ; then
                        droppeddeps=yes
       -                echo
       -                echo "*** Warning: linker path does not have real file for library $a_deplib."
       -                echo "*** I have the capability to make that library automatically link in when"
       -                echo "*** you link to this library.  But I can only do this if you have a"
       -                echo "*** shared version of the library, which you do not appear to have"
       -                echo "*** because I did check the linker path looking for a file starting"
       +                $echo
       +                $echo "*** Warning: linker path does not have real file for library $a_deplib."
       +                $echo "*** I have the capability to make that library automatically link in when"
       +                $echo "*** you link to this library.  But I can only do this if you have a"
       +                $echo "*** shared version of the library, which you do not appear to have"
       +                $echo "*** because I did check the linker path looking for a file starting"
                        if test -z "$potlib" ; then
       -                  echo "*** with $libname but no candidates were found. (...for regex pattern test)"
       +                  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
                        else
       -                  echo "*** with $libname and none of the candidates passed a file format test"
       -                  echo "*** using a regex pattern. Last file checked: $potlib"
       +                  $echo "*** with $libname and none of the candidates passed a file format test"
       +                  $echo "*** using a regex pattern. Last file checked: $potlib"
                        fi
                      fi
                    else
       t@@ -2717,16 +3624,23 @@ EOF
                  ;;
                none | unknown | *)
                  newdeplibs=""
       -          if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
       -               -e 's/ -[LR][^ ]*//g' -e 's/[         ]//g' |
       -             grep . >/dev/null; then
       -            echo
       +          tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
       +            -e 's/ -[LR][^ ]*//g'`
       +          if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
       +            for i in $predeps $postdeps ; do
       +              # can't use Xsed below, because $i might contain '/'
       +              tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
       +            done
       +          fi
       +          if $echo "X $tmp_deplibs" | $Xsed -e 's/[         ]//g' \
       +            | grep . >/dev/null; then
       +            $echo
                    if test "X$deplibs_check_method" = "Xnone"; then
       -              echo "*** Warning: inter-library dependencies are not supported in this platform."
       +              $echo "*** Warning: inter-library dependencies are not supported in this platform."
                    else
       -              echo "*** Warning: inter-library dependencies are not known to be supported."
       +              $echo "*** Warning: inter-library dependencies are not known to be supported."
                    fi
       -            echo "*** All declared inter-library dependencies are being dropped."
       +            $echo "*** All declared inter-library dependencies are being dropped."
                    droppeddeps=yes
                  fi
                  ;;
       t@@ -2746,17 +3660,17 @@ EOF
        
                if test "$droppeddeps" = yes; then
                  if test "$module" = yes; then
       -            echo
       -            echo "*** Warning: libtool could not satisfy all declared inter-library"
       -            echo "*** dependencies of module $libname.  Therefore, libtool will create"
       -            echo "*** a static module, that should work as long as the dlopening"
       -            echo "*** application is linked with the -dlopen flag."
       +            $echo
       +            $echo "*** Warning: libtool could not satisfy all declared inter-library"
       +            $echo "*** dependencies of module $libname.  Therefore, libtool will create"
       +            $echo "*** a static module, that should work as long as the dlopening"
       +            $echo "*** application is linked with the -dlopen flag."
                    if test -z "$global_symbol_pipe"; then
       -              echo
       -              echo "*** However, this would only work if libtool was able to extract symbol"
       -              echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
       -              echo "*** not find such a program.  So, this module is probably useless."
       -              echo "*** \`nm' from GNU binutils and a full rebuild may help."
       +              $echo
       +              $echo "*** However, this would only work if libtool was able to extract symbol"
       +              $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
       +              $echo "*** not find such a program.  So, this module is probably useless."
       +              $echo "*** \`nm' from GNU binutils and a full rebuild may help."
                    fi
                    if test "$build_old_libs" = no; then
                      oldlibs="$output_objdir/$libname.$libext"
       t@@ -2766,16 +3680,16 @@ EOF
                      build_libtool_libs=no
                    fi
                  else
       -            echo "*** The inter-library dependencies that have been dropped here will be"
       -            echo "*** automatically added whenever a program is linked with this library"
       -            echo "*** or is declared to -dlopen it."
       -
       -            if test $allow_undefined = no; then
       -              echo
       -              echo "*** Since this library must not contain undefined symbols,"
       -              echo "*** because either the platform does not support them or"
       -              echo "*** it was explicitly requested with -no-undefined,"
       -              echo "*** libtool will only create a static version of it."
       +            $echo "*** The inter-library dependencies that have been dropped here will be"
       +            $echo "*** automatically added whenever a program is linked with this library"
       +            $echo "*** or is declared to -dlopen it."
       +
       +            if test "$allow_undefined" = no; then
       +              $echo
       +              $echo "*** Since this library must not contain undefined symbols,"
       +              $echo "*** because either the platform does not support them or"
       +              $echo "*** it was explicitly requested with -no-undefined,"
       +              $echo "*** libtool will only create a static version of it."
                      if test "$build_old_libs" = no; then
                        oldlibs="$output_objdir/$libname.$libext"
                        build_libtool_libs=module
       t@@ -2797,7 +3711,7 @@ EOF
        
              # Test again, we may have decided not to build it any more
              if test "$build_libtool_libs" = yes; then
       -        if test $hardcode_into_libs = yes; then
       +        if test "$hardcode_into_libs" = yes; then
                  # Hardcode the library paths
                  hardcode_libdirs=
                  dep_rpath=
       t@@ -2833,7 +3747,11 @@ EOF
                  if test -n "$hardcode_libdir_separator" &&
                     test -n "$hardcode_libdirs"; then
                    libdir="$hardcode_libdirs"
       -            eval dep_rpath=\"$hardcode_libdir_flag_spec\"
       +            if test -n "$hardcode_libdir_flag_spec_ld"; then
       +              eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
       +            else
       +              eval dep_rpath=\"$hardcode_libdir_flag_spec\"
       +            fi
                  fi
                  if test -n "$runpath_var" && test -n "$perm_rpath"; then
                    # We should set the runpath_var.
       t@@ -2853,6 +3771,7 @@ EOF
                fi
        
                # Get the real and link names of the library.
       +        eval shared_ext=\"$shrext_cmds\"
                eval library_names=\"$library_names_spec\"
                set dummy $library_names
                realname="$2"
       t@@ -2863,7 +3782,9 @@ EOF
                else
                  soname="$realname"
                fi
       -        test -z "$dlname" && dlname=$soname
       +        if test -z "$dlname"; then
       +          dlname=$soname
       +        fi
        
                lib="$output_objdir/$realname"
                for link
       t@@ -2871,23 +3792,6 @@ EOF
                  linknames="$linknames $link"
                done
        
       -        # Ensure that we have .o objects for linkers which dislike .lo
       -        # (e.g. aix) in case we are running --disable-static
       -        for obj in $libobjs; do
       -          xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
       -          if test "X$xdir" = "X$obj"; then
       -            xdir="."
       -          else
       -            xdir="$xdir"
       -          fi
       -          baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
       -          oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
       -          if test ! -f $xdir/$oldobj; then
       -            $show "(cd $xdir && ${LN_S} $baseobj $oldobj)"
       -            $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $?
       -          fi
       -        done
       -
                # Use standard objects if they are pic
                test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
        
       t@@ -2897,17 +3801,26 @@ EOF
                    $show "generating symbol list for \`$libname.la'"
                    export_symbols="$output_objdir/$libname.exp"
                    $run $rm $export_symbols
       -            eval cmds=\"$export_symbols_cmds\"
       +            cmds=$export_symbols_cmds
                    save_ifs="$IFS"; IFS='~'
                    for cmd in $cmds; do
                      IFS="$save_ifs"
       -              $show "$cmd"
       -              $run eval "$cmd" || exit $?
       +              eval cmd=\"$cmd\"
       +              if len=`expr "X$cmd" : ".*"` &&
       +               test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
       +                $show "$cmd"
       +                $run eval "$cmd" || exit $?
       +                skipped_export=false
       +              else
       +                # The command line is too long to execute in one step.
       +                $show "using reloadable object file for export list..."
       +                skipped_export=:
       +              fi
                    done
                    IFS="$save_ifs"
                    if test -n "$export_symbols_regex"; then
       -              $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
       -              $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
       +              $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
       +              $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
                      $run eval '$mv "${export_symbols}T" "$export_symbols"'
                    fi
       t@@ -2918,46 +3831,30 @@ EOF
                  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
                fi
        
       +        tmp_deplibs=
       +        for test_deplib in $deplibs; do
       +                case " $convenience " in
       +                *" $test_deplib "*) ;;
       +                *)
       +                        tmp_deplibs="$tmp_deplibs $test_deplib"
       +                        ;;
       +                esac
       +        done
       +        deplibs="$tmp_deplibs"
       +
                if test -n "$convenience"; then
                  if test -n "$whole_archive_flag_spec"; then
       +            save_libobjs=$libobjs
                    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
                  else
                    gentop="$output_objdir/${outputname}x"
       -            $show "${rm}r $gentop"
       -            $run ${rm}r "$gentop"
       -            $show "mkdir $gentop"
       -            $run mkdir "$gentop"
       -            status=$?
       -            if test $status -ne 0 && test ! -d "$gentop"; then
       -              exit $status
       -            fi
                    generated="$generated $gentop"
        
       -            for xlib in $convenience; do
       -              # Extract the objects.
       -              case $xlib in
       -              [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
       -              *) xabs=`pwd`"/$xlib" ;;
       -              esac
       -              xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
       -              xdir="$gentop/$xlib"
       -
       -              $show "${rm}r $xdir"
       -              $run ${rm}r "$xdir"
       -              $show "mkdir $xdir"
       -              $run mkdir "$xdir"
       -              status=$?
       -              if test $status -ne 0 && test ! -d "$xdir"; then
       -                exit $status
       -              fi
       -              $show "(cd $xdir && $AR x $xabs)"
       -              $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
       -
       -              libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
       -            done
       +            func_extract_archives $gentop $convenience
       +            libobjs="$libobjs $func_extract_archives_result"
                  fi
                fi
       -
       +        
                if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
                  eval flag=\"$thread_safe_flag_spec\"
                  linker_flags="$linker_flags $flag"
       t@@ -2969,25 +3866,148 @@ EOF
                fi
        
                # Do each of the archive commands.
       +        if test "$module" = yes && test -n "$module_cmds" ; then
       +          if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
       +            eval test_cmds=\"$module_expsym_cmds\"
       +            cmds=$module_expsym_cmds
       +          else
       +            eval test_cmds=\"$module_cmds\"
       +            cmds=$module_cmds
       +          fi
       +        else
                if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
       -          eval cmds=\"$archive_expsym_cmds\"
       +          eval test_cmds=\"$archive_expsym_cmds\"
       +          cmds=$archive_expsym_cmds
       +        else
       +          eval test_cmds=\"$archive_cmds\"
       +          cmds=$archive_cmds
       +          fi
       +        fi
       +
       +        if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
       +           test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
       +          :
                else
       -          save_deplibs="$deplibs"
       -          for conv in $convenience; do
       -            tmp_deplibs=
       -            for test_deplib in $deplibs; do
       -              if test "$test_deplib" != "$conv"; then
       -                tmp_deplibs="$tmp_deplibs $test_deplib"
       +          # The command line is too long to link in one step, link piecewise.
       +          $echo "creating reloadable object files..."
       +
       +          # Save the value of $output and $libobjs because we want to
       +          # use them later.  If we have whole_archive_flag_spec, we
       +          # want to use save_libobjs as it was before
       +          # whole_archive_flag_spec was expanded, because we can't
       +          # assume the linker understands whole_archive_flag_spec.
       +          # This may have to be revisited, in case too many
       +          # convenience libraries get linked in and end up exceeding
       +          # the spec.
       +          if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
       +            save_libobjs=$libobjs
       +          fi
       +          save_output=$output
       +          output_la=`$echo "X$output" | $Xsed -e "$basename"`
       +
       +          # Clear the reloadable object creation command queue and
       +          # initialize k to one.
       +          test_cmds=
       +          concat_cmds=
       +          objlist=
       +          delfiles=
       +          last_robj=
       +          k=1
       +          output=$output_objdir/$output_la-${k}.$objext
       +          # Loop over the list of objects to be linked.
       +          for obj in $save_libobjs
       +          do
       +            eval test_cmds=\"$reload_cmds $objlist $last_robj\"
       +            if test "X$objlist" = X ||
       +               { len=`expr "X$test_cmds" : ".*"` &&
       +                 test "$len" -le "$max_cmd_len"; }; then
       +              objlist="$objlist $obj"
       +            else
       +              # The command $test_cmds is almost too long, add a
       +              # command to the queue.
       +              if test "$k" -eq 1 ; then
       +                # The first file doesn't have a previous command to add.
       +                eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
       +              else
       +                # All subsequent reloadable object files will link in
       +                # the last one created.
       +                eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
                      fi
       -            done
       -            deplibs="$tmp_deplibs"
       +              last_robj=$output_objdir/$output_la-${k}.$objext
       +              k=`expr $k + 1`
       +              output=$output_objdir/$output_la-${k}.$objext
       +              objlist=$obj
       +              len=1
       +            fi
       +          done
       +          # Handle the remaining objects by creating one last
       +          # reloadable object file.  All subsequent reloadable object
       +          # files will link in the last one created.
       +          test -z "$concat_cmds" || concat_cmds=$concat_cmds~
       +          eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
       +
       +          if ${skipped_export-false}; then
       +            $show "generating symbol list for \`$libname.la'"
       +            export_symbols="$output_objdir/$libname.exp"
       +            $run $rm $export_symbols
       +            libobjs=$output
       +            # Append the command to create the export file.
       +            eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
       +          fi
       +
       +          # Set up a command to remove the reloadable object files
       +          # after they are used.
       +          i=0
       +          while test "$i" -lt "$k"
       +          do
       +            i=`expr $i + 1`
       +            delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
       +          done
       +
       +          $echo "creating a temporary reloadable object file: $output"
       +
       +          # Loop through the commands generated above and execute them.
       +          save_ifs="$IFS"; IFS='~'
       +          for cmd in $concat_cmds; do
       +            IFS="$save_ifs"
       +            $show "$cmd"
       +            $run eval "$cmd" || exit $?
                  done
       -          eval cmds=\"$archive_cmds\"
       -          deplibs="$save_deplibs"
       +          IFS="$save_ifs"
       +
       +          libobjs=$output
       +          # Restore the value of output.
       +          output=$save_output
       +
       +          if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
       +            eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
       +          fi
       +          # Expand the library linking commands again to reset the
       +          # value of $libobjs for piecewise linking.
       +
       +          # Do each of the archive commands.
       +          if test "$module" = yes && test -n "$module_cmds" ; then
       +            if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
       +              cmds=$module_expsym_cmds
       +            else
       +              cmds=$module_cmds
       +            fi
       +          else
       +          if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
       +            cmds=$archive_expsym_cmds
       +          else
       +            cmds=$archive_cmds
       +            fi
       +          fi
       +
       +          # Append the command to remove the reloadable object files
       +          # to the just-reset $cmds.
       +          eval cmds=\"\$cmds~\$rm $delfiles\"
                fi
                save_ifs="$IFS"; IFS='~'
                for cmd in $cmds; do
                  IFS="$save_ifs"
       +          eval cmd=\"$cmd\"
                  $show "$cmd"
                  $run eval "$cmd" || exit $?
                done
       t@@ -2996,7 +4016,7 @@ EOF
                # Restore the uninstalled library and exit
                if test "$mode" = relink; then
                  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
       -          exit 0
       +          exit $EXIT_SUCCESS
                fi
        
                # Create links to the real library.
       t@@ -3044,7 +4064,7 @@ EOF
              *.lo)
                if test -n "$objs$old_deplibs"; then
                  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
                libobj="$output"
                obj=`$echo "X$output" | $Xsed -e "$lo2o"`
       t@@ -3073,38 +4093,10 @@ EOF
                  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
                else
                  gentop="$output_objdir/${obj}x"
       -          $show "${rm}r $gentop"
       -          $run ${rm}r "$gentop"
       -          $show "mkdir $gentop"
       -          $run mkdir "$gentop"
       -          status=$?
       -          if test $status -ne 0 && test ! -d "$gentop"; then
       -            exit $status
       -          fi
                  generated="$generated $gentop"
        
       -          for xlib in $convenience; do
       -            # Extract the objects.
       -            case $xlib in
       -            [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
       -            *) xabs=`pwd`"/$xlib" ;;
       -            esac
       -            xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
       -            xdir="$gentop/$xlib"
       -
       -            $show "${rm}r $xdir"
       -            $run ${rm}r "$xdir"
       -            $show "mkdir $xdir"
       -            $run mkdir "$xdir"
       -            status=$?
       -            if test $status -ne 0 && test ! -d "$xdir"; then
       -              exit $status
       -            fi
       -            $show "(cd $xdir && $AR x $xabs)"
       -            $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
       -
       -            reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP`
       -          done
       +          func_extract_archives $gentop $convenience
       +          reload_conv_objs="$reload_objs $func_extract_archives_result"
                fi
              fi
        
       t@@ -3112,10 +4104,11 @@ EOF
              reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
        
              output="$obj"
       -      eval cmds=\"$reload_cmds\"
       +      cmds=$reload_cmds
              save_ifs="$IFS"; IFS='~'
              for cmd in $cmds; do
                IFS="$save_ifs"
       +        eval cmd=\"$cmd\"
                $show "$cmd"
                $run eval "$cmd" || exit $?
              done
       t@@ -3128,7 +4121,7 @@ EOF
                  $run ${rm}r $gentop
                fi
        
       -        exit 0
       +        exit $EXIT_SUCCESS
              fi
        
              if test "$build_libtool_libs" != yes; then
       t@@ -3139,37 +4132,24 @@ EOF
        
                # Create an invalid libtool object if no PIC, so that we don't
                # accidentally link it into a program.
       -        $show "echo timestamp > $libobj"
       -        $run eval "echo timestamp > $libobj" || exit $?
       -        exit 0
       +        # $show "echo timestamp > $libobj"
       +        # $run eval "echo timestamp > $libobj" || exit $?
       +        exit $EXIT_SUCCESS
              fi
        
              if test -n "$pic_flag" || test "$pic_mode" != default; then
                # Only do commands if we really have different PIC objects.
                reload_objs="$libobjs $reload_conv_objs"
                output="$libobj"
       -        eval cmds=\"$reload_cmds\"
       +        cmds=$reload_cmds
                save_ifs="$IFS"; IFS='~'
                for cmd in $cmds; do
                  IFS="$save_ifs"
       +          eval cmd=\"$cmd\"
                  $show "$cmd"
                  $run eval "$cmd" || exit $?
                done
                IFS="$save_ifs"
       -      else
       -        # Just create a symlink.
       -        $show $rm $libobj
       -        $run $rm $libobj
       -        xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'`
       -        if test "X$xdir" = "X$libobj"; then
       -          xdir="."
       -        else
       -          xdir="$xdir"
       -        fi
       -        baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'`
       -        oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"`
       -        $show "(cd $xdir && $LN_S $oldobj $baseobj)"
       -        $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $?
              fi
        
              if test -n "$gentop"; then
       t@@ -3177,12 +4157,12 @@ EOF
                $run ${rm}r $gentop
              fi
        
       -      exit 0
       +      exit $EXIT_SUCCESS
              ;;
        
            prog)
              case $host in
       -        *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
       +        *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
              esac
              if test -n "$vinfo"; then
                $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
       t@@ -3204,16 +4184,19 @@ EOF
                # On Rhapsody replace the C library is the System framework
                compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
                finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
       -        case $host in
       -        *darwin*)
       -          # Don't allow lazy linking, it breaks C++ global constructors
       -          compile_command="$compile_command ${wl}-bind_at_load"
       -          finalize_command="$finalize_command ${wl}-bind_at_load"
       -          ;;
       -        esac
                ;;
              esac
        
       +      case $host in
       +      *darwin*)
       +        # Don't allow lazy linking, it breaks C++ global constructors
       +        if test "$tagname" = CXX ; then
       +        compile_command="$compile_command ${wl}-bind_at_load"
       +        finalize_command="$finalize_command ${wl}-bind_at_load"
       +        fi
       +        ;;
       +      esac
       +
              compile_command="$compile_command $compile_deplibs"
              finalize_command="$finalize_command $finalize_deplibs"
        
       t@@ -3364,31 +4347,31 @@ extern \"C\" {
                    done
        
                    if test -n "$exclude_expsyms"; then
       -              $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
       +              $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
                      $run eval '$mv "$nlist"T "$nlist"'
                    fi
        
                    if test -n "$export_symbols_regex"; then
       -              $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T'
       +              $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
                      $run eval '$mv "$nlist"T "$nlist"'
                    fi
        
                    # Prepare the list of exported symbols
                    if test -z "$export_symbols"; then
       -              export_symbols="$output_objdir/$output.exp"
       +              export_symbols="$output_objdir/$outputname.exp"
                      $run $rm $export_symbols
                      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
                    else
       -              $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
       -              $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
       +              $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
       +              $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
                      $run eval 'mv "$nlist"T "$nlist"'
                    fi
                  fi
        
                  for arg in $dlprefiles; do
                    $show "extracting global C symbols from \`$arg'"
       -            name=`echo "$arg" | ${SED} -e 's%^.*/%%'`
       -            $run eval 'echo ": $name " >> "$nlist"'
       +            name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
       +            $run eval '$echo ": $name " >> "$nlist"'
                    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
                  done
        
       t@@ -3397,7 +4380,7 @@ extern \"C\" {
                    test -f "$nlist" || : > "$nlist"
        
                    if test -n "$exclude_expsyms"; then
       -              egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
       +              $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
                      $mv "$nlist"T "$nlist"
                    fi
        
       t@@ -3417,7 +4400,7 @@ extern \"C\" {
                    if test -f "$nlist"S; then
                      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
                    else
       -              echo '/* NONE */' >> "$output_objdir/$dlsyms"
       +              $echo '/* NONE */' >> "$output_objdir/$dlsyms"
                    fi
        
                    $echo >> "$output_objdir/$dlsyms" "\
       t@@ -3432,7 +4415,26 @@ extern \"C\" {
        #endif
        
        /* The mapping between symbol names and symbols. */
       +"
       +
       +            case $host in
       +            *cygwin* | *mingw* )
       +          $echo >> "$output_objdir/$dlsyms" "\
       +/* DATA imports from DLLs on WIN32 can't be const, because
       +   runtime relocations are performed -- see ld's documentation
       +   on pseudo-relocs */
       +struct {
       +"
       +              ;;
       +            * )
       +          $echo >> "$output_objdir/$dlsyms" "\
        const struct {
       +"
       +              ;;
       +            esac
       +
       +
       +          $echo >> "$output_objdir/$dlsyms" "\
          const char *name;
          lt_ptr address;
        }
       t@@ -3469,18 +4471,18 @@ static const void *lt_preloaded_setup() {
                  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
                    case "$compile_command " in
                    *" -static "*) ;;
       -            *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";;
       +            *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
                    esac;;
                  *-*-hpux*)
                    case "$compile_command " in
                    *" -static "*) ;;
       -            *) pic_flag_for_symtable=" $pic_flag -DPIC";;
       +            *) pic_flag_for_symtable=" $pic_flag";;
                    esac
                  esac
        
                  # Now compile the dynamic symbol file.
       -          $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
       -          $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
       +          $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
       +          $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
        
                  # Clean up the generated files.
                  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
       t@@ -3492,7 +4494,7 @@ static const void *lt_preloaded_setup() {
                  ;;
                *)
                  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
              else
       t@@ -3505,7 +4507,7 @@ static const void *lt_preloaded_setup() {
                finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
              fi
        
       -      if test $need_relink = no || test "$build_libtool_libs" != yes; then
       +      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
                # Replace the output file specification.
                compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
                link_command="$compile_command$compile_rpath"
       t@@ -3580,7 +4582,7 @@ static const void *lt_preloaded_setup() {
                # Link the executable and exit
                $show "$link_command"
                $run eval "$link_command" || exit $?
       -        exit 0
       +        exit $EXIT_SUCCESS
              fi
        
              if test "$hardcode_action" = relink; then
       t@@ -3635,10 +4637,10 @@ static const void *lt_preloaded_setup() {
              fi
        
              # Quote $echo for shipping.
       -      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
       -        case $0 in
       -        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
       -        *) qecho="$SHELL `pwd`/$0 --fallback-echo";;
       +      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
       +        case $progpath in
       +        [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
       +        *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
                esac
                qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
              else
       t@@ -3650,15 +4652,230 @@ static const void *lt_preloaded_setup() {
                # win32 will think the script is a binary if it has
                # a .exe suffix, so we strip it off here.
                case $output in
       -          *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;;
       +          *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
                esac
                # test for cygwin because mv fails w/o .exe extensions
                case $host in
       -          *cygwin*) exeext=.exe ;;
       +          *cygwin*)
       +            exeext=.exe
       +            outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
                  *) exeext= ;;
                esac
       +        case $host in
       +          *cygwin* | *mingw* )
       +            cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
       +            cwrapper=`$echo ${output}.exe`
       +            $rm $cwrappersource $cwrapper
       +            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
       +
       +            cat > $cwrappersource <<EOF
       +
       +/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
       +   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
       +
       +   The $output program cannot be directly executed until all the libtool
       +   libraries that it depends on are installed.
       +
       +   This wrapper executable should never be moved out of the build directory.
       +   If it is, it will not operate correctly.
       +
       +   Currently, it simply execs the wrapper *script* "/bin/sh $output",
       +   but could eventually absorb all of the scripts functionality and
       +   exec $objdir/$outputname directly.
       +*/
       +EOF
       +            cat >> $cwrappersource<<"EOF"
       +#include <stdio.h>
       +#include <stdlib.h>
       +#include <unistd.h>
       +#include <malloc.h>
       +#include <stdarg.h>
       +#include <assert.h>
       +
       +#if defined(PATH_MAX)
       +# define LT_PATHMAX PATH_MAX
       +#elif defined(MAXPATHLEN)
       +# define LT_PATHMAX MAXPATHLEN
       +#else
       +# define LT_PATHMAX 1024
       +#endif
       +
       +#ifndef DIR_SEPARATOR
       +#define DIR_SEPARATOR '/'
       +#endif
       +
       +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
       +  defined (__OS2__)
       +#define HAVE_DOS_BASED_FILE_SYSTEM
       +#ifndef DIR_SEPARATOR_2
       +#define DIR_SEPARATOR_2 '\\'
       +#endif
       +#endif
       +
       +#ifndef DIR_SEPARATOR_2
       +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
       +#else /* DIR_SEPARATOR_2 */
       +# define IS_DIR_SEPARATOR(ch) \
       +        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
       +#endif /* DIR_SEPARATOR_2 */
       +
       +#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
       +#define XFREE(stale) do { \
       +  if (stale) { free ((void *) stale); stale = 0; } \
       +} while (0)
       +
       +const char *program_name = NULL;
       +
       +void * xmalloc (size_t num);
       +char * xstrdup (const char *string);
       +char * basename (const char *name);
       +char * fnqualify(const char *path);
       +char * strendzap(char *str, const char *pat);
       +void lt_fatal (const char *message, ...);
       +
       +int
       +main (int argc, char *argv[])
       +{
       +  char **newargz;
       +  int i;
       +
       +  program_name = (char *) xstrdup ((char *) basename (argv[0]));
       +  newargz = XMALLOC(char *, argc+2);
       +EOF
       +
       +            cat >> $cwrappersource <<EOF
       +  newargz[0] = "$SHELL";
       +EOF
       +
       +            cat >> $cwrappersource <<"EOF"
       +  newargz[1] = fnqualify(argv[0]);
       +  /* we know the script has the same name, without the .exe */
       +  /* so make sure newargz[1] doesn't end in .exe */
       +  strendzap(newargz[1],".exe");
       +  for (i = 1; i < argc; i++)
       +    newargz[i+1] = xstrdup(argv[i]);
       +  newargz[argc+1] = NULL;
       +EOF
       +
       +            cat >> $cwrappersource <<EOF
       +  execv("$SHELL",newargz);
       +EOF
       +
       +            cat >> $cwrappersource <<"EOF"
       +}
       +
       +void *
       +xmalloc (size_t num)
       +{
       +  void * p = (void *) malloc (num);
       +  if (!p)
       +    lt_fatal ("Memory exhausted");
       +
       +  return p;
       +}
       +
       +char *
       +xstrdup (const char *string)
       +{
       +  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
       +;
       +}
       +
       +char *
       +basename (const char *name)
       +{
       +  const char *base;
       +
       +#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
       +  /* Skip over the disk name in MSDOS pathnames. */
       +  if (isalpha (name[0]) && name[1] == ':')
       +    name += 2;
       +#endif
       +
       +  for (base = name; *name; name++)
       +    if (IS_DIR_SEPARATOR (*name))
       +      base = name + 1;
       +  return (char *) base;
       +}
       +
       +char *
       +fnqualify(const char *path)
       +{
       +  size_t size;
       +  char *p;
       +  char tmp[LT_PATHMAX + 1];
       +
       +  assert(path != NULL);
       +
       +  /* Is it qualified already? */
       +#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
       +  if (isalpha (path[0]) && path[1] == ':')
       +    return xstrdup (path);
       +#endif
       +  if (IS_DIR_SEPARATOR (path[0]))
       +    return xstrdup (path);
       +
       +  /* prepend the current directory */
       +  /* doesn't handle '~' */
       +  if (getcwd (tmp, LT_PATHMAX) == NULL)
       +    lt_fatal ("getcwd failed");
       +  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
       +  p = XMALLOC(char, size);
       +  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
       +  return p;
       +}
       +
       +char *
       +strendzap(char *str, const char *pat)
       +{
       +  size_t len, patlen;
       +
       +  assert(str != NULL);
       +  assert(pat != NULL);
       +
       +  len = strlen(str);
       +  patlen = strlen(pat);
       +
       +  if (patlen <= len)
       +  {
       +    str += len - patlen;
       +    if (strcmp(str, pat) == 0)
       +      *str = '\0';
       +  }
       +  return str;
       +}
       +
       +static void
       +lt_error_core (int exit_status, const char * mode,
       +          const char * message, va_list ap)
       +{
       +  fprintf (stderr, "%s: %s: ", program_name, mode);
       +  vfprintf (stderr, message, ap);
       +  fprintf (stderr, ".\n");
       +
       +  if (exit_status >= 0)
       +    exit (exit_status);
       +}
       +
       +void
       +lt_fatal (const char *message, ...)
       +{
       +  va_list ap;
       +  va_start (ap, message);
       +  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
       +  va_end (ap);
       +}
       +EOF
       +          # we should really use a build-platform specific compiler
       +          # here, but OTOH, the wrappers (shell script and this C one)
       +          # are only useful if you want to execute the "real" binary.
       +          # Since the "real" binary is built for $host, then this
       +          # wrapper might as well be built for $host, too.
       +          $run $LTCC -s -o $cwrapper $cwrappersource
       +          ;;
       +        esac
                $rm $output
       -        trap "$rm $output; exit 1" 1 2 15
       +        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
        
                $echo > $output "\
        #! $SHELL
       t@@ -3674,12 +4891,12 @@ static const void *lt_preloaded_setup() {
        
        # Sed substitution that helps us do robust quoting.  It backslashifies
        # metacharacters that are still active within double-quoted strings.
       -Xsed="${SED}"' -e 1s/^X//'
       +Xsed='${SED} -e 1s/^X//'
        sed_quote_subst='$sed_quote_subst'
        
        # The HP-UX ksh and POSIX shell print the target directory to stdout
        # if CDPATH is set.
       -if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
       +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
        
        relink_command=\"$relink_command\"
        
       t@@ -3734,7 +4951,7 @@ else
        "
        
                if test "$fast_install" = yes; then
       -          echo >> $output "\
       +          $echo >> $output "\
          program=lt-'$outputname'$exeext
          progdir=\"\$thisdir/$objdir\"
        
       t@@ -3750,7 +4967,7 @@ else
              $rm \"\$progdir/\$file\"
            fi"
        
       -          echo >> $output "\
       +          $echo >> $output "\
        
            # relink executable if necessary
            if test -n \"\$relink_command\"; then
       t@@ -3758,7 +4975,7 @@ else
              else
                $echo \"\$relink_command_output\" >&2
                $rm \"\$progdir/\$file\"
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
            fi
        
       t@@ -3768,13 +4985,13 @@ else
            $rm \"\$progdir/\$file\"
          fi"
                else
       -          echo >> $output "\
       +          $echo >> $output "\
          program='$outputname'
          progdir=\"\$thisdir/$objdir\"
        "
                fi
        
       -        echo >> $output "\
       +        $echo >> $output "\
        
          if test -f \"\$progdir/\$program\"; then"
        
       t@@ -3785,7 +5002,7 @@ else
            $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
        
            # Some systems cannot cope with colon-terminated $shlibpath_var
       -    # The second colon is a workaround for a bug in BeOS R4 ${SED}
       +    # The second colon is a workaround for a bug in BeOS R4 sed
            $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
        
            export $shlibpath_var
       t@@ -3805,14 +5022,6 @@ else
              # Run the actual program with our arguments.
        "
                case $host in
       -        # win32 systems need to use the prog path for dll
       -        # lookup to work
       -        *-*-cygwin* | *-*-pw32*)
       -          $echo >> $output "\
       -      exec \$progdir/\$program \${1+\"\$@\"}
       -"
       -          ;;
       -
                # Backslashes separate directories on plain windows
                *-*-mingw | *-*-os2*)
                  $echo >> $output "\
       t@@ -3822,30 +5031,26 @@ else
        
                *)
                  $echo >> $output "\
       -      # Export the path to the program.
       -      PATH=\"\$progdir:\$PATH\"
       -      export PATH
       -
       -      exec \$program \${1+\"\$@\"}
       +      exec \$progdir/\$program \${1+\"\$@\"}
        "
                  ;;
                esac
                $echo >> $output "\
              \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
          else
            # The program doesn't exist.
            \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
            \$echo \"This script is just a wrapper for \$program.\" 1>&2
       -    echo \"See the $PACKAGE documentation for more information.\" 1>&2
       -    exit 1
       +    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
       +    exit $EXIT_FAILURE
          fi
        fi\
        "
                chmod +x $output
              fi
       -      exit 0
       +      exit $EXIT_SUCCESS
              ;;
            esac
        
       t@@ -3861,74 +5066,130 @@ fi\
                  oldobjs="$libobjs_save"
                  build_libtool_libs=no
                else
       -          oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`
       +          oldobjs="$old_deplibs $non_pic_objects"
                fi
                addlibs="$old_convenience"
              fi
        
              if test -n "$addlibs"; then
                gentop="$output_objdir/${outputname}x"
       -        $show "${rm}r $gentop"
       -        $run ${rm}r "$gentop"
       -        $show "mkdir $gentop"
       -        $run mkdir "$gentop"
       -        status=$?
       -        if test $status -ne 0 && test ! -d "$gentop"; then
       -          exit $status
       -        fi
                generated="$generated $gentop"
        
       -        # Add in members from convenience archives.
       -        for xlib in $addlibs; do
       -          # Extract the objects.
       -          case $xlib in
       -          [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
       -          *) xabs=`pwd`"/$xlib" ;;
       -          esac
       -          xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
       -          xdir="$gentop/$xlib"
       -
       -          $show "${rm}r $xdir"
       -          $run ${rm}r "$xdir"
       -          $show "mkdir $xdir"
       -          $run mkdir "$xdir"
       -          status=$?
       -          if test $status -ne 0 && test ! -d "$xdir"; then
       -            exit $status
       -          fi
       -          $show "(cd $xdir && $AR x $xabs)"
       -          $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
       -
       -          oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
       -        done
       +        func_extract_archives $gentop $addlibs
       +        oldobjs="$oldobjs $func_extract_archives_result"
              fi
        
              # Do each command in the archive commands.
              if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
       -        eval cmds=\"$old_archive_from_new_cmds\"
       +       cmds=$old_archive_from_new_cmds
              else
       -        # Ensure that we have .o objects in place in case we decided
       -        # not to build a shared library, and have fallen back to building
       -        # static libs even though --disable-static was passed!
       -        for oldobj in $oldobjs; do
       -          if test ! -f $oldobj; then
       -            xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'`
       -            if test "X$xdir" = "X$oldobj"; then
       -              xdir="."
       -            else
       -              xdir="$xdir"
       +        # POSIX demands no paths to be encoded in archives.  We have
       +        # to avoid creating archives with duplicate basenames if we
       +        # might have to extract them afterwards, e.g., when creating a
       +        # static archive out of a convenience library, or when linking
       +        # the entirety of a libtool archive into another (currently
       +        # not supported by libtool).
       +        if (for obj in $oldobjs
       +            do
       +              $echo "X$obj" | $Xsed -e 's%^.*/%%'
       +            done | sort | sort -uc >/dev/null 2>&1); then
       +          :
       +        else
       +          $echo "copying selected object files to avoid basename conflicts..."
       +
       +          if test -z "$gentop"; then
       +            gentop="$output_objdir/${outputname}x"
       +            generated="$generated $gentop"
       +
       +            $show "${rm}r $gentop"
       +            $run ${rm}r "$gentop"
       +            $show "$mkdir $gentop"
       +            $run $mkdir "$gentop"
       +            status=$?
       +            if test "$status" -ne 0 && test ! -d "$gentop"; then
       +              exit $status
                    fi
       -            baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'`
       -            obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"`
       -            $show "(cd $xdir && ${LN_S} $obj $baseobj)"
       -            $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $?
                  fi
       -        done
       +
       +          save_oldobjs=$oldobjs
       +          oldobjs=
       +          counter=1
       +          for obj in $save_oldobjs
       +          do
       +            objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
       +            case " $oldobjs " in
       +            " ") oldobjs=$obj ;;
       +            *[\ /]"$objbase "*)
       +              while :; do
       +                # Make sure we don't pick an alternate name that also
       +                # overlaps.
       +                newobj=lt$counter-$objbase
       +                counter=`expr $counter + 1`
       +                case " $oldobjs " in
       +                *[\ /]"$newobj "*) ;;
       +                *) if test ! -f "$gentop/$newobj"; then break; fi ;;
       +                esac
       +              done
       +              $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
       +              $run ln "$obj" "$gentop/$newobj" ||
       +              $run cp "$obj" "$gentop/$newobj"
       +              oldobjs="$oldobjs $gentop/$newobj"
       +              ;;
       +            *) oldobjs="$oldobjs $obj" ;;
       +            esac
       +          done
       +        fi
        
                eval cmds=\"$old_archive_cmds\"
       +
       +        if len=`expr "X$cmds" : ".*"` &&
       +             test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
       +          cmds=$old_archive_cmds
       +        else
       +          # the command line is too long to link in one step, link in parts
       +          $echo "using piecewise archive linking..."
       +          save_RANLIB=$RANLIB
       +          RANLIB=:
       +          objlist=
       +          concat_cmds=
       +          save_oldobjs=$oldobjs
       +
       +          # Is there a better way of finding the last object in the list?
       +          for obj in $save_oldobjs
       +          do
       +            last_oldobj=$obj
       +          done
       +          for obj in $save_oldobjs
       +          do
       +            oldobjs="$objlist $obj"
       +            objlist="$objlist $obj"
       +            eval test_cmds=\"$old_archive_cmds\"
       +            if len=`expr "X$test_cmds" : ".*"` &&
       +               test "$len" -le "$max_cmd_len"; then
       +              :
       +            else
       +              # the above command should be used before it gets too long
       +              oldobjs=$objlist
       +              if test "$obj" = "$last_oldobj" ; then
       +                RANLIB=$save_RANLIB
       +              fi
       +              test -z "$concat_cmds" || concat_cmds=$concat_cmds~
       +              eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
       +              objlist=
       +            fi
       +          done
       +          RANLIB=$save_RANLIB
       +          oldobjs=$objlist
       +          if test "X$oldobjs" = "X" ; then
       +            eval cmds=\"\$concat_cmds\"
       +          else
       +            eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
       +          fi
       +        fi
              fi
              save_ifs="$IFS"; IFS='~'
              for cmd in $cmds; do
       +        eval cmd=\"$cmd\"
                IFS="$save_ifs"
                $show "$cmd"
                $run eval "$cmd" || exit $?
       t@@ -3960,8 +5221,12 @@ fi\
                fi
              done
              # Quote the link command for shipping.
       -      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
       +      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
              relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
       +      if test "$hardcode_automatic" = yes ; then
       +        relink_command=
       +      fi
       +
        
              # Only create the output if not a dry run.
              if test -z "$run"; then
       t@@ -3980,7 +5245,7 @@ fi\
                        eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
                        if test -z "$libdir"; then
                          $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
       -                  exit 1
       +                  exit $EXIT_FAILURE
                        fi
                        newdependency_libs="$newdependency_libs $libdir/$name"
                        ;;
       t@@ -3994,7 +5259,7 @@ fi\
                      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                      if test -z "$libdir"; then
                        $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
       -                exit 1
       +                exit $EXIT_FAILURE
                      fi
                      newdlfiles="$newdlfiles $libdir/$name"
                    done
       t@@ -4005,17 +5270,36 @@ fi\
                      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
                      if test -z "$libdir"; then
                        $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
       -                exit 1
       +                exit $EXIT_FAILURE
                      fi
                      newdlprefiles="$newdlprefiles $libdir/$name"
                    done
                    dlprefiles="$newdlprefiles"
       +          else
       +            newdlfiles=
       +            for lib in $dlfiles; do
       +              case $lib in
       +                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
       +                *) abs=`pwd`"/$lib" ;;
       +              esac
       +              newdlfiles="$newdlfiles $abs"
       +            done
       +            dlfiles="$newdlfiles"
       +            newdlprefiles=
       +            for lib in $dlprefiles; do
       +              case $lib in
       +                [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
       +                *) abs=`pwd`"/$lib" ;;
       +              esac
       +              newdlprefiles="$newdlprefiles $abs"
       +            done
       +            dlprefiles="$newdlprefiles"
                  fi
                  $rm $output
                  # place dlname in correct position for cygwin
                  tdlname=$dlname
                  case $host,$output,$installed,$module,$dlname in
       -            *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
       +            *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
                  esac
                  $echo > $output "\
        # $outputname - a libtool library file
       t@@ -4044,13 +5328,16 @@ revision=$revision
        # Is this an already installed library?
        installed=$installed
        
       +# Should we warn about portability when linking against -modules?
       +shouldnotlink=$module
       +
        # Files to dlopen/dlpreopen
        dlopen='$dlfiles'
        dlpreopen='$dlprefiles'
        
        # Directory that this library needs to be installed in:
        libdir='$install_libdir'"
       -          if test "$installed" = no && test $need_relink = yes; then
       +          if test "$installed" = no && test "$need_relink" = yes; then
                    $echo >> $output "\
        relink_command=\"$relink_command\""
                  fi
       t@@ -4063,7 +5350,7 @@ relink_command=\"$relink_command\""
              $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
              ;;
            esac
       -    exit 0
       +    exit $EXIT_SUCCESS
            ;;
        
          # libtool install mode
       t@@ -4078,7 +5365,7 @@ relink_command=\"$relink_command\""
              # Aesthetically quote it.
              arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
              case $arg in
       -      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*)
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                arg="\"$arg\""
                ;;
              esac
       t@@ -4094,7 +5381,7 @@ relink_command=\"$relink_command\""
            # Aesthetically quote it.
            arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
            case $arg in
       -    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*)
       +    *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
              arg="\"$arg\""
              ;;
            esac
       t@@ -4142,7 +5429,7 @@ relink_command=\"$relink_command\""
              # Aesthetically quote the argument.
              arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
              case $arg in
       -      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \        ]*|*]*)
       +      *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
                arg="\"$arg\""
                ;;
              esac
       t@@ -4152,13 +5439,13 @@ relink_command=\"$relink_command\""
            if test -z "$install_prog"; then
              $echo "$modename: you must specify an install program" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            if test -n "$prev"; then
              $echo "$modename: the \`$prev' option requires an argument" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            if test -z "$files"; then
       t@@ -4168,7 +5455,7 @@ relink_command=\"$relink_command\""
                $echo "$modename: you must specify a destination" 1>&2
              fi
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            # Strip any trailing slash from the destination.
       t@@ -4186,10 +5473,10 @@ relink_command=\"$relink_command\""
        
              # Not a directory, so check to see that there is only one file specified.
              set dummy $files
       -      if test $# -gt 2; then
       +      if test "$#" -gt 2; then
                $echo "$modename: \`$dest' is not a directory" 1>&2
                $echo "$help" 1>&2
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
            fi
            case $destdir in
       t@@ -4201,7 +5488,7 @@ relink_command=\"$relink_command\""
                *)
                  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
              done
       t@@ -4226,11 +5513,11 @@ relink_command=\"$relink_command\""
        
              *.la)
                # Check to see that this really is a libtool archive.
       -        if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
       +        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
                else
                  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                library_names=
       t@@ -4262,21 +5549,24 @@ relink_command=\"$relink_command\""
        
                if test -n "$relink_command"; then
                  # Determine the prefix the user has applied to our future dir.
       -          inst_prefix_dir=`$echo "$destdir" | sed "s%$libdir\$%%"`
       +          inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
        
                  # Don't allow the user to place us outside of our expected
                  # location b/c this prevents finding dependent libraries that
                  # are installed to the same prefix.
       +          # At present, this check doesn't affect windows .dll's that
       +          # are installed into $libdir/../bin (currently, that works fine)
       +          # but it's something to keep an eye on.
                  if test "$inst_prefix_dir" = "$destdir"; then
                    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
        
                  if test -n "$inst_prefix_dir"; then
                    # Stick the inst_prefix_dir data into the link command.
       -            relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
       +            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
                  else
       -            relink_command=`$echo "$relink_command" | sed "s%@inst_prefix_dir@%%"`
       +            relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
                  fi
        
                  $echo "$modename: warning: relinking \`$file'" 1>&2
       t@@ -4284,7 +5574,7 @@ relink_command=\"$relink_command\""
                  if $run eval "$relink_command"; then :
                  else
                    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
                fi
        
       t@@ -4306,7 +5596,7 @@ relink_command=\"$relink_command\""
                    $run eval "$striplib $destdir/$realname" || exit $?
                  fi
        
       -          if test $# -gt 0; then
       +          if test "$#" -gt 0; then
                    # Delete the old symlinks, and create new ones.
                    for linkname
                    do
       t@@ -4319,10 +5609,11 @@ relink_command=\"$relink_command\""
        
                  # Do each command in the postinstall commands.
                  lib="$destdir/$realname"
       -          eval cmds=\"$postinstall_cmds\"
       +          cmds=$postinstall_cmds
                  save_ifs="$IFS"; IFS='~'
                  for cmd in $cmds; do
                    IFS="$save_ifs"
       +            eval cmd=\"$cmd\"
                    $show "$cmd"
                    $run eval "$cmd" || exit $?
                  done
       t@@ -4362,7 +5653,7 @@ relink_command=\"$relink_command\""
                *)
                  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                  ;;
                esac
        
       t@@ -4380,7 +5671,7 @@ relink_command=\"$relink_command\""
                  $show "$install_prog $staticobj $staticdest"
                  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
                fi
       -        exit 0
       +        exit $EXIT_SUCCESS
                ;;
        
              *)
       t@@ -4392,29 +5683,49 @@ relink_command=\"$relink_command\""
                  destfile="$destdir/$destfile"
                fi
        
       +        # If the file is missing, and there is a .exe on the end, strip it
       +        # because it is most likely a libtool script we actually want to
       +        # install
       +        stripped_ext=""
       +        case $file in
       +          *.exe)
       +            if test ! -f "$file"; then
       +              file=`$echo $file|${SED} 's,.exe$,,'`
       +              stripped_ext=".exe"
       +            fi
       +            ;;
       +        esac
       +
                # Do a test to see if this is really a libtool program.
                case $host in
                *cygwin*|*mingw*)
       -            wrapper=`echo $file | ${SED} -e 's,.exe$,,'`
       +            wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
                    ;;
                *)
                    wrapper=$file
                    ;;
                esac
       -        if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
       +        if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
                  notinst_deplibs=
                  relink_command=
        
       +          # To insure that "foo" is sourced, and not "foo.exe",
       +          # finese the cygwin/MSYS system by explicitly sourcing "foo."
       +          # which disallows the automatic-append-.exe behavior.
       +          case $build in
       +          *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
       +          *) wrapperdot=${wrapper} ;;
       +          esac
                  # If there is no directory component, then add one.
                  case $file in
       -          */* | *\\*) . $wrapper ;;
       -          *) . ./$wrapper ;;
       +          */* | *\\*) . ${wrapperdot} ;;
       +          *) . ./${wrapperdot} ;;
                  esac
        
                  # Check the variables that should have been set.
                  if test -z "$notinst_deplibs"; then
                    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
       -            exit 1
       +            exit $EXIT_FAILURE
                  fi
        
                  finalize=yes
       t@@ -4436,10 +5747,17 @@ relink_command=\"$relink_command\""
                  done
        
                  relink_command=
       +          # To insure that "foo" is sourced, and not "foo.exe",
       +          # finese the cygwin/MSYS system by explicitly sourcing "foo."
       +          # which disallows the automatic-append-.exe behavior.
       +          case $build in
       +          *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
       +          *) wrapperdot=${wrapper} ;;
       +          esac
                  # If there is no directory component, then add one.
                  case $file in
       -          */* | *\\*) . $wrapper ;;
       -          *) . ./$wrapper ;;
       +          */* | *\\*) . ${wrapperdot} ;;
       +          *) . ./${wrapperdot} ;;
                  esac
        
                  outputname=
       t@@ -4447,19 +5765,17 @@ relink_command=\"$relink_command\""
                    if test "$finalize" = yes && test -z "$run"; then
                      tmpdir="/tmp"
                      test -n "$TMPDIR" && tmpdir="$TMPDIR"
       -              tmpdir_mktemp=`mktemp -d $tmpdir/libtool-XXXXXX 2> /dev/null`
       -              if test $? = 0 ; then
       -                tmpdir="$tmpdir_mktemp"
       -                unset tmpdir_mktemp
       -               else
       -                tmpdir="$tmpdir/libtool-$$"
       -              fi
       -              if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
       +              tmpdir="$tmpdir/libtool-$$"
       +              save_umask=`umask`
       +              umask 0077
       +              if $mkdir "$tmpdir"; then
       +                umask $save_umask
                      else
       +                umask $save_umask
                        $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
                        continue
                      fi
       -              file=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
       +              file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
                      outputname="$tmpdir/$file"
                      # Replace the output file specification.
                      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
       t@@ -4477,14 +5793,14 @@ relink_command=\"$relink_command\""
                    fi
                  else
                    # Install the binary that we compiled earlier.
       -            file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
       +            file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
                  fi
                fi
        
                # remove .exe since cygwin /usr/bin/install will append another
                # one anyways
                case $install_prog,$host in
       -        /usr/bin/install*,*cygwin*)
       +        */usr/bin/install*,*cygwin*)
                  case $file:$destfile in
                  *.exe:*.exe)
                    # this is ok
       t@@ -4493,7 +5809,7 @@ relink_command=\"$relink_command\""
                    destfile=$destfile.exe
                    ;;
                  *:*.exe)
       -            destfile=`echo $destfile | ${SED} -e 's,.exe$,,'`
       +            destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
                    ;;
                  esac
                  ;;
       t@@ -4514,16 +5830,17 @@ relink_command=\"$relink_command\""
              $show "$install_prog $file $oldlib"
              $run eval "$install_prog \$file \$oldlib" || exit $?
        
       -      if test -n "$stripme" && test -n "$striplib"; then
       +      if test -n "$stripme" && test -n "$old_striplib"; then
                $show "$old_striplib $oldlib"
                $run eval "$old_striplib $oldlib" || exit $?
              fi
        
              # Do each command in the postinstall commands.
       -      eval cmds=\"$old_postinstall_cmds\"
       +      cmds=$old_postinstall_cmds
              save_ifs="$IFS"; IFS='~'
              for cmd in $cmds; do
                IFS="$save_ifs"
       +        eval cmd=\"$cmd\"
                $show "$cmd"
                $run eval "$cmd" || exit $?
              done
       t@@ -4537,9 +5854,9 @@ relink_command=\"$relink_command\""
            if test -n "$current_libdirs"; then
              # Maybe just do a dry run.
              test -n "$run" && current_libdirs=" -n$current_libdirs"
       -      exec_cmd='$SHELL $0 --finish$current_libdirs'
       +      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
            else
       -      exit 0
       +      exit $EXIT_SUCCESS
            fi
            ;;
        
       t@@ -4558,10 +5875,11 @@ relink_command=\"$relink_command\""
              for libdir in $libdirs; do
                if test -n "$finish_cmds"; then
                  # Do each command in the finish commands.
       -          eval cmds=\"$finish_cmds\"
       +          cmds=$finish_cmds
                  save_ifs="$IFS"; IFS='~'
                  for cmd in $cmds; do
                    IFS="$save_ifs"
       +            eval cmd=\"$cmd\"
                    $show "$cmd"
                    $run eval "$cmd" || admincmds="$admincmds
               $cmd"
       t@@ -4578,43 +5896,43 @@ relink_command=\"$relink_command\""
            fi
        
            # Exit here if they wanted silent mode.
       -    test "$show" = ":" && exit 0
       +    test "$show" = : && exit $EXIT_SUCCESS
        
       -    echo "----------------------------------------------------------------------"
       -    echo "Libraries have been installed in:"
       +    $echo "----------------------------------------------------------------------"
       +    $echo "Libraries have been installed in:"
            for libdir in $libdirs; do
       -      echo "   $libdir"
       +      $echo "   $libdir"
            done
       -    echo
       -    echo "If you ever happen to want to link against installed libraries"
       -    echo "in a given directory, LIBDIR, you must either use libtool, and"
       -    echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
       -    echo "flag during linking and do at least one of the following:"
       +    $echo
       +    $echo "If you ever happen to want to link against installed libraries"
       +    $echo "in a given directory, LIBDIR, you must either use libtool, and"
       +    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
       +    $echo "flag during linking and do at least one of the following:"
            if test -n "$shlibpath_var"; then
       -      echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
       -      echo "     during execution"
       +      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
       +      $echo "     during execution"
            fi
            if test -n "$runpath_var"; then
       -      echo "   - add LIBDIR to the \`$runpath_var' environment variable"
       -      echo "     during linking"
       +      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
       +      $echo "     during linking"
            fi
            if test -n "$hardcode_libdir_flag_spec"; then
              libdir=LIBDIR
              eval flag=\"$hardcode_libdir_flag_spec\"
        
       -      echo "   - use the \`$flag' linker flag"
       +      $echo "   - use the \`$flag' linker flag"
            fi
            if test -n "$admincmds"; then
       -      echo "   - have your system administrator run these commands:$admincmds"
       +      $echo "   - have your system administrator run these commands:$admincmds"
            fi
            if test -f /etc/ld.so.conf; then
       -      echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
       +      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
            fi
       -    echo
       -    echo "See any operating system documentation about shared libraries for"
       -    echo "more information, such as the ld(1) and ld.so(8) manual pages."
       -    echo "----------------------------------------------------------------------"
       -    exit 0
       +    $echo
       +    $echo "See any operating system documentation about shared libraries for"
       +    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
       +    $echo "----------------------------------------------------------------------"
       +    exit $EXIT_SUCCESS
            ;;
        
          # libtool execute mode
       t@@ -4626,7 +5944,7 @@ relink_command=\"$relink_command\""
            if test -z "$cmd"; then
              $echo "$modename: you must specify a COMMAND" 1>&2
              $echo "$help"
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            # Handle -dlopen flags immediately.
       t@@ -4634,18 +5952,18 @@ relink_command=\"$relink_command\""
              if test ! -f "$file"; then
                $echo "$modename: \`$file' is not a file" 1>&2
                $echo "$help" 1>&2
       -        exit 1
       +        exit $EXIT_FAILURE
              fi
        
              dir=
              case $file in
              *.la)
                # Check to see that this really is a libtool archive.
       -        if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
       +        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
                else
                  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
                  $echo "$help" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
        
                # Read the libtool library.
       t@@ -4672,7 +5990,7 @@ relink_command=\"$relink_command\""
                  dir="$dir/$objdir"
                else
                  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
       -          exit 1
       +          exit $EXIT_FAILURE
                fi
                ;;
        
       t@@ -4712,7 +6030,7 @@ relink_command=\"$relink_command\""
              -*) ;;
              *)
                # Do a test to see if this is really a libtool program.
       -        if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +        if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
                  # If there is no directory component, then add one.
                  case $file in
                  */* | *\\*) . $file ;;
       t@@ -4735,7 +6053,7 @@ relink_command=\"$relink_command\""
                eval "export $shlibpath_var"
              fi
        
       -      # Restore saved enviroment variables
       +      # Restore saved environment variables
              if test "${save_LC_ALL+set}" = set; then
                LC_ALL="$save_LC_ALL"; export LC_ALL
              fi
       t@@ -4752,7 +6070,7 @@ relink_command=\"$relink_command\""
                $echo "export $shlibpath_var"
              fi
              $echo "$cmd$args"
       -      exit 0
       +      exit $EXIT_SUCCESS
            fi
            ;;
        
       t@@ -4780,24 +6098,25 @@ relink_command=\"$relink_command\""
            if test -z "$rm"; then
              $echo "$modename: you must specify an RM program" 1>&2
              $echo "$help" 1>&2
       -      exit 1
       +      exit $EXIT_FAILURE
            fi
        
            rmdirs=
        
       +    origobjdir="$objdir"
            for file in $files; do
              dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
              if test "X$dir" = "X$file"; then
                dir=.
       -        objdir="$objdir"
       +        objdir="$origobjdir"
              else
       -        objdir="$dir/$objdir"
       +        objdir="$dir/$origobjdir"
              fi
              name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
       -      test $mode = uninstall && objdir="$dir"
       +      test "$mode" = uninstall && objdir="$dir"
        
              # Remember objdir for removal later, being careful to avoid duplicates
       -      if test $mode = clean; then
       +      if test "$mode" = clean; then
                case " $rmdirs " in
                  *" $objdir "*) ;;
                  *) rmdirs="$rmdirs $objdir" ;;
       t@@ -4821,7 +6140,7 @@ relink_command=\"$relink_command\""
              case $name in
              *.la)
                # Possibly a libtool archive, so verify it.
       -        if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
                  . $dir/$name
        
                  # Delete the libtool libraries and symlinks.
       t@@ -4829,18 +6148,19 @@ relink_command=\"$relink_command\""
                    rmfiles="$rmfiles $objdir/$n"
                  done
                  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
       -          test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
       +          test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
        
       -          if test $mode = uninstall; then
       +          if test "$mode" = uninstall; then
                    if test -n "$library_names"; then
                      # Do each command in the postuninstall commands.
       -              eval cmds=\"$postuninstall_cmds\"
       +              cmds=$postuninstall_cmds
                      save_ifs="$IFS"; IFS='~'
                      for cmd in $cmds; do
                        IFS="$save_ifs"
       +                eval cmd=\"$cmd\"
                        $show "$cmd"
                        $run eval "$cmd"
       -                if test $? != 0 && test "$rmforce" != yes; then
       +                if test "$?" -ne 0 && test "$rmforce" != yes; then
                          exit_status=1
                        fi
                      done
       t@@ -4849,13 +6169,14 @@ relink_command=\"$relink_command\""
        
                    if test -n "$old_library"; then
                      # Do each command in the old_postuninstall commands.
       -              eval cmds=\"$old_postuninstall_cmds\"
       +              cmds=$old_postuninstall_cmds
                      save_ifs="$IFS"; IFS='~'
                      for cmd in $cmds; do
                        IFS="$save_ifs"
       +                eval cmd=\"$cmd\"
                        $show "$cmd"
                        $run eval "$cmd"
       -                if test $? != 0 && test "$rmforce" != yes; then
       +                if test "$?" -ne 0 && test "$rmforce" != yes; then
                          exit_status=1
                        fi
                      done
       t@@ -4867,22 +6188,52 @@ relink_command=\"$relink_command\""
                ;;
        
              *.lo)
       -        if test "$build_old_libs" = yes; then
       -          oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
       -          rmfiles="$rmfiles $dir/$oldobj"
       +        # Possibly a libtool object, so verify it.
       +        if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +
       +          # Read the .lo file
       +          . $dir/$name
       +
       +          # Add PIC object to the list of files to remove.
       +          if test -n "$pic_object" \
       +             && test "$pic_object" != none; then
       +            rmfiles="$rmfiles $dir/$pic_object"
       +          fi
       +
       +          # Add non-PIC object to the list of files to remove.
       +          if test -n "$non_pic_object" \
       +             && test "$non_pic_object" != none; then
       +            rmfiles="$rmfiles $dir/$non_pic_object"
       +          fi
                fi
                ;;
        
              *)
       -        # Do a test to see if this is a libtool program.
       -        if test $mode = clean &&
       -           (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       -          relink_command=
       -          . $dir/$file
       +        if test "$mode" = clean ; then
       +          noexename=$name
       +          case $file in
       +          *.exe)
       +            file=`$echo $file|${SED} 's,.exe$,,'`
       +            noexename=`$echo $name|${SED} 's,.exe$,,'`
       +            # $file with .exe has already been added to rmfiles,
       +            # add $file without .exe
       +            rmfiles="$rmfiles $file"
       +            ;;
       +          esac
       +          # Do a test to see if this is a libtool program.
       +          if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
       +            relink_command=
       +            . $dir/$noexename
        
       -          rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
       -          if test "$fast_install" = yes && test -n "$relink_command"; then
       -            rmfiles="$rmfiles $objdir/lt-$name"
       +            # note $name still contains .exe if it was in $file originally
       +            # as does the version of $file that was added into $rmfiles
       +            rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
       +            if test "$fast_install" = yes && test -n "$relink_command"; then
       +              rmfiles="$rmfiles $objdir/lt-$name"
       +            fi
       +            if test "X$noexename" != "X$name" ; then
       +              rmfiles="$rmfiles $objdir/lt-${noexename}.c"
       +            fi
                  fi
                fi
                ;;
       t@@ -4890,6 +6241,7 @@ relink_command=\"$relink_command\""
              $show "$rm $rmfiles"
              $run $rm $rmfiles || exit_status=1
            done
       +    objdir="$origobjdir"
        
            # Try to remove the ${objdir}s in the directories where we deleted files
            for dir in $rmdirs; do
       t@@ -4905,20 +6257,20 @@ relink_command=\"$relink_command\""
          "")
            $echo "$modename: you must specify a MODE" 1>&2
            $echo "$generic_help" 1>&2
       -    exit 1
       +    exit $EXIT_FAILURE
            ;;
          esac
        
          if test -z "$exec_cmd"; then
            $echo "$modename: invalid operation mode \`$mode'" 1>&2
            $echo "$generic_help" 1>&2
       -    exit 1
       +    exit $EXIT_FAILURE
          fi
        fi # test -z "$show_help"
        
        if test -n "$exec_cmd"; then
          eval exec $exec_cmd
       -  exit 1
       +  exit $EXIT_FAILURE
        fi
        
        # We need to display help for each of the modes.
       t@@ -4937,6 +6289,7 @@ Provide generalized library-building support services.
            --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
            --quiet           same as \`--silent'
            --silent          don't print informational messages
       +    --tag=TAG         use configuration variables from tag TAG
            --version         print version information
        
        MODE must be one of the following:
       t@@ -4950,8 +6303,10 @@ MODE must be one of the following:
              uninstall       remove libraries from an installed directory
        
        MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
       -a more detailed description of MODE."
       -  exit 0
       +a more detailed description of MODE.
       +
       +Report bugs to <bug-libtool@gnu.org>."
       +  exit $EXIT_SUCCESS
          ;;
        
        clean)
       t@@ -5062,6 +6417,9 @@ The following components of LINK-COMMAND are treated specially:
          -no-install       link a not-installable executable
          -no-undefined     declare that a library does not refer to external symbols
          -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
       +  -objectlist FILE  Use a list of object files found in FILE to specify objects
       +  -precious-files-regex REGEX
       +                    don't remove output files matching REGEX
          -release RELEASE  specify package release information
          -rpath LIBDIR     the created library will eventually be installed in LIBDIR
          -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
       t@@ -5103,14 +6461,34 @@ Otherwise, only FILE itself is deleted using RM."
        *)
          $echo "$modename: invalid operation mode \`$mode'" 1>&2
          $echo "$help" 1>&2
       -  exit 1
       +  exit $EXIT_FAILURE
          ;;
        esac
        
       -echo
       +$echo
        $echo "Try \`$modename --help' for more information about other modes."
        
       -exit 0
       +exit $?
       +
       +# The TAGs below are defined such that we never get into a situation
       +# in which we disable both kinds of libraries.  Given conflicting
       +# choices, we go for a static library, that is the most portable,
       +# since we can't tell whether shared libraries were disabled because
       +# the user asked for that or because the platform doesn't support
       +# them.  This is particularly important on AIX, because we don't
       +# support having both static and shared libraries enabled at the same
       +# time on that platform, so we default to a shared-only configuration.
       +# If a disable-shared tag is given, we'll fallback to a static-only
       +# configuration.  But we'll never go from static-only to shared-only.
       +
       +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
       +build_libtool_libs=no
       +build_old_libs=yes
       +# ### END LIBTOOL TAG CONFIG: disable-shared
       +
       +# ### BEGIN LIBTOOL TAG CONFIG: disable-static
       +build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
       +# ### END LIBTOOL TAG CONFIG: disable-static
        
        # Local Variables:
        # mode:shell-script