--- /dev/null
+[PATCH] fix libtool
+
+Update to 1.5.22 so it doesn't get confused about rpath, and apply
+buildroot-libtool-v1.5.patch so cross compilation works.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+---
+ admin/ltmain.sh | 2080 ++++++++++++++++++++++++++++++++++----------------------
+ 1 file changed, 1284 insertions(+), 796 deletions(-)
+
+Index: taglib-1.5/admin/ltmain.sh
+===================================================================
+--- taglib-1.5.orig/admin/ltmain.sh
++++ taglib-1.5/admin/ltmain.sh
+@@ -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, 2003
++# 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
+ #
+@@ -24,6 +24,34 @@
+ # 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.22
++TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
++
++# 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.
+@@ -36,7 +64,7 @@
+ :
+ 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
+@@ -45,19 +73,9 @@
+ cat <<EOF
+ $*
+ EOF
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+
+-# The name of this program.
+-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
+-modename="$progname"
+-
+-# Constants.
+-PROGRAM=ltmain.sh
+-PACKAGE=libtool
+-VERSION=1.5a
+-TIMESTAMP=" (1.1240 2003/06/26 06:55:19)"
+-
+ default_mode=
+ help="Try \`$progname --help' for more information."
+ magic="%%%MAGIC variable%%%"
+@@ -70,14 +88,15 @@
+ Xsed="${SED}"' -e 1s/^X//'
+ sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+ # 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'"
++case `echo X|tr X '\101'` in
++ A) # ASCII based system
++ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
++ SP2NL='tr \040 \012'
++ NL2SP='tr \015\012 \040\040'
+ ;;
+- *) # Assume ASCII based system
+- SP2NL="tr '\040' '\012'"
+- NL2SP="tr '\015\012' '\040\040'"
++ *) # EBCDIC based system
++ SP2NL='tr \100 \n'
++ NL2SP='tr \r\n \100\100'
+ ;;
+ esac
+
+@@ -94,12 +113,14 @@
+ 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
++ exit $EXIT_FAILURE
+ fi
+
+ # Global variables.
+@@ -111,6 +132,8 @@
+ show="$echo"
+ show_help=
+ execute_dlfiles=
++duplicate_deps=no
++preserve_args=
+ lo2o="s/\\.lo\$/.${objext}/"
+ o2lo="s/\\.${objext}\$/.lo/"
+
+@@ -118,10 +141,51 @@
+ # Shell function definitions:
+ # This seems to be the best place for them
+
++# func_mktempdir [string]
++# Make a temporary directory that won't clash with other running
++# libtool processes, and avoids race conditions if possible. If
++# given, STRING is the basename for that directory.
++func_mktempdir ()
++{
++ my_template="${TMPDIR-/tmp}/${1-$progname}"
++
++ if test "$run" = ":"; then
++ # Return a directory name, but don't create it in dry-run mode
++ my_tmpdir="${my_template}-$$"
++ else
++
++ # If mktemp works, use that first and foremost
++ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
++
++ if test ! -d "$my_tmpdir"; then
++ # Failing that, at least try and use $RANDOM to avoid a race
++ my_tmpdir="${my_template}-${RANDOM-0}$$"
++
++ save_mktempdir_umask=`umask`
++ umask 0077
++ $mkdir "$my_tmpdir"
++ umask $save_mktempdir_umask
++ fi
++
++ # If we're not in dry-run mode, bomb out on failure
++ test -d "$my_tmpdir" || {
++ $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
++ exit $EXIT_FAILURE
++ }
++ fi
++
++ $echo "X$my_tmpdir" | $Xsed
++}
++
++
++# 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.
+-win32_libid () {
++func_win32_libid ()
++{
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+@@ -130,17 +194,16 @@
+ ;;
+ *ar\ archive*) # could be an import, or static
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+- grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
++ $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
++ $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
++ case $win32_nmres in
++ import*) win32_libid_type="x86 archive import";;
++ *) win32_libid_type="x86 archive static";;
++ esac
+ fi
+ ;;
+- *DLL*)
++ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+@@ -154,9 +217,182 @@
+ $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
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ 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
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ 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: defaulting to \`CC'"
++ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
++# 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"
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
++ exit $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\"
++
++disable_libs=no
++
+ # Parse our command line options once, thoroughly.
+ while test "$#" -gt 0
+ do
+@@ -176,12 +412,13 @@
+ ;;
+ 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 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+@@ -191,10 +428,10 @@
+ # not specially marked.
+ ;;
+ *)
+- if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
++ 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' < $0`"
++ 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
+@@ -220,24 +457,25 @@
+ --version)
+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ $echo
+- $echo "Copyright (C) 2003 Free Software Foundation, Inc."
++ $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 0
++ exit $?
+ ;;
+
+ --config)
+- ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $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" < "$0"
++ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+ done
+- exit 0
++ exit $?
+ ;;
+
+ --debug)
+ $echo "$progname: enabling shell trace mode"
+ set -x
++ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+@@ -256,7 +494,7 @@
+ else
+ $echo "disable static libraries"
+ fi
+- exit 0
++ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+@@ -268,13 +506,19 @@
+
+ --quiet | --silent)
+ show=:
++ preserve_args="$preserve_args $arg"
+ ;;
+
+- --tag) prevopt="--tag" prev=tag ;;
++ --tag)
++ prevopt="--tag"
++ prev=tag
++ preserve_args="$preserve_args --tag"
++ ;;
+ --tag=*)
+ set tag "$optarg" ${1+"$@"}
+ shift
+ prev=tag
++ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+@@ -285,7 +529,7 @@
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+
+ *)
+@@ -298,9 +542,21 @@
+ if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
++case $disable_libs in
++no)
++ ;;
++shared)
++ build_libtool_libs=no
++ build_old_libs=yes
++ ;;
++static)
++ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
++ ;;
++esac
++
+ # If this variable is set in any of the actions, the command in it
+ # will be execed at the end. This prevents here-documents from being
+ # left over by shells.
+@@ -311,7 +567,7 @@
+ # 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
++ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+ case $nonopt in
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+@@ -354,7 +610,7 @@
+ 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.
+@@ -369,13 +625,15 @@
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
++ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
++ later=
+
+ for arg
+ do
+- case "$arg_mode" in
++ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+@@ -394,24 +652,19 @@
+ -o)
+ if test -n "$libobj" ; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ arg_mode=target
+ continue
+ ;;
+
+- -static)
+- build_old_libs=yes
++ -static | -prefer-pic | -prefer-non-pic)
++ later="$later $arg"
+ continue
+ ;;
+
+- -prefer-pic)
+- pic_mode=yes
+- continue
+- ;;
+-
+- -prefer-non-pic)
+- pic_mode=no
++ -no-suppress)
++ suppress_opt=no
+ continue
+ ;;
+
+@@ -424,7 +677,7 @@
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+- for arg in $args; do
++ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+@@ -462,7 +715,10 @@
+ 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.
++ # 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.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ lastarg="\"$lastarg\""
+ ;;
+@@ -474,11 +730,11 @@
+ case $arg_mode in
+ arg)
+ $echo "$modename: you must specify an argument for -Xcompile"
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ target)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ *)
+ # Get the name of the library object.
+@@ -511,51 +767,39 @@
+ *.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
+
+- # 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.
+- if test -n "$available_tags" && test -z "$tagname"; then
+- case $base_compile 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` "*) ;;
+- # 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$" < "$0" > /dev/null; then
+- # Evaluate the configuration.
+- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+- case "$base_compile " in
+- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+- # 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 1
+-# else
+-# $echo "$modename: using $tagname tagged configuration"
+- fi
++ 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
+- fi
++ done
+
++ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
++ case $qlibobj in
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qlibobj="\"$qlibobj\"" ;;
++ esac
++ test "X$libobj" != "X$qlibobj" \
++ && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \
++ && $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+@@ -568,7 +812,7 @@
+ 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.
+@@ -579,7 +823,7 @@
+ 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
+@@ -598,7 +842,7 @@
+ 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
+@@ -608,7 +852,7 @@
+ # 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
+@@ -626,14 +870,19 @@
+ 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
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
++ qsrcfile="\"$qsrcfile\"" ;;
++ esac
+
+ $run $rm "$libobj" "${libobj}T"
+
+@@ -655,18 +904,18 @@
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+- command="$base_compile $srcfile $pic_flag"
++ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+- command="$base_compile $srcfile"
++ command="$base_compile $qsrcfile"
+ 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
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
++ exit $exit_status
+ fi
+ fi
+
+@@ -681,7 +930,7 @@
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+@@ -701,7 +950,7 @@
+ compiler."
+
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+@@ -722,7 +971,9 @@
+ EOF
+
+ # Allow error messages only from the first compilation.
+- suppress_output=' >/dev/null 2>&1'
++ 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.
+@@ -736,9 +987,9 @@
+ 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
+- command="$base_compile $srcfile $pic_flag"
++ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+@@ -751,7 +1002,7 @@
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+@@ -771,7 +1022,7 @@
+ compiler."
+
+ $run $rm $removelist
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+@@ -809,7 +1060,7 @@
+ $run $rm "$lockfile"
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+@@ -835,7 +1086,7 @@
+ ;;
+ esac
+ libtool_args="$nonopt"
+- base_compile="$nonopt"
++ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+@@ -847,7 +1098,6 @@
+ old_convenience=
+ deplibs=
+ old_deplibs=
+- add_flags=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+@@ -868,6 +1118,8 @@
+ no_install=no
+ objs=
+ non_pic_objects=
++ notinst_path= # paths that contain not-installed libtool libraries
++ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+@@ -881,6 +1133,8 @@
+ vinfo=
+ vinfo_number=no
+
++ func_infer_tag $base_compile
++
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+@@ -893,14 +1147,15 @@
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
++ prefer_static_libs=yes
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
++ prefer_static_libs=built
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+- prefer_static_libs=yes
+ break
+ ;;
+ esac
+@@ -912,7 +1167,6 @@
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+- base_compile="$base_compile $arg"
+ shift
+ case $arg in
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+@@ -976,7 +1230,7 @@
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+@@ -991,6 +1245,11 @@
+ prev=
+ continue
+ ;;
++ precious_regex)
++ precious_files_regex="$arg"
++ prev=
++ continue
++ ;;
+ release)
+ release="-$arg"
+ prev=
+@@ -1023,7 +1282,7 @@
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+@@ -1071,12 +1330,17 @@
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
++ else
++ # If the PIC object exists, use it instead.
++ # $xdir was prepended to $pic_object above.
++ non_pic_object="$pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
+ 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 1
++ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+@@ -1097,7 +1361,7 @@
+ done
+ else
+ $echo "$modename: link input file \`$save_arg' does not exist"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ arg=$save_arg
+ prev=
+@@ -1109,7 +1373,7 @@
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+@@ -1149,16 +1413,15 @@
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+- framework)
+- case $host in
+- *-*-darwin*)
+- case "$deplibs " in
+- *" $qarg.ltframework "*) ;;
+- *) deplibs="$deplibs $qarg.ltframework" # this is fixed later
+- ;;
+- esac
+- ;;
+- esac
++ shrext)
++ shrext_cmds="$arg"
++ prev=
++ continue
++ ;;
++ darwin_framework|darwin_framework_skip)
++ test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
+ prev=
+ continue
+ ;;
+@@ -1210,7 +1473,7 @@
+ -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
+@@ -1220,6 +1483,18 @@
+ continue
+ ;;
+
++ -framework|-arch|-isysroot)
++ case " $CC " in
++ *" ${arg} ${1} "* | *" ${arg} ${1} "*)
++ prev=darwin_framework_skip ;;
++ *) compiler_flags="$compiler_flags $arg"
++ prev=darwin_framework ;;
++ esac
++ compile_command="$compile_command $arg"
++ finalize_command="$finalize_command $arg"
++ continue
++ ;;
++
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+@@ -1246,7 +1521,8 @@
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+- exit 1
++ absdir="$dir"
++ notinst_path="$notinst_path $dir"
+ fi
+ dir="$absdir"
+ ;;
+@@ -1260,10 +1536,15 @@
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
++ case :$dllsearchpath: in
++ *":$testbindir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$testbindir";;
++ esac
+ ;;
+ esac
+ continue
+@@ -1272,26 +1553,35 @@
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+- *-*-cygwin* | *-*-pw32* | *-*-beos*)
++ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+- *-*-mingw* | *-*-os2*)
++ *-*-os2*)
+ # 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
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+- deplibs="$deplibs System.ltframework"
++ deplibs="$deplibs -framework System"
+ continue
++ ;;
++ *-*-sco3.2v5* | *-*-sco5v6*)
++ # Causes problems with __ctype
++ test "X$arg" = "X-lc" && continue
++ ;;
++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
++ # Compiler inserts libc in the correct place for threads to work
++ test "X$arg" = "X-lc" && continue
++ ;;
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+- *-*-openbsd*)
++ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+@@ -1301,18 +1591,41 @@
+ 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
+ ;;
+
+- # gcc -m* arguments should be passed to the linker via $compiler_flags
+- # in order to pass architecture information to the linker
+- # (e.g. 32 vs 64-bit). This may also be accomplished via -Wl,-mfoo
+- # but this is not reliable with gcc because gcc may use -mfoo to
+- # select a different linker, different libraries, etc, while
+- # -Wl,-mfoo simply passes -mfoo to the linker.
+- -m*)
++ # -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
++ # -m*, -t[45]*, -txscale* pass through architecture-specific
++ # compiler args for GCC
++ # -pg pass through profiling flag for GCC
++ # @file GCC response files
++ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
++ -t[45]*|-txscale*|@*)
++
+ # 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"`
+@@ -1323,9 +1636,7 @@
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+- if test "$with_gcc" = "yes" ; then
+- compiler_flags="$compiler_flags $arg"
+- fi
++ compiler_flags="$compiler_flags $arg"
+ continue
+ ;;
+
+@@ -1365,6 +1676,11 @@
+
+ -o) prev=output ;;
+
++ -precious-files-regex)
++ prev=precious_regex
++ continue
++ ;;
++
+ -release)
+ prev=release
+ continue
+@@ -1387,7 +1703,7 @@
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+@@ -1473,11 +1789,6 @@
+ continue
+ ;;
+
+- -framework)
+- prev=framework
+- continue
+- ;;
+-
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+@@ -1488,7 +1799,6 @@
+ arg="\"$arg\""
+ ;;
+ esac
+- add_flags="$add_flags $arg"
+ ;;
+
+ *.$objext)
+@@ -1516,7 +1826,7 @@
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+@@ -1564,12 +1874,17 @@
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
++ else
++ # If the PIC object exists, use it instead.
++ # $xdir was prepended to $pic_object above.
++ non_pic_object="$pic_object"
++ non_pic_objects="$non_pic_objects $non_pic_object"
+ 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 1
++ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+@@ -1623,7 +1938,6 @@
+ arg="\"$arg\""
+ ;;
+ esac
+- add_flags="$add_flags $arg"
+ ;;
+ esac # arg
+
+@@ -1637,48 +1951,7 @@
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+- exit 1
+- fi
+-
+- # 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 link
+- # command doesn't match the default compiler.
+- if test -n "$available_tags" && test -z "$tagname"; then
+- case $base_compile 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` "*) ;;
+- # 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$" < "$0" > /dev/null; then
+- # Evaluate the configuration.
+- eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
+- case $base_compile in
+- "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
+- # The compiler in $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 1
+-# else
+-# $echo "$modename: using $tagname tagged configuration"
+- fi
+- ;;
+- esac
++ exit $EXIT_FAILURE
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+@@ -1711,9 +1984,9 @@
+ 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
+- exit $status
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
++ exit $exit_status
+ fi
+ fi
+
+@@ -1722,7 +1995,7 @@
+ "")
+ $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 ;;
+@@ -1732,7 +2005,7 @@
+
+ case $host in
+ *cygwin* | *mingw* | *pw32*)
+- # don't eliminate duplcations in $postdeps and $predeps
++ # don't eliminate duplications in $postdeps and $predeps
+ duplicate_compiler_generated_deps=yes
+ ;;
+ *)
+@@ -1776,7 +2049,6 @@
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+- notinst_path= # paths that contain not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+@@ -1785,7 +2057,7 @@
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+@@ -1823,18 +2095,23 @@
+ lib=
+ found=no
+ case $deplib in
++ -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
++ continue
++ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+ continue
+ fi
+- if test "$pass" = conv && test "$allow_undefined" = yes; then
+- deplibs="$deplib $deplibs"
+- 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
+- for search_ext in .la $shrext .so .a; do
++ 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
+@@ -1895,18 +2172,6 @@
+ fi
+ fi
+ ;; # -l
+- *.ltframework)
+- if test "$linkmode,$pass" = "prog,link"; then
+- compile_deplibs="$deplib $compile_deplibs"
+- finalize_deplibs="$deplib $finalize_deplibs"
+- else
+- deplibs="$deplib $deplibs"
+- if test "$linkmode" = lib ; then
+- newdependency_libs="$deplib $newdependency_libs"
+- fi
+- fi
+- continue
+- ;;
+ -L*)
+ case $linkmode in
+ lib)
+@@ -1922,11 +2187,11 @@
+ fi
+ 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" 1>&2
+@@ -1954,7 +2219,22 @@
+ fi
+ case $linkmode in
+ lib)
+- if test "$deplibs_check_method" != pass_all; then
++ 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"
+@@ -2004,15 +2284,15 @@
+ esac # case $deplib
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+- $echo "$modename: cannot find the library \`$lib'" 1>&2
+- exit 1
++ $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
++ exit $EXIT_FAILURE
+ fi
+
+ # Check to see that this really is a libtool archive.
+ 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%/[^/]*$%%'`
+@@ -2028,6 +2308,8 @@
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
++ avoidtemprpath=
++
+
+ # Read the .la file
+ case $lib in
+@@ -2035,13 +2317,6 @@
+ *) . ./$lib ;;
+ esac
+
+- case $host in
+- *-*-darwin*)
+- # Convert "-framework foo" to "foo.ltframework" in dependency_libs
+- test -n "$dependency_libs" && dependency_libs=`$echo "X$dependency_libs" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
+- ;;
+- esac
+-
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+@@ -2052,33 +2327,32 @@
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+- tmp_libs=
+- for deplib in $dependency_libs; do
+- #echo "Adding $deplib to \$deplibs"
+- deplibs="$deplib $deplibs"
+- if test "X$duplicate_deps" = "Xyes" ; then
+- case "$tmp_libs " in
+- *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+- esac
+- fi
+- tmp_libs="$tmp_libs $deplib"
+- done
+ 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"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
++ tmp_libs=
++ for deplib in $dependency_libs; do
++ deplibs="$deplib $deplibs"
++ if test "X$duplicate_deps" = "Xyes" ; then
++ case "$tmp_libs " in
++ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
++ esac
++ fi
++ tmp_libs="$tmp_libs $deplib"
++ done
+ 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
+@@ -2086,16 +2360,18 @@
+ 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 -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. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+@@ -2129,14 +2405,28 @@
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+- dir="$libdir"
+- absdir="$libdir"
++ # Adding 'libdir' from the .la file to our library search paths
++ # breaks crosscompilation horribly. We cheat here and don't add
++ # it, instead adding the path where we found the .la. -CL
++ dir="$abs_ladir"
++ absdir="$abs_ladir"
++ libdir="$abs_ladir"
++ #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//'`
+
+@@ -2144,7 +2434,7 @@
+ 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).
+@@ -2171,7 +2461,7 @@
+ continue
+ fi
+
+-
++
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+@@ -2209,12 +2499,12 @@
+ 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"; then
++ 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" ;;
++ *) temp_rpath="$temp_rpath $absdir" ;;
+ esac
+ fi
+
+@@ -2251,24 +2541,29 @@
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
++ use_static_libs=$prefer_static_libs
++ if test "$use_static_libs" = built && test "$installed" = yes ; then
++ use_static_libs=no
++ fi
+ if test -n "$library_names" &&
+- { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
++ { test "$use_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+- need_relink=yes
++ need_relink=no
+ 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
++
++ # 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
++ $echo "*** $linklib is not portable!"
++ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+@@ -2326,9 +2621,10 @@
+ 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
+@@ -2339,9 +2635,10 @@
+ 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
+@@ -2362,11 +2659,15 @@
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+- *-*-sco3.2v5* ) add_dir="-L$dir" ;;
++ *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
++ *-*-sysv4*uw2*) add_dir="-L$dir" ;;
++ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
++ *-*-unixware7*) 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 | grep "bundle" >/dev/null ; then
++ # 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
+@@ -2374,7 +2675,7 @@
+ $echo "** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+- fi
++ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+@@ -2397,9 +2698,9 @@
+ 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
++ case $libdir in
+ [\\/]*)
+- add_dir="-L$inst_prefix_dir$libdir $add_dir"
++ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+@@ -2416,7 +2717,7 @@
+
+ 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
+@@ -2459,7 +2760,8 @@
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+- if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; 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"
+@@ -2469,9 +2771,9 @@
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+- case "$libdir" in
++ case $libdir in
+ [\\/]*)
+- add_dir="-L$inst_prefix_dir$libdir $add_dir"
++ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+@@ -2530,17 +2832,16 @@
+ fi
+ fi
+ else
+- convenience="$convenience $dir/$old_library"
+- old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ 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
++ if test -n "$dependency_libs" &&
++ { 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
+@@ -2554,7 +2855,7 @@
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+- #fi
++ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+@@ -2596,20 +2897,18 @@
+ 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
+- # Sure, some shells/systems don't implement the -ef.
+- # Those will have to live with the warning.
+- test "$absdir" -ef "$libdir" > /dev/null 2>&1 ||
+- $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
++ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="$absdir"
+ fi
+ depdepl=
+ case $host in
+ *-*-darwin*)
+- # we do not want to link against static libs, but need to link against shared
++ # 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
+@@ -2617,46 +2916,36 @@
+ done
+ if test -f "$path/$depdepl" ; then
+ depdepl="$path/$depdepl"
+- fi
++ fi
+ # do not add paths which are already there
+ case " $newlib_search_path " in
+ *" $path "*) ;;
+ *) newlib_search_path="$newlib_search_path $path";;
+ esac
+- path=""
+ fi
++ path=""
+ ;;
+ *)
+- path="-L$path"
+- ;;
+- esac
+-
++ path="-L$path"
++ ;;
++ esac
+ ;;
+- -l*)
++ -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=""
++ # 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
+- ;;
+-
+- *.ltframework)
+- case $host in
+- *-*-darwin*)
+- depdepl="$deplib"
+- ;;
+ esac
+ ;;
+-
+ *) continue ;;
+ esac
+ case " $deplibs " in
+@@ -2660,12 +2949,12 @@
+ *) continue ;;
+ esac
+ case " $deplibs " in
+- *" $depdepl "*) ;;
+- *) deplibs="$deplibs $depdepl" ;;
+- 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
+@@ -2752,7 +3041,8 @@
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+- # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
++ # 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
+@@ -2812,19 +3102,19 @@
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+- eval shared_ext=\"$shrext\"
++ 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\"
++ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+@@ -2835,7 +3125,7 @@
+ 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"
+@@ -2883,13 +3173,13 @@
+ 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
+
+ # 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"
+@@ -2929,36 +3219,36 @@
+
+ # Check that each of the things are valid numbers.
+ case $current in
+- 0 | [1-9] | [1-9][0-9] | [1-9][0-9][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 | [1-9] | [1-9][0-9] | [1-9][0-9][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 | [1-9] | [1-9][0-9] | [1-9][0-9][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
+ $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.
+@@ -2975,7 +3265,7 @@
+ 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)
+@@ -3047,7 +3337,7 @@
+ *)
+ $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
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+@@ -3098,9 +3388,15 @@
+ tempremovelist=`$echo "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+- *.$objext | *$exeext)
++ *.$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"
+ ;;
+ *) ;;
+@@ -3122,9 +3418,9 @@
+
+ # 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
+@@ -3137,7 +3433,7 @@
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+- if true || 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
+@@ -3170,14 +3466,19 @@
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+- deplibs="$deplibs System.ltframework"
++ deplibs="$deplibs -framework System"
+ ;;
+ *-*-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
++ ;;
++ *-*-sco3.2v5* | *-*-sco5v6*)
++ # Causes problems with __ctype
++ ;;
++ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
++ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+@@ -3221,11 +3522,11 @@
+ int main() { return 0; }
+ EOF
+ $rm conftest
+- $LTCC -o conftest conftest.c $deplibs
++ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+- name="`expr $i : '-l\(.*\)'`"
++ name=`expr $i : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" -ne "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+@@ -3262,11 +3563,11 @@
+ # 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\(.*\)'`"
++ name=`expr $i : '-l\(.*\)'`
+ # 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
++ $LTCC $LTCFLAGS -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+@@ -3314,7 +3615,7 @@
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+- name="`expr $a_deplib : '-l\(.*\)'`"
++ name=`expr $a_deplib : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+@@ -3383,7 +3684,7 @@
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+- name="`expr $a_deplib : '-l\(.*\)'`"
++ name=`expr $a_deplib : '-l\(.*\)'`
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+@@ -3463,7 +3764,7 @@
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
++ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+@@ -3509,17 +3810,39 @@
+ fi
+ fi
+ fi
+- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+- case $host in
+- *-*-darwin*)
+- newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+- dependency_libs=`$echo "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+- ;;
+- esac
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
++
++ # move library search paths that coincide with paths to not yet
++ # installed libraries to the beginning of the library search list
++ new_libs=
++ for path in $notinst_path; do
++ case " $new_libs " in
++ *" -L$path/$objdir "*) ;;
++ *)
++ case " $deplibs " in
++ *" -L$path/$objdir "*)
++ new_libs="$new_libs -L$path/$objdir" ;;
++ esac
++ ;;
++ esac
++ done
++ for deplib in $deplibs; do
++ case $deplib in
++ -L*)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ done
++ deplibs="$new_libs"
++
++
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+@@ -3532,7 +3855,7 @@
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+- test "$mode" != relink && test "$fast_install" = no && rpath="$compile_rpath$rpath"
++ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+@@ -3587,7 +3910,7 @@
+ fi
+
+ # Get the real and link names of the library.
+- eval shared_ext=\"$shrext\"
++ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+@@ -3603,6 +3926,7 @@
+ fi
+
+ lib="$output_objdir/$realname"
++ linknames=
+ for link
+ do
+ linknames="$linknames $link"
+@@ -3617,10 +3941,11 @@
+ $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"
++ eval cmd=\"$cmd\"
+ if len=`expr "X$cmd" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ $show "$cmd"
+@@ -3630,6 +3955,9 @@
+ # The command line is too long to execute in one step.
+ $show "using reloadable object file for export list..."
+ skipped_export=:
++ # Break out early, otherwise skipped_export may be
++ # set to false by a later but shorter cmd.
++ break
+ fi
+ done
+ IFS="$save_ifs"
+@@ -3650,12 +3978,12 @@
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+- *)
++ *)
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ ;;
+ esac
+ done
+- deplibs="$tmp_deplibs"
++ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+@@ -3663,67 +3991,13 @@
+ 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
+- # We will extract separately just the conflicting names and we will no
+- # longer touch any unique names. It is faster to leave these extract
+- # automatically by $AR in one run.
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+- :
+- else
+- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+- $AR t "$xabs" | sort | uniq -cd | while read -r count name
+- do
+- i=1
+- while test "$i" -le "$count"
+- do
+- # Put our $i before any first dot (extension)
+- # Never overwrite any file
+- name_to="$name"
+- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+- do
+- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+- done
+- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+- i=`expr $i + 1`
+- done
+- done
+- fi
+-
+- libobjs="$libobjs "`find $xdir -name \*.$objext -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"
+@@ -3734,31 +4008,27 @@
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+- # Add all flags from the command line. We here create a library,
+- # but those flags were only added to compile_command and
+- # finalize_command, which are only used when creating executables.
+- # So do it by hand here.
+- compiler_flags="$compiler_flags $add_flags"
+- # Only add it to commands which use CC, instead of LD, i.e.
+- # only to $compiler_flags
+- #linker_flags="$linker_flags $add_flags"
+-
+ # 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 cmds=\"$module_expsym_cmds\"
++ eval test_cmds=\"$module_expsym_cmds\"
++ cmds=$module_expsym_cmds
+ else
+- eval cmds=\"$module_cmds\"
++ 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 cmds=\"$archive_cmds\"
++ eval test_cmds=\"$archive_cmds\"
++ cmds=$archive_cmds
+ fi
+ fi
+
+- if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
++ if test "X$skipped_export" != "X:" &&
++ len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+@@ -3777,6 +4047,7 @@
+ 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.
+@@ -3786,13 +4057,13 @@
+ delfiles=
+ last_robj=
+ k=1
+- output=$output_objdir/$save_output-${k}.$objext
++ 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" : ".*"` &&
++ { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len"; }; then
+ objlist="$objlist $obj"
+ else
+@@ -3806,9 +4077,9 @@
+ # the last one created.
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ fi
+- last_robj=$output_objdir/$save_output-${k}.$objext
++ last_robj=$output_objdir/$output_la-${k}.$objext
+ k=`expr $k + 1`
+- output=$output_objdir/$save_output-${k}.$objext
++ output=$output_objdir/$output_la-${k}.$objext
+ objlist=$obj
+ len=1
+ fi
+@@ -3828,13 +4099,13 @@
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+ fi
+
+- # Set up a command to remove the reloadale object files
++ # 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/$save_output-${i}.$objext"
++ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+ done
+
+ $echo "creating a temporary reloadable object file: $output"
+@@ -3859,28 +4130,54 @@
+ # 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
+- eval cmds=\"$archive_expsym_cmds\"
++ cmds=$archive_expsym_cmds
+ else
+- eval cmds=\"$archive_cmds\"
++ cmds=$archive_cmds
++ fi
+ fi
+
+ # Append the command to remove the reloadable object files
+ # to the just-reset $cmds.
+- eval cmds=\"\$cmds~$rm $delfiles\"
++ 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 $?
++ $run eval "$cmd" || {
++ lt_exit=$?
++
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
++ fi
++
++ exit $lt_exit
++ }
+ done
+ IFS="$save_ifs"
+
+ # 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
++
++ if test -n "$convenience"; then
++ if test -z "$whole_archive_flag_spec"; then
++ $show "${rm}r $gentop"
++ $run ${rm}r "$gentop"
++ fi
++ fi
++
++ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+@@ -3928,7 +4225,7 @@
+ *.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"`
+@@ -3957,64 +4254,10 @@
+ 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
+- # We will extract separately just the conflicting names and we will no
+- # longer touch any unique names. It is faster to leave these extract
+- # automatically by $AR in one run.
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+- :
+- else
+- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+- $AR t "$xabs" | sort | uniq -cd | while read -r count name
+- do
+- i=1
+- while test "$i" -le "$count"
+- do
+- # Put our $i before any first dot (extension)
+- # Never overwrite any file
+- name_to="$name"
+- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+- do
+- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+- done
+- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+- i=`expr $i + 1`
+- done
+- done
+- fi
+-
+- reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+- done
++ func_extract_archives $gentop $convenience
++ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+@@ -4022,10 +4265,11 @@
+ 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
+@@ -4038,7 +4282,7 @@
+ $run ${rm}r $gentop
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+@@ -4051,17 +4295,18 @@
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $run eval "echo timestamp > $libobj" || exit $?
+- exit 0
++ 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
+@@ -4073,7 +4318,7 @@
+ $run ${rm}r $gentop
+ fi
+
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+@@ -4098,24 +4343,50 @@
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
+- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
++ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
++ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ case $host in
+- *-*-darwin*)
++ *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
+- # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+- compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+- finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
++
++ # move library search paths that coincide with paths to not yet
++ # installed libraries to the beginning of the library search list
++ new_libs=
++ for path in $notinst_path; do
++ case " $new_libs " in
++ *" -L$path/$objdir "*) ;;
++ *)
++ case " $compile_deplibs " in
++ *" -L$path/$objdir "*)
++ new_libs="$new_libs -L$path/$objdir" ;;
++ esac
++ ;;
++ esac
++ done
++ for deplib in $compile_deplibs; do
++ case $deplib in
++ -L*)
++ case " $new_libs " in
++ *" $deplib "*) ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ ;;
++ *) new_libs="$new_libs $deplib" ;;
++ esac
++ done
++ compile_deplibs="$new_libs"
++
++
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+@@ -4160,10 +4431,15 @@
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
++ testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
++ case :$dllsearchpath: in
++ *":$testbindir:"*) ;;
++ *) dllsearchpath="$dllsearchpath:$testbindir";;
++ esac
+ ;;
+ esac
+ done
+@@ -4277,13 +4553,25 @@
+
+ # 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"'
++ $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
++ case $host in
++ *cygwin* | *mingw* )
++ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
++ ;;
++ esac
+ 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"'
++ case $host in
++ *cygwin* | *mingw* )
++ $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
++ $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
++ ;;
++ esac
+ fi
+ fi
+
+@@ -4334,7 +4622,26 @@
+ #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;
+ }
+@@ -4381,20 +4688,33 @@
+ esac
+
+ # Now compile the dynamic symbol file.
+- $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 $?
++ $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
++ $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -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"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+- compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ case $host in
++ *cygwin* | *mingw* )
++ if test -f "$output_objdir/${outputname}.def" ; then
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
++ else
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ fi
++ ;;
++ * )
++ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
++ ;;
++ esac
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+@@ -4407,17 +4727,6 @@
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+- # AIX runtime linking requires linking programs with -Wl,-brtl and libs with -Wl,-G
+- # Also add -bnolibpath to the beginning of the link line, to clear the hardcoded runpath.
+- # Otherwise, things like the -L path to libgcc.a are accidentally hardcoded by ld.
+- # This does not apply on AIX for ia64, which uses a SysV linker.
+- case "$host" in
+- ia64-*-aix5*) ;;
+- *-*-aix4* | *-*-aix5*)
+- compile_command=`$echo "X$compile_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"`
+- finalize_command=`$echo "X$finalize_command $wl-brtl" | $Xsed -e "s/\$CC/\$CC $wl-bnolibpath/1"` ;;
+- esac
+-
+ 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'`
+@@ -4426,7 +4735,7 @@
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+- status=$?
++ exit_status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+@@ -4434,7 +4743,7 @@
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+- exit $status
++ exit $exit_status
+ fi
+
+ if test -n "$shlibpath_var"; then
+@@ -4493,7 +4802,7 @@
+ # 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
+@@ -4548,10 +4857,10 @@
+ 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
+@@ -4573,11 +4882,13 @@
+ *) exeext= ;;
+ esac
+ case $host in
+- *mingw* )
+- cwrappersource=`$echo ${output_objdir}/lt-${outputname}.c`
+- cwrapper=`$echo ${output}.exe`
+- $rm $cwrappersource $cwrapper
+- trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
++ *cygwin* | *mingw* )
++ output_name=`basename $output`
++ output_path=`dirname $output`
++ cwrappersource="$output_path/$objdir/lt-$output_name.c"
++ cwrapper="$output_path/$output_name.exe"
++ $rm $cwrappersource $cwrapper
++ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ cat > $cwrappersource <<EOF
+
+@@ -4586,7 +4897,7 @@
+
+ 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.
+
+@@ -4602,6 +4913,9 @@
+ #include <malloc.h>
+ #include <stdarg.h>
+ #include <assert.h>
++#include <string.h>
++#include <ctype.h>
++#include <sys/stat.h>
+
+ #if defined(PATH_MAX)
+ # define LT_PATHMAX PATH_MAX
+@@ -4612,15 +4926,19 @@
+ #endif
+
+ #ifndef DIR_SEPARATOR
+-#define DIR_SEPARATOR '/'
++# define DIR_SEPARATOR '/'
++# define PATH_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
++# define HAVE_DOS_BASED_FILE_SYSTEM
++# ifndef DIR_SEPARATOR_2
++# define DIR_SEPARATOR_2 '\\'
++# endif
++# ifndef PATH_SEPARATOR_2
++# define PATH_SEPARATOR_2 ';'
++# endif
+ #endif
+
+ #ifndef DIR_SEPARATOR_2
+@@ -4630,17 +4948,32 @@
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+ #endif /* DIR_SEPARATOR_2 */
+
++#ifndef PATH_SEPARATOR_2
++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
++#else /* PATH_SEPARATOR_2 */
++# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
++#endif /* PATH_SEPARATOR_2 */
++
+ #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+ #define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+ } while (0)
+
++/* -DDEBUG is fairly common in CFLAGS. */
++#undef DEBUG
++#if defined DEBUGWRAPPER
++# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
++#else
++# define DEBUG(format, ...)
++#endif
++
+ 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);
++const char * base_name (const char *name);
++char * find_executable(const char *wrapper);
++int check_executable(const char *path);
+ char * strendzap(char *str, const char *pat);
+ void lt_fatal (const char *message, ...);
+
+@@ -4649,30 +4982,52 @@
+ {
+ char **newargz;
+ int i;
+-
+- program_name = (char *) xstrdup ((char *) basename (argv[0]));
++
++ program_name = (char *) xstrdup (base_name (argv[0]));
++ DEBUG("(main) argv[0] : %s\n",argv[0]);
++ DEBUG("(main) program_name : %s\n",program_name);
+ newargz = XMALLOC(char *, argc+2);
+ EOF
+
+- cat >> $cwrappersource <<EOF
+- newargz[0] = "$SHELL";
++ cat >> $cwrappersource <<EOF
++ newargz[0] = (char *) xstrdup("$SHELL");
+ EOF
+
+- cat >> $cwrappersource <<"EOF"
+- newargz[1] = fnqualify(argv[0]);
++ cat >> $cwrappersource <<"EOF"
++ newargz[1] = find_executable(argv[0]);
++ if (newargz[1] == NULL)
++ lt_fatal("Couldn't find %s", argv[0]);
++ DEBUG("(main) found exe at : %s\n",newargz[1]);
+ /* 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");
++ strendzap(newargz[1],".exe");
+ for (i = 1; i < argc; i++)
+ newargz[i+1] = xstrdup(argv[i]);
+ newargz[argc+1] = NULL;
++
++ for (i=0; i<argc+1; i++)
++ {
++ DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
++ ;
++ }
++
+ EOF
+
+- cat >> $cwrappersource <<EOF
++ case $host_os in
++ mingw*)
++ cat >> $cwrappersource <<EOF
++ execv("$SHELL",(char const **)newargz);
++EOF
++ ;;
++ *)
++ cat >> $cwrappersource <<EOF
+ execv("$SHELL",newargz);
+ EOF
++ ;;
++ esac
+
+- cat >> $cwrappersource <<"EOF"
++ cat >> $cwrappersource <<"EOF"
++ return 127;
+ }
+
+ void *
+@@ -4685,59 +5040,159 @@
+ return p;
+ }
+
+-char *
++char *
+ xstrdup (const char *string)
+ {
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+ ;
+ }
+
+-char *
+-basename (const char *name)
++const char *
++base_name (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] == ':')
++ if (isalpha ((unsigned char)name[0]) && name[1] == ':')
+ name += 2;
+ #endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+- return (char *) base;
++ return base;
++}
++
++int
++check_executable(const char * path)
++{
++ struct stat st;
++
++ DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
++ if ((!path) || (!*path))
++ return 0;
++
++ if ((stat (path, &st) >= 0) &&
++ (
++ /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
++#if defined (S_IXOTH)
++ ((st.st_mode & S_IXOTH) == S_IXOTH) ||
++#endif
++#if defined (S_IXGRP)
++ ((st.st_mode & S_IXGRP) == S_IXGRP) ||
++#endif
++ ((st.st_mode & S_IXUSR) == S_IXUSR))
++ )
++ return 1;
++ else
++ return 0;
+ }
+
+-char *
+-fnqualify(const char *path)
++/* Searches for the full path of the wrapper. Returns
++ newly allocated full path name if found, NULL otherwise */
++char *
++find_executable (const char* wrapper)
+ {
+- size_t size;
+- char *p;
++ int has_slash = 0;
++ const char* p;
++ const char* p_next;
++ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
++ int tmp_len;
++ char* concat_name;
++
++ DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
+
+- assert(path != NULL);
++ if ((wrapper == NULL) || (*wrapper == '\0'))
++ return NULL;
+
+- /* Is it qualified already? */
++ /* Absolute path? */
+ #if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+- if (isalpha (path[0]) && path[1] == ':')
+- return xstrdup (path);
++ if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
++ {
++ concat_name = xstrdup (wrapper);
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++ else
++ {
++#endif
++ if (IS_DIR_SEPARATOR (wrapper[0]))
++ {
++ concat_name = xstrdup (wrapper);
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
++ }
+ #endif
+- if (IS_DIR_SEPARATOR (path[0]))
+- return xstrdup (path);
+
+- /* prepend the current directory */
+- /* doesn't handle '~' */
++ for (p = wrapper; *p; p++)
++ if (*p == '/')
++ {
++ has_slash = 1;
++ break;
++ }
++ if (!has_slash)
++ {
++ /* no slashes; search PATH */
++ const char* path = getenv ("PATH");
++ if (path != NULL)
++ {
++ for (p = path; *p; p = p_next)
++ {
++ const char* q;
++ size_t p_len;
++ for (q = p; *q; q++)
++ if (IS_PATH_SEPARATOR(*q))
++ break;
++ p_len = q - p;
++ p_next = (*q == '\0' ? q : q + 1);
++ if (p_len == 0)
++ {
++ /* empty path: current directory */
++ if (getcwd (tmp, LT_PATHMAX) == NULL)
++ lt_fatal ("getcwd failed");
++ tmp_len = strlen(tmp);
++ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, tmp, tmp_len);
++ concat_name[tmp_len] = '/';
++ strcpy (concat_name + tmp_len + 1, wrapper);
++ }
++ else
++ {
++ concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, p, p_len);
++ concat_name[p_len] = '/';
++ strcpy (concat_name + p_len + 1, wrapper);
++ }
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ }
++ }
++ /* not found in PATH; assume curdir */
++ }
++ /* Relative path | not found in path: prepend cwd */
+ 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;
++ tmp_len = strlen(tmp);
++ concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
++ memcpy (concat_name, tmp, tmp_len);
++ concat_name[tmp_len] = '/';
++ strcpy (concat_name + tmp_len + 1, wrapper);
++
++ if (check_executable(concat_name))
++ return concat_name;
++ XFREE(concat_name);
++ return NULL;
+ }
+
+ char *
+-strendzap(char *str, const char *pat)
++strendzap(char *str, const char *pat)
+ {
+ size_t len, patlen;
+
+@@ -4757,7 +5212,7 @@
+ }
+
+ static void
+-lt_error_core (int exit_status, const char * mode,
++lt_error_core (int exit_status, const char * mode,
+ const char * message, va_list ap)
+ {
+ fprintf (stderr, "%s: %s: ", program_name, mode);
+@@ -4777,16 +5232,16 @@
+ 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
++ # 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 $LTCFLAGS -s -o $cwrapper $cwrappersource
++ ;;
++ esac
++ $rm $output
++ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+ #! $SHELL
+@@ -4807,7 +5262,7 @@
+
+ # 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\"
+
+@@ -4886,7 +5341,7 @@
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ fi
+
+@@ -4936,34 +5391,32 @@
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+- exec \$progdir\\\\\$program \${1+\"\$@\"}
++ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+ "
+ ;;
+
+ *)
+- # Need to set LD_LIBRARY_PATH, to the value already
+- # computed within libtool.
+ $echo >> $output "\
+- LD_LIBRARY_PATH=\"$rpath\" exec \$progdir/\$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 \"\$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
++ exit $EXIT_FAILURE
+ fi
+ fi\
+ "
+ chmod +x $output
+ fi
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+@@ -4986,78 +5439,78 @@
+
+ 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
+- # We will extract separately just the conflicting names and we will no
+- # longer touch any unique names. It is faster to leave these extract
+- # automatically by $AR in one run.
+- $show "(cd $xdir && $AR x $xabs)"
+- $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
+- if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
+- :
+- else
+- $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
+- $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
+- $AR t "$xabs" | sort | uniq -cd | while read -r count name
+- do
+- i=1
+- while test "$i" -le "$count"
+- do
+- # Put our $i before any first dot (extension)
+- # Never overwrite any file
+- name_to="$name"
+- while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
+- do
+- name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
+- done
+- $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
+- $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
+- i=`expr $i + 1`
+- done
+- done
+- fi
+-
+- 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
+
+- compiler_flags="$compiler_flags $add_flags"
+-
+ # 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
++ # 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"
++ exit_status=$?
++ if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
++ exit $exit_status
++ fi
++ fi
++
++ 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..."
+@@ -5066,31 +5519,18 @@
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+- # GNU ar 2.10+ was changed to match POSIX; thus no paths are
+- # encoded into archives. This makes 'ar r' malfunction in
+- # this piecewise linking case whenever conflicting object
+- # names appear in distinct ar calls; check, warn and compensate.
+- if (for obj in $save_oldobjs
+- do
+- $echo "X$obj" | $Xsed -e 's%^.*/%%'
+- done | sort | sort -uc >/dev/null 2>&1); then
+- :
+- else
+- $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
+- $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
+- AR_FLAGS=cq
+- fi
++
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+- done
++ 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" : ".*"` &&
++ if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
+ test "$len" -le "$max_cmd_len"; then
+ :
+ else
+@@ -5098,7 +5538,7 @@
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+- fi
++ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+@@ -5109,12 +5549,13 @@
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+- eval cmds=\"\$concat_cmds~$old_archive_cmds\"
++ 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 $?
+@@ -5146,11 +5587,13 @@
+ 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
++ relink_command=
++ fi
++
++
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+@@ -5162,13 +5605,17 @@
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
++ # Replacing uninstalled with installed can easily break crosscompilation,
++ # since the installed path is generally the wrong architecture. -CL
++ newdependency_libs="$newdependency_libs $deplib"
++ continue
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ 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"
+ ;;
+@@ -5182,7 +5629,7 @@
+ 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
+@@ -5193,11 +5640,30 @@
+ 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
+@@ -5241,7 +5707,7 @@
+
+ # Directory that this library needs to be installed in:
+ libdir='$install_libdir'"
+- if test "$installed" = no && test "$need_relink" = yes && test "$fast_install" = no; then
++ if test "$installed" = no && test "$need_relink" = yes; then
+ $echo >> $output "\
+ relink_command=\"$relink_command\""
+ fi
+@@ -5254,7 +5720,7 @@
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+@@ -5265,11 +5731,11 @@
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+- $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
++ $echo "X$nonopt" | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -5278,14 +5744,14 @@
+ shift
+ else
+ install_prog=
+- arg="$nonopt"
++ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -5303,28 +5769,31 @@
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+- dest="$arg"
++ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+- -f) prev="-f" ;;
+- -g) prev="-g" ;;
+- -m) prev="-m" ;;
+- -o) prev="-o" ;;
++ -f)
++ case " $install_prog " in
++ *[\\\ /]cp\ *) ;;
++ *) prev=$arg ;;
++ esac
++ ;;
++ -g | -m | -o) prev=$arg ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+- -*) ;;
+-
++ -*)
++ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+- dest="$arg"
++ dest=$arg
+ continue
+ fi
+ ;;
+@@ -5333,7 +5802,7 @@
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+- *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*)
++ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ arg="\"$arg\""
+ ;;
+ esac
+@@ -5343,13 +5812,13 @@
+ 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
+@@ -5359,7 +5828,7 @@
+ $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.
+@@ -5380,7 +5849,7 @@
+ 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
+@@ -5392,7 +5861,7 @@
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+@@ -5421,7 +5890,7 @@
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+@@ -5461,10 +5930,13 @@
+ # 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
+- fi
++ #
++ # This breaks install into our staging area. -PB
++ #
++ # if test "$inst_prefix_dir" = "$destdir"; then
++ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
++ # exit $EXIT_FAILURE
++ # fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+@@ -5478,7 +5950,7 @@
+ 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
+
+@@ -5502,23 +5974,36 @@
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
++ # Try `ln -sf' first, because the `ln' binary might depend on
++ # the symlink we replace! Solaris /bin/ln does not understand -f,
++ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+- $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+- $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
++ $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
++ $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
+ fi
+ done
+ fi
+
+ # 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 $?
++ $run eval "$cmd" || {
++ lt_exit=$?
++
++ # Restore the uninstalled library and exit
++ if test "$mode" = relink; then
++ $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
++ fi
++
++ exit $lt_exit
++ }
+ done
+ IFS="$save_ifs"
+ fi
+@@ -5556,7 +6041,7 @@
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+@@ -5574,7 +6059,7 @@
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+@@ -5612,23 +6097,21 @@
+ 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
++ # Note that it is not necessary on cygwin/mingw to append a dot to
++ # foo even if both foo and FILE.exe exist: automatic-append-.exe
++ # behavior happens only for exec(3), not for open(2)! Also, sourcing
++ # `FILE.' does not work on cygwin managed mounts.
++ #
+ # If there is no directory component, then add one.
+- case $file in
+- */* | *\\*) . ${wrapperdot} ;;
+- *) . ./${wrapperdot} ;;
++ case $wrapper in
++ */* | *\\*) . ${wrapper} ;;
++ *) . ./${wrapper} ;;
+ 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
+@@ -5650,30 +6133,21 @@
+ 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
++ # Note that it is not necessary on cygwin/mingw to append a dot to
++ # foo even if both foo and FILE.exe exist: automatic-append-.exe
++ # behavior happens only for exec(3), not for open(2)! Also, sourcing
++ # `FILE.' does not work on cygwin managed mounts.
++ #
+ # If there is no directory component, then add one.
+- case $file in
+- */* | *\\*) . ${wrapperdot} ;;
+- *) . ./${wrapperdot} ;;
++ case $wrapper in
++ */* | *\\*) . ${wrapper} ;;
++ *) . ./${wrapper} ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+- tmpdir="/tmp"
+- test -n "$TMPDIR" && tmpdir="$TMPDIR"
+- tmpdir="$tmpdir/libtool-$$"
+- if $mkdir "$tmpdir" && chmod 700 "$tmpdir"; then :
+- else
+- $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+- continue
+- fi
++ tmpdir=`func_mktempdir`
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+@@ -5697,7 +6171,7 @@
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+- # one anyways
++ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+@@ -5729,16 +6203,17 @@
+ $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
+@@ -5752,9 +6227,9 @@
+ 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
+ ;;
+
+@@ -5773,10 +6248,11 @@
+ 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"
+@@ -5793,9 +6269,9 @@
+ fi
+
+ # Exit here if they wanted silent mode.
+- exit 0
++ test "$show" = : && exit $EXIT_SUCCESS
+
+- $echo "----------------------------------------------------------------------"
++ $echo "X----------------------------------------------------------------------" | $Xsed
+ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $echo " $libdir"
+@@ -5828,8 +6304,8 @@
+ $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 "X----------------------------------------------------------------------" | $Xsed
++ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+@@ -5841,7 +6317,7 @@
+ 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.
+@@ -5849,7 +6325,7 @@
+ 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=
+@@ -5860,7 +6336,7 @@
+ 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.
+@@ -5887,7 +6363,7 @@
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ fi
+ ;;
+
+@@ -5967,7 +6443,7 @@
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+- exit 0
++ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+@@ -5995,7 +6471,7 @@
+ 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=
+@@ -6045,15 +6521,24 @@
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+- test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+- if test "$mode" = uninstall; then
++ case "$mode" in
++ clean)
++ case " $library_names " in
++ # " " in the beginning catches empty $dlname
++ *" $dlname "*) ;;
++ *) rmfiles="$rmfiles $objdir/$dlname" ;;
++ esac
++ test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
++ ;;
++ uninstall)
+ 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 "$?" -ne 0 && test "$rmforce" != yes; then
+@@ -6065,10 +6550,11 @@
+
+ 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 "$?" -ne 0 && test "$rmforce" != yes; then
+@@ -6078,7 +6564,8 @@
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+- fi
++ ;;
++ esac
+ fi
+ ;;
+
+@@ -6107,7 +6594,7 @@
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+- *.exe)
++ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+@@ -6152,20 +6639,20 @@
+ "")
+ $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.
+@@ -6201,7 +6688,7 @@
+ a more detailed description of MODE.
+
+ Report bugs to <bug-libtool@gnu.org>."
+- exit 0
++ exit $EXIT_SUCCESS
+ ;;
+
+ clean)
+@@ -6313,6 +6800,8 @@
+ -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
+@@ -6354,14 +6843,14 @@
+ *)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+- exit 1
++ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ $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
+@@ -6375,12 +6864,11 @@
+ # 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
++disable_libs=shared
+ # ### 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`
++disable_libs=static
+ # ### END LIBTOOL TAG CONFIG: disable-static
+
+ # Local Variables: