ltmain.sh revision 3eed67fa
13eed67faSmbalmer# ltmain.sh - Provide generalized library-building support services.
23eed67faSmbalmer# NOTE: Changing this file will not affect anything until you rerun configure.
33eed67faSmbalmer#
43eed67faSmbalmer# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
53eed67faSmbalmer# 2007, 2008  Free Software Foundation, Inc.
63eed67faSmbalmer# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
73eed67faSmbalmer#
83eed67faSmbalmer# This program is free software; you can redistribute it and/or modify
93eed67faSmbalmer# it under the terms of the GNU General Public License as published by
103eed67faSmbalmer# the Free Software Foundation; either version 2 of the License, or
113eed67faSmbalmer# (at your option) any later version.
123eed67faSmbalmer#
133eed67faSmbalmer# This program is distributed in the hope that it will be useful, but
143eed67faSmbalmer# WITHOUT ANY WARRANTY; without even the implied warranty of
153eed67faSmbalmer# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
163eed67faSmbalmer# General Public License for more details.
173eed67faSmbalmer#
183eed67faSmbalmer# You should have received a copy of the GNU General Public License
193eed67faSmbalmer# along with this program; if not, write to the Free Software
203eed67faSmbalmer# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
213eed67faSmbalmer#
223eed67faSmbalmer# As a special exception to the GNU General Public License, if you
233eed67faSmbalmer# distribute this file as part of a program that contains a
243eed67faSmbalmer# configuration script generated by Autoconf, you may include it under
253eed67faSmbalmer# the same distribution terms that you use for the rest of that program.
263eed67faSmbalmer
273eed67faSmbalmerbasename="s,^.*/,,g"
283eed67faSmbalmer
293eed67faSmbalmer# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
303eed67faSmbalmer# is ksh but when the shell is invoked as "sh" and the current value of
313eed67faSmbalmer# the _XPG environment variable is not equal to 1 (one), the special
323eed67faSmbalmer# positional parameter $0, within a function call, is the name of the
333eed67faSmbalmer# function.
343eed67faSmbalmerprogpath="$0"
353eed67faSmbalmer
363eed67faSmbalmer# The name of this program:
373eed67faSmbalmerprogname=`echo "$progpath" | $SED $basename`
383eed67faSmbalmermodename="$progname"
393eed67faSmbalmer
403eed67faSmbalmer# Global variables:
413eed67faSmbalmerEXIT_SUCCESS=0
423eed67faSmbalmerEXIT_FAILURE=1
433eed67faSmbalmer
443eed67faSmbalmerPROGRAM=ltmain.sh
453eed67faSmbalmerPACKAGE=libtool
463eed67faSmbalmerVERSION=1.5.26
473eed67faSmbalmerTIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
483eed67faSmbalmer
493eed67faSmbalmer# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
503eed67faSmbalmerif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
513eed67faSmbalmer  emulate sh
523eed67faSmbalmer  NULLCMD=:
533eed67faSmbalmer  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
543eed67faSmbalmer  # is contrary to our usage.  Disable this feature.
553eed67faSmbalmer  alias -g '${1+"$@"}'='"$@"'
563eed67faSmbalmer  setopt NO_GLOB_SUBST
573eed67faSmbalmerelse
583eed67faSmbalmer  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
593eed67faSmbalmerfi
603eed67faSmbalmerBIN_SH=xpg4; export BIN_SH # for Tru64
613eed67faSmbalmerDUALCASE=1; export DUALCASE # for MKS sh
623eed67faSmbalmer
633eed67faSmbalmer# Check that we have a working $echo.
643eed67faSmbalmerif test "X$1" = X--no-reexec; then
653eed67faSmbalmer  # Discard the --no-reexec flag, and continue.
663eed67faSmbalmer  shift
673eed67faSmbalmerelif test "X$1" = X--fallback-echo; then
683eed67faSmbalmer  # Avoid inline document here, it may be left over
693eed67faSmbalmer  :
703eed67faSmbalmerelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
713eed67faSmbalmer  # Yippee, $echo works!
723eed67faSmbalmer  :
733eed67faSmbalmerelse
743eed67faSmbalmer  # Restart under the correct shell, and then maybe $echo will work.
753eed67faSmbalmer  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
763eed67faSmbalmerfi
773eed67faSmbalmer
783eed67faSmbalmerif test "X$1" = X--fallback-echo; then
793eed67faSmbalmer  # used as fallback echo
803eed67faSmbalmer  shift
813eed67faSmbalmer  cat <<EOF
823eed67faSmbalmer$*
833eed67faSmbalmerEOF
843eed67faSmbalmer  exit $EXIT_SUCCESS
853eed67faSmbalmerfi
863eed67faSmbalmer
873eed67faSmbalmerdefault_mode=
883eed67faSmbalmerhelp="Try \`$progname --help' for more information."
893eed67faSmbalmermagic="%%%MAGIC variable%%%"
903eed67faSmbalmermkdir="mkdir"
913eed67faSmbalmermv="mv -f"
923eed67faSmbalmerrm="rm -f"
933eed67faSmbalmer
943eed67faSmbalmer# Sed substitution that helps us do robust quoting.  It backslashifies
953eed67faSmbalmer# metacharacters that are still active within double-quoted strings.
963eed67faSmbalmerXsed="${SED}"' -e 1s/^X//'
973eed67faSmbalmersed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
983eed67faSmbalmer# test EBCDIC or ASCII
993eed67faSmbalmercase `echo X|tr X '\101'` in
1003eed67faSmbalmer A) # ASCII based system
1013eed67faSmbalmer    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
1023eed67faSmbalmer  SP2NL='tr \040 \012'
1033eed67faSmbalmer  NL2SP='tr \015\012 \040\040'
1043eed67faSmbalmer  ;;
1053eed67faSmbalmer *) # EBCDIC based system
1063eed67faSmbalmer  SP2NL='tr \100 \n'
1073eed67faSmbalmer  NL2SP='tr \r\n \100\100'
1083eed67faSmbalmer  ;;
1093eed67faSmbalmeresac
1103eed67faSmbalmer
1113eed67faSmbalmer# NLS nuisances.
1123eed67faSmbalmer# Only set LANG and LC_ALL to C if already set.
1133eed67faSmbalmer# These must not be set unconditionally because not all systems understand
1143eed67faSmbalmer# e.g. LANG=C (notably SCO).
1153eed67faSmbalmer# We save the old values to restore during execute mode.
1163eed67faSmbalmerlt_env=
1173eed67faSmbalmerfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1183eed67faSmbalmerdo
1193eed67faSmbalmer  eval "if test \"\${$lt_var+set}\" = set; then
1203eed67faSmbalmer	  save_$lt_var=\$$lt_var
1213eed67faSmbalmer	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
1223eed67faSmbalmer	  $lt_var=C
1233eed67faSmbalmer	  export $lt_var
1243eed67faSmbalmer	fi"
1253eed67faSmbalmerdone
1263eed67faSmbalmer
1273eed67faSmbalmerif test -n "$lt_env"; then
1283eed67faSmbalmer  lt_env="env $lt_env"
1293eed67faSmbalmerfi
1303eed67faSmbalmer
1313eed67faSmbalmer# Make sure IFS has a sensible default
1323eed67faSmbalmerlt_nl='
1333eed67faSmbalmer'
1343eed67faSmbalmerIFS=" 	$lt_nl"
1353eed67faSmbalmer
1363eed67faSmbalmerif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1373eed67faSmbalmer  $echo "$modename: not configured to build any kind of library" 1>&2
1383eed67faSmbalmer  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1393eed67faSmbalmer  exit $EXIT_FAILURE
1403eed67faSmbalmerfi
1413eed67faSmbalmer
1423eed67faSmbalmer# Global variables.
1433eed67faSmbalmermode=$default_mode
1443eed67faSmbalmernonopt=
1453eed67faSmbalmerprev=
1463eed67faSmbalmerprevopt=
1473eed67faSmbalmerrun=
1483eed67faSmbalmershow="$echo"
1493eed67faSmbalmershow_help=
1503eed67faSmbalmerexecute_dlfiles=
1513eed67faSmbalmerduplicate_deps=no
1523eed67faSmbalmerpreserve_args=
1533eed67faSmbalmerlo2o="s/\\.lo\$/.${objext}/"
1543eed67faSmbalmero2lo="s/\\.${objext}\$/.lo/"
1553eed67faSmbalmerextracted_archives=
1563eed67faSmbalmerextracted_serial=0
1573eed67faSmbalmer
1583eed67faSmbalmer#####################################
1593eed67faSmbalmer# Shell function definitions:
1603eed67faSmbalmer# This seems to be the best place for them
1613eed67faSmbalmer
1623eed67faSmbalmer# func_mktempdir [string]
1633eed67faSmbalmer# Make a temporary directory that won't clash with other running
1643eed67faSmbalmer# libtool processes, and avoids race conditions if possible.  If
1653eed67faSmbalmer# given, STRING is the basename for that directory.
1663eed67faSmbalmerfunc_mktempdir ()
1673eed67faSmbalmer{
1683eed67faSmbalmer    my_template="${TMPDIR-/tmp}/${1-$progname}"
1693eed67faSmbalmer
1703eed67faSmbalmer    if test "$run" = ":"; then
1713eed67faSmbalmer      # Return a directory name, but don't create it in dry-run mode
1723eed67faSmbalmer      my_tmpdir="${my_template}-$$"
1733eed67faSmbalmer    else
1743eed67faSmbalmer
1753eed67faSmbalmer      # If mktemp works, use that first and foremost
1763eed67faSmbalmer      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
1773eed67faSmbalmer
1783eed67faSmbalmer      if test ! -d "$my_tmpdir"; then
1793eed67faSmbalmer	# Failing that, at least try and use $RANDOM to avoid a race
1803eed67faSmbalmer	my_tmpdir="${my_template}-${RANDOM-0}$$"
1813eed67faSmbalmer
1823eed67faSmbalmer	save_mktempdir_umask=`umask`
1833eed67faSmbalmer	umask 0077
1843eed67faSmbalmer	$mkdir "$my_tmpdir"
1853eed67faSmbalmer	umask $save_mktempdir_umask
1863eed67faSmbalmer      fi
1873eed67faSmbalmer
1883eed67faSmbalmer      # If we're not in dry-run mode, bomb out on failure
1893eed67faSmbalmer      test -d "$my_tmpdir" || {
1903eed67faSmbalmer        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
1913eed67faSmbalmer	exit $EXIT_FAILURE
1923eed67faSmbalmer      }
1933eed67faSmbalmer    fi
1943eed67faSmbalmer
1953eed67faSmbalmer    $echo "X$my_tmpdir" | $Xsed
1963eed67faSmbalmer}
1973eed67faSmbalmer
1983eed67faSmbalmer
1993eed67faSmbalmer# func_win32_libid arg
2003eed67faSmbalmer# return the library type of file 'arg'
2013eed67faSmbalmer#
2023eed67faSmbalmer# Need a lot of goo to handle *both* DLLs and import libs
2033eed67faSmbalmer# Has to be a shell function in order to 'eat' the argument
2043eed67faSmbalmer# that is supplied when $file_magic_command is called.
2053eed67faSmbalmerfunc_win32_libid ()
2063eed67faSmbalmer{
2073eed67faSmbalmer  win32_libid_type="unknown"
2083eed67faSmbalmer  win32_fileres=`file -L $1 2>/dev/null`
2093eed67faSmbalmer  case $win32_fileres in
2103eed67faSmbalmer  *ar\ archive\ import\ library*) # definitely import
2113eed67faSmbalmer    win32_libid_type="x86 archive import"
2123eed67faSmbalmer    ;;
2133eed67faSmbalmer  *ar\ archive*) # could be an import, or static
2143eed67faSmbalmer    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
2153eed67faSmbalmer      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2163eed67faSmbalmer      win32_nmres=`eval $NM -f posix -A $1 | \
2173eed67faSmbalmer	$SED -n -e '1,100{
2183eed67faSmbalmer		/ I /{
2193eed67faSmbalmer			s,.*,import,
2203eed67faSmbalmer			p
2213eed67faSmbalmer			q
2223eed67faSmbalmer			}
2233eed67faSmbalmer		}'`
2243eed67faSmbalmer      case $win32_nmres in
2253eed67faSmbalmer      import*)  win32_libid_type="x86 archive import";;
2263eed67faSmbalmer      *)        win32_libid_type="x86 archive static";;
2273eed67faSmbalmer      esac
2283eed67faSmbalmer    fi
2293eed67faSmbalmer    ;;
2303eed67faSmbalmer  *DLL*)
2313eed67faSmbalmer    win32_libid_type="x86 DLL"
2323eed67faSmbalmer    ;;
2333eed67faSmbalmer  *executable*) # but shell scripts are "executable" too...
2343eed67faSmbalmer    case $win32_fileres in
2353eed67faSmbalmer    *MS\ Windows\ PE\ Intel*)
2363eed67faSmbalmer      win32_libid_type="x86 DLL"
2373eed67faSmbalmer      ;;
2383eed67faSmbalmer    esac
2393eed67faSmbalmer    ;;
2403eed67faSmbalmer  esac
2413eed67faSmbalmer  $echo $win32_libid_type
2423eed67faSmbalmer}
2433eed67faSmbalmer
2443eed67faSmbalmer
2453eed67faSmbalmer# func_infer_tag arg
2463eed67faSmbalmer# Infer tagged configuration to use if any are available and
2473eed67faSmbalmer# if one wasn't chosen via the "--tag" command line option.
2483eed67faSmbalmer# Only attempt this if the compiler in the base compile
2493eed67faSmbalmer# command doesn't match the default compiler.
2503eed67faSmbalmer# arg is usually of the form 'gcc ...'
2513eed67faSmbalmerfunc_infer_tag ()
2523eed67faSmbalmer{
2533eed67faSmbalmer    if test -n "$available_tags" && test -z "$tagname"; then
2543eed67faSmbalmer      CC_quoted=
2553eed67faSmbalmer      for arg in $CC; do
2563eed67faSmbalmer	case $arg in
2573eed67faSmbalmer	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2583eed67faSmbalmer	  arg="\"$arg\""
2593eed67faSmbalmer	  ;;
2603eed67faSmbalmer	esac
2613eed67faSmbalmer	CC_quoted="$CC_quoted $arg"
2623eed67faSmbalmer      done
2633eed67faSmbalmer      case $@ in
2643eed67faSmbalmer      # Blanks in the command may have been stripped by the calling shell,
2653eed67faSmbalmer      # but not from the CC environment variable when configure was run.
2663eed67faSmbalmer      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
2673eed67faSmbalmer      # Blanks at the start of $base_compile will cause this to fail
2683eed67faSmbalmer      # if we don't check for them as well.
2693eed67faSmbalmer      *)
2703eed67faSmbalmer	for z in $available_tags; do
2713eed67faSmbalmer	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
2723eed67faSmbalmer	    # Evaluate the configuration.
2733eed67faSmbalmer	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
2743eed67faSmbalmer	    CC_quoted=
2753eed67faSmbalmer	    for arg in $CC; do
2763eed67faSmbalmer	    # Double-quote args containing other shell metacharacters.
2773eed67faSmbalmer	    case $arg in
2783eed67faSmbalmer	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2793eed67faSmbalmer	      arg="\"$arg\""
2803eed67faSmbalmer	      ;;
2813eed67faSmbalmer	    esac
2823eed67faSmbalmer	    CC_quoted="$CC_quoted $arg"
2833eed67faSmbalmer	  done
2843eed67faSmbalmer	    case "$@ " in
2853eed67faSmbalmer	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
2863eed67faSmbalmer	      # The compiler in the base compile command matches
2873eed67faSmbalmer	      # the one in the tagged configuration.
2883eed67faSmbalmer	      # Assume this is the tagged configuration we want.
2893eed67faSmbalmer	      tagname=$z
2903eed67faSmbalmer	      break
2913eed67faSmbalmer	      ;;
2923eed67faSmbalmer	    esac
2933eed67faSmbalmer	  fi
2943eed67faSmbalmer	done
2953eed67faSmbalmer	# If $tagname still isn't set, then no tagged configuration
2963eed67faSmbalmer	# was found and let the user know that the "--tag" command
2973eed67faSmbalmer	# line option must be used.
2983eed67faSmbalmer	if test -z "$tagname"; then
2993eed67faSmbalmer	  $echo "$modename: unable to infer tagged configuration"
3003eed67faSmbalmer	  $echo "$modename: specify a tag with \`--tag'" 1>&2
3013eed67faSmbalmer	  exit $EXIT_FAILURE
3023eed67faSmbalmer#        else
3033eed67faSmbalmer#          $echo "$modename: using $tagname tagged configuration"
3043eed67faSmbalmer	fi
3053eed67faSmbalmer	;;
3063eed67faSmbalmer      esac
3073eed67faSmbalmer    fi
3083eed67faSmbalmer}
3093eed67faSmbalmer
3103eed67faSmbalmer
3113eed67faSmbalmer# func_extract_an_archive dir oldlib
3123eed67faSmbalmerfunc_extract_an_archive ()
3133eed67faSmbalmer{
3143eed67faSmbalmer    f_ex_an_ar_dir="$1"; shift
3153eed67faSmbalmer    f_ex_an_ar_oldlib="$1"
3163eed67faSmbalmer
3173eed67faSmbalmer    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
3183eed67faSmbalmer    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
3193eed67faSmbalmer    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3203eed67faSmbalmer     :
3213eed67faSmbalmer    else
3223eed67faSmbalmer      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
3233eed67faSmbalmer      exit $EXIT_FAILURE
3243eed67faSmbalmer    fi
3253eed67faSmbalmer}
3263eed67faSmbalmer
3273eed67faSmbalmer# func_extract_archives gentop oldlib ...
3283eed67faSmbalmerfunc_extract_archives ()
3293eed67faSmbalmer{
3303eed67faSmbalmer    my_gentop="$1"; shift
3313eed67faSmbalmer    my_oldlibs=${1+"$@"}
3323eed67faSmbalmer    my_oldobjs=""
3333eed67faSmbalmer    my_xlib=""
3343eed67faSmbalmer    my_xabs=""
3353eed67faSmbalmer    my_xdir=""
3363eed67faSmbalmer    my_status=""
3373eed67faSmbalmer
3383eed67faSmbalmer    $show "${rm}r $my_gentop"
3393eed67faSmbalmer    $run ${rm}r "$my_gentop"
3403eed67faSmbalmer    $show "$mkdir $my_gentop"
3413eed67faSmbalmer    $run $mkdir "$my_gentop"
3423eed67faSmbalmer    my_status=$?
3433eed67faSmbalmer    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
3443eed67faSmbalmer      exit $my_status
3453eed67faSmbalmer    fi
3463eed67faSmbalmer
3473eed67faSmbalmer    for my_xlib in $my_oldlibs; do
3483eed67faSmbalmer      # Extract the objects.
3493eed67faSmbalmer      case $my_xlib in
3503eed67faSmbalmer	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3513eed67faSmbalmer	*) my_xabs=`pwd`"/$my_xlib" ;;
3523eed67faSmbalmer      esac
3533eed67faSmbalmer      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
3543eed67faSmbalmer      my_xlib_u=$my_xlib
3553eed67faSmbalmer      while :; do
3563eed67faSmbalmer        case " $extracted_archives " in
3573eed67faSmbalmer	*" $my_xlib_u "*)
3583eed67faSmbalmer	  extracted_serial=`expr $extracted_serial + 1`
3593eed67faSmbalmer	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
3603eed67faSmbalmer	*) break ;;
3613eed67faSmbalmer	esac
3623eed67faSmbalmer      done
3633eed67faSmbalmer      extracted_archives="$extracted_archives $my_xlib_u"
3643eed67faSmbalmer      my_xdir="$my_gentop/$my_xlib_u"
3653eed67faSmbalmer
3663eed67faSmbalmer      $show "${rm}r $my_xdir"
3673eed67faSmbalmer      $run ${rm}r "$my_xdir"
3683eed67faSmbalmer      $show "$mkdir $my_xdir"
3693eed67faSmbalmer      $run $mkdir "$my_xdir"
3703eed67faSmbalmer      exit_status=$?
3713eed67faSmbalmer      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
3723eed67faSmbalmer	exit $exit_status
3733eed67faSmbalmer      fi
3743eed67faSmbalmer      case $host in
3753eed67faSmbalmer      *-darwin*)
3763eed67faSmbalmer	$show "Extracting $my_xabs"
3773eed67faSmbalmer	# Do not bother doing anything if just a dry run
3783eed67faSmbalmer	if test -z "$run"; then
3793eed67faSmbalmer	  darwin_orig_dir=`pwd`
3803eed67faSmbalmer	  cd $my_xdir || exit $?
3813eed67faSmbalmer	  darwin_archive=$my_xabs
3823eed67faSmbalmer	  darwin_curdir=`pwd`
3833eed67faSmbalmer	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
3843eed67faSmbalmer	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
3853eed67faSmbalmer	  if test -n "$darwin_arches"; then 
3863eed67faSmbalmer	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
3873eed67faSmbalmer	    darwin_arch=
3883eed67faSmbalmer	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
3893eed67faSmbalmer	    for darwin_arch in  $darwin_arches ; do
3903eed67faSmbalmer	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3913eed67faSmbalmer	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3923eed67faSmbalmer	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3933eed67faSmbalmer	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3943eed67faSmbalmer	      cd "$darwin_curdir"
3953eed67faSmbalmer	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3963eed67faSmbalmer	    done # $darwin_arches
3973eed67faSmbalmer      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
3983eed67faSmbalmer	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
3993eed67faSmbalmer	    darwin_file=
4003eed67faSmbalmer	    darwin_files=
4013eed67faSmbalmer	    for darwin_file in $darwin_filelist; do
4023eed67faSmbalmer	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
4033eed67faSmbalmer	      lipo -create -output "$darwin_file" $darwin_files
4043eed67faSmbalmer	    done # $darwin_filelist
4053eed67faSmbalmer	    ${rm}r unfat-$$
4063eed67faSmbalmer	    cd "$darwin_orig_dir"
4073eed67faSmbalmer	  else
4083eed67faSmbalmer	    cd "$darwin_orig_dir"
4093eed67faSmbalmer 	    func_extract_an_archive "$my_xdir" "$my_xabs"
4103eed67faSmbalmer	  fi # $darwin_arches
4113eed67faSmbalmer	fi # $run
4123eed67faSmbalmer	;;
4133eed67faSmbalmer      *)
4143eed67faSmbalmer        func_extract_an_archive "$my_xdir" "$my_xabs"
4153eed67faSmbalmer        ;;
4163eed67faSmbalmer      esac
4173eed67faSmbalmer      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
4183eed67faSmbalmer    done
4193eed67faSmbalmer    func_extract_archives_result="$my_oldobjs"
4203eed67faSmbalmer}
4213eed67faSmbalmer# End of Shell function definitions
4223eed67faSmbalmer#####################################
4233eed67faSmbalmer
4243eed67faSmbalmer# Darwin sucks
4253eed67faSmbalmereval std_shrext=\"$shrext_cmds\"
4263eed67faSmbalmer
4273eed67faSmbalmerdisable_libs=no
4283eed67faSmbalmer
4293eed67faSmbalmer# Parse our command line options once, thoroughly.
4303eed67faSmbalmerwhile test "$#" -gt 0
4313eed67faSmbalmerdo
4323eed67faSmbalmer  arg="$1"
4333eed67faSmbalmer  shift
4343eed67faSmbalmer
4353eed67faSmbalmer  case $arg in
4363eed67faSmbalmer  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
4373eed67faSmbalmer  *) optarg= ;;
4383eed67faSmbalmer  esac
4393eed67faSmbalmer
4403eed67faSmbalmer  # If the previous option needs an argument, assign it.
4413eed67faSmbalmer  if test -n "$prev"; then
4423eed67faSmbalmer    case $prev in
4433eed67faSmbalmer    execute_dlfiles)
4443eed67faSmbalmer      execute_dlfiles="$execute_dlfiles $arg"
4453eed67faSmbalmer      ;;
4463eed67faSmbalmer    tag)
4473eed67faSmbalmer      tagname="$arg"
4483eed67faSmbalmer      preserve_args="${preserve_args}=$arg"
4493eed67faSmbalmer
4503eed67faSmbalmer      # Check whether tagname contains only valid characters
4513eed67faSmbalmer      case $tagname in
4523eed67faSmbalmer      *[!-_A-Za-z0-9,/]*)
4533eed67faSmbalmer	$echo "$progname: invalid tag name: $tagname" 1>&2
4543eed67faSmbalmer	exit $EXIT_FAILURE
4553eed67faSmbalmer	;;
4563eed67faSmbalmer      esac
4573eed67faSmbalmer
4583eed67faSmbalmer      case $tagname in
4593eed67faSmbalmer      CC)
4603eed67faSmbalmer	# Don't test for the "default" C tag, as we know, it's there, but
4613eed67faSmbalmer	# not specially marked.
4623eed67faSmbalmer	;;
4633eed67faSmbalmer      *)
4643eed67faSmbalmer	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
4653eed67faSmbalmer	  taglist="$taglist $tagname"
4663eed67faSmbalmer	  # Evaluate the configuration.
4673eed67faSmbalmer	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
4683eed67faSmbalmer	else
4693eed67faSmbalmer	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
4703eed67faSmbalmer	fi
4713eed67faSmbalmer	;;
4723eed67faSmbalmer      esac
4733eed67faSmbalmer      ;;
4743eed67faSmbalmer    *)
4753eed67faSmbalmer      eval "$prev=\$arg"
4763eed67faSmbalmer      ;;
4773eed67faSmbalmer    esac
4783eed67faSmbalmer
4793eed67faSmbalmer    prev=
4803eed67faSmbalmer    prevopt=
4813eed67faSmbalmer    continue
4823eed67faSmbalmer  fi
4833eed67faSmbalmer
4843eed67faSmbalmer  # Have we seen a non-optional argument yet?
4853eed67faSmbalmer  case $arg in
4863eed67faSmbalmer  --help)
4873eed67faSmbalmer    show_help=yes
4883eed67faSmbalmer    ;;
4893eed67faSmbalmer
4903eed67faSmbalmer  --version)
4913eed67faSmbalmer    echo "\
4923eed67faSmbalmer$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
4933eed67faSmbalmer
4943eed67faSmbalmerCopyright (C) 2008  Free Software Foundation, Inc.
4953eed67faSmbalmerThis is free software; see the source for copying conditions.  There is NO
4963eed67faSmbalmerwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
4973eed67faSmbalmer    exit $?
4983eed67faSmbalmer    ;;
4993eed67faSmbalmer
5003eed67faSmbalmer  --config)
5013eed67faSmbalmer    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
5023eed67faSmbalmer    # Now print the configurations for the tags.
5033eed67faSmbalmer    for tagname in $taglist; do
5043eed67faSmbalmer      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
5053eed67faSmbalmer    done
5063eed67faSmbalmer    exit $?
5073eed67faSmbalmer    ;;
5083eed67faSmbalmer
5093eed67faSmbalmer  --debug)
5103eed67faSmbalmer    $echo "$progname: enabling shell trace mode"
5113eed67faSmbalmer    set -x
5123eed67faSmbalmer    preserve_args="$preserve_args $arg"
5133eed67faSmbalmer    ;;
5143eed67faSmbalmer
5153eed67faSmbalmer  --dry-run | -n)
5163eed67faSmbalmer    run=:
5173eed67faSmbalmer    ;;
5183eed67faSmbalmer
5193eed67faSmbalmer  --features)
5203eed67faSmbalmer    $echo "host: $host"
5213eed67faSmbalmer    if test "$build_libtool_libs" = yes; then
5223eed67faSmbalmer      $echo "enable shared libraries"
5233eed67faSmbalmer    else
5243eed67faSmbalmer      $echo "disable shared libraries"
5253eed67faSmbalmer    fi
5263eed67faSmbalmer    if test "$build_old_libs" = yes; then
5273eed67faSmbalmer      $echo "enable static libraries"
5283eed67faSmbalmer    else
5293eed67faSmbalmer      $echo "disable static libraries"
5303eed67faSmbalmer    fi
5313eed67faSmbalmer    exit $?
5323eed67faSmbalmer    ;;
5333eed67faSmbalmer
5343eed67faSmbalmer  --finish) mode="finish" ;;
5353eed67faSmbalmer
5363eed67faSmbalmer  --mode) prevopt="--mode" prev=mode ;;
5373eed67faSmbalmer  --mode=*) mode="$optarg" ;;
5383eed67faSmbalmer
5393eed67faSmbalmer  --preserve-dup-deps) duplicate_deps="yes" ;;
5403eed67faSmbalmer
5413eed67faSmbalmer  --quiet | --silent)
5423eed67faSmbalmer    show=:
5433eed67faSmbalmer    preserve_args="$preserve_args $arg"
5443eed67faSmbalmer    ;;
5453eed67faSmbalmer
5463eed67faSmbalmer  --tag)
5473eed67faSmbalmer    prevopt="--tag"
5483eed67faSmbalmer    prev=tag
5493eed67faSmbalmer    preserve_args="$preserve_args --tag"
5503eed67faSmbalmer    ;;
5513eed67faSmbalmer  --tag=*)
5523eed67faSmbalmer    set tag "$optarg" ${1+"$@"}
5533eed67faSmbalmer    shift
5543eed67faSmbalmer    prev=tag
5553eed67faSmbalmer    preserve_args="$preserve_args --tag"
5563eed67faSmbalmer    ;;
5573eed67faSmbalmer
5583eed67faSmbalmer  -dlopen)
5593eed67faSmbalmer    prevopt="-dlopen"
5603eed67faSmbalmer    prev=execute_dlfiles
5613eed67faSmbalmer    ;;
5623eed67faSmbalmer
5633eed67faSmbalmer  -*)
5643eed67faSmbalmer    $echo "$modename: unrecognized option \`$arg'" 1>&2
5653eed67faSmbalmer    $echo "$help" 1>&2
5663eed67faSmbalmer    exit $EXIT_FAILURE
5673eed67faSmbalmer    ;;
5683eed67faSmbalmer
5693eed67faSmbalmer  *)
5703eed67faSmbalmer    nonopt="$arg"
5713eed67faSmbalmer    break
5723eed67faSmbalmer    ;;
5733eed67faSmbalmer  esac
5743eed67faSmbalmerdone
5753eed67faSmbalmer
5763eed67faSmbalmerif test -n "$prevopt"; then
5773eed67faSmbalmer  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
5783eed67faSmbalmer  $echo "$help" 1>&2
5793eed67faSmbalmer  exit $EXIT_FAILURE
5803eed67faSmbalmerfi
5813eed67faSmbalmer
5823eed67faSmbalmercase $disable_libs in
5833eed67faSmbalmerno) 
5843eed67faSmbalmer  ;;
5853eed67faSmbalmershared)
5863eed67faSmbalmer  build_libtool_libs=no
5873eed67faSmbalmer  build_old_libs=yes
5883eed67faSmbalmer  ;;
5893eed67faSmbalmerstatic)
5903eed67faSmbalmer  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5913eed67faSmbalmer  ;;
5923eed67faSmbalmeresac
5933eed67faSmbalmer
5943eed67faSmbalmer# If this variable is set in any of the actions, the command in it
5953eed67faSmbalmer# will be execed at the end.  This prevents here-documents from being
5963eed67faSmbalmer# left over by shells.
5973eed67faSmbalmerexec_cmd=
5983eed67faSmbalmer
5993eed67faSmbalmerif test -z "$show_help"; then
6003eed67faSmbalmer
6013eed67faSmbalmer  # Infer the operation mode.
6023eed67faSmbalmer  if test -z "$mode"; then
6033eed67faSmbalmer    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
6043eed67faSmbalmer    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
6053eed67faSmbalmer    case $nonopt in
6063eed67faSmbalmer    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
6073eed67faSmbalmer      mode=link
6083eed67faSmbalmer      for arg
6093eed67faSmbalmer      do
6103eed67faSmbalmer	case $arg in
6113eed67faSmbalmer	-c)
6123eed67faSmbalmer	   mode=compile
6133eed67faSmbalmer	   break
6143eed67faSmbalmer	   ;;
6153eed67faSmbalmer	esac
6163eed67faSmbalmer      done
6173eed67faSmbalmer      ;;
6183eed67faSmbalmer    *db | *dbx | *strace | *truss)
6193eed67faSmbalmer      mode=execute
6203eed67faSmbalmer      ;;
6213eed67faSmbalmer    *install*|cp|mv)
6223eed67faSmbalmer      mode=install
6233eed67faSmbalmer      ;;
6243eed67faSmbalmer    *rm)
6253eed67faSmbalmer      mode=uninstall
6263eed67faSmbalmer      ;;
6273eed67faSmbalmer    *)
6283eed67faSmbalmer      # If we have no mode, but dlfiles were specified, then do execute mode.
6293eed67faSmbalmer      test -n "$execute_dlfiles" && mode=execute
6303eed67faSmbalmer
6313eed67faSmbalmer      # Just use the default operation mode.
6323eed67faSmbalmer      if test -z "$mode"; then
6333eed67faSmbalmer	if test -n "$nonopt"; then
6343eed67faSmbalmer	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
6353eed67faSmbalmer	else
6363eed67faSmbalmer	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
6373eed67faSmbalmer	fi
6383eed67faSmbalmer      fi
6393eed67faSmbalmer      ;;
6403eed67faSmbalmer    esac
6413eed67faSmbalmer  fi
6423eed67faSmbalmer
6433eed67faSmbalmer  # Only execute mode is allowed to have -dlopen flags.
6443eed67faSmbalmer  if test -n "$execute_dlfiles" && test "$mode" != execute; then
6453eed67faSmbalmer    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
6463eed67faSmbalmer    $echo "$help" 1>&2
6473eed67faSmbalmer    exit $EXIT_FAILURE
6483eed67faSmbalmer  fi
6493eed67faSmbalmer
6503eed67faSmbalmer  # Change the help message to a mode-specific one.
6513eed67faSmbalmer  generic_help="$help"
6523eed67faSmbalmer  help="Try \`$modename --help --mode=$mode' for more information."
6533eed67faSmbalmer
6543eed67faSmbalmer  # These modes are in order of execution frequency so that they run quickly.
6553eed67faSmbalmer  case $mode in
6563eed67faSmbalmer  # libtool compile mode
6573eed67faSmbalmer  compile)
6583eed67faSmbalmer    modename="$modename: compile"
6593eed67faSmbalmer    # Get the compilation command and the source file.
6603eed67faSmbalmer    base_compile=
6613eed67faSmbalmer    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
6623eed67faSmbalmer    suppress_opt=yes
6633eed67faSmbalmer    suppress_output=
6643eed67faSmbalmer    arg_mode=normal
6653eed67faSmbalmer    libobj=
6663eed67faSmbalmer    later=
6673eed67faSmbalmer
6683eed67faSmbalmer    for arg
6693eed67faSmbalmer    do
6703eed67faSmbalmer      case $arg_mode in
6713eed67faSmbalmer      arg  )
6723eed67faSmbalmer	# do not "continue".  Instead, add this to base_compile
6733eed67faSmbalmer	lastarg="$arg"
6743eed67faSmbalmer	arg_mode=normal
6753eed67faSmbalmer	;;
6763eed67faSmbalmer
6773eed67faSmbalmer      target )
6783eed67faSmbalmer	libobj="$arg"
6793eed67faSmbalmer	arg_mode=normal
6803eed67faSmbalmer	continue
6813eed67faSmbalmer	;;
6823eed67faSmbalmer
6833eed67faSmbalmer      normal )
6843eed67faSmbalmer	# Accept any command-line options.
6853eed67faSmbalmer	case $arg in
6863eed67faSmbalmer	-o)
6873eed67faSmbalmer	  if test -n "$libobj" ; then
6883eed67faSmbalmer	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
6893eed67faSmbalmer	    exit $EXIT_FAILURE
6903eed67faSmbalmer	  fi
6913eed67faSmbalmer	  arg_mode=target
6923eed67faSmbalmer	  continue
6933eed67faSmbalmer	  ;;
6943eed67faSmbalmer
6953eed67faSmbalmer	-static | -prefer-pic | -prefer-non-pic)
6963eed67faSmbalmer	  later="$later $arg"
6973eed67faSmbalmer	  continue
6983eed67faSmbalmer	  ;;
6993eed67faSmbalmer
7003eed67faSmbalmer	-no-suppress)
7013eed67faSmbalmer	  suppress_opt=no
7023eed67faSmbalmer	  continue
7033eed67faSmbalmer	  ;;
7043eed67faSmbalmer
7053eed67faSmbalmer	-Xcompiler)
7063eed67faSmbalmer	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
7073eed67faSmbalmer	  continue      #  The current "srcfile" will either be retained or
7083eed67faSmbalmer	  ;;            #  replaced later.  I would guess that would be a bug.
7093eed67faSmbalmer
7103eed67faSmbalmer	-Wc,*)
7113eed67faSmbalmer	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
7123eed67faSmbalmer	  lastarg=
7133eed67faSmbalmer	  save_ifs="$IFS"; IFS=','
7143eed67faSmbalmer 	  for arg in $args; do
7153eed67faSmbalmer	    IFS="$save_ifs"
7163eed67faSmbalmer
7173eed67faSmbalmer	    # Double-quote args containing other shell metacharacters.
7183eed67faSmbalmer	    # Many Bourne shells cannot handle close brackets correctly
7193eed67faSmbalmer	    # in scan sets, so we specify it separately.
7203eed67faSmbalmer	    case $arg in
7213eed67faSmbalmer	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7223eed67faSmbalmer	      arg="\"$arg\""
7233eed67faSmbalmer	      ;;
7243eed67faSmbalmer	    esac
7253eed67faSmbalmer	    lastarg="$lastarg $arg"
7263eed67faSmbalmer	  done
7273eed67faSmbalmer	  IFS="$save_ifs"
7283eed67faSmbalmer	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
7293eed67faSmbalmer
7303eed67faSmbalmer	  # Add the arguments to base_compile.
7313eed67faSmbalmer	  base_compile="$base_compile $lastarg"
7323eed67faSmbalmer	  continue
7333eed67faSmbalmer	  ;;
7343eed67faSmbalmer
7353eed67faSmbalmer	* )
7363eed67faSmbalmer	  # Accept the current argument as the source file.
7373eed67faSmbalmer	  # The previous "srcfile" becomes the current argument.
7383eed67faSmbalmer	  #
7393eed67faSmbalmer	  lastarg="$srcfile"
7403eed67faSmbalmer	  srcfile="$arg"
7413eed67faSmbalmer	  ;;
7423eed67faSmbalmer	esac  #  case $arg
7433eed67faSmbalmer	;;
7443eed67faSmbalmer      esac    #  case $arg_mode
7453eed67faSmbalmer
7463eed67faSmbalmer      # Aesthetically quote the previous argument.
7473eed67faSmbalmer      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
7483eed67faSmbalmer
7493eed67faSmbalmer      case $lastarg in
7503eed67faSmbalmer      # Double-quote args containing other shell metacharacters.
7513eed67faSmbalmer      # Many Bourne shells cannot handle close brackets correctly
7523eed67faSmbalmer      # in scan sets, and some SunOS ksh mistreat backslash-escaping
7533eed67faSmbalmer      # in scan sets (worked around with variable expansion),
7543eed67faSmbalmer      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
7553eed67faSmbalmer      # at all, so we specify them separately.
7563eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7573eed67faSmbalmer	lastarg="\"$lastarg\""
7583eed67faSmbalmer	;;
7593eed67faSmbalmer      esac
7603eed67faSmbalmer
7613eed67faSmbalmer      base_compile="$base_compile $lastarg"
7623eed67faSmbalmer    done # for arg
7633eed67faSmbalmer
7643eed67faSmbalmer    case $arg_mode in
7653eed67faSmbalmer    arg)
7663eed67faSmbalmer      $echo "$modename: you must specify an argument for -Xcompile"
7673eed67faSmbalmer      exit $EXIT_FAILURE
7683eed67faSmbalmer      ;;
7693eed67faSmbalmer    target)
7703eed67faSmbalmer      $echo "$modename: you must specify a target with \`-o'" 1>&2
7713eed67faSmbalmer      exit $EXIT_FAILURE
7723eed67faSmbalmer      ;;
7733eed67faSmbalmer    *)
7743eed67faSmbalmer      # Get the name of the library object.
7753eed67faSmbalmer      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
7763eed67faSmbalmer      ;;
7773eed67faSmbalmer    esac
7783eed67faSmbalmer
7793eed67faSmbalmer    # Recognize several different file suffixes.
7803eed67faSmbalmer    # If the user specifies -o file.o, it is replaced with file.lo
7813eed67faSmbalmer    xform='[cCFSifmso]'
7823eed67faSmbalmer    case $libobj in
7833eed67faSmbalmer    *.ada) xform=ada ;;
7843eed67faSmbalmer    *.adb) xform=adb ;;
7853eed67faSmbalmer    *.ads) xform=ads ;;
7863eed67faSmbalmer    *.asm) xform=asm ;;
7873eed67faSmbalmer    *.c++) xform=c++ ;;
7883eed67faSmbalmer    *.cc) xform=cc ;;
7893eed67faSmbalmer    *.ii) xform=ii ;;
7903eed67faSmbalmer    *.class) xform=class ;;
7913eed67faSmbalmer    *.cpp) xform=cpp ;;
7923eed67faSmbalmer    *.cxx) xform=cxx ;;
7933eed67faSmbalmer    *.[fF][09]?) xform=[fF][09]. ;;
7943eed67faSmbalmer    *.for) xform=for ;;
7953eed67faSmbalmer    *.java) xform=java ;;
7963eed67faSmbalmer    *.obj) xform=obj ;;
7973eed67faSmbalmer    *.sx) xform=sx ;;
7983eed67faSmbalmer    esac
7993eed67faSmbalmer
8003eed67faSmbalmer    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
8013eed67faSmbalmer
8023eed67faSmbalmer    case $libobj in
8033eed67faSmbalmer    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
8043eed67faSmbalmer    *)
8053eed67faSmbalmer      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
8063eed67faSmbalmer      exit $EXIT_FAILURE
8073eed67faSmbalmer      ;;
8083eed67faSmbalmer    esac
8093eed67faSmbalmer
8103eed67faSmbalmer    func_infer_tag $base_compile
8113eed67faSmbalmer
8123eed67faSmbalmer    for arg in $later; do
8133eed67faSmbalmer      case $arg in
8143eed67faSmbalmer      -static)
8153eed67faSmbalmer	build_old_libs=yes
8163eed67faSmbalmer	continue
8173eed67faSmbalmer	;;
8183eed67faSmbalmer
8193eed67faSmbalmer      -prefer-pic)
8203eed67faSmbalmer	pic_mode=yes
8213eed67faSmbalmer	continue
8223eed67faSmbalmer	;;
8233eed67faSmbalmer
8243eed67faSmbalmer      -prefer-non-pic)
8253eed67faSmbalmer	pic_mode=no
8263eed67faSmbalmer	continue
8273eed67faSmbalmer	;;
8283eed67faSmbalmer      esac
8293eed67faSmbalmer    done
8303eed67faSmbalmer
8313eed67faSmbalmer    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
8323eed67faSmbalmer    case $qlibobj in
8333eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
8343eed67faSmbalmer	qlibobj="\"$qlibobj\"" ;;
8353eed67faSmbalmer    esac
8363eed67faSmbalmer    test "X$libobj" != "X$qlibobj" \
8373eed67faSmbalmer	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
8383eed67faSmbalmer	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
8393eed67faSmbalmer    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
8403eed67faSmbalmer    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
8413eed67faSmbalmer    if test "X$xdir" = "X$obj"; then
8423eed67faSmbalmer      xdir=
8433eed67faSmbalmer    else
8443eed67faSmbalmer      xdir=$xdir/
8453eed67faSmbalmer    fi
8463eed67faSmbalmer    lobj=${xdir}$objdir/$objname
8473eed67faSmbalmer
8483eed67faSmbalmer    if test -z "$base_compile"; then
8493eed67faSmbalmer      $echo "$modename: you must specify a compilation command" 1>&2
8503eed67faSmbalmer      $echo "$help" 1>&2
8513eed67faSmbalmer      exit $EXIT_FAILURE
8523eed67faSmbalmer    fi
8533eed67faSmbalmer
8543eed67faSmbalmer    # Delete any leftover library objects.
8553eed67faSmbalmer    if test "$build_old_libs" = yes; then
8563eed67faSmbalmer      removelist="$obj $lobj $libobj ${libobj}T"
8573eed67faSmbalmer    else
8583eed67faSmbalmer      removelist="$lobj $libobj ${libobj}T"
8593eed67faSmbalmer    fi
8603eed67faSmbalmer
8613eed67faSmbalmer    $run $rm $removelist
8623eed67faSmbalmer    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8633eed67faSmbalmer
8643eed67faSmbalmer    # On Cygwin there's no "real" PIC flag so we must build both object types
8653eed67faSmbalmer    case $host_os in
8663eed67faSmbalmer    cygwin* | mingw* | pw32* | os2*)
8673eed67faSmbalmer      pic_mode=default
8683eed67faSmbalmer      ;;
8693eed67faSmbalmer    esac
8703eed67faSmbalmer    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
8713eed67faSmbalmer      # non-PIC code in shared libraries is not supported
8723eed67faSmbalmer      pic_mode=default
8733eed67faSmbalmer    fi
8743eed67faSmbalmer
8753eed67faSmbalmer    # Calculate the filename of the output object if compiler does
8763eed67faSmbalmer    # not support -o with -c
8773eed67faSmbalmer    if test "$compiler_c_o" = no; then
8783eed67faSmbalmer      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
8793eed67faSmbalmer      lockfile="$output_obj.lock"
8803eed67faSmbalmer      removelist="$removelist $output_obj $lockfile"
8813eed67faSmbalmer      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8823eed67faSmbalmer    else
8833eed67faSmbalmer      output_obj=
8843eed67faSmbalmer      need_locks=no
8853eed67faSmbalmer      lockfile=
8863eed67faSmbalmer    fi
8873eed67faSmbalmer
8883eed67faSmbalmer    # Lock this critical section if it is needed
8893eed67faSmbalmer    # We use this script file to make the link, it avoids creating a new file
8903eed67faSmbalmer    if test "$need_locks" = yes; then
8913eed67faSmbalmer      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
8923eed67faSmbalmer	$show "Waiting for $lockfile to be removed"
8933eed67faSmbalmer	sleep 2
8943eed67faSmbalmer      done
8953eed67faSmbalmer    elif test "$need_locks" = warn; then
8963eed67faSmbalmer      if test -f "$lockfile"; then
8973eed67faSmbalmer	$echo "\
8983eed67faSmbalmer*** ERROR, $lockfile exists and contains:
8993eed67faSmbalmer`cat $lockfile 2>/dev/null`
9003eed67faSmbalmer
9013eed67faSmbalmerThis indicates that another process is trying to use the same
9023eed67faSmbalmertemporary object file, and libtool could not work around it because
9033eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together.  If you
9043eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better
9053eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better
9063eed67faSmbalmercompiler."
9073eed67faSmbalmer
9083eed67faSmbalmer	$run $rm $removelist
9093eed67faSmbalmer	exit $EXIT_FAILURE
9103eed67faSmbalmer      fi
9113eed67faSmbalmer      $echo "$srcfile" > "$lockfile"
9123eed67faSmbalmer    fi
9133eed67faSmbalmer
9143eed67faSmbalmer    if test -n "$fix_srcfile_path"; then
9153eed67faSmbalmer      eval srcfile=\"$fix_srcfile_path\"
9163eed67faSmbalmer    fi
9173eed67faSmbalmer    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
9183eed67faSmbalmer    case $qsrcfile in
9193eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
9203eed67faSmbalmer      qsrcfile="\"$qsrcfile\"" ;;
9213eed67faSmbalmer    esac
9223eed67faSmbalmer
9233eed67faSmbalmer    $run $rm "$libobj" "${libobj}T"
9243eed67faSmbalmer
9253eed67faSmbalmer    # Create a libtool object file (analogous to a ".la" file),
9263eed67faSmbalmer    # but don't create it if we're doing a dry run.
9273eed67faSmbalmer    test -z "$run" && cat > ${libobj}T <<EOF
9283eed67faSmbalmer# $libobj - a libtool object file
9293eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
9303eed67faSmbalmer#
9313eed67faSmbalmer# Please DO NOT delete this file!
9323eed67faSmbalmer# It is necessary for linking the library.
9333eed67faSmbalmer
9343eed67faSmbalmer# Name of the PIC object.
9353eed67faSmbalmerEOF
9363eed67faSmbalmer
9373eed67faSmbalmer    # Only build a PIC object if we are building libtool libraries.
9383eed67faSmbalmer    if test "$build_libtool_libs" = yes; then
9393eed67faSmbalmer      # Without this assignment, base_compile gets emptied.
9403eed67faSmbalmer      fbsd_hideous_sh_bug=$base_compile
9413eed67faSmbalmer
9423eed67faSmbalmer      if test "$pic_mode" != no; then
9433eed67faSmbalmer	command="$base_compile $qsrcfile $pic_flag"
9443eed67faSmbalmer      else
9453eed67faSmbalmer	# Don't build PIC code
9463eed67faSmbalmer	command="$base_compile $qsrcfile"
9473eed67faSmbalmer      fi
9483eed67faSmbalmer
9493eed67faSmbalmer      if test ! -d "${xdir}$objdir"; then
9503eed67faSmbalmer	$show "$mkdir ${xdir}$objdir"
9513eed67faSmbalmer	$run $mkdir ${xdir}$objdir
9523eed67faSmbalmer	exit_status=$?
9533eed67faSmbalmer	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
9543eed67faSmbalmer	  exit $exit_status
9553eed67faSmbalmer	fi
9563eed67faSmbalmer      fi
9573eed67faSmbalmer
9583eed67faSmbalmer      if test -z "$output_obj"; then
9593eed67faSmbalmer	# Place PIC objects in $objdir
9603eed67faSmbalmer	command="$command -o $lobj"
9613eed67faSmbalmer      fi
9623eed67faSmbalmer
9633eed67faSmbalmer      $run $rm "$lobj" "$output_obj"
9643eed67faSmbalmer
9653eed67faSmbalmer      $show "$command"
9663eed67faSmbalmer      if $run eval $lt_env "$command"; then :
9673eed67faSmbalmer      else
9683eed67faSmbalmer	test -n "$output_obj" && $run $rm $removelist
9693eed67faSmbalmer	exit $EXIT_FAILURE
9703eed67faSmbalmer      fi
9713eed67faSmbalmer
9723eed67faSmbalmer      if test "$need_locks" = warn &&
9733eed67faSmbalmer	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
9743eed67faSmbalmer	$echo "\
9753eed67faSmbalmer*** ERROR, $lockfile contains:
9763eed67faSmbalmer`cat $lockfile 2>/dev/null`
9773eed67faSmbalmer
9783eed67faSmbalmerbut it should contain:
9793eed67faSmbalmer$srcfile
9803eed67faSmbalmer
9813eed67faSmbalmerThis indicates that another process is trying to use the same
9823eed67faSmbalmertemporary object file, and libtool could not work around it because
9833eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together.  If you
9843eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better
9853eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better
9863eed67faSmbalmercompiler."
9873eed67faSmbalmer
9883eed67faSmbalmer	$run $rm $removelist
9893eed67faSmbalmer	exit $EXIT_FAILURE
9903eed67faSmbalmer      fi
9913eed67faSmbalmer
9923eed67faSmbalmer      # Just move the object if needed, then go on to compile the next one
9933eed67faSmbalmer      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
9943eed67faSmbalmer	$show "$mv $output_obj $lobj"
9953eed67faSmbalmer	if $run $mv $output_obj $lobj; then :
9963eed67faSmbalmer	else
9973eed67faSmbalmer	  error=$?
9983eed67faSmbalmer	  $run $rm $removelist
9993eed67faSmbalmer	  exit $error
10003eed67faSmbalmer	fi
10013eed67faSmbalmer      fi
10023eed67faSmbalmer
10033eed67faSmbalmer      # Append the name of the PIC object to the libtool object file.
10043eed67faSmbalmer      test -z "$run" && cat >> ${libobj}T <<EOF
10053eed67faSmbalmerpic_object='$objdir/$objname'
10063eed67faSmbalmer
10073eed67faSmbalmerEOF
10083eed67faSmbalmer
10093eed67faSmbalmer      # Allow error messages only from the first compilation.
10103eed67faSmbalmer      if test "$suppress_opt" = yes; then
10113eed67faSmbalmer        suppress_output=' >/dev/null 2>&1'
10123eed67faSmbalmer      fi
10133eed67faSmbalmer    else
10143eed67faSmbalmer      # No PIC object so indicate it doesn't exist in the libtool
10153eed67faSmbalmer      # object file.
10163eed67faSmbalmer      test -z "$run" && cat >> ${libobj}T <<EOF
10173eed67faSmbalmerpic_object=none
10183eed67faSmbalmer
10193eed67faSmbalmerEOF
10203eed67faSmbalmer    fi
10213eed67faSmbalmer
10223eed67faSmbalmer    # Only build a position-dependent object if we build old libraries.
10233eed67faSmbalmer    if test "$build_old_libs" = yes; then
10243eed67faSmbalmer      if test "$pic_mode" != yes; then
10253eed67faSmbalmer	# Don't build PIC code
10263eed67faSmbalmer	command="$base_compile $qsrcfile"
10273eed67faSmbalmer      else
10283eed67faSmbalmer	command="$base_compile $qsrcfile $pic_flag"
10293eed67faSmbalmer      fi
10303eed67faSmbalmer      if test "$compiler_c_o" = yes; then
10313eed67faSmbalmer	command="$command -o $obj"
10323eed67faSmbalmer      fi
10333eed67faSmbalmer
10343eed67faSmbalmer      # Suppress compiler output if we already did a PIC compilation.
10353eed67faSmbalmer      command="$command$suppress_output"
10363eed67faSmbalmer      $run $rm "$obj" "$output_obj"
10373eed67faSmbalmer      $show "$command"
10383eed67faSmbalmer      if $run eval $lt_env "$command"; then :
10393eed67faSmbalmer      else
10403eed67faSmbalmer	$run $rm $removelist
10413eed67faSmbalmer	exit $EXIT_FAILURE
10423eed67faSmbalmer      fi
10433eed67faSmbalmer
10443eed67faSmbalmer      if test "$need_locks" = warn &&
10453eed67faSmbalmer	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
10463eed67faSmbalmer	$echo "\
10473eed67faSmbalmer*** ERROR, $lockfile contains:
10483eed67faSmbalmer`cat $lockfile 2>/dev/null`
10493eed67faSmbalmer
10503eed67faSmbalmerbut it should contain:
10513eed67faSmbalmer$srcfile
10523eed67faSmbalmer
10533eed67faSmbalmerThis indicates that another process is trying to use the same
10543eed67faSmbalmertemporary object file, and libtool could not work around it because
10553eed67faSmbalmeryour compiler does not support \`-c' and \`-o' together.  If you
10563eed67faSmbalmerrepeat this compilation, it may succeed, by chance, but you had better
10573eed67faSmbalmeravoid parallel builds (make -j) in this platform, or get a better
10583eed67faSmbalmercompiler."
10593eed67faSmbalmer
10603eed67faSmbalmer	$run $rm $removelist
10613eed67faSmbalmer	exit $EXIT_FAILURE
10623eed67faSmbalmer      fi
10633eed67faSmbalmer
10643eed67faSmbalmer      # Just move the object if needed
10653eed67faSmbalmer      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
10663eed67faSmbalmer	$show "$mv $output_obj $obj"
10673eed67faSmbalmer	if $run $mv $output_obj $obj; then :
10683eed67faSmbalmer	else
10693eed67faSmbalmer	  error=$?
10703eed67faSmbalmer	  $run $rm $removelist
10713eed67faSmbalmer	  exit $error
10723eed67faSmbalmer	fi
10733eed67faSmbalmer      fi
10743eed67faSmbalmer
10753eed67faSmbalmer      # Append the name of the non-PIC object the libtool object file.
10763eed67faSmbalmer      # Only append if the libtool object file exists.
10773eed67faSmbalmer      test -z "$run" && cat >> ${libobj}T <<EOF
10783eed67faSmbalmer# Name of the non-PIC object.
10793eed67faSmbalmernon_pic_object='$objname'
10803eed67faSmbalmer
10813eed67faSmbalmerEOF
10823eed67faSmbalmer    else
10833eed67faSmbalmer      # Append the name of the non-PIC object the libtool object file.
10843eed67faSmbalmer      # Only append if the libtool object file exists.
10853eed67faSmbalmer      test -z "$run" && cat >> ${libobj}T <<EOF
10863eed67faSmbalmer# Name of the non-PIC object.
10873eed67faSmbalmernon_pic_object=none
10883eed67faSmbalmer
10893eed67faSmbalmerEOF
10903eed67faSmbalmer    fi
10913eed67faSmbalmer
10923eed67faSmbalmer    $run $mv "${libobj}T" "${libobj}"
10933eed67faSmbalmer
10943eed67faSmbalmer    # Unlock the critical section if it was locked
10953eed67faSmbalmer    if test "$need_locks" != no; then
10963eed67faSmbalmer      $run $rm "$lockfile"
10973eed67faSmbalmer    fi
10983eed67faSmbalmer
10993eed67faSmbalmer    exit $EXIT_SUCCESS
11003eed67faSmbalmer    ;;
11013eed67faSmbalmer
11023eed67faSmbalmer  # libtool link mode
11033eed67faSmbalmer  link | relink)
11043eed67faSmbalmer    modename="$modename: link"
11053eed67faSmbalmer    case $host in
11063eed67faSmbalmer    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
11073eed67faSmbalmer      # It is impossible to link a dll without this setting, and
11083eed67faSmbalmer      # we shouldn't force the makefile maintainer to figure out
11093eed67faSmbalmer      # which system we are compiling for in order to pass an extra
11103eed67faSmbalmer      # flag for every libtool invocation.
11113eed67faSmbalmer      # allow_undefined=no
11123eed67faSmbalmer
11133eed67faSmbalmer      # FIXME: Unfortunately, there are problems with the above when trying
11143eed67faSmbalmer      # to make a dll which has undefined symbols, in which case not
11153eed67faSmbalmer      # even a static library is built.  For now, we need to specify
11163eed67faSmbalmer      # -no-undefined on the libtool link line when we can be certain
11173eed67faSmbalmer      # that all symbols are satisfied, otherwise we get a static library.
11183eed67faSmbalmer      allow_undefined=yes
11193eed67faSmbalmer      ;;
11203eed67faSmbalmer    *)
11213eed67faSmbalmer      allow_undefined=yes
11223eed67faSmbalmer      ;;
11233eed67faSmbalmer    esac
11243eed67faSmbalmer    libtool_args="$nonopt"
11253eed67faSmbalmer    base_compile="$nonopt $@"
11263eed67faSmbalmer    compile_command="$nonopt"
11273eed67faSmbalmer    finalize_command="$nonopt"
11283eed67faSmbalmer
11293eed67faSmbalmer    compile_rpath=
11303eed67faSmbalmer    finalize_rpath=
11313eed67faSmbalmer    compile_shlibpath=
11323eed67faSmbalmer    finalize_shlibpath=
11333eed67faSmbalmer    convenience=
11343eed67faSmbalmer    old_convenience=
11353eed67faSmbalmer    deplibs=
11363eed67faSmbalmer    old_deplibs=
11373eed67faSmbalmer    compiler_flags=
11383eed67faSmbalmer    linker_flags=
11393eed67faSmbalmer    dllsearchpath=
11403eed67faSmbalmer    lib_search_path=`pwd`
11413eed67faSmbalmer    inst_prefix_dir=
11423eed67faSmbalmer
11433eed67faSmbalmer    avoid_version=no
11443eed67faSmbalmer    dlfiles=
11453eed67faSmbalmer    dlprefiles=
11463eed67faSmbalmer    dlself=no
11473eed67faSmbalmer    export_dynamic=no
11483eed67faSmbalmer    export_symbols=
11493eed67faSmbalmer    export_symbols_regex=
11503eed67faSmbalmer    generated=
11513eed67faSmbalmer    libobjs=
11523eed67faSmbalmer    ltlibs=
11533eed67faSmbalmer    module=no
11543eed67faSmbalmer    no_install=no
11553eed67faSmbalmer    objs=
11563eed67faSmbalmer    non_pic_objects=
11573eed67faSmbalmer    notinst_path= # paths that contain not-installed libtool libraries
11583eed67faSmbalmer    precious_files_regex=
11593eed67faSmbalmer    prefer_static_libs=no
11603eed67faSmbalmer    preload=no
11613eed67faSmbalmer    prev=
11623eed67faSmbalmer    prevarg=
11633eed67faSmbalmer    release=
11643eed67faSmbalmer    rpath=
11653eed67faSmbalmer    xrpath=
11663eed67faSmbalmer    perm_rpath=
11673eed67faSmbalmer    temp_rpath=
11683eed67faSmbalmer    thread_safe=no
11693eed67faSmbalmer    vinfo=
11703eed67faSmbalmer    vinfo_number=no
11713eed67faSmbalmer    single_module="${wl}-single_module"
11723eed67faSmbalmer
11733eed67faSmbalmer    func_infer_tag $base_compile
11743eed67faSmbalmer
11753eed67faSmbalmer    # We need to know -static, to get the right output filenames.
11763eed67faSmbalmer    for arg
11773eed67faSmbalmer    do
11783eed67faSmbalmer      case $arg in
11793eed67faSmbalmer      -all-static | -static | -static-libtool-libs)
11803eed67faSmbalmer	case $arg in
11813eed67faSmbalmer	-all-static)
11823eed67faSmbalmer	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
11833eed67faSmbalmer	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
11843eed67faSmbalmer	  fi
11853eed67faSmbalmer	  if test -n "$link_static_flag"; then
11863eed67faSmbalmer	    dlopen_self=$dlopen_self_static
11873eed67faSmbalmer	  fi
11883eed67faSmbalmer	  prefer_static_libs=yes
11893eed67faSmbalmer	  ;;
11903eed67faSmbalmer	-static)
11913eed67faSmbalmer	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11923eed67faSmbalmer	    dlopen_self=$dlopen_self_static
11933eed67faSmbalmer	  fi
11943eed67faSmbalmer	  prefer_static_libs=built
11953eed67faSmbalmer	  ;;
11963eed67faSmbalmer	-static-libtool-libs)
11973eed67faSmbalmer	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11983eed67faSmbalmer	    dlopen_self=$dlopen_self_static
11993eed67faSmbalmer	  fi
12003eed67faSmbalmer	  prefer_static_libs=yes
12013eed67faSmbalmer	  ;;
12023eed67faSmbalmer	esac
12033eed67faSmbalmer	build_libtool_libs=no
12043eed67faSmbalmer	build_old_libs=yes
12053eed67faSmbalmer	break
12063eed67faSmbalmer	;;
12073eed67faSmbalmer      esac
12083eed67faSmbalmer    done
12093eed67faSmbalmer
12103eed67faSmbalmer    # See if our shared archives depend on static archives.
12113eed67faSmbalmer    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
12123eed67faSmbalmer
12133eed67faSmbalmer    # Go through the arguments, transforming them on the way.
12143eed67faSmbalmer    while test "$#" -gt 0; do
12153eed67faSmbalmer      arg="$1"
12163eed67faSmbalmer      shift
12173eed67faSmbalmer      case $arg in
12183eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
12193eed67faSmbalmer	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
12203eed67faSmbalmer	;;
12213eed67faSmbalmer      *) qarg=$arg ;;
12223eed67faSmbalmer      esac
12233eed67faSmbalmer      libtool_args="$libtool_args $qarg"
12243eed67faSmbalmer
12253eed67faSmbalmer      # If the previous option needs an argument, assign it.
12263eed67faSmbalmer      if test -n "$prev"; then
12273eed67faSmbalmer	case $prev in
12283eed67faSmbalmer	output)
12293eed67faSmbalmer	  compile_command="$compile_command @OUTPUT@"
12303eed67faSmbalmer	  finalize_command="$finalize_command @OUTPUT@"
12313eed67faSmbalmer	  ;;
12323eed67faSmbalmer	esac
12333eed67faSmbalmer
12343eed67faSmbalmer	case $prev in
12353eed67faSmbalmer	dlfiles|dlprefiles)
12363eed67faSmbalmer	  if test "$preload" = no; then
12373eed67faSmbalmer	    # Add the symbol object into the linking commands.
12383eed67faSmbalmer	    compile_command="$compile_command @SYMFILE@"
12393eed67faSmbalmer	    finalize_command="$finalize_command @SYMFILE@"
12403eed67faSmbalmer	    preload=yes
12413eed67faSmbalmer	  fi
12423eed67faSmbalmer	  case $arg in
12433eed67faSmbalmer	  *.la | *.lo) ;;  # We handle these cases below.
12443eed67faSmbalmer	  force)
12453eed67faSmbalmer	    if test "$dlself" = no; then
12463eed67faSmbalmer	      dlself=needless
12473eed67faSmbalmer	      export_dynamic=yes
12483eed67faSmbalmer	    fi
12493eed67faSmbalmer	    prev=
12503eed67faSmbalmer	    continue
12513eed67faSmbalmer	    ;;
12523eed67faSmbalmer	  self)
12533eed67faSmbalmer	    if test "$prev" = dlprefiles; then
12543eed67faSmbalmer	      dlself=yes
12553eed67faSmbalmer	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
12563eed67faSmbalmer	      dlself=yes
12573eed67faSmbalmer	    else
12583eed67faSmbalmer	      dlself=needless
12593eed67faSmbalmer	      export_dynamic=yes
12603eed67faSmbalmer	    fi
12613eed67faSmbalmer	    prev=
12623eed67faSmbalmer	    continue
12633eed67faSmbalmer	    ;;
12643eed67faSmbalmer	  *)
12653eed67faSmbalmer	    if test "$prev" = dlfiles; then
12663eed67faSmbalmer	      dlfiles="$dlfiles $arg"
12673eed67faSmbalmer	    else
12683eed67faSmbalmer	      dlprefiles="$dlprefiles $arg"
12693eed67faSmbalmer	    fi
12703eed67faSmbalmer	    prev=
12713eed67faSmbalmer	    continue
12723eed67faSmbalmer	    ;;
12733eed67faSmbalmer	  esac
12743eed67faSmbalmer	  ;;
12753eed67faSmbalmer	expsyms)
12763eed67faSmbalmer	  export_symbols="$arg"
12773eed67faSmbalmer	  if test ! -f "$arg"; then
12783eed67faSmbalmer	    $echo "$modename: symbol file \`$arg' does not exist"
12793eed67faSmbalmer	    exit $EXIT_FAILURE
12803eed67faSmbalmer	  fi
12813eed67faSmbalmer	  prev=
12823eed67faSmbalmer	  continue
12833eed67faSmbalmer	  ;;
12843eed67faSmbalmer	expsyms_regex)
12853eed67faSmbalmer	  export_symbols_regex="$arg"
12863eed67faSmbalmer	  prev=
12873eed67faSmbalmer	  continue
12883eed67faSmbalmer	  ;;
12893eed67faSmbalmer	inst_prefix)
12903eed67faSmbalmer	  inst_prefix_dir="$arg"
12913eed67faSmbalmer	  prev=
12923eed67faSmbalmer	  continue
12933eed67faSmbalmer	  ;;
12943eed67faSmbalmer	precious_regex)
12953eed67faSmbalmer	  precious_files_regex="$arg"
12963eed67faSmbalmer	  prev=
12973eed67faSmbalmer	  continue
12983eed67faSmbalmer	  ;;
12993eed67faSmbalmer	release)
13003eed67faSmbalmer	  release="-$arg"
13013eed67faSmbalmer	  prev=
13023eed67faSmbalmer	  continue
13033eed67faSmbalmer	  ;;
13043eed67faSmbalmer	objectlist)
13053eed67faSmbalmer	  if test -f "$arg"; then
13063eed67faSmbalmer	    save_arg=$arg
13073eed67faSmbalmer	    moreargs=
13083eed67faSmbalmer	    for fil in `cat $save_arg`
13093eed67faSmbalmer	    do
13103eed67faSmbalmer#	      moreargs="$moreargs $fil"
13113eed67faSmbalmer	      arg=$fil
13123eed67faSmbalmer	      # A libtool-controlled object.
13133eed67faSmbalmer
13143eed67faSmbalmer	      # Check to see that this really is a libtool object.
13153eed67faSmbalmer	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
13163eed67faSmbalmer		pic_object=
13173eed67faSmbalmer		non_pic_object=
13183eed67faSmbalmer
13193eed67faSmbalmer		# Read the .lo file
13203eed67faSmbalmer		# If there is no directory component, then add one.
13213eed67faSmbalmer		case $arg in
13223eed67faSmbalmer		*/* | *\\*) . $arg ;;
13233eed67faSmbalmer		*) . ./$arg ;;
13243eed67faSmbalmer		esac
13253eed67faSmbalmer
13263eed67faSmbalmer		if test -z "$pic_object" || \
13273eed67faSmbalmer		   test -z "$non_pic_object" ||
13283eed67faSmbalmer		   test "$pic_object" = none && \
13293eed67faSmbalmer		   test "$non_pic_object" = none; then
13303eed67faSmbalmer		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
13313eed67faSmbalmer		  exit $EXIT_FAILURE
13323eed67faSmbalmer		fi
13333eed67faSmbalmer
13343eed67faSmbalmer		# Extract subdirectory from the argument.
13353eed67faSmbalmer		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13363eed67faSmbalmer		if test "X$xdir" = "X$arg"; then
13373eed67faSmbalmer		  xdir=
13383eed67faSmbalmer		else
13393eed67faSmbalmer		  xdir="$xdir/"
13403eed67faSmbalmer		fi
13413eed67faSmbalmer
13423eed67faSmbalmer		if test "$pic_object" != none; then
13433eed67faSmbalmer		  # Prepend the subdirectory the object is found in.
13443eed67faSmbalmer		  pic_object="$xdir$pic_object"
13453eed67faSmbalmer
13463eed67faSmbalmer		  if test "$prev" = dlfiles; then
13473eed67faSmbalmer		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
13483eed67faSmbalmer		      dlfiles="$dlfiles $pic_object"
13493eed67faSmbalmer		      prev=
13503eed67faSmbalmer		      continue
13513eed67faSmbalmer		    else
13523eed67faSmbalmer		      # If libtool objects are unsupported, then we need to preload.
13533eed67faSmbalmer		      prev=dlprefiles
13543eed67faSmbalmer		    fi
13553eed67faSmbalmer		  fi
13563eed67faSmbalmer
13573eed67faSmbalmer		  # CHECK ME:  I think I busted this.  -Ossama
13583eed67faSmbalmer		  if test "$prev" = dlprefiles; then
13593eed67faSmbalmer		    # Preload the old-style object.
13603eed67faSmbalmer		    dlprefiles="$dlprefiles $pic_object"
13613eed67faSmbalmer		    prev=
13623eed67faSmbalmer		  fi
13633eed67faSmbalmer
13643eed67faSmbalmer		  # A PIC object.
13653eed67faSmbalmer		  libobjs="$libobjs $pic_object"
13663eed67faSmbalmer		  arg="$pic_object"
13673eed67faSmbalmer		fi
13683eed67faSmbalmer
13693eed67faSmbalmer		# Non-PIC object.
13703eed67faSmbalmer		if test "$non_pic_object" != none; then
13713eed67faSmbalmer		  # Prepend the subdirectory the object is found in.
13723eed67faSmbalmer		  non_pic_object="$xdir$non_pic_object"
13733eed67faSmbalmer
13743eed67faSmbalmer		  # A standard non-PIC object
13753eed67faSmbalmer		  non_pic_objects="$non_pic_objects $non_pic_object"
13763eed67faSmbalmer		  if test -z "$pic_object" || test "$pic_object" = none ; then
13773eed67faSmbalmer		    arg="$non_pic_object"
13783eed67faSmbalmer		  fi
13793eed67faSmbalmer		else
13803eed67faSmbalmer		  # If the PIC object exists, use it instead.
13813eed67faSmbalmer		  # $xdir was prepended to $pic_object above.
13823eed67faSmbalmer		  non_pic_object="$pic_object"
13833eed67faSmbalmer		  non_pic_objects="$non_pic_objects $non_pic_object"
13843eed67faSmbalmer		fi
13853eed67faSmbalmer	      else
13863eed67faSmbalmer		# Only an error if not doing a dry-run.
13873eed67faSmbalmer		if test -z "$run"; then
13883eed67faSmbalmer		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
13893eed67faSmbalmer		  exit $EXIT_FAILURE
13903eed67faSmbalmer		else
13913eed67faSmbalmer		  # Dry-run case.
13923eed67faSmbalmer
13933eed67faSmbalmer		  # Extract subdirectory from the argument.
13943eed67faSmbalmer		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13953eed67faSmbalmer		  if test "X$xdir" = "X$arg"; then
13963eed67faSmbalmer		    xdir=
13973eed67faSmbalmer		  else
13983eed67faSmbalmer		    xdir="$xdir/"
13993eed67faSmbalmer		  fi
14003eed67faSmbalmer
14013eed67faSmbalmer		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
14023eed67faSmbalmer		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
14033eed67faSmbalmer		  libobjs="$libobjs $pic_object"
14043eed67faSmbalmer		  non_pic_objects="$non_pic_objects $non_pic_object"
14053eed67faSmbalmer		fi
14063eed67faSmbalmer	      fi
14073eed67faSmbalmer	    done
14083eed67faSmbalmer	  else
14093eed67faSmbalmer	    $echo "$modename: link input file \`$save_arg' does not exist"
14103eed67faSmbalmer	    exit $EXIT_FAILURE
14113eed67faSmbalmer	  fi
14123eed67faSmbalmer	  arg=$save_arg
14133eed67faSmbalmer	  prev=
14143eed67faSmbalmer	  continue
14153eed67faSmbalmer	  ;;
14163eed67faSmbalmer	rpath | xrpath)
14173eed67faSmbalmer	  # We need an absolute path.
14183eed67faSmbalmer	  case $arg in
14193eed67faSmbalmer	  [\\/]* | [A-Za-z]:[\\/]*) ;;
14203eed67faSmbalmer	  *)
14213eed67faSmbalmer	    $echo "$modename: only absolute run-paths are allowed" 1>&2
14223eed67faSmbalmer	    exit $EXIT_FAILURE
14233eed67faSmbalmer	    ;;
14243eed67faSmbalmer	  esac
14253eed67faSmbalmer	  if test "$prev" = rpath; then
14263eed67faSmbalmer	    case "$rpath " in
14273eed67faSmbalmer	    *" $arg "*) ;;
14283eed67faSmbalmer	    *) rpath="$rpath $arg" ;;
14293eed67faSmbalmer	    esac
14303eed67faSmbalmer	  else
14313eed67faSmbalmer	    case "$xrpath " in
14323eed67faSmbalmer	    *" $arg "*) ;;
14333eed67faSmbalmer	    *) xrpath="$xrpath $arg" ;;
14343eed67faSmbalmer	    esac
14353eed67faSmbalmer	  fi
14363eed67faSmbalmer	  prev=
14373eed67faSmbalmer	  continue
14383eed67faSmbalmer	  ;;
14393eed67faSmbalmer	xcompiler)
14403eed67faSmbalmer	  compiler_flags="$compiler_flags $qarg"
14413eed67faSmbalmer	  prev=
14423eed67faSmbalmer	  compile_command="$compile_command $qarg"
14433eed67faSmbalmer	  finalize_command="$finalize_command $qarg"
14443eed67faSmbalmer	  continue
14453eed67faSmbalmer	  ;;
14463eed67faSmbalmer	xlinker)
14473eed67faSmbalmer	  linker_flags="$linker_flags $qarg"
14483eed67faSmbalmer	  compiler_flags="$compiler_flags $wl$qarg"
14493eed67faSmbalmer	  prev=
14503eed67faSmbalmer	  compile_command="$compile_command $wl$qarg"
14513eed67faSmbalmer	  finalize_command="$finalize_command $wl$qarg"
14523eed67faSmbalmer	  continue
14533eed67faSmbalmer	  ;;
14543eed67faSmbalmer	xcclinker)
14553eed67faSmbalmer	  linker_flags="$linker_flags $qarg"
14563eed67faSmbalmer	  compiler_flags="$compiler_flags $qarg"
14573eed67faSmbalmer	  prev=
14583eed67faSmbalmer	  compile_command="$compile_command $qarg"
14593eed67faSmbalmer	  finalize_command="$finalize_command $qarg"
14603eed67faSmbalmer	  continue
14613eed67faSmbalmer	  ;;
14623eed67faSmbalmer	shrext)
14633eed67faSmbalmer  	  shrext_cmds="$arg"
14643eed67faSmbalmer	  prev=
14653eed67faSmbalmer	  continue
14663eed67faSmbalmer	  ;;
14673eed67faSmbalmer	darwin_framework|darwin_framework_skip)
14683eed67faSmbalmer	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
14693eed67faSmbalmer	  compile_command="$compile_command $arg"
14703eed67faSmbalmer	  finalize_command="$finalize_command $arg"
14713eed67faSmbalmer	  prev=
14723eed67faSmbalmer	  continue
14733eed67faSmbalmer	  ;;
14743eed67faSmbalmer	*)
14753eed67faSmbalmer	  eval "$prev=\"\$arg\""
14763eed67faSmbalmer	  prev=
14773eed67faSmbalmer	  continue
14783eed67faSmbalmer	  ;;
14793eed67faSmbalmer	esac
14803eed67faSmbalmer      fi # test -n "$prev"
14813eed67faSmbalmer
14823eed67faSmbalmer      prevarg="$arg"
14833eed67faSmbalmer
14843eed67faSmbalmer      case $arg in
14853eed67faSmbalmer      -all-static)
14863eed67faSmbalmer	if test -n "$link_static_flag"; then
14873eed67faSmbalmer	  compile_command="$compile_command $link_static_flag"
14883eed67faSmbalmer	  finalize_command="$finalize_command $link_static_flag"
14893eed67faSmbalmer	fi
14903eed67faSmbalmer	continue
14913eed67faSmbalmer	;;
14923eed67faSmbalmer
14933eed67faSmbalmer      -allow-undefined)
14943eed67faSmbalmer	# FIXME: remove this flag sometime in the future.
14953eed67faSmbalmer	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
14963eed67faSmbalmer	continue
14973eed67faSmbalmer	;;
14983eed67faSmbalmer
14993eed67faSmbalmer      -avoid-version)
15003eed67faSmbalmer	avoid_version=yes
15013eed67faSmbalmer	continue
15023eed67faSmbalmer	;;
15033eed67faSmbalmer
15043eed67faSmbalmer      -dlopen)
15053eed67faSmbalmer	prev=dlfiles
15063eed67faSmbalmer	continue
15073eed67faSmbalmer	;;
15083eed67faSmbalmer
15093eed67faSmbalmer      -dlpreopen)
15103eed67faSmbalmer	prev=dlprefiles
15113eed67faSmbalmer	continue
15123eed67faSmbalmer	;;
15133eed67faSmbalmer
15143eed67faSmbalmer      -export-dynamic)
15153eed67faSmbalmer	export_dynamic=yes
15163eed67faSmbalmer	continue
15173eed67faSmbalmer	;;
15183eed67faSmbalmer
15193eed67faSmbalmer      -export-symbols | -export-symbols-regex)
15203eed67faSmbalmer	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
15213eed67faSmbalmer	  $echo "$modename: more than one -exported-symbols argument is not allowed"
15223eed67faSmbalmer	  exit $EXIT_FAILURE
15233eed67faSmbalmer	fi
15243eed67faSmbalmer	if test "X$arg" = "X-export-symbols"; then
15253eed67faSmbalmer	  prev=expsyms
15263eed67faSmbalmer	else
15273eed67faSmbalmer	  prev=expsyms_regex
15283eed67faSmbalmer	fi
15293eed67faSmbalmer	continue
15303eed67faSmbalmer	;;
15313eed67faSmbalmer
15323eed67faSmbalmer      -framework|-arch|-isysroot)
15333eed67faSmbalmer	case " $CC " in
15343eed67faSmbalmer	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
15353eed67faSmbalmer		prev=darwin_framework_skip ;;
15363eed67faSmbalmer	  *) compiler_flags="$compiler_flags $arg"
15373eed67faSmbalmer	     prev=darwin_framework ;;
15383eed67faSmbalmer	esac
15393eed67faSmbalmer	compile_command="$compile_command $arg"
15403eed67faSmbalmer	finalize_command="$finalize_command $arg"
15413eed67faSmbalmer	continue
15423eed67faSmbalmer	;;
15433eed67faSmbalmer
15443eed67faSmbalmer      -inst-prefix-dir)
15453eed67faSmbalmer	prev=inst_prefix
15463eed67faSmbalmer	continue
15473eed67faSmbalmer	;;
15483eed67faSmbalmer
15493eed67faSmbalmer      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
15503eed67faSmbalmer      # so, if we see these flags be careful not to treat them like -L
15513eed67faSmbalmer      -L[A-Z][A-Z]*:*)
15523eed67faSmbalmer	case $with_gcc/$host in
15533eed67faSmbalmer	no/*-*-irix* | /*-*-irix*)
15543eed67faSmbalmer	  compile_command="$compile_command $arg"
15553eed67faSmbalmer	  finalize_command="$finalize_command $arg"
15563eed67faSmbalmer	  ;;
15573eed67faSmbalmer	esac
15583eed67faSmbalmer	continue
15593eed67faSmbalmer	;;
15603eed67faSmbalmer
15613eed67faSmbalmer      -L*)
15623eed67faSmbalmer	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
15633eed67faSmbalmer	# We need an absolute path.
15643eed67faSmbalmer	case $dir in
15653eed67faSmbalmer	[\\/]* | [A-Za-z]:[\\/]*) ;;
15663eed67faSmbalmer	*)
15673eed67faSmbalmer	  absdir=`cd "$dir" && pwd`
15683eed67faSmbalmer	  if test -z "$absdir"; then
15693eed67faSmbalmer	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
15703eed67faSmbalmer	    absdir="$dir"
15713eed67faSmbalmer	    notinst_path="$notinst_path $dir"
15723eed67faSmbalmer	  fi
15733eed67faSmbalmer	  dir="$absdir"
15743eed67faSmbalmer	  ;;
15753eed67faSmbalmer	esac
15763eed67faSmbalmer	case "$deplibs " in
15773eed67faSmbalmer	*" -L$dir "*) ;;
15783eed67faSmbalmer	*)
15793eed67faSmbalmer	  deplibs="$deplibs -L$dir"
15803eed67faSmbalmer	  lib_search_path="$lib_search_path $dir"
15813eed67faSmbalmer	  ;;
15823eed67faSmbalmer	esac
15833eed67faSmbalmer	case $host in
15843eed67faSmbalmer	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
15853eed67faSmbalmer	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
15863eed67faSmbalmer	  case :$dllsearchpath: in
15873eed67faSmbalmer	  *":$dir:"*) ;;
15883eed67faSmbalmer	  *) dllsearchpath="$dllsearchpath:$dir";;
15893eed67faSmbalmer	  esac
15903eed67faSmbalmer	  case :$dllsearchpath: in
15913eed67faSmbalmer	  *":$testbindir:"*) ;;
15923eed67faSmbalmer	  *) dllsearchpath="$dllsearchpath:$testbindir";;
15933eed67faSmbalmer	  esac
15943eed67faSmbalmer	  ;;
15953eed67faSmbalmer	esac
15963eed67faSmbalmer	continue
15973eed67faSmbalmer	;;
15983eed67faSmbalmer
15993eed67faSmbalmer      -l*)
16003eed67faSmbalmer	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
16013eed67faSmbalmer	  case $host in
16023eed67faSmbalmer	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
16033eed67faSmbalmer	    # These systems don't actually have a C or math library (as such)
16043eed67faSmbalmer	    continue
16053eed67faSmbalmer	    ;;
16063eed67faSmbalmer	  *-*-os2*)
16073eed67faSmbalmer	    # These systems don't actually have a C library (as such)
16083eed67faSmbalmer	    test "X$arg" = "X-lc" && continue
16093eed67faSmbalmer	    ;;
16103eed67faSmbalmer	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16113eed67faSmbalmer	    # Do not include libc due to us having libc/libc_r.
16123eed67faSmbalmer	    test "X$arg" = "X-lc" && continue
16133eed67faSmbalmer	    ;;
16143eed67faSmbalmer	  *-*-rhapsody* | *-*-darwin1.[012])
16153eed67faSmbalmer	    # Rhapsody C and math libraries are in the System framework
16163eed67faSmbalmer	    deplibs="$deplibs -framework System"
16173eed67faSmbalmer	    continue
16183eed67faSmbalmer	    ;;
16193eed67faSmbalmer	  *-*-sco3.2v5* | *-*-sco5v6*)
16203eed67faSmbalmer	    # Causes problems with __ctype
16213eed67faSmbalmer	    test "X$arg" = "X-lc" && continue
16223eed67faSmbalmer	    ;;
16233eed67faSmbalmer	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
16243eed67faSmbalmer	    # Compiler inserts libc in the correct place for threads to work
16253eed67faSmbalmer	    test "X$arg" = "X-lc" && continue
16263eed67faSmbalmer	    ;;
16273eed67faSmbalmer	  esac
16283eed67faSmbalmer	elif test "X$arg" = "X-lc_r"; then
16293eed67faSmbalmer	 case $host in
16303eed67faSmbalmer	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16313eed67faSmbalmer	   # Do not include libc_r directly, use -pthread flag.
16323eed67faSmbalmer	   continue
16333eed67faSmbalmer	   ;;
16343eed67faSmbalmer	 esac
16353eed67faSmbalmer	fi
16363eed67faSmbalmer	deplibs="$deplibs $arg"
16373eed67faSmbalmer	continue
16383eed67faSmbalmer	;;
16393eed67faSmbalmer
16403eed67faSmbalmer      # Tru64 UNIX uses -model [arg] to determine the layout of C++
16413eed67faSmbalmer      # classes, name mangling, and exception handling.
16423eed67faSmbalmer      -model)
16433eed67faSmbalmer	compile_command="$compile_command $arg"
16443eed67faSmbalmer	compiler_flags="$compiler_flags $arg"
16453eed67faSmbalmer	finalize_command="$finalize_command $arg"
16463eed67faSmbalmer	prev=xcompiler
16473eed67faSmbalmer	continue
16483eed67faSmbalmer	;;
16493eed67faSmbalmer
16503eed67faSmbalmer     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
16513eed67faSmbalmer	compiler_flags="$compiler_flags $arg"
16523eed67faSmbalmer	compile_command="$compile_command $arg"
16533eed67faSmbalmer	finalize_command="$finalize_command $arg"
16543eed67faSmbalmer	deplibs="$deplibs $arg"
16553eed67faSmbalmer	continue
16563eed67faSmbalmer	;;
16573eed67faSmbalmer
16583eed67faSmbalmer      -multi_module)
16593eed67faSmbalmer	single_module="${wl}-multi_module"
16603eed67faSmbalmer	continue
16613eed67faSmbalmer	;;
16623eed67faSmbalmer
16633eed67faSmbalmer      -module)
16643eed67faSmbalmer	module=yes
16653eed67faSmbalmer	continue
16663eed67faSmbalmer	;;
16673eed67faSmbalmer
16683eed67faSmbalmer      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
16693eed67faSmbalmer      # -r[0-9][0-9]* specifies the processor on the SGI compiler
16703eed67faSmbalmer      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
16713eed67faSmbalmer      # +DA*, +DD* enable 64-bit mode on the HP compiler
16723eed67faSmbalmer      # -q* pass through compiler args for the IBM compiler
16733eed67faSmbalmer      # -m* pass through architecture-specific compiler args for GCC
16743eed67faSmbalmer      # -m*, -t[45]*, -txscale* pass through architecture-specific
16753eed67faSmbalmer      # compiler args for GCC
16763eed67faSmbalmer      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
16773eed67faSmbalmer      # -F/path gives path to uninstalled frameworks, gcc on darwin
16783eed67faSmbalmer      # @file GCC response files
16793eed67faSmbalmer      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
16803eed67faSmbalmer      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
16813eed67faSmbalmer
16823eed67faSmbalmer	# Unknown arguments in both finalize_command and compile_command need
16833eed67faSmbalmer	# to be aesthetically quoted because they are evaled later.
16843eed67faSmbalmer	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
16853eed67faSmbalmer	case $arg in
16863eed67faSmbalmer	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
16873eed67faSmbalmer	  arg="\"$arg\""
16883eed67faSmbalmer	  ;;
16893eed67faSmbalmer	esac
16903eed67faSmbalmer        compile_command="$compile_command $arg"
16913eed67faSmbalmer        finalize_command="$finalize_command $arg"
16923eed67faSmbalmer        compiler_flags="$compiler_flags $arg"
16933eed67faSmbalmer        continue
16943eed67faSmbalmer        ;;
16953eed67faSmbalmer
16963eed67faSmbalmer      -shrext)
16973eed67faSmbalmer	prev=shrext
16983eed67faSmbalmer	continue
16993eed67faSmbalmer	;;
17003eed67faSmbalmer
17013eed67faSmbalmer      -no-fast-install)
17023eed67faSmbalmer	fast_install=no
17033eed67faSmbalmer	continue
17043eed67faSmbalmer	;;
17053eed67faSmbalmer
17063eed67faSmbalmer      -no-install)
17073eed67faSmbalmer	case $host in
17083eed67faSmbalmer	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
17093eed67faSmbalmer	  # The PATH hackery in wrapper scripts is required on Windows
17103eed67faSmbalmer	  # and Darwin in order for the loader to find any dlls it needs.
17113eed67faSmbalmer	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
17123eed67faSmbalmer	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
17133eed67faSmbalmer	  fast_install=no
17143eed67faSmbalmer	  ;;
17153eed67faSmbalmer	*) no_install=yes ;;
17163eed67faSmbalmer	esac
17173eed67faSmbalmer	continue
17183eed67faSmbalmer	;;
17193eed67faSmbalmer
17203eed67faSmbalmer      -no-undefined)
17213eed67faSmbalmer	allow_undefined=no
17223eed67faSmbalmer	continue
17233eed67faSmbalmer	;;
17243eed67faSmbalmer
17253eed67faSmbalmer      -objectlist)
17263eed67faSmbalmer	prev=objectlist
17273eed67faSmbalmer	continue
17283eed67faSmbalmer	;;
17293eed67faSmbalmer
17303eed67faSmbalmer      -o) prev=output ;;
17313eed67faSmbalmer
17323eed67faSmbalmer      -precious-files-regex)
17333eed67faSmbalmer	prev=precious_regex
17343eed67faSmbalmer	continue
17353eed67faSmbalmer	;;
17363eed67faSmbalmer
17373eed67faSmbalmer      -release)
17383eed67faSmbalmer	prev=release
17393eed67faSmbalmer	continue
17403eed67faSmbalmer	;;
17413eed67faSmbalmer
17423eed67faSmbalmer      -rpath)
17433eed67faSmbalmer	prev=rpath
17443eed67faSmbalmer	continue
17453eed67faSmbalmer	;;
17463eed67faSmbalmer
17473eed67faSmbalmer      -R)
17483eed67faSmbalmer	prev=xrpath
17493eed67faSmbalmer	continue
17503eed67faSmbalmer	;;
17513eed67faSmbalmer
17523eed67faSmbalmer      -R*)
17533eed67faSmbalmer	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
17543eed67faSmbalmer	# We need an absolute path.
17553eed67faSmbalmer	case $dir in
17563eed67faSmbalmer	[\\/]* | [A-Za-z]:[\\/]*) ;;
17573eed67faSmbalmer	*)
17583eed67faSmbalmer	  $echo "$modename: only absolute run-paths are allowed" 1>&2
17593eed67faSmbalmer	  exit $EXIT_FAILURE
17603eed67faSmbalmer	  ;;
17613eed67faSmbalmer	esac
17623eed67faSmbalmer	case "$xrpath " in
17633eed67faSmbalmer	*" $dir "*) ;;
17643eed67faSmbalmer	*) xrpath="$xrpath $dir" ;;
17653eed67faSmbalmer	esac
17663eed67faSmbalmer	continue
17673eed67faSmbalmer	;;
17683eed67faSmbalmer
17693eed67faSmbalmer      -static | -static-libtool-libs)
17703eed67faSmbalmer	# The effects of -static are defined in a previous loop.
17713eed67faSmbalmer	# We used to do the same as -all-static on platforms that
17723eed67faSmbalmer	# didn't have a PIC flag, but the assumption that the effects
17733eed67faSmbalmer	# would be equivalent was wrong.  It would break on at least
17743eed67faSmbalmer	# Digital Unix and AIX.
17753eed67faSmbalmer	continue
17763eed67faSmbalmer	;;
17773eed67faSmbalmer
17783eed67faSmbalmer      -thread-safe)
17793eed67faSmbalmer	thread_safe=yes
17803eed67faSmbalmer	continue
17813eed67faSmbalmer	;;
17823eed67faSmbalmer
17833eed67faSmbalmer      -version-info)
17843eed67faSmbalmer	prev=vinfo
17853eed67faSmbalmer	continue
17863eed67faSmbalmer	;;
17873eed67faSmbalmer      -version-number)
17883eed67faSmbalmer	prev=vinfo
17893eed67faSmbalmer	vinfo_number=yes
17903eed67faSmbalmer	continue
17913eed67faSmbalmer	;;
17923eed67faSmbalmer
17933eed67faSmbalmer      -Wc,*)
17943eed67faSmbalmer	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
17953eed67faSmbalmer	arg=
17963eed67faSmbalmer	save_ifs="$IFS"; IFS=','
17973eed67faSmbalmer	for flag in $args; do
17983eed67faSmbalmer	  IFS="$save_ifs"
17993eed67faSmbalmer	  case $flag in
18003eed67faSmbalmer	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18013eed67faSmbalmer	    flag="\"$flag\""
18023eed67faSmbalmer	    ;;
18033eed67faSmbalmer	  esac
18043eed67faSmbalmer	  arg="$arg $wl$flag"
18053eed67faSmbalmer	  compiler_flags="$compiler_flags $flag"
18063eed67faSmbalmer	done
18073eed67faSmbalmer	IFS="$save_ifs"
18083eed67faSmbalmer	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18093eed67faSmbalmer	;;
18103eed67faSmbalmer
18113eed67faSmbalmer      -Wl,*)
18123eed67faSmbalmer	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
18133eed67faSmbalmer	arg=
18143eed67faSmbalmer	save_ifs="$IFS"; IFS=','
18153eed67faSmbalmer	for flag in $args; do
18163eed67faSmbalmer	  IFS="$save_ifs"
18173eed67faSmbalmer	  case $flag in
18183eed67faSmbalmer	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18193eed67faSmbalmer	    flag="\"$flag\""
18203eed67faSmbalmer	    ;;
18213eed67faSmbalmer	  esac
18223eed67faSmbalmer	  arg="$arg $wl$flag"
18233eed67faSmbalmer	  compiler_flags="$compiler_flags $wl$flag"
18243eed67faSmbalmer	  linker_flags="$linker_flags $flag"
18253eed67faSmbalmer	done
18263eed67faSmbalmer	IFS="$save_ifs"
18273eed67faSmbalmer	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18283eed67faSmbalmer	;;
18293eed67faSmbalmer
18303eed67faSmbalmer      -Xcompiler)
18313eed67faSmbalmer	prev=xcompiler
18323eed67faSmbalmer	continue
18333eed67faSmbalmer	;;
18343eed67faSmbalmer
18353eed67faSmbalmer      -Xlinker)
18363eed67faSmbalmer	prev=xlinker
18373eed67faSmbalmer	continue
18383eed67faSmbalmer	;;
18393eed67faSmbalmer
18403eed67faSmbalmer      -XCClinker)
18413eed67faSmbalmer	prev=xcclinker
18423eed67faSmbalmer	continue
18433eed67faSmbalmer	;;
18443eed67faSmbalmer
18453eed67faSmbalmer      # Some other compiler flag.
18463eed67faSmbalmer      -* | +*)
18473eed67faSmbalmer	# Unknown arguments in both finalize_command and compile_command need
18483eed67faSmbalmer	# to be aesthetically quoted because they are evaled later.
18493eed67faSmbalmer	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
18503eed67faSmbalmer	case $arg in
18513eed67faSmbalmer	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18523eed67faSmbalmer	  arg="\"$arg\""
18533eed67faSmbalmer	  ;;
18543eed67faSmbalmer	esac
18553eed67faSmbalmer	;;
18563eed67faSmbalmer
18573eed67faSmbalmer      *.$objext)
18583eed67faSmbalmer	# A standard object.
18593eed67faSmbalmer	objs="$objs $arg"
18603eed67faSmbalmer	;;
18613eed67faSmbalmer
18623eed67faSmbalmer      *.lo)
18633eed67faSmbalmer	# A libtool-controlled object.
18643eed67faSmbalmer
18653eed67faSmbalmer	# Check to see that this really is a libtool object.
18663eed67faSmbalmer	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
18673eed67faSmbalmer	  pic_object=
18683eed67faSmbalmer	  non_pic_object=
18693eed67faSmbalmer
18703eed67faSmbalmer	  # Read the .lo file
18713eed67faSmbalmer	  # If there is no directory component, then add one.
18723eed67faSmbalmer	  case $arg in
18733eed67faSmbalmer	  */* | *\\*) . $arg ;;
18743eed67faSmbalmer	  *) . ./$arg ;;
18753eed67faSmbalmer	  esac
18763eed67faSmbalmer
18773eed67faSmbalmer	  if test -z "$pic_object" || \
18783eed67faSmbalmer	     test -z "$non_pic_object" ||
18793eed67faSmbalmer	     test "$pic_object" = none && \
18803eed67faSmbalmer	     test "$non_pic_object" = none; then
18813eed67faSmbalmer	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
18823eed67faSmbalmer	    exit $EXIT_FAILURE
18833eed67faSmbalmer	  fi
18843eed67faSmbalmer
18853eed67faSmbalmer	  # Extract subdirectory from the argument.
18863eed67faSmbalmer	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
18873eed67faSmbalmer	  if test "X$xdir" = "X$arg"; then
18883eed67faSmbalmer	    xdir=
18893eed67faSmbalmer 	  else
18903eed67faSmbalmer	    xdir="$xdir/"
18913eed67faSmbalmer	  fi
18923eed67faSmbalmer
18933eed67faSmbalmer	  if test "$pic_object" != none; then
18943eed67faSmbalmer	    # Prepend the subdirectory the object is found in.
18953eed67faSmbalmer	    pic_object="$xdir$pic_object"
18963eed67faSmbalmer
18973eed67faSmbalmer	    if test "$prev" = dlfiles; then
18983eed67faSmbalmer	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
18993eed67faSmbalmer		dlfiles="$dlfiles $pic_object"
19003eed67faSmbalmer		prev=
19013eed67faSmbalmer		continue
19023eed67faSmbalmer	      else
19033eed67faSmbalmer		# If libtool objects are unsupported, then we need to preload.
19043eed67faSmbalmer		prev=dlprefiles
19053eed67faSmbalmer	      fi
19063eed67faSmbalmer	    fi
19073eed67faSmbalmer
19083eed67faSmbalmer	    # CHECK ME:  I think I busted this.  -Ossama
19093eed67faSmbalmer	    if test "$prev" = dlprefiles; then
19103eed67faSmbalmer	      # Preload the old-style object.
19113eed67faSmbalmer	      dlprefiles="$dlprefiles $pic_object"
19123eed67faSmbalmer	      prev=
19133eed67faSmbalmer	    fi
19143eed67faSmbalmer
19153eed67faSmbalmer	    # A PIC object.
19163eed67faSmbalmer	    libobjs="$libobjs $pic_object"
19173eed67faSmbalmer	    arg="$pic_object"
19183eed67faSmbalmer	  fi
19193eed67faSmbalmer
19203eed67faSmbalmer	  # Non-PIC object.
19213eed67faSmbalmer	  if test "$non_pic_object" != none; then
19223eed67faSmbalmer	    # Prepend the subdirectory the object is found in.
19233eed67faSmbalmer	    non_pic_object="$xdir$non_pic_object"
19243eed67faSmbalmer
19253eed67faSmbalmer	    # A standard non-PIC object
19263eed67faSmbalmer	    non_pic_objects="$non_pic_objects $non_pic_object"
19273eed67faSmbalmer	    if test -z "$pic_object" || test "$pic_object" = none ; then
19283eed67faSmbalmer	      arg="$non_pic_object"
19293eed67faSmbalmer	    fi
19303eed67faSmbalmer	  else
19313eed67faSmbalmer	    # If the PIC object exists, use it instead.
19323eed67faSmbalmer	    # $xdir was prepended to $pic_object above.
19333eed67faSmbalmer	    non_pic_object="$pic_object"
19343eed67faSmbalmer	    non_pic_objects="$non_pic_objects $non_pic_object"
19353eed67faSmbalmer	  fi
19363eed67faSmbalmer	else
19373eed67faSmbalmer	  # Only an error if not doing a dry-run.
19383eed67faSmbalmer	  if test -z "$run"; then
19393eed67faSmbalmer	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
19403eed67faSmbalmer	    exit $EXIT_FAILURE
19413eed67faSmbalmer	  else
19423eed67faSmbalmer	    # Dry-run case.
19433eed67faSmbalmer
19443eed67faSmbalmer	    # Extract subdirectory from the argument.
19453eed67faSmbalmer	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
19463eed67faSmbalmer	    if test "X$xdir" = "X$arg"; then
19473eed67faSmbalmer	      xdir=
19483eed67faSmbalmer	    else
19493eed67faSmbalmer	      xdir="$xdir/"
19503eed67faSmbalmer	    fi
19513eed67faSmbalmer
19523eed67faSmbalmer	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
19533eed67faSmbalmer	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
19543eed67faSmbalmer	    libobjs="$libobjs $pic_object"
19553eed67faSmbalmer	    non_pic_objects="$non_pic_objects $non_pic_object"
19563eed67faSmbalmer	  fi
19573eed67faSmbalmer	fi
19583eed67faSmbalmer	;;
19593eed67faSmbalmer
19603eed67faSmbalmer      *.$libext)
19613eed67faSmbalmer	# An archive.
19623eed67faSmbalmer	deplibs="$deplibs $arg"
19633eed67faSmbalmer	old_deplibs="$old_deplibs $arg"
19643eed67faSmbalmer	continue
19653eed67faSmbalmer	;;
19663eed67faSmbalmer
19673eed67faSmbalmer      *.la)
19683eed67faSmbalmer	# A libtool-controlled library.
19693eed67faSmbalmer
19703eed67faSmbalmer	if test "$prev" = dlfiles; then
19713eed67faSmbalmer	  # This library was specified with -dlopen.
19723eed67faSmbalmer	  dlfiles="$dlfiles $arg"
19733eed67faSmbalmer	  prev=
19743eed67faSmbalmer	elif test "$prev" = dlprefiles; then
19753eed67faSmbalmer	  # The library was specified with -dlpreopen.
19763eed67faSmbalmer	  dlprefiles="$dlprefiles $arg"
19773eed67faSmbalmer	  prev=
19783eed67faSmbalmer	else
19793eed67faSmbalmer	  deplibs="$deplibs $arg"
19803eed67faSmbalmer	fi
19813eed67faSmbalmer	continue
19823eed67faSmbalmer	;;
19833eed67faSmbalmer
19843eed67faSmbalmer      # Some other compiler argument.
19853eed67faSmbalmer      *)
19863eed67faSmbalmer	# Unknown arguments in both finalize_command and compile_command need
19873eed67faSmbalmer	# to be aesthetically quoted because they are evaled later.
19883eed67faSmbalmer	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
19893eed67faSmbalmer	case $arg in
19903eed67faSmbalmer	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
19913eed67faSmbalmer	  arg="\"$arg\""
19923eed67faSmbalmer	  ;;
19933eed67faSmbalmer	esac
19943eed67faSmbalmer	;;
19953eed67faSmbalmer      esac # arg
19963eed67faSmbalmer
19973eed67faSmbalmer      # Now actually substitute the argument into the commands.
19983eed67faSmbalmer      if test -n "$arg"; then
19993eed67faSmbalmer	compile_command="$compile_command $arg"
20003eed67faSmbalmer	finalize_command="$finalize_command $arg"
20013eed67faSmbalmer      fi
20023eed67faSmbalmer    done # argument parsing loop
20033eed67faSmbalmer
20043eed67faSmbalmer    if test -n "$prev"; then
20053eed67faSmbalmer      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
20063eed67faSmbalmer      $echo "$help" 1>&2
20073eed67faSmbalmer      exit $EXIT_FAILURE
20083eed67faSmbalmer    fi
20093eed67faSmbalmer
20103eed67faSmbalmer    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
20113eed67faSmbalmer      eval arg=\"$export_dynamic_flag_spec\"
20123eed67faSmbalmer      compile_command="$compile_command $arg"
20133eed67faSmbalmer      finalize_command="$finalize_command $arg"
20143eed67faSmbalmer    fi
20153eed67faSmbalmer
20163eed67faSmbalmer    oldlibs=
20173eed67faSmbalmer    # calculate the name of the file, without its directory
20183eed67faSmbalmer    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
20193eed67faSmbalmer    libobjs_save="$libobjs"
20203eed67faSmbalmer
20213eed67faSmbalmer    if test -n "$shlibpath_var"; then
20223eed67faSmbalmer      # get the directories listed in $shlibpath_var
20233eed67faSmbalmer      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
20243eed67faSmbalmer    else
20253eed67faSmbalmer      shlib_search_path=
20263eed67faSmbalmer    fi
20273eed67faSmbalmer    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
20283eed67faSmbalmer    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
20293eed67faSmbalmer
20303eed67faSmbalmer    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
20313eed67faSmbalmer    if test "X$output_objdir" = "X$output"; then
20323eed67faSmbalmer      output_objdir="$objdir"
20333eed67faSmbalmer    else
20343eed67faSmbalmer      output_objdir="$output_objdir/$objdir"
20353eed67faSmbalmer    fi
20363eed67faSmbalmer    # Create the object directory.
20373eed67faSmbalmer    if test ! -d "$output_objdir"; then
20383eed67faSmbalmer      $show "$mkdir $output_objdir"
20393eed67faSmbalmer      $run $mkdir $output_objdir
20403eed67faSmbalmer      exit_status=$?
20413eed67faSmbalmer      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
20423eed67faSmbalmer	exit $exit_status
20433eed67faSmbalmer      fi
20443eed67faSmbalmer    fi
20453eed67faSmbalmer
20463eed67faSmbalmer    # Determine the type of output
20473eed67faSmbalmer    case $output in
20483eed67faSmbalmer    "")
20493eed67faSmbalmer      $echo "$modename: you must specify an output file" 1>&2
20503eed67faSmbalmer      $echo "$help" 1>&2
20513eed67faSmbalmer      exit $EXIT_FAILURE
20523eed67faSmbalmer      ;;
20533eed67faSmbalmer    *.$libext) linkmode=oldlib ;;
20543eed67faSmbalmer    *.lo | *.$objext) linkmode=obj ;;
20553eed67faSmbalmer    *.la) linkmode=lib ;;
20563eed67faSmbalmer    *) linkmode=prog ;; # Anything else should be a program.
20573eed67faSmbalmer    esac
20583eed67faSmbalmer
20593eed67faSmbalmer    case $host in
20603eed67faSmbalmer    *cygwin* | *mingw* | *pw32*)
20613eed67faSmbalmer      # don't eliminate duplications in $postdeps and $predeps
20623eed67faSmbalmer      duplicate_compiler_generated_deps=yes
20633eed67faSmbalmer      ;;
20643eed67faSmbalmer    *)
20653eed67faSmbalmer      duplicate_compiler_generated_deps=$duplicate_deps
20663eed67faSmbalmer      ;;
20673eed67faSmbalmer    esac
20683eed67faSmbalmer    specialdeplibs=
20693eed67faSmbalmer
20703eed67faSmbalmer    libs=
20713eed67faSmbalmer    # Find all interdependent deplibs by searching for libraries
20723eed67faSmbalmer    # that are linked more than once (e.g. -la -lb -la)
20733eed67faSmbalmer    for deplib in $deplibs; do
20743eed67faSmbalmer      if test "X$duplicate_deps" = "Xyes" ; then
20753eed67faSmbalmer	case "$libs " in
20763eed67faSmbalmer	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
20773eed67faSmbalmer	esac
20783eed67faSmbalmer      fi
20793eed67faSmbalmer      libs="$libs $deplib"
20803eed67faSmbalmer    done
20813eed67faSmbalmer
20823eed67faSmbalmer    if test "$linkmode" = lib; then
20833eed67faSmbalmer      libs="$predeps $libs $compiler_lib_search_path $postdeps"
20843eed67faSmbalmer
20853eed67faSmbalmer      # Compute libraries that are listed more than once in $predeps
20863eed67faSmbalmer      # $postdeps and mark them as special (i.e., whose duplicates are
20873eed67faSmbalmer      # not to be eliminated).
20883eed67faSmbalmer      pre_post_deps=
20893eed67faSmbalmer      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
20903eed67faSmbalmer	for pre_post_dep in $predeps $postdeps; do
20913eed67faSmbalmer	  case "$pre_post_deps " in
20923eed67faSmbalmer	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
20933eed67faSmbalmer	  esac
20943eed67faSmbalmer	  pre_post_deps="$pre_post_deps $pre_post_dep"
20953eed67faSmbalmer	done
20963eed67faSmbalmer      fi
20973eed67faSmbalmer      pre_post_deps=
20983eed67faSmbalmer    fi
20993eed67faSmbalmer
21003eed67faSmbalmer    deplibs=
21013eed67faSmbalmer    newdependency_libs=
21023eed67faSmbalmer    newlib_search_path=
21033eed67faSmbalmer    need_relink=no # whether we're linking any uninstalled libtool libraries
21043eed67faSmbalmer    notinst_deplibs= # not-installed libtool libraries
21053eed67faSmbalmer    case $linkmode in
21063eed67faSmbalmer    lib)
21073eed67faSmbalmer	passes="conv link"
21083eed67faSmbalmer	for file in $dlfiles $dlprefiles; do
21093eed67faSmbalmer	  case $file in
21103eed67faSmbalmer	  *.la) ;;
21113eed67faSmbalmer	  *)
21123eed67faSmbalmer	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
21133eed67faSmbalmer	    exit $EXIT_FAILURE
21143eed67faSmbalmer	    ;;
21153eed67faSmbalmer	  esac
21163eed67faSmbalmer	done
21173eed67faSmbalmer	;;
21183eed67faSmbalmer    prog)
21193eed67faSmbalmer	compile_deplibs=
21203eed67faSmbalmer	finalize_deplibs=
21213eed67faSmbalmer	alldeplibs=no
21223eed67faSmbalmer	newdlfiles=
21233eed67faSmbalmer	newdlprefiles=
21243eed67faSmbalmer	passes="conv scan dlopen dlpreopen link"
21253eed67faSmbalmer	;;
21263eed67faSmbalmer    *)  passes="conv"
21273eed67faSmbalmer	;;
21283eed67faSmbalmer    esac
21293eed67faSmbalmer    for pass in $passes; do
21303eed67faSmbalmer      # The preopen pass in lib mode reverses $deplibs; put it back here
21313eed67faSmbalmer      # so that -L comes before libs that need it for instance...
21323eed67faSmbalmer      if test "$linkmode,$pass" = "lib,link"; then
21333eed67faSmbalmer	## FIXME: Find the place where the list is rebuilt in the wrong
21343eed67faSmbalmer	##        order, and fix it there properly
21353eed67faSmbalmer	tmp_deplibs=
21363eed67faSmbalmer	for deplib in $deplibs; do
21373eed67faSmbalmer	  tmp_deplibs="$deplib $tmp_deplibs"
21383eed67faSmbalmer	done
21393eed67faSmbalmer	deplibs="$tmp_deplibs"
21403eed67faSmbalmer      fi
21413eed67faSmbalmer      if test "$linkmode,$pass" = "lib,link" ||
21423eed67faSmbalmer	 test "$linkmode,$pass" = "prog,scan"; then
21433eed67faSmbalmer	libs="$deplibs"
21443eed67faSmbalmer	deplibs=
21453eed67faSmbalmer      fi
21463eed67faSmbalmer      if test "$linkmode" = prog; then
21473eed67faSmbalmer	case $pass in
21483eed67faSmbalmer	dlopen) libs="$dlfiles" ;;
21493eed67faSmbalmer	dlpreopen) libs="$dlprefiles" ;;
21503eed67faSmbalmer	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
21513eed67faSmbalmer	esac
21523eed67faSmbalmer      fi
21533eed67faSmbalmer      if test "$pass" = dlopen; then
21543eed67faSmbalmer	# Collect dlpreopened libraries
21553eed67faSmbalmer	save_deplibs="$deplibs"
21563eed67faSmbalmer	deplibs=
21573eed67faSmbalmer      fi
21583eed67faSmbalmer      for deplib in $libs; do
21593eed67faSmbalmer	lib=
21603eed67faSmbalmer	found=no
21613eed67faSmbalmer	case $deplib in
21623eed67faSmbalmer	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
21633eed67faSmbalmer	  if test "$linkmode,$pass" = "prog,link"; then
21643eed67faSmbalmer	    compile_deplibs="$deplib $compile_deplibs"
21653eed67faSmbalmer	    finalize_deplibs="$deplib $finalize_deplibs"
21663eed67faSmbalmer	  else
21673eed67faSmbalmer	    compiler_flags="$compiler_flags $deplib"
21683eed67faSmbalmer	    test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
21693eed67faSmbalmer	  fi
21703eed67faSmbalmer	  continue
21713eed67faSmbalmer	  ;;
21723eed67faSmbalmer	-l*)
21733eed67faSmbalmer	  if test "$linkmode" != lib && test "$linkmode" != prog; then
21743eed67faSmbalmer	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
21753eed67faSmbalmer	    continue
21763eed67faSmbalmer	  fi
21773eed67faSmbalmer	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
21783eed67faSmbalmer	  if test "$linkmode" = lib; then
21793eed67faSmbalmer	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
21803eed67faSmbalmer	  else
21813eed67faSmbalmer	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
21823eed67faSmbalmer	  fi
21833eed67faSmbalmer	  for searchdir in $searchdirs; do
21843eed67faSmbalmer	    for search_ext in .la $std_shrext .so .a; do
21853eed67faSmbalmer	      # Search the libtool library
21863eed67faSmbalmer	      lib="$searchdir/lib${name}${search_ext}"
21873eed67faSmbalmer	      if test -f "$lib"; then
21883eed67faSmbalmer		if test "$search_ext" = ".la"; then
21893eed67faSmbalmer		  found=yes
21903eed67faSmbalmer		else
21913eed67faSmbalmer		  found=no
21923eed67faSmbalmer		fi
21933eed67faSmbalmer		break 2
21943eed67faSmbalmer	      fi
21953eed67faSmbalmer	    done
21963eed67faSmbalmer	  done
21973eed67faSmbalmer	  if test "$found" != yes; then
21983eed67faSmbalmer	    # deplib doesn't seem to be a libtool library
21993eed67faSmbalmer	    if test "$linkmode,$pass" = "prog,link"; then
22003eed67faSmbalmer	      compile_deplibs="$deplib $compile_deplibs"
22013eed67faSmbalmer	      finalize_deplibs="$deplib $finalize_deplibs"
22023eed67faSmbalmer	    else
22033eed67faSmbalmer	      deplibs="$deplib $deplibs"
22043eed67faSmbalmer	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
22053eed67faSmbalmer	    fi
22063eed67faSmbalmer	    continue
22073eed67faSmbalmer	  else # deplib is a libtool library
22083eed67faSmbalmer	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
22093eed67faSmbalmer	    # We need to do some special things here, and not later.
22103eed67faSmbalmer	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
22113eed67faSmbalmer	      case " $predeps $postdeps " in
22123eed67faSmbalmer	      *" $deplib "*)
22133eed67faSmbalmer		if (${SED} -e '2q' $lib |
22143eed67faSmbalmer                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
22153eed67faSmbalmer		  library_names=
22163eed67faSmbalmer		  old_library=
22173eed67faSmbalmer		  case $lib in
22183eed67faSmbalmer		  */* | *\\*) . $lib ;;
22193eed67faSmbalmer		  *) . ./$lib ;;
22203eed67faSmbalmer		  esac
22213eed67faSmbalmer		  for l in $old_library $library_names; do
22223eed67faSmbalmer		    ll="$l"
22233eed67faSmbalmer		  done
22243eed67faSmbalmer		  if test "X$ll" = "X$old_library" ; then # only static version available
22253eed67faSmbalmer		    found=no
22263eed67faSmbalmer		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
22273eed67faSmbalmer		    test "X$ladir" = "X$lib" && ladir="."
22283eed67faSmbalmer		    lib=$ladir/$old_library
22293eed67faSmbalmer		    if test "$linkmode,$pass" = "prog,link"; then
22303eed67faSmbalmer		      compile_deplibs="$deplib $compile_deplibs"
22313eed67faSmbalmer		      finalize_deplibs="$deplib $finalize_deplibs"
22323eed67faSmbalmer		    else
22333eed67faSmbalmer		      deplibs="$deplib $deplibs"
22343eed67faSmbalmer		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
22353eed67faSmbalmer		    fi
22363eed67faSmbalmer		    continue
22373eed67faSmbalmer		  fi
22383eed67faSmbalmer		fi
22393eed67faSmbalmer	        ;;
22403eed67faSmbalmer	      *) ;;
22413eed67faSmbalmer	      esac
22423eed67faSmbalmer	    fi
22433eed67faSmbalmer	  fi
22443eed67faSmbalmer	  ;; # -l
22453eed67faSmbalmer	-L*)
22463eed67faSmbalmer	  case $linkmode in
22473eed67faSmbalmer	  lib)
22483eed67faSmbalmer	    deplibs="$deplib $deplibs"
22493eed67faSmbalmer	    test "$pass" = conv && continue
22503eed67faSmbalmer	    newdependency_libs="$deplib $newdependency_libs"
22513eed67faSmbalmer	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22523eed67faSmbalmer	    ;;
22533eed67faSmbalmer	  prog)
22543eed67faSmbalmer	    if test "$pass" = conv; then
22553eed67faSmbalmer	      deplibs="$deplib $deplibs"
22563eed67faSmbalmer	      continue
22573eed67faSmbalmer	    fi
22583eed67faSmbalmer	    if test "$pass" = scan; then
22593eed67faSmbalmer	      deplibs="$deplib $deplibs"
22603eed67faSmbalmer	    else
22613eed67faSmbalmer	      compile_deplibs="$deplib $compile_deplibs"
22623eed67faSmbalmer	      finalize_deplibs="$deplib $finalize_deplibs"
22633eed67faSmbalmer	    fi
22643eed67faSmbalmer	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22653eed67faSmbalmer	    ;;
22663eed67faSmbalmer	  *)
22673eed67faSmbalmer	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
22683eed67faSmbalmer	    ;;
22693eed67faSmbalmer	  esac # linkmode
22703eed67faSmbalmer	  continue
22713eed67faSmbalmer	  ;; # -L
22723eed67faSmbalmer	-R*)
22733eed67faSmbalmer	  if test "$pass" = link; then
22743eed67faSmbalmer	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
22753eed67faSmbalmer	    # Make sure the xrpath contains only unique directories.
22763eed67faSmbalmer	    case "$xrpath " in
22773eed67faSmbalmer	    *" $dir "*) ;;
22783eed67faSmbalmer	    *) xrpath="$xrpath $dir" ;;
22793eed67faSmbalmer	    esac
22803eed67faSmbalmer	  fi
22813eed67faSmbalmer	  deplibs="$deplib $deplibs"
22823eed67faSmbalmer	  continue
22833eed67faSmbalmer	  ;;
22843eed67faSmbalmer	*.la) lib="$deplib" ;;
22853eed67faSmbalmer	*.$libext)
22863eed67faSmbalmer	  if test "$pass" = conv; then
22873eed67faSmbalmer	    deplibs="$deplib $deplibs"
22883eed67faSmbalmer	    continue
22893eed67faSmbalmer	  fi
22903eed67faSmbalmer	  case $linkmode in
22913eed67faSmbalmer	  lib)
22923eed67faSmbalmer	    valid_a_lib=no
22933eed67faSmbalmer	    case $deplibs_check_method in
22943eed67faSmbalmer	      match_pattern*)
22953eed67faSmbalmer		set dummy $deplibs_check_method
22963eed67faSmbalmer	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
22973eed67faSmbalmer		if eval $echo \"$deplib\" 2>/dev/null \
22983eed67faSmbalmer		    | $SED 10q \
22993eed67faSmbalmer		    | $EGREP "$match_pattern_regex" > /dev/null; then
23003eed67faSmbalmer		  valid_a_lib=yes
23013eed67faSmbalmer		fi
23023eed67faSmbalmer		;;
23033eed67faSmbalmer	      pass_all)
23043eed67faSmbalmer		valid_a_lib=yes
23053eed67faSmbalmer		;;
23063eed67faSmbalmer            esac
23073eed67faSmbalmer	    if test "$valid_a_lib" != yes; then
23083eed67faSmbalmer	      $echo
23093eed67faSmbalmer	      $echo "*** Warning: Trying to link with static lib archive $deplib."
23103eed67faSmbalmer	      $echo "*** I have the capability to make that library automatically link in when"
23113eed67faSmbalmer	      $echo "*** you link to this library.  But I can only do this if you have a"
23123eed67faSmbalmer	      $echo "*** shared version of the library, which you do not appear to have"
23133eed67faSmbalmer	      $echo "*** because the file extensions .$libext of this argument makes me believe"
23143eed67faSmbalmer	      $echo "*** that it is just a static archive that I should not used here."
23153eed67faSmbalmer	    else
23163eed67faSmbalmer	      $echo
23173eed67faSmbalmer	      $echo "*** Warning: Linking the shared library $output against the"
23183eed67faSmbalmer	      $echo "*** static library $deplib is not portable!"
23193eed67faSmbalmer	      deplibs="$deplib $deplibs"
23203eed67faSmbalmer	    fi
23213eed67faSmbalmer	    continue
23223eed67faSmbalmer	    ;;
23233eed67faSmbalmer	  prog)
23243eed67faSmbalmer	    if test "$pass" != link; then
23253eed67faSmbalmer	      deplibs="$deplib $deplibs"
23263eed67faSmbalmer	    else
23273eed67faSmbalmer	      compile_deplibs="$deplib $compile_deplibs"
23283eed67faSmbalmer	      finalize_deplibs="$deplib $finalize_deplibs"
23293eed67faSmbalmer	    fi
23303eed67faSmbalmer	    continue
23313eed67faSmbalmer	    ;;
23323eed67faSmbalmer	  esac # linkmode
23333eed67faSmbalmer	  ;; # *.$libext
23343eed67faSmbalmer	*.lo | *.$objext)
23353eed67faSmbalmer	  if test "$pass" = conv; then
23363eed67faSmbalmer	    deplibs="$deplib $deplibs"
23373eed67faSmbalmer	  elif test "$linkmode" = prog; then
23383eed67faSmbalmer	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
23393eed67faSmbalmer	      # If there is no dlopen support or we're linking statically,
23403eed67faSmbalmer	      # we need to preload.
23413eed67faSmbalmer	      newdlprefiles="$newdlprefiles $deplib"
23423eed67faSmbalmer	      compile_deplibs="$deplib $compile_deplibs"
23433eed67faSmbalmer	      finalize_deplibs="$deplib $finalize_deplibs"
23443eed67faSmbalmer	    else
23453eed67faSmbalmer	      newdlfiles="$newdlfiles $deplib"
23463eed67faSmbalmer	    fi
23473eed67faSmbalmer	  fi
23483eed67faSmbalmer	  continue
23493eed67faSmbalmer	  ;;
23503eed67faSmbalmer	%DEPLIBS%)
23513eed67faSmbalmer	  alldeplibs=yes
23523eed67faSmbalmer	  continue
23533eed67faSmbalmer	  ;;
23543eed67faSmbalmer	esac # case $deplib
23553eed67faSmbalmer	if test "$found" = yes || test -f "$lib"; then :
23563eed67faSmbalmer	else
23573eed67faSmbalmer	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
23583eed67faSmbalmer	  exit $EXIT_FAILURE
23593eed67faSmbalmer	fi
23603eed67faSmbalmer
23613eed67faSmbalmer	# Check to see that this really is a libtool archive.
23623eed67faSmbalmer	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
23633eed67faSmbalmer	else
23643eed67faSmbalmer	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
23653eed67faSmbalmer	  exit $EXIT_FAILURE
23663eed67faSmbalmer	fi
23673eed67faSmbalmer
23683eed67faSmbalmer	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
23693eed67faSmbalmer	test "X$ladir" = "X$lib" && ladir="."
23703eed67faSmbalmer
23713eed67faSmbalmer	dlname=
23723eed67faSmbalmer	dlopen=
23733eed67faSmbalmer	dlpreopen=
23743eed67faSmbalmer	libdir=
23753eed67faSmbalmer	library_names=
23763eed67faSmbalmer	old_library=
23773eed67faSmbalmer	# If the library was installed with an old release of libtool,
23783eed67faSmbalmer	# it will not redefine variables installed, or shouldnotlink
23793eed67faSmbalmer	installed=yes
23803eed67faSmbalmer	shouldnotlink=no
23813eed67faSmbalmer	avoidtemprpath=
23823eed67faSmbalmer
23833eed67faSmbalmer
23843eed67faSmbalmer	# Read the .la file
23853eed67faSmbalmer	case $lib in
23863eed67faSmbalmer	*/* | *\\*) . $lib ;;
23873eed67faSmbalmer	*) . ./$lib ;;
23883eed67faSmbalmer	esac
23893eed67faSmbalmer
23903eed67faSmbalmer	if test "$linkmode,$pass" = "lib,link" ||
23913eed67faSmbalmer	   test "$linkmode,$pass" = "prog,scan" ||
23923eed67faSmbalmer	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
23933eed67faSmbalmer	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
23943eed67faSmbalmer	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
23953eed67faSmbalmer	fi
23963eed67faSmbalmer
23973eed67faSmbalmer	if test "$pass" = conv; then
23983eed67faSmbalmer	  # Only check for convenience libraries
23993eed67faSmbalmer	  deplibs="$lib $deplibs"
24003eed67faSmbalmer	  if test -z "$libdir"; then
24013eed67faSmbalmer	    if test -z "$old_library"; then
24023eed67faSmbalmer	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
24033eed67faSmbalmer	      exit $EXIT_FAILURE
24043eed67faSmbalmer	    fi
24053eed67faSmbalmer	    # It is a libtool convenience library, so add in its objects.
24063eed67faSmbalmer	    convenience="$convenience $ladir/$objdir/$old_library"
24073eed67faSmbalmer	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
24083eed67faSmbalmer	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
24093eed67faSmbalmer	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
24103eed67faSmbalmer	    exit $EXIT_FAILURE
24113eed67faSmbalmer	  fi
24123eed67faSmbalmer	  tmp_libs=
24133eed67faSmbalmer	  for deplib in $dependency_libs; do
24143eed67faSmbalmer	    deplibs="$deplib $deplibs"
24153eed67faSmbalmer	    if test "X$duplicate_deps" = "Xyes" ; then
24163eed67faSmbalmer	      case "$tmp_libs " in
24173eed67faSmbalmer	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
24183eed67faSmbalmer	      esac
24193eed67faSmbalmer	    fi
24203eed67faSmbalmer	    tmp_libs="$tmp_libs $deplib"
24213eed67faSmbalmer	  done
24223eed67faSmbalmer	  continue
24233eed67faSmbalmer	fi # $pass = conv
24243eed67faSmbalmer
24253eed67faSmbalmer
24263eed67faSmbalmer	# Get the name of the library we link against.
24273eed67faSmbalmer	linklib=
24283eed67faSmbalmer	for l in $old_library $library_names; do
24293eed67faSmbalmer	  linklib="$l"
24303eed67faSmbalmer	done
24313eed67faSmbalmer	if test -z "$linklib"; then
24323eed67faSmbalmer	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
24333eed67faSmbalmer	  exit $EXIT_FAILURE
24343eed67faSmbalmer	fi
24353eed67faSmbalmer
24363eed67faSmbalmer	# This library was specified with -dlopen.
24373eed67faSmbalmer	if test "$pass" = dlopen; then
24383eed67faSmbalmer	  if test -z "$libdir"; then
24393eed67faSmbalmer	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
24403eed67faSmbalmer	    exit $EXIT_FAILURE
24413eed67faSmbalmer	  fi
24423eed67faSmbalmer	  if test -z "$dlname" ||
24433eed67faSmbalmer	     test "$dlopen_support" != yes ||
24443eed67faSmbalmer	     test "$build_libtool_libs" = no; then
24453eed67faSmbalmer	    # If there is no dlname, no dlopen support or we're linking
24463eed67faSmbalmer	    # statically, we need to preload.  We also need to preload any
24473eed67faSmbalmer	    # dependent libraries so libltdl's deplib preloader doesn't
24483eed67faSmbalmer	    # bomb out in the load deplibs phase.
24493eed67faSmbalmer	    dlprefiles="$dlprefiles $lib $dependency_libs"
24503eed67faSmbalmer	  else
24513eed67faSmbalmer	    newdlfiles="$newdlfiles $lib"
24523eed67faSmbalmer	  fi
24533eed67faSmbalmer	  continue
24543eed67faSmbalmer	fi # $pass = dlopen
24553eed67faSmbalmer
24563eed67faSmbalmer	# We need an absolute path.
24573eed67faSmbalmer	case $ladir in
24583eed67faSmbalmer	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
24593eed67faSmbalmer	*)
24603eed67faSmbalmer	  abs_ladir=`cd "$ladir" && pwd`
24613eed67faSmbalmer	  if test -z "$abs_ladir"; then
24623eed67faSmbalmer	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
24633eed67faSmbalmer	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
24643eed67faSmbalmer	    abs_ladir="$ladir"
24653eed67faSmbalmer	  fi
24663eed67faSmbalmer	  ;;
24673eed67faSmbalmer	esac
24683eed67faSmbalmer	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
24693eed67faSmbalmer
24703eed67faSmbalmer	# Find the relevant object directory and library name.
24713eed67faSmbalmer	if test "X$installed" = Xyes; then
24723eed67faSmbalmer	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24733eed67faSmbalmer	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
24743eed67faSmbalmer	    dir="$ladir"
24753eed67faSmbalmer	    absdir="$abs_ladir"
24763eed67faSmbalmer	    libdir="$abs_ladir"
24773eed67faSmbalmer	  else
24783eed67faSmbalmer	    dir="$libdir"
24793eed67faSmbalmer	    absdir="$libdir"
24803eed67faSmbalmer	  fi
24813eed67faSmbalmer	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
24823eed67faSmbalmer	else
24833eed67faSmbalmer	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24843eed67faSmbalmer	    dir="$ladir"
24853eed67faSmbalmer	    absdir="$abs_ladir"
24863eed67faSmbalmer	    # Remove this search path later
24873eed67faSmbalmer	    notinst_path="$notinst_path $abs_ladir"
24883eed67faSmbalmer	  else
24893eed67faSmbalmer	    dir="$ladir/$objdir"
24903eed67faSmbalmer	    absdir="$abs_ladir/$objdir"
24913eed67faSmbalmer	    # Remove this search path later
24923eed67faSmbalmer	    notinst_path="$notinst_path $abs_ladir"
24933eed67faSmbalmer	  fi
24943eed67faSmbalmer	fi # $installed = yes
24953eed67faSmbalmer	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
24963eed67faSmbalmer
24973eed67faSmbalmer	# This library was specified with -dlpreopen.
24983eed67faSmbalmer	if test "$pass" = dlpreopen; then
24993eed67faSmbalmer	  if test -z "$libdir"; then
25003eed67faSmbalmer	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
25013eed67faSmbalmer	    exit $EXIT_FAILURE
25023eed67faSmbalmer	  fi
25033eed67faSmbalmer	  # Prefer using a static library (so that no silly _DYNAMIC symbols
25043eed67faSmbalmer	  # are required to link).
25053eed67faSmbalmer	  if test -n "$old_library"; then
25063eed67faSmbalmer	    newdlprefiles="$newdlprefiles $dir/$old_library"
25073eed67faSmbalmer	  # Otherwise, use the dlname, so that lt_dlopen finds it.
25083eed67faSmbalmer	  elif test -n "$dlname"; then
25093eed67faSmbalmer	    newdlprefiles="$newdlprefiles $dir/$dlname"
25103eed67faSmbalmer	  else
25113eed67faSmbalmer	    newdlprefiles="$newdlprefiles $dir/$linklib"
25123eed67faSmbalmer	  fi
25133eed67faSmbalmer	fi # $pass = dlpreopen
25143eed67faSmbalmer
25153eed67faSmbalmer	if test -z "$libdir"; then
25163eed67faSmbalmer	  # Link the convenience library
25173eed67faSmbalmer	  if test "$linkmode" = lib; then
25183eed67faSmbalmer	    deplibs="$dir/$old_library $deplibs"
25193eed67faSmbalmer	  elif test "$linkmode,$pass" = "prog,link"; then
25203eed67faSmbalmer	    compile_deplibs="$dir/$old_library $compile_deplibs"
25213eed67faSmbalmer	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
25223eed67faSmbalmer	  else
25233eed67faSmbalmer	    deplibs="$lib $deplibs" # used for prog,scan pass
25243eed67faSmbalmer	  fi
25253eed67faSmbalmer	  continue
25263eed67faSmbalmer	fi
25273eed67faSmbalmer
25283eed67faSmbalmer
25293eed67faSmbalmer	if test "$linkmode" = prog && test "$pass" != link; then
25303eed67faSmbalmer	  newlib_search_path="$newlib_search_path $ladir"
25313eed67faSmbalmer	  deplibs="$lib $deplibs"
25323eed67faSmbalmer
25333eed67faSmbalmer	  linkalldeplibs=no
25343eed67faSmbalmer	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
25353eed67faSmbalmer	     test "$build_libtool_libs" = no; then
25363eed67faSmbalmer	    linkalldeplibs=yes
25373eed67faSmbalmer	  fi
25383eed67faSmbalmer
25393eed67faSmbalmer	  tmp_libs=
25403eed67faSmbalmer	  for deplib in $dependency_libs; do
25413eed67faSmbalmer	    case $deplib in
25423eed67faSmbalmer	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
25433eed67faSmbalmer	    esac
25443eed67faSmbalmer	    # Need to link against all dependency_libs?
25453eed67faSmbalmer	    if test "$linkalldeplibs" = yes; then
25463eed67faSmbalmer	      deplibs="$deplib $deplibs"
25473eed67faSmbalmer	    else
25483eed67faSmbalmer	      # Need to hardcode shared library paths
25493eed67faSmbalmer	      # or/and link against static libraries
25503eed67faSmbalmer	      newdependency_libs="$deplib $newdependency_libs"
25513eed67faSmbalmer	    fi
25523eed67faSmbalmer	    if test "X$duplicate_deps" = "Xyes" ; then
25533eed67faSmbalmer	      case "$tmp_libs " in
25543eed67faSmbalmer	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
25553eed67faSmbalmer	      esac
25563eed67faSmbalmer	    fi
25573eed67faSmbalmer	    tmp_libs="$tmp_libs $deplib"
25583eed67faSmbalmer	  done # for deplib
25593eed67faSmbalmer	  continue
25603eed67faSmbalmer	fi # $linkmode = prog...
25613eed67faSmbalmer
25623eed67faSmbalmer	if test "$linkmode,$pass" = "prog,link"; then
25633eed67faSmbalmer	  if test -n "$library_names" &&
25643eed67faSmbalmer	     { { test "$prefer_static_libs" = no ||
25653eed67faSmbalmer		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
25663eed67faSmbalmer	       test -z "$old_library"; }; then
25673eed67faSmbalmer	    # We need to hardcode the library path
25683eed67faSmbalmer	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
25693eed67faSmbalmer	      # Make sure the rpath contains only unique directories.
25703eed67faSmbalmer	      case "$temp_rpath " in
25713eed67faSmbalmer	      *" $dir "*) ;;
25723eed67faSmbalmer	      *" $absdir "*) ;;
25733eed67faSmbalmer	      *) temp_rpath="$temp_rpath $absdir" ;;
25743eed67faSmbalmer	      esac
25753eed67faSmbalmer	    fi
25763eed67faSmbalmer
25773eed67faSmbalmer	    # Hardcode the library path.
25783eed67faSmbalmer	    # Skip directories that are in the system default run-time
25793eed67faSmbalmer	    # search path.
25803eed67faSmbalmer	    case " $sys_lib_dlsearch_path " in
25813eed67faSmbalmer	    *" $absdir "*) ;;
25823eed67faSmbalmer	    *)
25833eed67faSmbalmer	      case "$compile_rpath " in
25843eed67faSmbalmer	      *" $absdir "*) ;;
25853eed67faSmbalmer	      *) compile_rpath="$compile_rpath $absdir"
25863eed67faSmbalmer	      esac
25873eed67faSmbalmer	      ;;
25883eed67faSmbalmer	    esac
25893eed67faSmbalmer	    case " $sys_lib_dlsearch_path " in
25903eed67faSmbalmer	    *" $libdir "*) ;;
25913eed67faSmbalmer	    *)
25923eed67faSmbalmer	      case "$finalize_rpath " in
25933eed67faSmbalmer	      *" $libdir "*) ;;
25943eed67faSmbalmer	      *) finalize_rpath="$finalize_rpath $libdir"
25953eed67faSmbalmer	      esac
25963eed67faSmbalmer	      ;;
25973eed67faSmbalmer	    esac
25983eed67faSmbalmer	  fi # $linkmode,$pass = prog,link...
25993eed67faSmbalmer
26003eed67faSmbalmer	  if test "$alldeplibs" = yes &&
26013eed67faSmbalmer	     { test "$deplibs_check_method" = pass_all ||
26023eed67faSmbalmer	       { test "$build_libtool_libs" = yes &&
26033eed67faSmbalmer		 test -n "$library_names"; }; }; then
26043eed67faSmbalmer	    # We only need to search for static libraries
26053eed67faSmbalmer	    continue
26063eed67faSmbalmer	  fi
26073eed67faSmbalmer	fi
26083eed67faSmbalmer
26093eed67faSmbalmer	link_static=no # Whether the deplib will be linked statically
26103eed67faSmbalmer	use_static_libs=$prefer_static_libs
26113eed67faSmbalmer	if test "$use_static_libs" = built && test "$installed" = yes ; then
26123eed67faSmbalmer	  use_static_libs=no
26133eed67faSmbalmer	fi
26143eed67faSmbalmer	if test -n "$library_names" &&
26153eed67faSmbalmer	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
26163eed67faSmbalmer	  if test "$installed" = no; then
26173eed67faSmbalmer	    notinst_deplibs="$notinst_deplibs $lib"
26183eed67faSmbalmer	    test -z "$DESTDIR" && need_relink=yes
26193eed67faSmbalmer	  fi
26203eed67faSmbalmer	  # This is a shared library
26213eed67faSmbalmer
26223eed67faSmbalmer	  # Warn about portability, can't link against -module's on
26233eed67faSmbalmer	  # some systems (darwin)
26243eed67faSmbalmer	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
26253eed67faSmbalmer	    $echo
26263eed67faSmbalmer	    if test "$linkmode" = prog; then
26273eed67faSmbalmer	      $echo "*** Warning: Linking the executable $output against the loadable module"
26283eed67faSmbalmer	    else
26293eed67faSmbalmer	      $echo "*** Warning: Linking the shared library $output against the loadable module"
26303eed67faSmbalmer	    fi
26313eed67faSmbalmer	    $echo "*** $linklib is not portable!"
26323eed67faSmbalmer	  fi
26333eed67faSmbalmer	  if test "$linkmode" = lib &&
26343eed67faSmbalmer	     test "$hardcode_into_libs" = yes; then
26353eed67faSmbalmer	    # Hardcode the library path.
26363eed67faSmbalmer	    # Skip directories that are in the system default run-time
26373eed67faSmbalmer	    # search path.
26383eed67faSmbalmer	    case " $sys_lib_dlsearch_path " in
26393eed67faSmbalmer	    *" $absdir "*) ;;
26403eed67faSmbalmer	    *)
26413eed67faSmbalmer	      case "$compile_rpath " in
26423eed67faSmbalmer	      *" $absdir "*) ;;
26433eed67faSmbalmer	      *) compile_rpath="$compile_rpath $absdir"
26443eed67faSmbalmer	      esac
26453eed67faSmbalmer	      ;;
26463eed67faSmbalmer	    esac
26473eed67faSmbalmer	    case " $sys_lib_dlsearch_path " in
26483eed67faSmbalmer	    *" $libdir "*) ;;
26493eed67faSmbalmer	    *)
26503eed67faSmbalmer	      case "$finalize_rpath " in
26513eed67faSmbalmer	      *" $libdir "*) ;;
26523eed67faSmbalmer	      *) finalize_rpath="$finalize_rpath $libdir"
26533eed67faSmbalmer	      esac
26543eed67faSmbalmer	      ;;
26553eed67faSmbalmer	    esac
26563eed67faSmbalmer	  fi
26573eed67faSmbalmer
26583eed67faSmbalmer	  if test -n "$old_archive_from_expsyms_cmds"; then
26593eed67faSmbalmer	    # figure out the soname
26603eed67faSmbalmer	    set dummy $library_names
26613eed67faSmbalmer	    realname="$2"
26623eed67faSmbalmer	    shift; shift
26633eed67faSmbalmer	    libname=`eval \\$echo \"$libname_spec\"`
26643eed67faSmbalmer	    # use dlname if we got it. it's perfectly good, no?
26653eed67faSmbalmer	    if test -n "$dlname"; then
26663eed67faSmbalmer	      soname="$dlname"
26673eed67faSmbalmer	    elif test -n "$soname_spec"; then
26683eed67faSmbalmer	      # bleh windows
26693eed67faSmbalmer	      case $host in
26703eed67faSmbalmer	      *cygwin* | mingw*)
26713eed67faSmbalmer		major=`expr $current - $age`
26723eed67faSmbalmer		versuffix="-$major"
26733eed67faSmbalmer		;;
26743eed67faSmbalmer	      esac
26753eed67faSmbalmer	      eval soname=\"$soname_spec\"
26763eed67faSmbalmer	    else
26773eed67faSmbalmer	      soname="$realname"
26783eed67faSmbalmer	    fi
26793eed67faSmbalmer
26803eed67faSmbalmer	    # Make a new name for the extract_expsyms_cmds to use
26813eed67faSmbalmer	    soroot="$soname"
26823eed67faSmbalmer	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
26833eed67faSmbalmer	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
26843eed67faSmbalmer
26853eed67faSmbalmer	    # If the library has no export list, then create one now
26863eed67faSmbalmer	    if test -f "$output_objdir/$soname-def"; then :
26873eed67faSmbalmer	    else
26883eed67faSmbalmer	      $show "extracting exported symbol list from \`$soname'"
26893eed67faSmbalmer	      save_ifs="$IFS"; IFS='~'
26903eed67faSmbalmer	      cmds=$extract_expsyms_cmds
26913eed67faSmbalmer	      for cmd in $cmds; do
26923eed67faSmbalmer		IFS="$save_ifs"
26933eed67faSmbalmer		eval cmd=\"$cmd\"
26943eed67faSmbalmer		$show "$cmd"
26953eed67faSmbalmer		$run eval "$cmd" || exit $?
26963eed67faSmbalmer	      done
26973eed67faSmbalmer	      IFS="$save_ifs"
26983eed67faSmbalmer	    fi
26993eed67faSmbalmer
27003eed67faSmbalmer	    # Create $newlib
27013eed67faSmbalmer	    if test -f "$output_objdir/$newlib"; then :; else
27023eed67faSmbalmer	      $show "generating import library for \`$soname'"
27033eed67faSmbalmer	      save_ifs="$IFS"; IFS='~'
27043eed67faSmbalmer	      cmds=$old_archive_from_expsyms_cmds
27053eed67faSmbalmer	      for cmd in $cmds; do
27063eed67faSmbalmer		IFS="$save_ifs"
27073eed67faSmbalmer		eval cmd=\"$cmd\"
27083eed67faSmbalmer		$show "$cmd"
27093eed67faSmbalmer		$run eval "$cmd" || exit $?
27103eed67faSmbalmer	      done
27113eed67faSmbalmer	      IFS="$save_ifs"
27123eed67faSmbalmer	    fi
27133eed67faSmbalmer	    # make sure the library variables are pointing to the new library
27143eed67faSmbalmer	    dir=$output_objdir
27153eed67faSmbalmer	    linklib=$newlib
27163eed67faSmbalmer	  fi # test -n "$old_archive_from_expsyms_cmds"
27173eed67faSmbalmer
27183eed67faSmbalmer	  if test "$linkmode" = prog || test "$mode" != relink; then
27193eed67faSmbalmer	    add_shlibpath=
27203eed67faSmbalmer	    add_dir=
27213eed67faSmbalmer	    add=
27223eed67faSmbalmer	    lib_linked=yes
27233eed67faSmbalmer	    case $hardcode_action in
27243eed67faSmbalmer	    immediate | unsupported)
27253eed67faSmbalmer	      if test "$hardcode_direct" = no; then
27263eed67faSmbalmer		add="$dir/$linklib"
27273eed67faSmbalmer		case $host in
27283eed67faSmbalmer		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
27293eed67faSmbalmer		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
27303eed67faSmbalmer		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
27313eed67faSmbalmer		    *-*-unixware7*) add_dir="-L$dir" ;;
27323eed67faSmbalmer		  *-*-darwin* )
27333eed67faSmbalmer		    # if the lib is a module then we can not link against
27343eed67faSmbalmer		    # it, someone is ignoring the new warnings I added
27353eed67faSmbalmer		    if /usr/bin/file -L $add 2> /dev/null |
27363eed67faSmbalmer                      $EGREP ": [^:]* bundle" >/dev/null ; then
27373eed67faSmbalmer		      $echo "** Warning, lib $linklib is a module, not a shared library"
27383eed67faSmbalmer		      if test -z "$old_library" ; then
27393eed67faSmbalmer		        $echo
27403eed67faSmbalmer		        $echo "** And there doesn't seem to be a static archive available"
27413eed67faSmbalmer		        $echo "** The link will probably fail, sorry"
27423eed67faSmbalmer		      else
27433eed67faSmbalmer		        add="$dir/$old_library"
27443eed67faSmbalmer		      fi
27453eed67faSmbalmer		    fi
27463eed67faSmbalmer		esac
27473eed67faSmbalmer	      elif test "$hardcode_minus_L" = no; then
27483eed67faSmbalmer		case $host in
27493eed67faSmbalmer		*-*-sunos*) add_shlibpath="$dir" ;;
27503eed67faSmbalmer		esac
27513eed67faSmbalmer		add_dir="-L$dir"
27523eed67faSmbalmer		add="-l$name"
27533eed67faSmbalmer	      elif test "$hardcode_shlibpath_var" = no; then
27543eed67faSmbalmer		add_shlibpath="$dir"
27553eed67faSmbalmer		add="-l$name"
27563eed67faSmbalmer	      else
27573eed67faSmbalmer		lib_linked=no
27583eed67faSmbalmer	      fi
27593eed67faSmbalmer	      ;;
27603eed67faSmbalmer	    relink)
27613eed67faSmbalmer	      if test "$hardcode_direct" = yes; then
27623eed67faSmbalmer		add="$dir/$linklib"
27633eed67faSmbalmer	      elif test "$hardcode_minus_L" = yes; then
27643eed67faSmbalmer		add_dir="-L$dir"
27653eed67faSmbalmer		# Try looking first in the location we're being installed to.
27663eed67faSmbalmer		if test -n "$inst_prefix_dir"; then
27673eed67faSmbalmer		  case $libdir in
27683eed67faSmbalmer		    [\\/]*)
27693eed67faSmbalmer		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
27703eed67faSmbalmer		      ;;
27713eed67faSmbalmer		  esac
27723eed67faSmbalmer		fi
27733eed67faSmbalmer		add="-l$name"
27743eed67faSmbalmer	      elif test "$hardcode_shlibpath_var" = yes; then
27753eed67faSmbalmer		add_shlibpath="$dir"
27763eed67faSmbalmer		add="-l$name"
27773eed67faSmbalmer	      else
27783eed67faSmbalmer		lib_linked=no
27793eed67faSmbalmer	      fi
27803eed67faSmbalmer	      ;;
27813eed67faSmbalmer	    *) lib_linked=no ;;
27823eed67faSmbalmer	    esac
27833eed67faSmbalmer
27843eed67faSmbalmer	    if test "$lib_linked" != yes; then
27853eed67faSmbalmer	      $echo "$modename: configuration error: unsupported hardcode properties"
27863eed67faSmbalmer	      exit $EXIT_FAILURE
27873eed67faSmbalmer	    fi
27883eed67faSmbalmer
27893eed67faSmbalmer	    if test -n "$add_shlibpath"; then
27903eed67faSmbalmer	      case :$compile_shlibpath: in
27913eed67faSmbalmer	      *":$add_shlibpath:"*) ;;
27923eed67faSmbalmer	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
27933eed67faSmbalmer	      esac
27943eed67faSmbalmer	    fi
27953eed67faSmbalmer	    if test "$linkmode" = prog; then
27963eed67faSmbalmer	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
27973eed67faSmbalmer	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
27983eed67faSmbalmer	    else
27993eed67faSmbalmer	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
28003eed67faSmbalmer	      test -n "$add" && deplibs="$add $deplibs"
28013eed67faSmbalmer	      if test "$hardcode_direct" != yes && \
28023eed67faSmbalmer		 test "$hardcode_minus_L" != yes && \
28033eed67faSmbalmer		 test "$hardcode_shlibpath_var" = yes; then
28043eed67faSmbalmer		case :$finalize_shlibpath: in
28053eed67faSmbalmer		*":$libdir:"*) ;;
28063eed67faSmbalmer		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
28073eed67faSmbalmer		esac
28083eed67faSmbalmer	      fi
28093eed67faSmbalmer	    fi
28103eed67faSmbalmer	  fi
28113eed67faSmbalmer
28123eed67faSmbalmer	  if test "$linkmode" = prog || test "$mode" = relink; then
28133eed67faSmbalmer	    add_shlibpath=
28143eed67faSmbalmer	    add_dir=
28153eed67faSmbalmer	    add=
28163eed67faSmbalmer	    # Finalize command for both is simple: just hardcode it.
28173eed67faSmbalmer	    if test "$hardcode_direct" = yes && test -f $libdir/$linklib; then
28183eed67faSmbalmer	      add="$libdir/$linklib"
28193eed67faSmbalmer	    elif test "$hardcode_minus_L" = yes; then
28203eed67faSmbalmer	      add_dir="-L$libdir"
28213eed67faSmbalmer	      add="-l$name"
28223eed67faSmbalmer	    elif test "$hardcode_shlibpath_var" = yes; then
28233eed67faSmbalmer	      case :$finalize_shlibpath: in
28243eed67faSmbalmer	      *":$libdir:"*) ;;
28253eed67faSmbalmer	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
28263eed67faSmbalmer	      esac
28273eed67faSmbalmer	      add="-l$name"
28283eed67faSmbalmer	    elif test "$hardcode_automatic" = yes; then
28293eed67faSmbalmer	      if test -n "$inst_prefix_dir" &&
28303eed67faSmbalmer		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
28313eed67faSmbalmer	        add="$inst_prefix_dir$libdir/$linklib"
28323eed67faSmbalmer	      else
28333eed67faSmbalmer	        add="$libdir/$linklib"
28343eed67faSmbalmer	      fi
28353eed67faSmbalmer	    else
28363eed67faSmbalmer	      # We cannot seem to hardcode it, guess we'll fake it.
28373eed67faSmbalmer	      add_dir="-L$libdir"
28383eed67faSmbalmer	      # Try looking first in the location we're being installed to.
28393eed67faSmbalmer	      if test -n "$inst_prefix_dir"; then
28403eed67faSmbalmer		case $libdir in
28413eed67faSmbalmer		  [\\/]*)
28423eed67faSmbalmer		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
28433eed67faSmbalmer		    ;;
28443eed67faSmbalmer		esac
28453eed67faSmbalmer	      fi
28463eed67faSmbalmer	      add="-l$name"
28473eed67faSmbalmer	    fi
28483eed67faSmbalmer
28493eed67faSmbalmer	    if test "$linkmode" = prog; then
28503eed67faSmbalmer	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
28513eed67faSmbalmer	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
28523eed67faSmbalmer	    else
28533eed67faSmbalmer	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
28543eed67faSmbalmer	      test -n "$add" && deplibs="$add $deplibs"
28553eed67faSmbalmer	    fi
28563eed67faSmbalmer	  fi
28573eed67faSmbalmer	elif test "$linkmode" = prog; then
28583eed67faSmbalmer	  # Here we assume that one of hardcode_direct or hardcode_minus_L
28593eed67faSmbalmer	  # is not unsupported.  This is valid on all known static and
28603eed67faSmbalmer	  # shared platforms.
28613eed67faSmbalmer	  if test "$hardcode_direct" != unsupported; then
28623eed67faSmbalmer	    test -n "$old_library" && linklib="$old_library"
28633eed67faSmbalmer	    compile_deplibs="$dir/$linklib $compile_deplibs"
28643eed67faSmbalmer	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
28653eed67faSmbalmer	  else
28663eed67faSmbalmer	    compile_deplibs="-l$name -L$dir $compile_deplibs"
28673eed67faSmbalmer	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
28683eed67faSmbalmer	  fi
28693eed67faSmbalmer	elif test "$build_libtool_libs" = yes; then
28703eed67faSmbalmer	  # Not a shared library
28713eed67faSmbalmer	  if test "$deplibs_check_method" != pass_all; then
28723eed67faSmbalmer	    # We're trying link a shared library against a static one
28733eed67faSmbalmer	    # but the system doesn't support it.
28743eed67faSmbalmer
28753eed67faSmbalmer	    # Just print a warning and add the library to dependency_libs so
28763eed67faSmbalmer	    # that the program can be linked against the static library.
28773eed67faSmbalmer	    $echo
28783eed67faSmbalmer	    $echo "*** Warning: This system can not link to static lib archive $lib."
28793eed67faSmbalmer	    $echo "*** I have the capability to make that library automatically link in when"
28803eed67faSmbalmer	    $echo "*** you link to this library.  But I can only do this if you have a"
28813eed67faSmbalmer	    $echo "*** shared version of the library, which you do not appear to have."
28823eed67faSmbalmer	    if test "$module" = yes; then
28833eed67faSmbalmer	      $echo "*** But as you try to build a module library, libtool will still create "
28843eed67faSmbalmer	      $echo "*** a static module, that should work as long as the dlopening application"
28853eed67faSmbalmer	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
28863eed67faSmbalmer	      if test -z "$global_symbol_pipe"; then
28873eed67faSmbalmer		$echo
28883eed67faSmbalmer		$echo "*** However, this would only work if libtool was able to extract symbol"
28893eed67faSmbalmer		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
28903eed67faSmbalmer		$echo "*** not find such a program.  So, this module is probably useless."
28913eed67faSmbalmer		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
28923eed67faSmbalmer	      fi
28933eed67faSmbalmer	      if test "$build_old_libs" = no; then
28943eed67faSmbalmer		build_libtool_libs=module
28953eed67faSmbalmer		build_old_libs=yes
28963eed67faSmbalmer	      else
28973eed67faSmbalmer		build_libtool_libs=no
28983eed67faSmbalmer	      fi
28993eed67faSmbalmer	    fi
29003eed67faSmbalmer	  else
29013eed67faSmbalmer	    deplibs="$dir/$old_library $deplibs"
29023eed67faSmbalmer	    link_static=yes
29033eed67faSmbalmer	  fi
29043eed67faSmbalmer	fi # link shared/static library?
29053eed67faSmbalmer
29063eed67faSmbalmer	if test "$linkmode" = lib; then
29073eed67faSmbalmer	  if test -n "$dependency_libs" &&
29083eed67faSmbalmer	     { test "$hardcode_into_libs" != yes ||
29093eed67faSmbalmer	       test "$build_old_libs" = yes ||
29103eed67faSmbalmer	       test "$link_static" = yes; }; then
29113eed67faSmbalmer	    # Extract -R from dependency_libs
29123eed67faSmbalmer	    temp_deplibs=
29133eed67faSmbalmer	    for libdir in $dependency_libs; do
29143eed67faSmbalmer	      case $libdir in
29153eed67faSmbalmer	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
29163eed67faSmbalmer		   case " $xrpath " in
29173eed67faSmbalmer		   *" $temp_xrpath "*) ;;
29183eed67faSmbalmer		   *) xrpath="$xrpath $temp_xrpath";;
29193eed67faSmbalmer		   esac;;
29203eed67faSmbalmer	      *) temp_deplibs="$temp_deplibs $libdir";;
29213eed67faSmbalmer	      esac
29223eed67faSmbalmer	    done
29233eed67faSmbalmer	    dependency_libs="$temp_deplibs"
29243eed67faSmbalmer	  fi
29253eed67faSmbalmer
29263eed67faSmbalmer	  newlib_search_path="$newlib_search_path $absdir"
29273eed67faSmbalmer	  # Link against this library
29283eed67faSmbalmer	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
29293eed67faSmbalmer	  # ... and its dependency_libs
29303eed67faSmbalmer	  tmp_libs=
29313eed67faSmbalmer	  for deplib in $dependency_libs; do
29323eed67faSmbalmer	    newdependency_libs="$deplib $newdependency_libs"
29333eed67faSmbalmer	    if test "X$duplicate_deps" = "Xyes" ; then
29343eed67faSmbalmer	      case "$tmp_libs " in
29353eed67faSmbalmer	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
29363eed67faSmbalmer	      esac
29373eed67faSmbalmer	    fi
29383eed67faSmbalmer	    tmp_libs="$tmp_libs $deplib"
29393eed67faSmbalmer	  done
29403eed67faSmbalmer
29413eed67faSmbalmer	  if test "$link_all_deplibs" != no; then
29423eed67faSmbalmer	    # Add the search paths of all dependency libraries
29433eed67faSmbalmer	    for deplib in $dependency_libs; do
29443eed67faSmbalmer	      case $deplib in
29453eed67faSmbalmer	      -L*) path="$deplib" ;;
29463eed67faSmbalmer	      *.la)
29473eed67faSmbalmer		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
29483eed67faSmbalmer		test "X$dir" = "X$deplib" && dir="."
29493eed67faSmbalmer		# We need an absolute path.
29503eed67faSmbalmer		case $dir in
29513eed67faSmbalmer		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
29523eed67faSmbalmer		*)
29533eed67faSmbalmer		  absdir=`cd "$dir" && pwd`
29543eed67faSmbalmer		  if test -z "$absdir"; then
29553eed67faSmbalmer		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
29563eed67faSmbalmer		    absdir="$dir"
29573eed67faSmbalmer		  fi
29583eed67faSmbalmer		  ;;
29593eed67faSmbalmer		esac
29603eed67faSmbalmer		if grep "^installed=no" $deplib > /dev/null; then
29613eed67faSmbalmer		  path="$absdir/$objdir"
29623eed67faSmbalmer		else
29633eed67faSmbalmer		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29643eed67faSmbalmer		  if test -z "$libdir"; then
29653eed67faSmbalmer		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
29663eed67faSmbalmer		    exit $EXIT_FAILURE
29673eed67faSmbalmer		  fi
29683eed67faSmbalmer		  if test "$absdir" != "$libdir"; then
29693eed67faSmbalmer		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
29703eed67faSmbalmer		  fi
29713eed67faSmbalmer		  path="$absdir"
29723eed67faSmbalmer		fi
29733eed67faSmbalmer		depdepl=
29743eed67faSmbalmer		case $host in
29753eed67faSmbalmer		*-*-darwin*)
29763eed67faSmbalmer		  # we do not want to link against static libs,
29773eed67faSmbalmer		  # but need to link against shared
29783eed67faSmbalmer		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
29793eed67faSmbalmer		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29803eed67faSmbalmer		  if test -n "$deplibrary_names" ; then
29813eed67faSmbalmer		    for tmp in $deplibrary_names ; do
29823eed67faSmbalmer		      depdepl=$tmp
29833eed67faSmbalmer		    done
29843eed67faSmbalmer		    if test -f "$deplibdir/$depdepl" ; then
29853eed67faSmbalmer		      depdepl="$deplibdir/$depdepl"
29863eed67faSmbalmer	      	    elif test -f "$path/$depdepl" ; then
29873eed67faSmbalmer		      depdepl="$path/$depdepl"
29883eed67faSmbalmer		    else
29893eed67faSmbalmer		      # Can't find it, oh well...
29903eed67faSmbalmer		      depdepl=
29913eed67faSmbalmer		    fi
29923eed67faSmbalmer		    # do not add paths which are already there
29933eed67faSmbalmer		    case " $newlib_search_path " in
29943eed67faSmbalmer		    *" $path "*) ;;
29953eed67faSmbalmer		    *) newlib_search_path="$newlib_search_path $path";;
29963eed67faSmbalmer		    esac
29973eed67faSmbalmer		  fi
29983eed67faSmbalmer		  path=""
29993eed67faSmbalmer		  ;;
30003eed67faSmbalmer		*)
30013eed67faSmbalmer		  path="-L$path"
30023eed67faSmbalmer		  ;;
30033eed67faSmbalmer		esac
30043eed67faSmbalmer		;;
30053eed67faSmbalmer	      -l*)
30063eed67faSmbalmer		case $host in
30073eed67faSmbalmer		*-*-darwin*)
30083eed67faSmbalmer		  # Again, we only want to link against shared libraries
30093eed67faSmbalmer		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
30103eed67faSmbalmer		  for tmp in $newlib_search_path ; do
30113eed67faSmbalmer		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
30123eed67faSmbalmer		      eval depdepl="$tmp/lib$tmp_libs.dylib"
30133eed67faSmbalmer		      break
30143eed67faSmbalmer		    fi
30153eed67faSmbalmer		  done
30163eed67faSmbalmer		  path=""
30173eed67faSmbalmer		  ;;
30183eed67faSmbalmer		*) continue ;;
30193eed67faSmbalmer		esac
30203eed67faSmbalmer		;;
30213eed67faSmbalmer	      *) continue ;;
30223eed67faSmbalmer	      esac
30233eed67faSmbalmer	      case " $deplibs " in
30243eed67faSmbalmer	      *" $path "*) ;;
30253eed67faSmbalmer	      *) deplibs="$path $deplibs" ;;
30263eed67faSmbalmer	      esac
30273eed67faSmbalmer	      case " $deplibs " in
30283eed67faSmbalmer	      *" $depdepl "*) ;;
30293eed67faSmbalmer	      *) deplibs="$depdepl $deplibs" ;;
30303eed67faSmbalmer	      esac
30313eed67faSmbalmer	    done
30323eed67faSmbalmer	  fi # link_all_deplibs != no
30333eed67faSmbalmer	fi # linkmode = lib
30343eed67faSmbalmer      done # for deplib in $libs
30353eed67faSmbalmer      dependency_libs="$newdependency_libs"
30363eed67faSmbalmer      if test "$pass" = dlpreopen; then
30373eed67faSmbalmer	# Link the dlpreopened libraries before other libraries
30383eed67faSmbalmer	for deplib in $save_deplibs; do
30393eed67faSmbalmer	  deplibs="$deplib $deplibs"
30403eed67faSmbalmer	done
30413eed67faSmbalmer      fi
30423eed67faSmbalmer      if test "$pass" != dlopen; then
30433eed67faSmbalmer	if test "$pass" != conv; then
30443eed67faSmbalmer	  # Make sure lib_search_path contains only unique directories.
30453eed67faSmbalmer	  lib_search_path=
30463eed67faSmbalmer	  for dir in $newlib_search_path; do
30473eed67faSmbalmer	    case "$lib_search_path " in
30483eed67faSmbalmer	    *" $dir "*) ;;
30493eed67faSmbalmer	    *) lib_search_path="$lib_search_path $dir" ;;
30503eed67faSmbalmer	    esac
30513eed67faSmbalmer	  done
30523eed67faSmbalmer	  newlib_search_path=
30533eed67faSmbalmer	fi
30543eed67faSmbalmer
30553eed67faSmbalmer	if test "$linkmode,$pass" != "prog,link"; then
30563eed67faSmbalmer	  vars="deplibs"
30573eed67faSmbalmer	else
30583eed67faSmbalmer	  vars="compile_deplibs finalize_deplibs"
30593eed67faSmbalmer	fi
30603eed67faSmbalmer	for var in $vars dependency_libs; do
30613eed67faSmbalmer	  # Add libraries to $var in reverse order
30623eed67faSmbalmer	  eval tmp_libs=\"\$$var\"
30633eed67faSmbalmer	  new_libs=
30643eed67faSmbalmer	  for deplib in $tmp_libs; do
30653eed67faSmbalmer	    # FIXME: Pedantically, this is the right thing to do, so
30663eed67faSmbalmer	    #        that some nasty dependency loop isn't accidentally
30673eed67faSmbalmer	    #        broken:
30683eed67faSmbalmer	    #new_libs="$deplib $new_libs"
30693eed67faSmbalmer	    # Pragmatically, this seems to cause very few problems in
30703eed67faSmbalmer	    # practice:
30713eed67faSmbalmer	    case $deplib in
30723eed67faSmbalmer	    -L*) new_libs="$deplib $new_libs" ;;
30733eed67faSmbalmer	    -R*) ;;
30743eed67faSmbalmer	    *)
30753eed67faSmbalmer	      # And here is the reason: when a library appears more
30763eed67faSmbalmer	      # than once as an explicit dependence of a library, or
30773eed67faSmbalmer	      # is implicitly linked in more than once by the
30783eed67faSmbalmer	      # compiler, it is considered special, and multiple
30793eed67faSmbalmer	      # occurrences thereof are not removed.  Compare this
30803eed67faSmbalmer	      # with having the same library being listed as a
30813eed67faSmbalmer	      # dependency of multiple other libraries: in this case,
30823eed67faSmbalmer	      # we know (pedantically, we assume) the library does not
30833eed67faSmbalmer	      # need to be listed more than once, so we keep only the
30843eed67faSmbalmer	      # last copy.  This is not always right, but it is rare
30853eed67faSmbalmer	      # enough that we require users that really mean to play
30863eed67faSmbalmer	      # such unportable linking tricks to link the library
30873eed67faSmbalmer	      # using -Wl,-lname, so that libtool does not consider it
30883eed67faSmbalmer	      # for duplicate removal.
30893eed67faSmbalmer	      case " $specialdeplibs " in
30903eed67faSmbalmer	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
30913eed67faSmbalmer	      *)
30923eed67faSmbalmer		case " $new_libs " in
30933eed67faSmbalmer		*" $deplib "*) ;;
30943eed67faSmbalmer		*) new_libs="$deplib $new_libs" ;;
30953eed67faSmbalmer		esac
30963eed67faSmbalmer		;;
30973eed67faSmbalmer	      esac
30983eed67faSmbalmer	      ;;
30993eed67faSmbalmer	    esac
31003eed67faSmbalmer	  done
31013eed67faSmbalmer	  tmp_libs=
31023eed67faSmbalmer	  for deplib in $new_libs; do
31033eed67faSmbalmer	    case $deplib in
31043eed67faSmbalmer	    -L*)
31053eed67faSmbalmer	      case " $tmp_libs " in
31063eed67faSmbalmer	      *" $deplib "*) ;;
31073eed67faSmbalmer	      *) tmp_libs="$tmp_libs $deplib" ;;
31083eed67faSmbalmer	      esac
31093eed67faSmbalmer	      ;;
31103eed67faSmbalmer	    *) tmp_libs="$tmp_libs $deplib" ;;
31113eed67faSmbalmer	    esac
31123eed67faSmbalmer	  done
31133eed67faSmbalmer	  eval $var=\"$tmp_libs\"
31143eed67faSmbalmer	done # for var
31153eed67faSmbalmer      fi
31163eed67faSmbalmer      # Last step: remove runtime libs from dependency_libs
31173eed67faSmbalmer      # (they stay in deplibs)
31183eed67faSmbalmer      tmp_libs=
31193eed67faSmbalmer      for i in $dependency_libs ; do
31203eed67faSmbalmer	case " $predeps $postdeps $compiler_lib_search_path " in
31213eed67faSmbalmer	*" $i "*)
31223eed67faSmbalmer	  i=""
31233eed67faSmbalmer	  ;;
31243eed67faSmbalmer	esac
31253eed67faSmbalmer	if test -n "$i" ; then
31263eed67faSmbalmer	  tmp_libs="$tmp_libs $i"
31273eed67faSmbalmer	fi
31283eed67faSmbalmer      done
31293eed67faSmbalmer      dependency_libs=$tmp_libs
31303eed67faSmbalmer    done # for pass
31313eed67faSmbalmer    if test "$linkmode" = prog; then
31323eed67faSmbalmer      dlfiles="$newdlfiles"
31333eed67faSmbalmer      dlprefiles="$newdlprefiles"
31343eed67faSmbalmer    fi
31353eed67faSmbalmer
31363eed67faSmbalmer    case $linkmode in
31373eed67faSmbalmer    oldlib)
31383eed67faSmbalmer      case " $deplibs" in
31393eed67faSmbalmer      *\ -l* | *\ -L*)
31403eed67faSmbalmer	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
31413eed67faSmbalmer      esac
31423eed67faSmbalmer
31433eed67faSmbalmer      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
31443eed67faSmbalmer	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
31453eed67faSmbalmer      fi
31463eed67faSmbalmer
31473eed67faSmbalmer      if test -n "$rpath"; then
31483eed67faSmbalmer	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
31493eed67faSmbalmer      fi
31503eed67faSmbalmer
31513eed67faSmbalmer      if test -n "$xrpath"; then
31523eed67faSmbalmer	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
31533eed67faSmbalmer      fi
31543eed67faSmbalmer
31553eed67faSmbalmer      if test -n "$vinfo"; then
31563eed67faSmbalmer	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
31573eed67faSmbalmer      fi
31583eed67faSmbalmer
31593eed67faSmbalmer      if test -n "$release"; then
31603eed67faSmbalmer	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
31613eed67faSmbalmer      fi
31623eed67faSmbalmer
31633eed67faSmbalmer      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
31643eed67faSmbalmer	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
31653eed67faSmbalmer      fi
31663eed67faSmbalmer
31673eed67faSmbalmer      # Now set the variables for building old libraries.
31683eed67faSmbalmer      build_libtool_libs=no
31693eed67faSmbalmer      oldlibs="$output"
31703eed67faSmbalmer      objs="$objs$old_deplibs"
31713eed67faSmbalmer      ;;
31723eed67faSmbalmer
31733eed67faSmbalmer    lib)
31743eed67faSmbalmer      # Make sure we only generate libraries of the form `libNAME.la'.
31753eed67faSmbalmer      case $outputname in
31763eed67faSmbalmer      lib*)
31773eed67faSmbalmer	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
31783eed67faSmbalmer	eval shared_ext=\"$shrext_cmds\"
31793eed67faSmbalmer	eval libname=\"$libname_spec\"
31803eed67faSmbalmer	;;
31813eed67faSmbalmer      *)
31823eed67faSmbalmer	if test "$module" = no; then
31833eed67faSmbalmer	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
31843eed67faSmbalmer	  $echo "$help" 1>&2
31853eed67faSmbalmer	  exit $EXIT_FAILURE
31863eed67faSmbalmer	fi
31873eed67faSmbalmer	if test "$need_lib_prefix" != no; then
31883eed67faSmbalmer	  # Add the "lib" prefix for modules if required
31893eed67faSmbalmer	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31903eed67faSmbalmer	  eval shared_ext=\"$shrext_cmds\"
31913eed67faSmbalmer	  eval libname=\"$libname_spec\"
31923eed67faSmbalmer	else
31933eed67faSmbalmer	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31943eed67faSmbalmer	fi
31953eed67faSmbalmer	;;
31963eed67faSmbalmer      esac
31973eed67faSmbalmer
31983eed67faSmbalmer      if test -n "$objs"; then
31993eed67faSmbalmer	if test "$deplibs_check_method" != pass_all; then
32003eed67faSmbalmer	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
32013eed67faSmbalmer	  exit $EXIT_FAILURE
32023eed67faSmbalmer	else
32033eed67faSmbalmer	  $echo
32043eed67faSmbalmer	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
32053eed67faSmbalmer	  $echo "*** objects $objs is not portable!"
32063eed67faSmbalmer	  libobjs="$libobjs $objs"
32073eed67faSmbalmer	fi
32083eed67faSmbalmer      fi
32093eed67faSmbalmer
32103eed67faSmbalmer      if test "$dlself" != no; then
32113eed67faSmbalmer	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
32123eed67faSmbalmer      fi
32133eed67faSmbalmer
32143eed67faSmbalmer      set dummy $rpath
32153eed67faSmbalmer      if test "$#" -gt 2; then
32163eed67faSmbalmer	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
32173eed67faSmbalmer      fi
32183eed67faSmbalmer      install_libdir="$2"
32193eed67faSmbalmer
32203eed67faSmbalmer      oldlibs=
32213eed67faSmbalmer      if test -z "$rpath"; then
32223eed67faSmbalmer	if test "$build_libtool_libs" = yes; then
32233eed67faSmbalmer	  # Building a libtool convenience library.
32243eed67faSmbalmer	  # Some compilers have problems with a `.al' extension so
32253eed67faSmbalmer	  # convenience libraries should have the same extension an
32263eed67faSmbalmer	  # archive normally would.
32273eed67faSmbalmer	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
32283eed67faSmbalmer	  build_libtool_libs=convenience
32293eed67faSmbalmer	  build_old_libs=yes
32303eed67faSmbalmer	fi
32313eed67faSmbalmer
32323eed67faSmbalmer	if test -n "$vinfo"; then
32333eed67faSmbalmer	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
32343eed67faSmbalmer	fi
32353eed67faSmbalmer
32363eed67faSmbalmer	if test -n "$release"; then
32373eed67faSmbalmer	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
32383eed67faSmbalmer	fi
32393eed67faSmbalmer      else
32403eed67faSmbalmer
32413eed67faSmbalmer	# Parse the version information argument.
32423eed67faSmbalmer	save_ifs="$IFS"; IFS=':'
32433eed67faSmbalmer	set dummy $vinfo 0 0 0
32443eed67faSmbalmer	IFS="$save_ifs"
32453eed67faSmbalmer
32463eed67faSmbalmer	if test -n "$8"; then
32473eed67faSmbalmer	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
32483eed67faSmbalmer	  $echo "$help" 1>&2
32493eed67faSmbalmer	  exit $EXIT_FAILURE
32503eed67faSmbalmer	fi
32513eed67faSmbalmer
32523eed67faSmbalmer	# convert absolute version numbers to libtool ages
32533eed67faSmbalmer	# this retains compatibility with .la files and attempts
32543eed67faSmbalmer	# to make the code below a bit more comprehensible
32553eed67faSmbalmer
32563eed67faSmbalmer	case $vinfo_number in
32573eed67faSmbalmer	yes)
32583eed67faSmbalmer	  number_major="$2"
32593eed67faSmbalmer	  number_minor="$3"
32603eed67faSmbalmer	  number_revision="$4"
32613eed67faSmbalmer	  #
32623eed67faSmbalmer	  # There are really only two kinds -- those that
32633eed67faSmbalmer	  # use the current revision as the major version
32643eed67faSmbalmer	  # and those that subtract age and use age as
32653eed67faSmbalmer	  # a minor version.  But, then there is irix
32663eed67faSmbalmer	  # which has an extra 1 added just for fun
32673eed67faSmbalmer	  #
32683eed67faSmbalmer	  case $version_type in
32693eed67faSmbalmer	  darwin|linux|osf|windows|none)
32703eed67faSmbalmer	    current=`expr $number_major + $number_minor`
32713eed67faSmbalmer	    age="$number_minor"
32723eed67faSmbalmer	    revision="$number_revision"
32733eed67faSmbalmer	    ;;
32743eed67faSmbalmer	  freebsd-aout|freebsd-elf|sunos)
32753eed67faSmbalmer	    current="$number_major"
32763eed67faSmbalmer	    revision="$number_minor"
32773eed67faSmbalmer	    age="0"
32783eed67faSmbalmer	    ;;
32793eed67faSmbalmer	  irix|nonstopux)
32803eed67faSmbalmer	    current=`expr $number_major + $number_minor`
32813eed67faSmbalmer	    age="$number_minor"
32823eed67faSmbalmer	    revision="$number_minor"
32833eed67faSmbalmer	    lt_irix_increment=no
32843eed67faSmbalmer	    ;;
32853eed67faSmbalmer	  esac
32863eed67faSmbalmer	  ;;
32873eed67faSmbalmer	no)
32883eed67faSmbalmer	  current="$2"
32893eed67faSmbalmer	  revision="$3"
32903eed67faSmbalmer	  age="$4"
32913eed67faSmbalmer	  ;;
32923eed67faSmbalmer	esac
32933eed67faSmbalmer
32943eed67faSmbalmer	# Check that each of the things are valid numbers.
32953eed67faSmbalmer	case $current in
32963eed67faSmbalmer	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]) ;;
32973eed67faSmbalmer	*)
32983eed67faSmbalmer	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
32993eed67faSmbalmer	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33003eed67faSmbalmer	  exit $EXIT_FAILURE
33013eed67faSmbalmer	  ;;
33023eed67faSmbalmer	esac
33033eed67faSmbalmer
33043eed67faSmbalmer	case $revision in
33053eed67faSmbalmer	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]) ;;
33063eed67faSmbalmer	*)
33073eed67faSmbalmer	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
33083eed67faSmbalmer	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33093eed67faSmbalmer	  exit $EXIT_FAILURE
33103eed67faSmbalmer	  ;;
33113eed67faSmbalmer	esac
33123eed67faSmbalmer
33133eed67faSmbalmer	case $age in
33143eed67faSmbalmer	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]) ;;
33153eed67faSmbalmer	*)
33163eed67faSmbalmer	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
33173eed67faSmbalmer	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33183eed67faSmbalmer	  exit $EXIT_FAILURE
33193eed67faSmbalmer	  ;;
33203eed67faSmbalmer	esac
33213eed67faSmbalmer
33223eed67faSmbalmer	if test "$age" -gt "$current"; then
33233eed67faSmbalmer	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
33243eed67faSmbalmer	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33253eed67faSmbalmer	  exit $EXIT_FAILURE
33263eed67faSmbalmer	fi
33273eed67faSmbalmer
33283eed67faSmbalmer	# Calculate the version variables.
33293eed67faSmbalmer	major=
33303eed67faSmbalmer	versuffix=
33313eed67faSmbalmer	verstring=
33323eed67faSmbalmer	case $version_type in
33333eed67faSmbalmer	none) ;;
33343eed67faSmbalmer
33353eed67faSmbalmer	darwin)
33363eed67faSmbalmer	  # Like Linux, but with the current version available in
33373eed67faSmbalmer	  # verstring for coding it into the library header
33383eed67faSmbalmer	  major=.`expr $current - $age`
33393eed67faSmbalmer	  versuffix="$major.$age.$revision"
33403eed67faSmbalmer	  # Darwin ld doesn't like 0 for these options...
33413eed67faSmbalmer	  minor_current=`expr $current + 1`
33423eed67faSmbalmer	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
33433eed67faSmbalmer	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
33443eed67faSmbalmer	  ;;
33453eed67faSmbalmer
33463eed67faSmbalmer	freebsd-aout)
33473eed67faSmbalmer	  major=".$current"
33483eed67faSmbalmer	  versuffix=".$current.$revision";
33493eed67faSmbalmer	  ;;
33503eed67faSmbalmer
33513eed67faSmbalmer	freebsd-elf)
33523eed67faSmbalmer	  major=".$current"
33533eed67faSmbalmer	  versuffix=".$current";
33543eed67faSmbalmer	  ;;
33553eed67faSmbalmer
33563eed67faSmbalmer	irix | nonstopux)
33573eed67faSmbalmer	  if test "X$lt_irix_increment" = "Xno"; then
33583eed67faSmbalmer	    major=`expr $current - $age`
33593eed67faSmbalmer	  else
33603eed67faSmbalmer	    major=`expr $current - $age + 1`
33613eed67faSmbalmer	  fi
33623eed67faSmbalmer	  case $version_type in
33633eed67faSmbalmer	    nonstopux) verstring_prefix=nonstopux ;;
33643eed67faSmbalmer	    *)         verstring_prefix=sgi ;;
33653eed67faSmbalmer	  esac
33663eed67faSmbalmer	  verstring="$verstring_prefix$major.$revision"
33673eed67faSmbalmer
33683eed67faSmbalmer	  # Add in all the interfaces that we are compatible with.
33693eed67faSmbalmer	  loop=$revision
33703eed67faSmbalmer	  while test "$loop" -ne 0; do
33713eed67faSmbalmer	    iface=`expr $revision - $loop`
33723eed67faSmbalmer	    loop=`expr $loop - 1`
33733eed67faSmbalmer	    verstring="$verstring_prefix$major.$iface:$verstring"
33743eed67faSmbalmer	  done
33753eed67faSmbalmer
33763eed67faSmbalmer	  # Before this point, $major must not contain `.'.
33773eed67faSmbalmer	  major=.$major
33783eed67faSmbalmer	  versuffix="$major.$revision"
33793eed67faSmbalmer	  ;;
33803eed67faSmbalmer
33813eed67faSmbalmer	linux)
33823eed67faSmbalmer	  major=.`expr $current - $age`
33833eed67faSmbalmer	  versuffix="$major.$age.$revision"
33843eed67faSmbalmer	  ;;
33853eed67faSmbalmer
33863eed67faSmbalmer	osf)
33873eed67faSmbalmer	  major=.`expr $current - $age`
33883eed67faSmbalmer	  versuffix=".$current.$age.$revision"
33893eed67faSmbalmer	  verstring="$current.$age.$revision"
33903eed67faSmbalmer
33913eed67faSmbalmer	  # Add in all the interfaces that we are compatible with.
33923eed67faSmbalmer	  loop=$age
33933eed67faSmbalmer	  while test "$loop" -ne 0; do
33943eed67faSmbalmer	    iface=`expr $current - $loop`
33953eed67faSmbalmer	    loop=`expr $loop - 1`
33963eed67faSmbalmer	    verstring="$verstring:${iface}.0"
33973eed67faSmbalmer	  done
33983eed67faSmbalmer
33993eed67faSmbalmer	  # Make executables depend on our current version.
34003eed67faSmbalmer	  verstring="$verstring:${current}.0"
34013eed67faSmbalmer	  ;;
34023eed67faSmbalmer
34033eed67faSmbalmer	sunos)
34043eed67faSmbalmer	  major=".$current"
34053eed67faSmbalmer	  versuffix=".$current.$revision"
34063eed67faSmbalmer	  ;;
34073eed67faSmbalmer
34083eed67faSmbalmer	windows)
34093eed67faSmbalmer	  # Use '-' rather than '.', since we only want one
34103eed67faSmbalmer	  # extension on DOS 8.3 filesystems.
34113eed67faSmbalmer	  major=`expr $current - $age`
34123eed67faSmbalmer	  versuffix="-$major"
34133eed67faSmbalmer	  ;;
34143eed67faSmbalmer
34153eed67faSmbalmer	*)
34163eed67faSmbalmer	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
34173eed67faSmbalmer	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
34183eed67faSmbalmer	  exit $EXIT_FAILURE
34193eed67faSmbalmer	  ;;
34203eed67faSmbalmer	esac
34213eed67faSmbalmer
34223eed67faSmbalmer	# Clear the version info if we defaulted, and they specified a release.
34233eed67faSmbalmer	if test -z "$vinfo" && test -n "$release"; then
34243eed67faSmbalmer	  major=
34253eed67faSmbalmer	  case $version_type in
34263eed67faSmbalmer	  darwin)
34273eed67faSmbalmer	    # we can't check for "0.0" in archive_cmds due to quoting
34283eed67faSmbalmer	    # problems, so we reset it completely
34293eed67faSmbalmer	    verstring=
34303eed67faSmbalmer	    ;;
34313eed67faSmbalmer	  *)
34323eed67faSmbalmer	    verstring="0.0"
34333eed67faSmbalmer	    ;;
34343eed67faSmbalmer	  esac
34353eed67faSmbalmer	  if test "$need_version" = no; then
34363eed67faSmbalmer	    versuffix=
34373eed67faSmbalmer	  else
34383eed67faSmbalmer	    versuffix=".0.0"
34393eed67faSmbalmer	  fi
34403eed67faSmbalmer	fi
34413eed67faSmbalmer
34423eed67faSmbalmer	# Remove version info from name if versioning should be avoided
34433eed67faSmbalmer	if test "$avoid_version" = yes && test "$need_version" = no; then
34443eed67faSmbalmer	  major=
34453eed67faSmbalmer	  versuffix=
34463eed67faSmbalmer	  verstring=""
34473eed67faSmbalmer	else
34483eed67faSmbalmer	  # XXX
34493eed67faSmbalmer	  tmp=`echo $libname|sed -e 's,+,_,g' -e 's,-,_,g' -e 's,\.,_,g'`
34503eed67faSmbalmer	  eval tmp2=\$${tmp}_ltversion
34513eed67faSmbalmer	  if ! test -z "${SHARED_LIBS_LOG}"; then
34523eed67faSmbalmer		  if ! test -f ${SHARED_LIBS_LOG}; then
34533eed67faSmbalmer			  echo "# SHARED_LIBS+=	<libname>      <obsd version> # <orig version>" >${SHARED_LIBS_LOG}
34543eed67faSmbalmer		  fi
34553eed67faSmbalmer		  tmp4=`echo $libname|sed -e 's/^lib//'`
34563eed67faSmbalmer		  printf "SHARED_LIBS +=\t%-20s %-8s # %s\n" "$tmp4" "$tmp2" "$versuffix" >>${SHARED_LIBS_LOG}
34573eed67faSmbalmer	  fi
34583eed67faSmbalmer	  if test -n "$versuffix" && test -n "$tmp2"; then
34593eed67faSmbalmer	    versuffix=".$tmp2"
34603eed67faSmbalmer	  fi
34613eed67faSmbalmer	fi
34623eed67faSmbalmer
34633eed67faSmbalmer	# Check to see if the archive will have undefined symbols.
34643eed67faSmbalmer	if test "$allow_undefined" = yes; then
34653eed67faSmbalmer	  if test "$allow_undefined_flag" = unsupported; then
34663eed67faSmbalmer	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
34673eed67faSmbalmer	    build_libtool_libs=no
34683eed67faSmbalmer	    build_old_libs=yes
34693eed67faSmbalmer	  fi
34703eed67faSmbalmer	else
34713eed67faSmbalmer	  # Don't allow undefined symbols.
34723eed67faSmbalmer	  allow_undefined_flag="$no_undefined_flag"
34733eed67faSmbalmer	fi
34743eed67faSmbalmer      fi
34753eed67faSmbalmer
34763eed67faSmbalmer      if test "$mode" != relink; then
34773eed67faSmbalmer	# Remove our outputs, but don't remove object files since they
34783eed67faSmbalmer	# may have been created when compiling PIC objects.
34793eed67faSmbalmer	removelist=
34803eed67faSmbalmer	tempremovelist=`$echo "$output_objdir/*"`
34813eed67faSmbalmer	for p in $tempremovelist; do
34823eed67faSmbalmer	  case $p in
34833eed67faSmbalmer	    *.$objext)
34843eed67faSmbalmer	       ;;
34853eed67faSmbalmer	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
34863eed67faSmbalmer	       if test "X$precious_files_regex" != "X"; then
34873eed67faSmbalmer	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
34883eed67faSmbalmer	         then
34893eed67faSmbalmer		   continue
34903eed67faSmbalmer		 fi
34913eed67faSmbalmer	       fi
34923eed67faSmbalmer	       removelist="$removelist $p"
34933eed67faSmbalmer	       ;;
34943eed67faSmbalmer	    *) ;;
34953eed67faSmbalmer	  esac
34963eed67faSmbalmer	done
34973eed67faSmbalmer	if test -n "$removelist"; then
34983eed67faSmbalmer	  $show "${rm}r $removelist"
34993eed67faSmbalmer	  $run ${rm}r $removelist
35003eed67faSmbalmer	fi
35013eed67faSmbalmer      fi
35023eed67faSmbalmer
35033eed67faSmbalmer      # Now set the variables for building old libraries.
35043eed67faSmbalmer      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
35053eed67faSmbalmer	oldlibs="$oldlibs $output_objdir/$libname.$libext"
35063eed67faSmbalmer
35073eed67faSmbalmer	# Transform .lo files to .o files.
35083eed67faSmbalmer	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
35093eed67faSmbalmer      fi
35103eed67faSmbalmer
35113eed67faSmbalmer      # Eliminate all temporary directories.
35123eed67faSmbalmer      #for path in $notinst_path; do
35133eed67faSmbalmer      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
35143eed67faSmbalmer      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
35153eed67faSmbalmer      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
35163eed67faSmbalmer      #done
35173eed67faSmbalmer
35183eed67faSmbalmer      if test -n "$xrpath"; then
35193eed67faSmbalmer	# If the user specified any rpath flags, then add them.
35203eed67faSmbalmer	temp_xrpath=
35213eed67faSmbalmer	for libdir in $xrpath; do
35223eed67faSmbalmer	  temp_xrpath="$temp_xrpath -R$libdir"
35233eed67faSmbalmer	  case "$finalize_rpath " in
35243eed67faSmbalmer	  *" $libdir "*) ;;
35253eed67faSmbalmer	  *) finalize_rpath="$finalize_rpath $libdir" ;;
35263eed67faSmbalmer	  esac
35273eed67faSmbalmer	done
35283eed67faSmbalmer	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
35293eed67faSmbalmer	  dependency_libs="$temp_xrpath $dependency_libs"
35303eed67faSmbalmer	fi
35313eed67faSmbalmer      fi
35323eed67faSmbalmer
35333eed67faSmbalmer      # Make sure dlfiles contains only unique files that won't be dlpreopened
35343eed67faSmbalmer      old_dlfiles="$dlfiles"
35353eed67faSmbalmer      dlfiles=
35363eed67faSmbalmer      for lib in $old_dlfiles; do
35373eed67faSmbalmer	case " $dlprefiles $dlfiles " in
35383eed67faSmbalmer	*" $lib "*) ;;
35393eed67faSmbalmer	*) dlfiles="$dlfiles $lib" ;;
35403eed67faSmbalmer	esac
35413eed67faSmbalmer      done
35423eed67faSmbalmer
35433eed67faSmbalmer      # Make sure dlprefiles contains only unique files
35443eed67faSmbalmer      old_dlprefiles="$dlprefiles"
35453eed67faSmbalmer      dlprefiles=
35463eed67faSmbalmer      for lib in $old_dlprefiles; do
35473eed67faSmbalmer	case "$dlprefiles " in
35483eed67faSmbalmer	*" $lib "*) ;;
35493eed67faSmbalmer	*) dlprefiles="$dlprefiles $lib" ;;
35503eed67faSmbalmer	esac
35513eed67faSmbalmer      done
35523eed67faSmbalmer
35533eed67faSmbalmer      if test "$build_libtool_libs" = yes; then
35543eed67faSmbalmer	if test -n "$rpath"; then
35553eed67faSmbalmer	  case $host in
35563eed67faSmbalmer	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
35573eed67faSmbalmer	    # these systems don't actually have a c library (as such)!
35583eed67faSmbalmer	    ;;
35593eed67faSmbalmer	  *-*-rhapsody* | *-*-darwin1.[012])
35603eed67faSmbalmer	    # Rhapsody C library is in the System framework
35613eed67faSmbalmer	    deplibs="$deplibs -framework System"
35623eed67faSmbalmer	    ;;
35633eed67faSmbalmer	  *-*-netbsd*)
35643eed67faSmbalmer	    # Don't link with libc until the a.out ld.so is fixed.
35653eed67faSmbalmer	    ;;
35663eed67faSmbalmer	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
35673eed67faSmbalmer	    # Do not include libc due to us having libc/libc_r.
35683eed67faSmbalmer	    ;;
35693eed67faSmbalmer	  *-*-sco3.2v5* | *-*-sco5v6*)
35703eed67faSmbalmer	    # Causes problems with __ctype
35713eed67faSmbalmer	    ;;
35723eed67faSmbalmer	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
35733eed67faSmbalmer	    # Compiler inserts libc in the correct place for threads to work
35743eed67faSmbalmer	    ;;
35753eed67faSmbalmer 	  *)
35763eed67faSmbalmer	    # Add libc to deplibs on all other systems if necessary.
35773eed67faSmbalmer	    if test "$build_libtool_need_lc" = "yes"; then
35783eed67faSmbalmer	      deplibs="$deplibs -lc"
35793eed67faSmbalmer	    fi
35803eed67faSmbalmer	    ;;
35813eed67faSmbalmer	  esac
35823eed67faSmbalmer	fi
35833eed67faSmbalmer
35843eed67faSmbalmer	# Transform deplibs into only deplibs that can be linked in shared.
35853eed67faSmbalmer	name_save=$name
35863eed67faSmbalmer	libname_save=$libname
35873eed67faSmbalmer	release_save=$release
35883eed67faSmbalmer	versuffix_save=$versuffix
35893eed67faSmbalmer	major_save=$major
35903eed67faSmbalmer	# I'm not sure if I'm treating the release correctly.  I think
35913eed67faSmbalmer	# release should show up in the -l (ie -lgmp5) so we don't want to
35923eed67faSmbalmer	# add it in twice.  Is that correct?
35933eed67faSmbalmer	release=""
35943eed67faSmbalmer	versuffix=""
35953eed67faSmbalmer	major=""
35963eed67faSmbalmer	newdeplibs=
35973eed67faSmbalmer	droppeddeps=no
35983eed67faSmbalmer	case $deplibs_check_method in
35993eed67faSmbalmer	pass_all)
36003eed67faSmbalmer	  # Don't check for shared/static.  Everything works.
36013eed67faSmbalmer	  # This might be a little naive.  We might want to check
36023eed67faSmbalmer	  # whether the library exists or not.  But this is on
36033eed67faSmbalmer	  # osf3 & osf4 and I'm not really sure... Just
36043eed67faSmbalmer	  # implementing what was already the behavior.
36053eed67faSmbalmer	  newdeplibs=$deplibs
36063eed67faSmbalmer	  ;;
36073eed67faSmbalmer	test_compile)
36083eed67faSmbalmer	  # This code stresses the "libraries are programs" paradigm to its
36093eed67faSmbalmer	  # limits. Maybe even breaks it.  We compile a program, linking it
36103eed67faSmbalmer	  # against the deplibs as a proxy for the library.  Then we can check
36113eed67faSmbalmer	  # whether they linked in statically or dynamically with ldd.
36123eed67faSmbalmer	  $rm conftest.c
36133eed67faSmbalmer	  cat > conftest.c <<EOF
36143eed67faSmbalmer	  int main() { return 0; }
36153eed67faSmbalmerEOF
36163eed67faSmbalmer	  $rm conftest
36173eed67faSmbalmer	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
36183eed67faSmbalmer	    ldd_output=`ldd conftest`
36193eed67faSmbalmer	    for i in $deplibs; do
36203eed67faSmbalmer	      name=`expr $i : '-l\(.*\)'`
36213eed67faSmbalmer	      # If $name is empty we are operating on a -L argument.
36223eed67faSmbalmer              if test "$name" != "" && test "$name" != "0"; then
36233eed67faSmbalmer		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36243eed67faSmbalmer		  case " $predeps $postdeps " in
36253eed67faSmbalmer		  *" $i "*)
36263eed67faSmbalmer		    newdeplibs="$newdeplibs $i"
36273eed67faSmbalmer		    i=""
36283eed67faSmbalmer		    ;;
36293eed67faSmbalmer		  esac
36303eed67faSmbalmer	        fi
36313eed67faSmbalmer		if test -n "$i" ; then
36323eed67faSmbalmer		  libname=`eval \\$echo \"$libname_spec\"`
36333eed67faSmbalmer		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
36343eed67faSmbalmer		  set dummy $deplib_matches
36353eed67faSmbalmer		  deplib_match=$2
36363eed67faSmbalmer		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36373eed67faSmbalmer		    newdeplibs="$newdeplibs $i"
36383eed67faSmbalmer		  else
36393eed67faSmbalmer		    droppeddeps=yes
36403eed67faSmbalmer		    $echo
36413eed67faSmbalmer		    $echo "*** Warning: dynamic linker does not accept needed library $i."
36423eed67faSmbalmer		    $echo "*** I have the capability to make that library automatically link in when"
36433eed67faSmbalmer		    $echo "*** you link to this library.  But I can only do this if you have a"
36443eed67faSmbalmer		    $echo "*** shared version of the library, which I believe you do not have"
36453eed67faSmbalmer		    $echo "*** because a test_compile did reveal that the linker did not use it for"
36463eed67faSmbalmer		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
36473eed67faSmbalmer		  fi
36483eed67faSmbalmer		fi
36493eed67faSmbalmer	      else
36503eed67faSmbalmer		newdeplibs="$newdeplibs $i"
36513eed67faSmbalmer	      fi
36523eed67faSmbalmer	    done
36533eed67faSmbalmer	  else
36543eed67faSmbalmer	    # Error occurred in the first compile.  Let's try to salvage
36553eed67faSmbalmer	    # the situation: Compile a separate program for each library.
36563eed67faSmbalmer	    for i in $deplibs; do
36573eed67faSmbalmer	      name=`expr $i : '-l\(.*\)'`
36583eed67faSmbalmer	      # If $name is empty we are operating on a -L argument.
36593eed67faSmbalmer              if test "$name" != "" && test "$name" != "0"; then
36603eed67faSmbalmer		$rm conftest
36613eed67faSmbalmer		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
36623eed67faSmbalmer		  ldd_output=`ldd conftest`
36633eed67faSmbalmer		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36643eed67faSmbalmer		    case " $predeps $postdeps " in
36653eed67faSmbalmer		    *" $i "*)
36663eed67faSmbalmer		      newdeplibs="$newdeplibs $i"
36673eed67faSmbalmer		      i=""
36683eed67faSmbalmer		      ;;
36693eed67faSmbalmer		    esac
36703eed67faSmbalmer		  fi
36713eed67faSmbalmer		  if test -n "$i" ; then
36723eed67faSmbalmer		    libname=`eval \\$echo \"$libname_spec\"`
36733eed67faSmbalmer		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
36743eed67faSmbalmer		    set dummy $deplib_matches
36753eed67faSmbalmer		    deplib_match=$2
36763eed67faSmbalmer		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36773eed67faSmbalmer		      newdeplibs="$newdeplibs $i"
36783eed67faSmbalmer		    else
36793eed67faSmbalmer		      droppeddeps=yes
36803eed67faSmbalmer		      $echo
36813eed67faSmbalmer		      $echo "*** Warning: dynamic linker does not accept needed library $i."
36823eed67faSmbalmer		      $echo "*** I have the capability to make that library automatically link in when"
36833eed67faSmbalmer		      $echo "*** you link to this library.  But I can only do this if you have a"
36843eed67faSmbalmer		      $echo "*** shared version of the library, which you do not appear to have"
36853eed67faSmbalmer		      $echo "*** because a test_compile did reveal that the linker did not use this one"
36863eed67faSmbalmer		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
36873eed67faSmbalmer		    fi
36883eed67faSmbalmer		  fi
36893eed67faSmbalmer		else
36903eed67faSmbalmer		  droppeddeps=yes
36913eed67faSmbalmer		  $echo
36923eed67faSmbalmer		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
36933eed67faSmbalmer		  $echo "*** make it link in!  You will probably need to install it or some"
36943eed67faSmbalmer		  $echo "*** library that it depends on before this library will be fully"
36953eed67faSmbalmer		  $echo "*** functional.  Installing it before continuing would be even better."
36963eed67faSmbalmer		fi
36973eed67faSmbalmer	      else
36983eed67faSmbalmer		newdeplibs="$newdeplibs $i"
36993eed67faSmbalmer	      fi
37003eed67faSmbalmer	    done
37013eed67faSmbalmer	  fi
37023eed67faSmbalmer	  ;;
37033eed67faSmbalmer	file_magic*)
37043eed67faSmbalmer	  set dummy $deplibs_check_method
37053eed67faSmbalmer	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
37063eed67faSmbalmer	  for a_deplib in $deplibs; do
37073eed67faSmbalmer	    name=`expr $a_deplib : '-l\(.*\)'`
37083eed67faSmbalmer	    # If $name is empty we are operating on a -L argument.
37093eed67faSmbalmer            if test "$name" != "" && test  "$name" != "0"; then
37103eed67faSmbalmer	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
37113eed67faSmbalmer		case " $predeps $postdeps " in
37123eed67faSmbalmer		*" $a_deplib "*)
37133eed67faSmbalmer		  newdeplibs="$newdeplibs $a_deplib"
37143eed67faSmbalmer		  a_deplib=""
37153eed67faSmbalmer		  ;;
37163eed67faSmbalmer		esac
37173eed67faSmbalmer	      fi
37183eed67faSmbalmer	      if test -n "$a_deplib" ; then
37193eed67faSmbalmer		libname=`eval \\$echo \"$libname_spec\"`
37203eed67faSmbalmer		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
37213eed67faSmbalmer		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
37223eed67faSmbalmer		  for potent_lib in $potential_libs; do
37233eed67faSmbalmer		      # Follow soft links.
37243eed67faSmbalmer		      if ls -lLd "$potent_lib" 2>/dev/null \
37253eed67faSmbalmer			 | grep " -> " >/dev/null; then
37263eed67faSmbalmer			continue
37273eed67faSmbalmer		      fi
37283eed67faSmbalmer		      # The statement above tries to avoid entering an
37293eed67faSmbalmer		      # endless loop below, in case of cyclic links.
37303eed67faSmbalmer		      # We might still enter an endless loop, since a link
37313eed67faSmbalmer		      # loop can be closed while we follow links,
37323eed67faSmbalmer		      # but so what?
37333eed67faSmbalmer		      potlib="$potent_lib"
37343eed67faSmbalmer		      while test -h "$potlib" 2>/dev/null; do
37353eed67faSmbalmer			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
37363eed67faSmbalmer			case $potliblink in
37373eed67faSmbalmer			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
37383eed67faSmbalmer			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
37393eed67faSmbalmer			esac
37403eed67faSmbalmer		      done
37413eed67faSmbalmer		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
37423eed67faSmbalmer			 | ${SED} 10q \
37433eed67faSmbalmer			 | $EGREP "$file_magic_regex" > /dev/null; then
37443eed67faSmbalmer			newdeplibs="$newdeplibs $a_deplib"
37453eed67faSmbalmer			a_deplib=""
37463eed67faSmbalmer			break 2
37473eed67faSmbalmer		      fi
37483eed67faSmbalmer		  done
37493eed67faSmbalmer		done
37503eed67faSmbalmer	      fi
37513eed67faSmbalmer	      if test -n "$a_deplib" ; then
37523eed67faSmbalmer		droppeddeps=yes
37533eed67faSmbalmer		$echo
37543eed67faSmbalmer		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37553eed67faSmbalmer		$echo "*** I have the capability to make that library automatically link in when"
37563eed67faSmbalmer		$echo "*** you link to this library.  But I can only do this if you have a"
37573eed67faSmbalmer		$echo "*** shared version of the library, which you do not appear to have"
37583eed67faSmbalmer		$echo "*** because I did check the linker path looking for a file starting"
37593eed67faSmbalmer		if test -z "$potlib" ; then
37603eed67faSmbalmer		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
37613eed67faSmbalmer		else
37623eed67faSmbalmer		  $echo "*** with $libname and none of the candidates passed a file format test"
37633eed67faSmbalmer		  $echo "*** using a file magic. Last file checked: $potlib"
37643eed67faSmbalmer		fi
37653eed67faSmbalmer	      fi
37663eed67faSmbalmer	    else
37673eed67faSmbalmer	      # Add a -L argument.
37683eed67faSmbalmer	      newdeplibs="$newdeplibs $a_deplib"
37693eed67faSmbalmer	    fi
37703eed67faSmbalmer	  done # Gone through all deplibs.
37713eed67faSmbalmer	  ;;
37723eed67faSmbalmer	match_pattern*)
37733eed67faSmbalmer	  set dummy $deplibs_check_method
37743eed67faSmbalmer	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
37753eed67faSmbalmer	  for a_deplib in $deplibs; do
37763eed67faSmbalmer	    name=`expr $a_deplib : '-l\(.*\)'`
37773eed67faSmbalmer	    # If $name is empty we are operating on a -L argument.
37783eed67faSmbalmer	    if test -n "$name" && test "$name" != "0"; then
37793eed67faSmbalmer	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
37803eed67faSmbalmer		case " $predeps $postdeps " in
37813eed67faSmbalmer		*" $a_deplib "*)
37823eed67faSmbalmer		  newdeplibs="$newdeplibs $a_deplib"
37833eed67faSmbalmer		  a_deplib=""
37843eed67faSmbalmer		  ;;
37853eed67faSmbalmer		esac
37863eed67faSmbalmer	      fi
37873eed67faSmbalmer	      if test -n "$a_deplib" ; then
37883eed67faSmbalmer		libname=`eval \\$echo \"$libname_spec\"`
37893eed67faSmbalmer		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
37903eed67faSmbalmer		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
37913eed67faSmbalmer		  for potent_lib in $potential_libs; do
37923eed67faSmbalmer		    potlib="$potent_lib" # see symlink-check above in file_magic test
37933eed67faSmbalmer		    if eval $echo \"$potent_lib\" 2>/dev/null \
37943eed67faSmbalmer		        | ${SED} 10q \
37953eed67faSmbalmer		        | $EGREP "$match_pattern_regex" > /dev/null; then
37963eed67faSmbalmer		      newdeplibs="$newdeplibs $a_deplib"
37973eed67faSmbalmer		      a_deplib=""
37983eed67faSmbalmer		      break 2
37993eed67faSmbalmer		    fi
38003eed67faSmbalmer		  done
38013eed67faSmbalmer		done
38023eed67faSmbalmer	      fi
38033eed67faSmbalmer	      if test -n "$a_deplib" ; then
38043eed67faSmbalmer		droppeddeps=yes
38053eed67faSmbalmer		$echo
38063eed67faSmbalmer		$echo "*** Warning: linker path does not have real file for library $a_deplib."
38073eed67faSmbalmer		$echo "*** I have the capability to make that library automatically link in when"
38083eed67faSmbalmer		$echo "*** you link to this library.  But I can only do this if you have a"
38093eed67faSmbalmer		$echo "*** shared version of the library, which you do not appear to have"
38103eed67faSmbalmer		$echo "*** because I did check the linker path looking for a file starting"
38113eed67faSmbalmer		if test -z "$potlib" ; then
38123eed67faSmbalmer		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
38133eed67faSmbalmer		else
38143eed67faSmbalmer		  $echo "*** with $libname and none of the candidates passed a file format test"
38153eed67faSmbalmer		  $echo "*** using a regex pattern. Last file checked: $potlib"
38163eed67faSmbalmer		fi
38173eed67faSmbalmer	      fi
38183eed67faSmbalmer	    else
38193eed67faSmbalmer	      # Add a -L argument.
38203eed67faSmbalmer	      newdeplibs="$newdeplibs $a_deplib"
38213eed67faSmbalmer	    fi
38223eed67faSmbalmer	  done # Gone through all deplibs.
38233eed67faSmbalmer	  ;;
38243eed67faSmbalmer	none | unknown | *)
38253eed67faSmbalmer	  newdeplibs=""
38263eed67faSmbalmer	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
38273eed67faSmbalmer	    -e 's/ -[LR][^ ]*//g'`
38283eed67faSmbalmer	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
38293eed67faSmbalmer	    for i in $predeps $postdeps ; do
38303eed67faSmbalmer	      # can't use Xsed below, because $i might contain '/'
38313eed67faSmbalmer	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
38323eed67faSmbalmer	    done
38333eed67faSmbalmer	  fi
38343eed67faSmbalmer	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
38353eed67faSmbalmer	    | grep . >/dev/null; then
38363eed67faSmbalmer	    $echo
38373eed67faSmbalmer	    if test "X$deplibs_check_method" = "Xnone"; then
38383eed67faSmbalmer	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
38393eed67faSmbalmer	    else
38403eed67faSmbalmer	      $echo "*** Warning: inter-library dependencies are not known to be supported."
38413eed67faSmbalmer	    fi
38423eed67faSmbalmer	    $echo "*** All declared inter-library dependencies are being dropped."
38433eed67faSmbalmer	    droppeddeps=yes
38443eed67faSmbalmer	  fi
38453eed67faSmbalmer	  ;;
38463eed67faSmbalmer	esac
38473eed67faSmbalmer	versuffix=$versuffix_save
38483eed67faSmbalmer	major=$major_save
38493eed67faSmbalmer	release=$release_save
38503eed67faSmbalmer	libname=$libname_save
38513eed67faSmbalmer	name=$name_save
38523eed67faSmbalmer
38533eed67faSmbalmer	case $host in
38543eed67faSmbalmer	*-*-rhapsody* | *-*-darwin1.[012])
38553eed67faSmbalmer	  # On Rhapsody replace the C library is the System framework
38563eed67faSmbalmer	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
38573eed67faSmbalmer	  ;;
38583eed67faSmbalmer	esac
38593eed67faSmbalmer
38603eed67faSmbalmer	if test "$droppeddeps" = yes; then
38613eed67faSmbalmer	  if test "$module" = yes; then
38623eed67faSmbalmer	    $echo
38633eed67faSmbalmer	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
38643eed67faSmbalmer	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
38653eed67faSmbalmer	    $echo "*** a static module, that should work as long as the dlopening"
38663eed67faSmbalmer	    $echo "*** application is linked with the -dlopen flag."
38673eed67faSmbalmer	    if test -z "$global_symbol_pipe"; then
38683eed67faSmbalmer	      $echo
38693eed67faSmbalmer	      $echo "*** However, this would only work if libtool was able to extract symbol"
38703eed67faSmbalmer	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
38713eed67faSmbalmer	      $echo "*** not find such a program.  So, this module is probably useless."
38723eed67faSmbalmer	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
38733eed67faSmbalmer	    fi
38743eed67faSmbalmer	    if test "$build_old_libs" = no; then
38753eed67faSmbalmer	      oldlibs="$output_objdir/$libname.$libext"
38763eed67faSmbalmer	      build_libtool_libs=module
38773eed67faSmbalmer	      build_old_libs=yes
38783eed67faSmbalmer	    else
38793eed67faSmbalmer	      build_libtool_libs=no
38803eed67faSmbalmer	    fi
38813eed67faSmbalmer	  else
38823eed67faSmbalmer	    $echo "*** The inter-library dependencies that have been dropped here will be"
38833eed67faSmbalmer	    $echo "*** automatically added whenever a program is linked with this library"
38843eed67faSmbalmer	    $echo "*** or is declared to -dlopen it."
38853eed67faSmbalmer
38863eed67faSmbalmer	    if test "$allow_undefined" = no; then
38873eed67faSmbalmer	      $echo
38883eed67faSmbalmer	      $echo "*** Since this library must not contain undefined symbols,"
38893eed67faSmbalmer	      $echo "*** because either the platform does not support them or"
38903eed67faSmbalmer	      $echo "*** it was explicitly requested with -no-undefined,"
38913eed67faSmbalmer	      $echo "*** libtool will only create a static version of it."
38923eed67faSmbalmer	      if test "$build_old_libs" = no; then
38933eed67faSmbalmer		oldlibs="$output_objdir/$libname.$libext"
38943eed67faSmbalmer		build_libtool_libs=module
38953eed67faSmbalmer		build_old_libs=yes
38963eed67faSmbalmer	      else
38973eed67faSmbalmer		build_libtool_libs=no
38983eed67faSmbalmer	      fi
38993eed67faSmbalmer	    fi
39003eed67faSmbalmer	  fi
39013eed67faSmbalmer	fi
39023eed67faSmbalmer	# Done checking deplibs!
39033eed67faSmbalmer	deplibs=$newdeplibs
39043eed67faSmbalmer      fi
39053eed67faSmbalmer
39063eed67faSmbalmer
39073eed67faSmbalmer      # move library search paths that coincide with paths to not yet
39083eed67faSmbalmer      # installed libraries to the beginning of the library search list
39093eed67faSmbalmer      new_libs=
39103eed67faSmbalmer      for path in $notinst_path; do
39113eed67faSmbalmer	case " $new_libs " in
39123eed67faSmbalmer	*" -L$path/$objdir "*) ;;
39133eed67faSmbalmer	*)
39143eed67faSmbalmer	  case " $deplibs " in
39153eed67faSmbalmer	  *" -L$path/$objdir "*)
39163eed67faSmbalmer	    new_libs="$new_libs -L$path/$objdir" ;;
39173eed67faSmbalmer	  esac
39183eed67faSmbalmer	  ;;
39193eed67faSmbalmer	esac
39203eed67faSmbalmer      done
39213eed67faSmbalmer      for deplib in $deplibs; do
39223eed67faSmbalmer	case $deplib in
39233eed67faSmbalmer	-L*)
39243eed67faSmbalmer	  case " $new_libs " in
39253eed67faSmbalmer	  *" $deplib "*) ;;
39263eed67faSmbalmer	  *) new_libs="$new_libs $deplib" ;;
39273eed67faSmbalmer	  esac
39283eed67faSmbalmer	  ;;
39293eed67faSmbalmer	*) new_libs="$new_libs $deplib" ;;
39303eed67faSmbalmer	esac
39313eed67faSmbalmer      done
39323eed67faSmbalmer      deplibs="$new_libs"
39333eed67faSmbalmer
39343eed67faSmbalmer
39353eed67faSmbalmer      # All the library-specific variables (install_libdir is set above).
39363eed67faSmbalmer      library_names=
39373eed67faSmbalmer      old_library=
39383eed67faSmbalmer      dlname=
39393eed67faSmbalmer
39403eed67faSmbalmer      # Test again, we may have decided not to build it any more
39413eed67faSmbalmer      if test "$build_libtool_libs" = yes; then
39423eed67faSmbalmer	if test "$hardcode_into_libs" = yes; then
39433eed67faSmbalmer	  # Hardcode the library paths
39443eed67faSmbalmer	  hardcode_libdirs=
39453eed67faSmbalmer	  dep_rpath=
39463eed67faSmbalmer	  rpath="$finalize_rpath"
39473eed67faSmbalmer	  test "$mode" != relink && rpath="$compile_rpath$rpath"
39483eed67faSmbalmer	  for libdir in $rpath; do
39493eed67faSmbalmer	    if test -n "$hardcode_libdir_flag_spec"; then
39503eed67faSmbalmer	      if test -n "$hardcode_libdir_separator"; then
39513eed67faSmbalmer		if test -z "$hardcode_libdirs"; then
39523eed67faSmbalmer		  hardcode_libdirs="$libdir"
39533eed67faSmbalmer		else
39543eed67faSmbalmer		  # Just accumulate the unique libdirs.
39553eed67faSmbalmer		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
39563eed67faSmbalmer		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
39573eed67faSmbalmer		    ;;
39583eed67faSmbalmer		  *)
39593eed67faSmbalmer		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
39603eed67faSmbalmer		    ;;
39613eed67faSmbalmer		  esac
39623eed67faSmbalmer		fi
39633eed67faSmbalmer	      else
39643eed67faSmbalmer		eval flag=\"$hardcode_libdir_flag_spec\"
39653eed67faSmbalmer		dep_rpath="$dep_rpath $flag"
39663eed67faSmbalmer	      fi
39673eed67faSmbalmer	    elif test -n "$runpath_var"; then
39683eed67faSmbalmer	      case "$perm_rpath " in
39693eed67faSmbalmer	      *" $libdir "*) ;;
39703eed67faSmbalmer	      *) perm_rpath="$perm_rpath $libdir" ;;
39713eed67faSmbalmer	      esac
39723eed67faSmbalmer	    fi
39733eed67faSmbalmer	  done
39743eed67faSmbalmer	  # Substitute the hardcoded libdirs into the rpath.
39753eed67faSmbalmer	  if test -n "$hardcode_libdir_separator" &&
39763eed67faSmbalmer	     test -n "$hardcode_libdirs"; then
39773eed67faSmbalmer	    libdir="$hardcode_libdirs"
39783eed67faSmbalmer	    if test -n "$hardcode_libdir_flag_spec_ld"; then
39793eed67faSmbalmer	      case $archive_cmds in
39803eed67faSmbalmer	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
39813eed67faSmbalmer	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
39823eed67faSmbalmer	      esac
39833eed67faSmbalmer	    else
39843eed67faSmbalmer	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
39853eed67faSmbalmer	    fi
39863eed67faSmbalmer	  fi
39873eed67faSmbalmer	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
39883eed67faSmbalmer	    # We should set the runpath_var.
39893eed67faSmbalmer	    rpath=
39903eed67faSmbalmer	    for dir in $perm_rpath; do
39913eed67faSmbalmer	      rpath="$rpath$dir:"
39923eed67faSmbalmer	    done
39933eed67faSmbalmer	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
39943eed67faSmbalmer	  fi
39953eed67faSmbalmer	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
39963eed67faSmbalmer	fi
39973eed67faSmbalmer
39983eed67faSmbalmer	shlibpath="$finalize_shlibpath"
39993eed67faSmbalmer	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
40003eed67faSmbalmer	if test -n "$shlibpath"; then
40013eed67faSmbalmer	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
40023eed67faSmbalmer	fi
40033eed67faSmbalmer
40043eed67faSmbalmer	# Get the real and link names of the library.
40053eed67faSmbalmer	eval shared_ext=\"$shrext_cmds\"
40063eed67faSmbalmer	eval library_names=\"$library_names_spec\"
40073eed67faSmbalmer	set dummy $library_names
40083eed67faSmbalmer	realname="$2"
40093eed67faSmbalmer	shift; shift
40103eed67faSmbalmer
40113eed67faSmbalmer	if test -n "$soname_spec"; then
40123eed67faSmbalmer	  eval soname=\"$soname_spec\"
40133eed67faSmbalmer	else
40143eed67faSmbalmer	  soname="$realname"
40153eed67faSmbalmer	fi
40163eed67faSmbalmer	if test -z "$dlname"; then
40173eed67faSmbalmer	  dlname=$soname
40183eed67faSmbalmer	fi
40193eed67faSmbalmer
40203eed67faSmbalmer	lib="$output_objdir/$realname"
40213eed67faSmbalmer	linknames=
40223eed67faSmbalmer	for link
40233eed67faSmbalmer	do
40243eed67faSmbalmer	  linknames="$linknames $link"
40253eed67faSmbalmer	done
40263eed67faSmbalmer
40273eed67faSmbalmer	# Use standard objects if they are pic
40283eed67faSmbalmer	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
40293eed67faSmbalmer
40303eed67faSmbalmer	# Prepare the list of exported symbols
40313eed67faSmbalmer	if test -z "$export_symbols"; then
40323eed67faSmbalmer	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
40333eed67faSmbalmer	    $show "generating symbol list for \`$libname.la'"
40343eed67faSmbalmer	    export_symbols="$output_objdir/$libname.exp"
40353eed67faSmbalmer	    $run $rm $export_symbols
40363eed67faSmbalmer	    cmds=$export_symbols_cmds
40373eed67faSmbalmer	    save_ifs="$IFS"; IFS='~'
40383eed67faSmbalmer	    for cmd in $cmds; do
40393eed67faSmbalmer	      IFS="$save_ifs"
40403eed67faSmbalmer	      eval cmd=\"$cmd\"
40413eed67faSmbalmer	      if len=`expr "X$cmd" : ".*"` &&
40423eed67faSmbalmer	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40433eed67faSmbalmer	        $show "$cmd"
40443eed67faSmbalmer	        $run eval "$cmd" || exit $?
40453eed67faSmbalmer	        skipped_export=false
40463eed67faSmbalmer	      else
40473eed67faSmbalmer	        # The command line is too long to execute in one step.
40483eed67faSmbalmer	        $show "using reloadable object file for export list..."
40493eed67faSmbalmer	        skipped_export=:
40503eed67faSmbalmer		# Break out early, otherwise skipped_export may be
40513eed67faSmbalmer		# set to false by a later but shorter cmd.
40523eed67faSmbalmer		break
40533eed67faSmbalmer	      fi
40543eed67faSmbalmer	    done
40553eed67faSmbalmer	    IFS="$save_ifs"
40563eed67faSmbalmer	    if test -n "$export_symbols_regex"; then
40573eed67faSmbalmer	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
40583eed67faSmbalmer	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
40593eed67faSmbalmer	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
40603eed67faSmbalmer	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
40613eed67faSmbalmer	    fi
40623eed67faSmbalmer	  fi
40633eed67faSmbalmer	fi
40643eed67faSmbalmer
40653eed67faSmbalmer	if test -n "$export_symbols" && test -n "$include_expsyms"; then
40663eed67faSmbalmer	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
40673eed67faSmbalmer	fi
40683eed67faSmbalmer
40693eed67faSmbalmer	tmp_deplibs=
40703eed67faSmbalmer	for test_deplib in $deplibs; do
40713eed67faSmbalmer		case " $convenience " in
40723eed67faSmbalmer		*" $test_deplib "*) ;;
40733eed67faSmbalmer		*)
40743eed67faSmbalmer			tmp_deplibs="$tmp_deplibs $test_deplib"
40753eed67faSmbalmer			;;
40763eed67faSmbalmer		esac
40773eed67faSmbalmer	done
40783eed67faSmbalmer	deplibs="$tmp_deplibs"
40793eed67faSmbalmer
40803eed67faSmbalmer	if test -n "$convenience"; then
40813eed67faSmbalmer	  if test -n "$whole_archive_flag_spec"; then
40823eed67faSmbalmer	    save_libobjs=$libobjs
40833eed67faSmbalmer	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
40843eed67faSmbalmer	  else
40853eed67faSmbalmer	    gentop="$output_objdir/${outputname}x"
40863eed67faSmbalmer	    generated="$generated $gentop"
40873eed67faSmbalmer
40883eed67faSmbalmer	    func_extract_archives $gentop $convenience
40893eed67faSmbalmer	    libobjs="$libobjs $func_extract_archives_result"
40903eed67faSmbalmer	  fi
40913eed67faSmbalmer	fi
40923eed67faSmbalmer	
40933eed67faSmbalmer	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
40943eed67faSmbalmer	  eval flag=\"$thread_safe_flag_spec\"
40953eed67faSmbalmer	  linker_flags="$linker_flags $flag"
40963eed67faSmbalmer	fi
40973eed67faSmbalmer
40983eed67faSmbalmer	# Make a backup of the uninstalled library when relinking
40993eed67faSmbalmer	if test "$mode" = relink; then
41003eed67faSmbalmer	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
41013eed67faSmbalmer	fi
41023eed67faSmbalmer
41033eed67faSmbalmer	# Do each of the archive commands.
41043eed67faSmbalmer	if test "$module" = yes && test -n "$module_cmds" ; then
41053eed67faSmbalmer	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
41063eed67faSmbalmer	    eval test_cmds=\"$module_expsym_cmds\"
41073eed67faSmbalmer	    cmds=$module_expsym_cmds
41083eed67faSmbalmer	  else
41093eed67faSmbalmer	    eval test_cmds=\"$module_cmds\"
41103eed67faSmbalmer	    cmds=$module_cmds
41113eed67faSmbalmer	  fi
41123eed67faSmbalmer	else
41133eed67faSmbalmer	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
41143eed67faSmbalmer	  eval test_cmds=\"$archive_expsym_cmds\"
41153eed67faSmbalmer	  cmds=$archive_expsym_cmds
41163eed67faSmbalmer	else
41173eed67faSmbalmer	  eval test_cmds=\"$archive_cmds\"
41183eed67faSmbalmer	  cmds=$archive_cmds
41193eed67faSmbalmer	  fi
41203eed67faSmbalmer	fi
41213eed67faSmbalmer
41223eed67faSmbalmer	if test "X$skipped_export" != "X:" &&
41233eed67faSmbalmer	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
41243eed67faSmbalmer	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
41253eed67faSmbalmer	  :
41263eed67faSmbalmer	else
41273eed67faSmbalmer	  # The command line is too long to link in one step, link piecewise.
41283eed67faSmbalmer	  $echo "creating reloadable object files..."
41293eed67faSmbalmer
41303eed67faSmbalmer	  # Save the value of $output and $libobjs because we want to
41313eed67faSmbalmer	  # use them later.  If we have whole_archive_flag_spec, we
41323eed67faSmbalmer	  # want to use save_libobjs as it was before
41333eed67faSmbalmer	  # whole_archive_flag_spec was expanded, because we can't
41343eed67faSmbalmer	  # assume the linker understands whole_archive_flag_spec.
41353eed67faSmbalmer	  # This may have to be revisited, in case too many
41363eed67faSmbalmer	  # convenience libraries get linked in and end up exceeding
41373eed67faSmbalmer	  # the spec.
41383eed67faSmbalmer	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
41393eed67faSmbalmer	    save_libobjs=$libobjs
41403eed67faSmbalmer	  fi
41413eed67faSmbalmer	  save_output=$output
41423eed67faSmbalmer	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
41433eed67faSmbalmer
41443eed67faSmbalmer	  # Clear the reloadable object creation command queue and
41453eed67faSmbalmer	  # initialize k to one.
41463eed67faSmbalmer	  test_cmds=
41473eed67faSmbalmer	  concat_cmds=
41483eed67faSmbalmer	  objlist=
41493eed67faSmbalmer	  delfiles=
41503eed67faSmbalmer	  last_robj=
41513eed67faSmbalmer	  k=1
41523eed67faSmbalmer	  output=$output_objdir/$output_la-${k}.$objext
41533eed67faSmbalmer	  # Loop over the list of objects to be linked.
41543eed67faSmbalmer	  for obj in $save_libobjs
41553eed67faSmbalmer	  do
41563eed67faSmbalmer	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
41573eed67faSmbalmer	    if test "X$objlist" = X ||
41583eed67faSmbalmer	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
41593eed67faSmbalmer		 test "$len" -le "$max_cmd_len"; }; then
41603eed67faSmbalmer	      objlist="$objlist $obj"
41613eed67faSmbalmer	    else
41623eed67faSmbalmer	      # The command $test_cmds is almost too long, add a
41633eed67faSmbalmer	      # command to the queue.
41643eed67faSmbalmer	      if test "$k" -eq 1 ; then
41653eed67faSmbalmer		# The first file doesn't have a previous command to add.
41663eed67faSmbalmer		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
41673eed67faSmbalmer	      else
41683eed67faSmbalmer		# All subsequent reloadable object files will link in
41693eed67faSmbalmer		# the last one created.
41703eed67faSmbalmer		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
41713eed67faSmbalmer	      fi
41723eed67faSmbalmer	      last_robj=$output_objdir/$output_la-${k}.$objext
41733eed67faSmbalmer	      k=`expr $k + 1`
41743eed67faSmbalmer	      output=$output_objdir/$output_la-${k}.$objext
41753eed67faSmbalmer	      objlist=$obj
41763eed67faSmbalmer	      len=1
41773eed67faSmbalmer	    fi
41783eed67faSmbalmer	  done
41793eed67faSmbalmer	  # Handle the remaining objects by creating one last
41803eed67faSmbalmer	  # reloadable object file.  All subsequent reloadable object
41813eed67faSmbalmer	  # files will link in the last one created.
41823eed67faSmbalmer	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
41833eed67faSmbalmer	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
41843eed67faSmbalmer
41853eed67faSmbalmer	  if ${skipped_export-false}; then
41863eed67faSmbalmer	    $show "generating symbol list for \`$libname.la'"
41873eed67faSmbalmer	    export_symbols="$output_objdir/$libname.exp"
41883eed67faSmbalmer	    $run $rm $export_symbols
41893eed67faSmbalmer	    libobjs=$output
41903eed67faSmbalmer	    # Append the command to create the export file.
41913eed67faSmbalmer	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
41923eed67faSmbalmer          fi
41933eed67faSmbalmer
41943eed67faSmbalmer	  # Set up a command to remove the reloadable object files
41953eed67faSmbalmer	  # after they are used.
41963eed67faSmbalmer	  i=0
41973eed67faSmbalmer	  while test "$i" -lt "$k"
41983eed67faSmbalmer	  do
41993eed67faSmbalmer	    i=`expr $i + 1`
42003eed67faSmbalmer	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
42013eed67faSmbalmer	  done
42023eed67faSmbalmer
42033eed67faSmbalmer	  $echo "creating a temporary reloadable object file: $output"
42043eed67faSmbalmer
42053eed67faSmbalmer	  # Loop through the commands generated above and execute them.
42063eed67faSmbalmer	  save_ifs="$IFS"; IFS='~'
42073eed67faSmbalmer	  for cmd in $concat_cmds; do
42083eed67faSmbalmer	    IFS="$save_ifs"
42093eed67faSmbalmer	    $show "$cmd"
42103eed67faSmbalmer	    $run eval "$cmd" || exit $?
42113eed67faSmbalmer	  done
42123eed67faSmbalmer	  IFS="$save_ifs"
42133eed67faSmbalmer
42143eed67faSmbalmer	  libobjs=$output
42153eed67faSmbalmer	  # Restore the value of output.
42163eed67faSmbalmer	  output=$save_output
42173eed67faSmbalmer
42183eed67faSmbalmer	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
42193eed67faSmbalmer	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
42203eed67faSmbalmer	  fi
42213eed67faSmbalmer	  # Expand the library linking commands again to reset the
42223eed67faSmbalmer	  # value of $libobjs for piecewise linking.
42233eed67faSmbalmer
42243eed67faSmbalmer	  # Do each of the archive commands.
42253eed67faSmbalmer	  if test "$module" = yes && test -n "$module_cmds" ; then
42263eed67faSmbalmer	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
42273eed67faSmbalmer	      cmds=$module_expsym_cmds
42283eed67faSmbalmer	    else
42293eed67faSmbalmer	      cmds=$module_cmds
42303eed67faSmbalmer	    fi
42313eed67faSmbalmer	  else
42323eed67faSmbalmer	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
42333eed67faSmbalmer	    cmds=$archive_expsym_cmds
42343eed67faSmbalmer	  else
42353eed67faSmbalmer	    cmds=$archive_cmds
42363eed67faSmbalmer	    fi
42373eed67faSmbalmer	  fi
42383eed67faSmbalmer
42393eed67faSmbalmer	  # Append the command to remove the reloadable object files
42403eed67faSmbalmer	  # to the just-reset $cmds.
42413eed67faSmbalmer	  eval cmds=\"\$cmds~\$rm $delfiles\"
42423eed67faSmbalmer	fi
42433eed67faSmbalmer	save_ifs="$IFS"; IFS='~'
42443eed67faSmbalmer	for cmd in $cmds; do
42453eed67faSmbalmer	  IFS="$save_ifs"
42463eed67faSmbalmer	  eval cmd=\"$cmd\"
42473eed67faSmbalmer	  $show "$cmd"
42483eed67faSmbalmer	  $run eval "$cmd" || {
42493eed67faSmbalmer	    lt_exit=$?
42503eed67faSmbalmer
42513eed67faSmbalmer	    # Restore the uninstalled library and exit
42523eed67faSmbalmer	    if test "$mode" = relink; then
42533eed67faSmbalmer	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
42543eed67faSmbalmer	    fi
42553eed67faSmbalmer
42563eed67faSmbalmer	    exit $lt_exit
42573eed67faSmbalmer	  }
42583eed67faSmbalmer	done
42593eed67faSmbalmer	IFS="$save_ifs"
42603eed67faSmbalmer
42613eed67faSmbalmer	# Restore the uninstalled library and exit
42623eed67faSmbalmer	if test "$mode" = relink; then
42633eed67faSmbalmer	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
42643eed67faSmbalmer
42653eed67faSmbalmer	  if test -n "$convenience"; then
42663eed67faSmbalmer	    if test -z "$whole_archive_flag_spec"; then
42673eed67faSmbalmer	      $show "${rm}r $gentop"
42683eed67faSmbalmer	      $run ${rm}r "$gentop"
42693eed67faSmbalmer	    fi
42703eed67faSmbalmer	  fi
42713eed67faSmbalmer
42723eed67faSmbalmer	  exit $EXIT_SUCCESS
42733eed67faSmbalmer	fi
42743eed67faSmbalmer
42753eed67faSmbalmer	# Create links to the real library.
42763eed67faSmbalmer	for linkname in $linknames; do
42773eed67faSmbalmer	  if test "$realname" != "$linkname"; then
42783eed67faSmbalmer	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
42793eed67faSmbalmer	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
42803eed67faSmbalmer	  fi
42813eed67faSmbalmer	done
42823eed67faSmbalmer
42833eed67faSmbalmer	# If -module or -export-dynamic was specified, set the dlname.
42843eed67faSmbalmer	if test "$module" = yes || test "$export_dynamic" = yes; then
42853eed67faSmbalmer	  # On all known operating systems, these are identical.
42863eed67faSmbalmer	  dlname="$soname"
42873eed67faSmbalmer	fi
42883eed67faSmbalmer      fi
42893eed67faSmbalmer      ;;
42903eed67faSmbalmer
42913eed67faSmbalmer    obj)
42923eed67faSmbalmer      case " $deplibs" in
42933eed67faSmbalmer      *\ -l* | *\ -L*)
42943eed67faSmbalmer	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
42953eed67faSmbalmer      esac
42963eed67faSmbalmer
42973eed67faSmbalmer      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
42983eed67faSmbalmer	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
42993eed67faSmbalmer      fi
43003eed67faSmbalmer
43013eed67faSmbalmer      if test -n "$rpath"; then
43023eed67faSmbalmer	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
43033eed67faSmbalmer      fi
43043eed67faSmbalmer
43053eed67faSmbalmer      if test -n "$xrpath"; then
43063eed67faSmbalmer	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
43073eed67faSmbalmer      fi
43083eed67faSmbalmer
43093eed67faSmbalmer      if test -n "$vinfo"; then
43103eed67faSmbalmer	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
43113eed67faSmbalmer      fi
43123eed67faSmbalmer
43133eed67faSmbalmer      if test -n "$release"; then
43143eed67faSmbalmer	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
43153eed67faSmbalmer      fi
43163eed67faSmbalmer
43173eed67faSmbalmer      case $output in
43183eed67faSmbalmer      *.lo)
43193eed67faSmbalmer	if test -n "$objs$old_deplibs"; then
43203eed67faSmbalmer	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
43213eed67faSmbalmer	  exit $EXIT_FAILURE
43223eed67faSmbalmer	fi
43233eed67faSmbalmer	libobj="$output"
43243eed67faSmbalmer	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
43253eed67faSmbalmer	;;
43263eed67faSmbalmer      *)
43273eed67faSmbalmer	libobj=
43283eed67faSmbalmer	obj="$output"
43293eed67faSmbalmer	;;
43303eed67faSmbalmer      esac
43313eed67faSmbalmer
43323eed67faSmbalmer      # Delete the old objects.
43333eed67faSmbalmer      $run $rm $obj $libobj
43343eed67faSmbalmer
43353eed67faSmbalmer      # Objects from convenience libraries.  This assumes
43363eed67faSmbalmer      # single-version convenience libraries.  Whenever we create
43373eed67faSmbalmer      # different ones for PIC/non-PIC, this we'll have to duplicate
43383eed67faSmbalmer      # the extraction.
43393eed67faSmbalmer      reload_conv_objs=
43403eed67faSmbalmer      gentop=
43413eed67faSmbalmer      # reload_cmds runs $LD directly, so let us get rid of
43423eed67faSmbalmer      # -Wl from whole_archive_flag_spec and hope we can get by with
43433eed67faSmbalmer      # turning comma into space..
43443eed67faSmbalmer      wl=
43453eed67faSmbalmer
43463eed67faSmbalmer      if test -n "$convenience"; then
43473eed67faSmbalmer	if test -n "$whole_archive_flag_spec"; then
43483eed67faSmbalmer	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
43493eed67faSmbalmer	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
43503eed67faSmbalmer	else
43513eed67faSmbalmer	  gentop="$output_objdir/${obj}x"
43523eed67faSmbalmer	  generated="$generated $gentop"
43533eed67faSmbalmer
43543eed67faSmbalmer	  func_extract_archives $gentop $convenience
43553eed67faSmbalmer	  reload_conv_objs="$reload_objs $func_extract_archives_result"
43563eed67faSmbalmer	fi
43573eed67faSmbalmer      fi
43583eed67faSmbalmer
43593eed67faSmbalmer      # Create the old-style object.
43603eed67faSmbalmer      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
43613eed67faSmbalmer
43623eed67faSmbalmer      output="$obj"
43633eed67faSmbalmer      cmds=$reload_cmds
43643eed67faSmbalmer      save_ifs="$IFS"; IFS='~'
43653eed67faSmbalmer      for cmd in $cmds; do
43663eed67faSmbalmer	IFS="$save_ifs"
43673eed67faSmbalmer	eval cmd=\"$cmd\"
43683eed67faSmbalmer	$show "$cmd"
43693eed67faSmbalmer	$run eval "$cmd" || exit $?
43703eed67faSmbalmer      done
43713eed67faSmbalmer      IFS="$save_ifs"
43723eed67faSmbalmer
43733eed67faSmbalmer      # Exit if we aren't doing a library object file.
43743eed67faSmbalmer      if test -z "$libobj"; then
43753eed67faSmbalmer	if test -n "$gentop"; then
43763eed67faSmbalmer	  $show "${rm}r $gentop"
43773eed67faSmbalmer	  $run ${rm}r $gentop
43783eed67faSmbalmer	fi
43793eed67faSmbalmer
43803eed67faSmbalmer	exit $EXIT_SUCCESS
43813eed67faSmbalmer      fi
43823eed67faSmbalmer
43833eed67faSmbalmer      if test "$build_libtool_libs" != yes; then
43843eed67faSmbalmer	if test -n "$gentop"; then
43853eed67faSmbalmer	  $show "${rm}r $gentop"
43863eed67faSmbalmer	  $run ${rm}r $gentop
43873eed67faSmbalmer	fi
43883eed67faSmbalmer
43893eed67faSmbalmer	# Create an invalid libtool object if no PIC, so that we don't
43903eed67faSmbalmer	# accidentally link it into a program.
43913eed67faSmbalmer	# $show "echo timestamp > $libobj"
43923eed67faSmbalmer	# $run eval "echo timestamp > $libobj" || exit $?
43933eed67faSmbalmer	exit $EXIT_SUCCESS
43943eed67faSmbalmer      fi
43953eed67faSmbalmer
43963eed67faSmbalmer      if test -n "$pic_flag" || test "$pic_mode" != default; then
43973eed67faSmbalmer	# Only do commands if we really have different PIC objects.
43983eed67faSmbalmer	reload_objs="$libobjs $reload_conv_objs"
43993eed67faSmbalmer	output="$libobj"
44003eed67faSmbalmer	cmds=$reload_cmds
44013eed67faSmbalmer	save_ifs="$IFS"; IFS='~'
44023eed67faSmbalmer	for cmd in $cmds; do
44033eed67faSmbalmer	  IFS="$save_ifs"
44043eed67faSmbalmer	  eval cmd=\"$cmd\"
44053eed67faSmbalmer	  $show "$cmd"
44063eed67faSmbalmer	  $run eval "$cmd" || exit $?
44073eed67faSmbalmer	done
44083eed67faSmbalmer	IFS="$save_ifs"
44093eed67faSmbalmer      fi
44103eed67faSmbalmer
44113eed67faSmbalmer      if test -n "$gentop"; then
44123eed67faSmbalmer	$show "${rm}r $gentop"
44133eed67faSmbalmer	$run ${rm}r $gentop
44143eed67faSmbalmer      fi
44153eed67faSmbalmer
44163eed67faSmbalmer      exit $EXIT_SUCCESS
44173eed67faSmbalmer      ;;
44183eed67faSmbalmer
44193eed67faSmbalmer    prog)
44203eed67faSmbalmer      case $host in
44213eed67faSmbalmer	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
44223eed67faSmbalmer      esac
44233eed67faSmbalmer      if test -n "$vinfo"; then
44243eed67faSmbalmer	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
44253eed67faSmbalmer      fi
44263eed67faSmbalmer
44273eed67faSmbalmer      if test -n "$release"; then
44283eed67faSmbalmer	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
44293eed67faSmbalmer      fi
44303eed67faSmbalmer
44313eed67faSmbalmer      if test "$preload" = yes; then
44323eed67faSmbalmer	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
44333eed67faSmbalmer	   test "$dlopen_self_static" = unknown; then
44343eed67faSmbalmer	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
44353eed67faSmbalmer	fi
44363eed67faSmbalmer      fi
44373eed67faSmbalmer
44383eed67faSmbalmer      case $host in
44393eed67faSmbalmer      *-*-rhapsody* | *-*-darwin1.[012])
44403eed67faSmbalmer	# On Rhapsody replace the C library is the System framework
44413eed67faSmbalmer	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44423eed67faSmbalmer	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44433eed67faSmbalmer	;;
44443eed67faSmbalmer      esac
44453eed67faSmbalmer
44463eed67faSmbalmer      case $host in
44473eed67faSmbalmer      *darwin*)
44483eed67faSmbalmer        # Don't allow lazy linking, it breaks C++ global constructors
44493eed67faSmbalmer        if test "$tagname" = CXX ; then
44503eed67faSmbalmer        compile_command="$compile_command ${wl}-bind_at_load"
44513eed67faSmbalmer        finalize_command="$finalize_command ${wl}-bind_at_load"
44523eed67faSmbalmer        fi
44533eed67faSmbalmer        ;;
44543eed67faSmbalmer      esac
44553eed67faSmbalmer
44563eed67faSmbalmer
44573eed67faSmbalmer      # move library search paths that coincide with paths to not yet
44583eed67faSmbalmer      # installed libraries to the beginning of the library search list
44593eed67faSmbalmer      new_libs=
44603eed67faSmbalmer      for path in $notinst_path; do
44613eed67faSmbalmer	case " $new_libs " in
44623eed67faSmbalmer	*" -L$path/$objdir "*) ;;
44633eed67faSmbalmer	*)
44643eed67faSmbalmer	  case " $compile_deplibs " in
44653eed67faSmbalmer	  *" -L$path/$objdir "*)
44663eed67faSmbalmer	    new_libs="$new_libs -L$path/$objdir" ;;
44673eed67faSmbalmer	  esac
44683eed67faSmbalmer	  ;;
44693eed67faSmbalmer	esac
44703eed67faSmbalmer      done
44713eed67faSmbalmer      for deplib in $compile_deplibs; do
44723eed67faSmbalmer	case $deplib in
44733eed67faSmbalmer	-L*)
44743eed67faSmbalmer	  case " $new_libs " in
44753eed67faSmbalmer	  *" $deplib "*) ;;
44763eed67faSmbalmer	  *) new_libs="$new_libs $deplib" ;;
44773eed67faSmbalmer	  esac
44783eed67faSmbalmer	  ;;
44793eed67faSmbalmer	*) new_libs="$new_libs $deplib" ;;
44803eed67faSmbalmer	esac
44813eed67faSmbalmer      done
44823eed67faSmbalmer      compile_deplibs="$new_libs"
44833eed67faSmbalmer
44843eed67faSmbalmer
44853eed67faSmbalmer      compile_command="$compile_command $compile_deplibs"
44863eed67faSmbalmer      finalize_command="$finalize_command $finalize_deplibs"
44873eed67faSmbalmer
44883eed67faSmbalmer      if test -n "$rpath$xrpath"; then
44893eed67faSmbalmer	# If the user specified any rpath flags, then add them.
44903eed67faSmbalmer	for libdir in $rpath $xrpath; do
44913eed67faSmbalmer	  # This is the magic to use -rpath.
44923eed67faSmbalmer	  case "$finalize_rpath " in
44933eed67faSmbalmer	  *" $libdir "*) ;;
44943eed67faSmbalmer	  *) finalize_rpath="$finalize_rpath $libdir" ;;
44953eed67faSmbalmer	  esac
44963eed67faSmbalmer	done
44973eed67faSmbalmer      fi
44983eed67faSmbalmer
44993eed67faSmbalmer      # Now hardcode the library paths
45003eed67faSmbalmer      rpath=
45013eed67faSmbalmer      hardcode_libdirs=
45023eed67faSmbalmer      for libdir in $compile_rpath $finalize_rpath; do
45033eed67faSmbalmer	if test -n "$hardcode_libdir_flag_spec"; then
45043eed67faSmbalmer	  if test -n "$hardcode_libdir_separator"; then
45053eed67faSmbalmer	    if test -z "$hardcode_libdirs"; then
45063eed67faSmbalmer	      hardcode_libdirs="$libdir"
45073eed67faSmbalmer	    else
45083eed67faSmbalmer	      # Just accumulate the unique libdirs.
45093eed67faSmbalmer	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
45103eed67faSmbalmer	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
45113eed67faSmbalmer		;;
45123eed67faSmbalmer	      *)
45133eed67faSmbalmer		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
45143eed67faSmbalmer		;;
45153eed67faSmbalmer	      esac
45163eed67faSmbalmer	    fi
45173eed67faSmbalmer	  else
45183eed67faSmbalmer	    eval flag=\"$hardcode_libdir_flag_spec\"
45193eed67faSmbalmer	    rpath="$rpath $flag"
45203eed67faSmbalmer	  fi
45213eed67faSmbalmer	elif test -n "$runpath_var"; then
45223eed67faSmbalmer	  case "$perm_rpath " in
45233eed67faSmbalmer	  *" $libdir "*) ;;
45243eed67faSmbalmer	  *) perm_rpath="$perm_rpath $libdir" ;;
45253eed67faSmbalmer	  esac
45263eed67faSmbalmer	fi
45273eed67faSmbalmer	case $host in
45283eed67faSmbalmer	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
45293eed67faSmbalmer	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
45303eed67faSmbalmer	  case :$dllsearchpath: in
45313eed67faSmbalmer	  *":$libdir:"*) ;;
45323eed67faSmbalmer	  *) dllsearchpath="$dllsearchpath:$libdir";;
45333eed67faSmbalmer	  esac
45343eed67faSmbalmer	  case :$dllsearchpath: in
45353eed67faSmbalmer	  *":$testbindir:"*) ;;
45363eed67faSmbalmer	  *) dllsearchpath="$dllsearchpath:$testbindir";;
45373eed67faSmbalmer	  esac
45383eed67faSmbalmer	  ;;
45393eed67faSmbalmer	esac
45403eed67faSmbalmer      done
45413eed67faSmbalmer      # Substitute the hardcoded libdirs into the rpath.
45423eed67faSmbalmer      if test -n "$hardcode_libdir_separator" &&
45433eed67faSmbalmer	 test -n "$hardcode_libdirs"; then
45443eed67faSmbalmer	libdir="$hardcode_libdirs"
45453eed67faSmbalmer	eval rpath=\" $hardcode_libdir_flag_spec\"
45463eed67faSmbalmer      fi
45473eed67faSmbalmer      compile_rpath="$rpath"
45483eed67faSmbalmer
45493eed67faSmbalmer      rpath=
45503eed67faSmbalmer      hardcode_libdirs=
45513eed67faSmbalmer      for libdir in $finalize_rpath; do
45523eed67faSmbalmer	if test -n "$hardcode_libdir_flag_spec"; then
45533eed67faSmbalmer	  if test -n "$hardcode_libdir_separator"; then
45543eed67faSmbalmer	    if test -z "$hardcode_libdirs"; then
45553eed67faSmbalmer	      hardcode_libdirs="$libdir"
45563eed67faSmbalmer	    else
45573eed67faSmbalmer	      # Just accumulate the unique libdirs.
45583eed67faSmbalmer	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
45593eed67faSmbalmer	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
45603eed67faSmbalmer		;;
45613eed67faSmbalmer	      *)
45623eed67faSmbalmer		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
45633eed67faSmbalmer		;;
45643eed67faSmbalmer	      esac
45653eed67faSmbalmer	    fi
45663eed67faSmbalmer	  else
45673eed67faSmbalmer	    eval flag=\"$hardcode_libdir_flag_spec\"
45683eed67faSmbalmer	    rpath="$rpath $flag"
45693eed67faSmbalmer	  fi
45703eed67faSmbalmer	elif test -n "$runpath_var"; then
45713eed67faSmbalmer	  case "$finalize_perm_rpath " in
45723eed67faSmbalmer	  *" $libdir "*) ;;
45733eed67faSmbalmer	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
45743eed67faSmbalmer	  esac
45753eed67faSmbalmer	fi
45763eed67faSmbalmer      done
45773eed67faSmbalmer      # Substitute the hardcoded libdirs into the rpath.
45783eed67faSmbalmer      if test -n "$hardcode_libdir_separator" &&
45793eed67faSmbalmer	 test -n "$hardcode_libdirs"; then
45803eed67faSmbalmer	libdir="$hardcode_libdirs"
45813eed67faSmbalmer	eval rpath=\" $hardcode_libdir_flag_spec\"
45823eed67faSmbalmer      fi
45833eed67faSmbalmer      finalize_rpath="$rpath"
45843eed67faSmbalmer
45853eed67faSmbalmer      if test -n "$libobjs" && test "$build_old_libs" = yes; then
45863eed67faSmbalmer	# Transform all the library objects into standard objects.
45873eed67faSmbalmer	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45883eed67faSmbalmer	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45893eed67faSmbalmer      fi
45903eed67faSmbalmer
45913eed67faSmbalmer      dlsyms=
45923eed67faSmbalmer      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
45933eed67faSmbalmer	if test -n "$NM" && test -n "$global_symbol_pipe"; then
45943eed67faSmbalmer	  dlsyms="${outputname}S.c"
45953eed67faSmbalmer	else
45963eed67faSmbalmer	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
45973eed67faSmbalmer	fi
45983eed67faSmbalmer      fi
45993eed67faSmbalmer
46003eed67faSmbalmer      if test -n "$dlsyms"; then
46013eed67faSmbalmer	case $dlsyms in
46023eed67faSmbalmer	"") ;;
46033eed67faSmbalmer	*.c)
46043eed67faSmbalmer	  # Discover the nlist of each of the dlfiles.
46053eed67faSmbalmer	  nlist="$output_objdir/${outputname}.nm"
46063eed67faSmbalmer
46073eed67faSmbalmer	  $show "$rm $nlist ${nlist}S ${nlist}T"
46083eed67faSmbalmer	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
46093eed67faSmbalmer
46103eed67faSmbalmer	  # Parse the name list into a source file.
46113eed67faSmbalmer	  $show "creating $output_objdir/$dlsyms"
46123eed67faSmbalmer
46133eed67faSmbalmer	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
46143eed67faSmbalmer/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
46153eed67faSmbalmer/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
46163eed67faSmbalmer
46173eed67faSmbalmer#ifdef __cplusplus
46183eed67faSmbalmerextern \"C\" {
46193eed67faSmbalmer#endif
46203eed67faSmbalmer
46213eed67faSmbalmer/* Prevent the only kind of declaration conflicts we can make. */
46223eed67faSmbalmer#define lt_preloaded_symbols some_other_symbol
46233eed67faSmbalmer
46243eed67faSmbalmer/* External symbol declarations for the compiler. */\
46253eed67faSmbalmer"
46263eed67faSmbalmer
46273eed67faSmbalmer	  if test "$dlself" = yes; then
46283eed67faSmbalmer	    $show "generating symbol list for \`$output'"
46293eed67faSmbalmer
46303eed67faSmbalmer	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
46313eed67faSmbalmer
46323eed67faSmbalmer	    # Add our own program objects to the symbol list.
46333eed67faSmbalmer	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
46343eed67faSmbalmer	    for arg in $progfiles; do
46353eed67faSmbalmer	      $show "extracting global C symbols from \`$arg'"
46363eed67faSmbalmer	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46373eed67faSmbalmer	    done
46383eed67faSmbalmer
46393eed67faSmbalmer	    if test -n "$exclude_expsyms"; then
46403eed67faSmbalmer	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
46413eed67faSmbalmer	      $run eval '$mv "$nlist"T "$nlist"'
46423eed67faSmbalmer	    fi
46433eed67faSmbalmer
46443eed67faSmbalmer	    if test -n "$export_symbols_regex"; then
46453eed67faSmbalmer	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
46463eed67faSmbalmer	      $run eval '$mv "$nlist"T "$nlist"'
46473eed67faSmbalmer	    fi
46483eed67faSmbalmer
46493eed67faSmbalmer	    # Prepare the list of exported symbols
46503eed67faSmbalmer	    if test -z "$export_symbols"; then
46513eed67faSmbalmer	      export_symbols="$output_objdir/$outputname.exp"
46523eed67faSmbalmer	      $run $rm $export_symbols
46533eed67faSmbalmer	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
46543eed67faSmbalmer              case $host in
46553eed67faSmbalmer              *cygwin* | *mingw* )
46563eed67faSmbalmer	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46573eed67faSmbalmer		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
46583eed67faSmbalmer                ;;
46593eed67faSmbalmer              esac
46603eed67faSmbalmer	    else
46613eed67faSmbalmer	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
46623eed67faSmbalmer	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
46633eed67faSmbalmer	      $run eval 'mv "$nlist"T "$nlist"'
46643eed67faSmbalmer              case $host in
46653eed67faSmbalmer              *cygwin* | *mingw* )
46663eed67faSmbalmer	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46673eed67faSmbalmer		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
46683eed67faSmbalmer                ;;
46693eed67faSmbalmer              esac
46703eed67faSmbalmer	    fi
46713eed67faSmbalmer	  fi
46723eed67faSmbalmer
46733eed67faSmbalmer	  for arg in $dlprefiles; do
46743eed67faSmbalmer	    $show "extracting global C symbols from \`$arg'"
46753eed67faSmbalmer	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
46763eed67faSmbalmer	    $run eval '$echo ": $name " >> "$nlist"'
46773eed67faSmbalmer	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46783eed67faSmbalmer	  done
46793eed67faSmbalmer
46803eed67faSmbalmer	  if test -z "$run"; then
46813eed67faSmbalmer	    # Make sure we have at least an empty file.
46823eed67faSmbalmer	    test -f "$nlist" || : > "$nlist"
46833eed67faSmbalmer
46843eed67faSmbalmer	    if test -n "$exclude_expsyms"; then
46853eed67faSmbalmer	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
46863eed67faSmbalmer	      $mv "$nlist"T "$nlist"
46873eed67faSmbalmer	    fi
46883eed67faSmbalmer
46893eed67faSmbalmer	    # Try sorting and uniquifying the output.
46903eed67faSmbalmer	    if grep -v "^: " < "$nlist" |
46913eed67faSmbalmer		if sort -k 3 </dev/null >/dev/null 2>&1; then
46923eed67faSmbalmer		  sort -k 3
46933eed67faSmbalmer		else
46943eed67faSmbalmer		  sort +2
46953eed67faSmbalmer		fi |
46963eed67faSmbalmer		uniq > "$nlist"S; then
46973eed67faSmbalmer	      :
46983eed67faSmbalmer	    else
46993eed67faSmbalmer	      grep -v "^: " < "$nlist" > "$nlist"S
47003eed67faSmbalmer	    fi
47013eed67faSmbalmer
47023eed67faSmbalmer	    if test -f "$nlist"S; then
47033eed67faSmbalmer	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
47043eed67faSmbalmer	    else
47053eed67faSmbalmer	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
47063eed67faSmbalmer	    fi
47073eed67faSmbalmer
47083eed67faSmbalmer	    $echo >> "$output_objdir/$dlsyms" "\
47093eed67faSmbalmer
47103eed67faSmbalmer#undef lt_preloaded_symbols
47113eed67faSmbalmer
47123eed67faSmbalmer#if defined (__STDC__) && __STDC__
47133eed67faSmbalmer# define lt_ptr void *
47143eed67faSmbalmer#else
47153eed67faSmbalmer# define lt_ptr char *
47163eed67faSmbalmer# define const
47173eed67faSmbalmer#endif
47183eed67faSmbalmer
47193eed67faSmbalmer/* The mapping between symbol names and symbols. */
47203eed67faSmbalmer"
47213eed67faSmbalmer
47223eed67faSmbalmer	    case $host in
47233eed67faSmbalmer	    *cygwin* | *mingw* )
47243eed67faSmbalmer	  $echo >> "$output_objdir/$dlsyms" "\
47253eed67faSmbalmer/* DATA imports from DLLs on WIN32 can't be const, because
47263eed67faSmbalmer   runtime relocations are performed -- see ld's documentation
47273eed67faSmbalmer   on pseudo-relocs */
47283eed67faSmbalmerstruct {
47293eed67faSmbalmer"
47303eed67faSmbalmer	      ;;
47313eed67faSmbalmer	    * )
47323eed67faSmbalmer	  $echo >> "$output_objdir/$dlsyms" "\
47333eed67faSmbalmerconst struct {
47343eed67faSmbalmer"
47353eed67faSmbalmer	      ;;
47363eed67faSmbalmer	    esac
47373eed67faSmbalmer
47383eed67faSmbalmer
47393eed67faSmbalmer	  $echo >> "$output_objdir/$dlsyms" "\
47403eed67faSmbalmer  const char *name;
47413eed67faSmbalmer  lt_ptr address;
47423eed67faSmbalmer}
47433eed67faSmbalmerlt_preloaded_symbols[] =
47443eed67faSmbalmer{\
47453eed67faSmbalmer"
47463eed67faSmbalmer
47473eed67faSmbalmer	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
47483eed67faSmbalmer
47493eed67faSmbalmer	    $echo >> "$output_objdir/$dlsyms" "\
47503eed67faSmbalmer  {0, (lt_ptr) 0}
47513eed67faSmbalmer};
47523eed67faSmbalmer
47533eed67faSmbalmer/* This works around a problem in FreeBSD linker */
47543eed67faSmbalmer#ifdef FREEBSD_WORKAROUND
47553eed67faSmbalmerstatic const void *lt_preloaded_setup() {
47563eed67faSmbalmer  return lt_preloaded_symbols;
47573eed67faSmbalmer}
47583eed67faSmbalmer#endif
47593eed67faSmbalmer
47603eed67faSmbalmer#ifdef __cplusplus
47613eed67faSmbalmer}
47623eed67faSmbalmer#endif\
47633eed67faSmbalmer"
47643eed67faSmbalmer	  fi
47653eed67faSmbalmer
47663eed67faSmbalmer	  pic_flag_for_symtable=
47673eed67faSmbalmer	  case $host in
47683eed67faSmbalmer	  # compiling the symbol table file with pic_flag works around
47693eed67faSmbalmer	  # a FreeBSD bug that causes programs to crash when -lm is
47703eed67faSmbalmer	  # linked before any other PIC object.  But we must not use
47713eed67faSmbalmer	  # pic_flag when linking with -static.  The problem exists in
47723eed67faSmbalmer	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
47733eed67faSmbalmer	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
47743eed67faSmbalmer	    case "$compile_command " in
47753eed67faSmbalmer	    *" -static "*) ;;
47763eed67faSmbalmer	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
47773eed67faSmbalmer	    esac;;
47783eed67faSmbalmer	  *-*-hpux*)
47793eed67faSmbalmer	    case "$compile_command " in
47803eed67faSmbalmer	    *" -static "*) ;;
47813eed67faSmbalmer	    *) pic_flag_for_symtable=" $pic_flag";;
47823eed67faSmbalmer	    esac
47833eed67faSmbalmer	  esac
47843eed67faSmbalmer
47853eed67faSmbalmer	  # Now compile the dynamic symbol file.
47863eed67faSmbalmer	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
47873eed67faSmbalmer	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
47883eed67faSmbalmer
47893eed67faSmbalmer	  # Clean up the generated files.
47903eed67faSmbalmer	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
47913eed67faSmbalmer	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
47923eed67faSmbalmer
47933eed67faSmbalmer	  # Transform the symbol file into the correct name.
47943eed67faSmbalmer          case $host in
47953eed67faSmbalmer          *cygwin* | *mingw* )
47963eed67faSmbalmer            if test -f "$output_objdir/${outputname}.def" ; then
47973eed67faSmbalmer              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47983eed67faSmbalmer              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47993eed67faSmbalmer            else
48003eed67faSmbalmer              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
48013eed67faSmbalmer              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
48023eed67faSmbalmer             fi
48033eed67faSmbalmer            ;;
48043eed67faSmbalmer          * )
48053eed67faSmbalmer            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
48063eed67faSmbalmer            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
48073eed67faSmbalmer            ;;
48083eed67faSmbalmer          esac
48093eed67faSmbalmer	  ;;
48103eed67faSmbalmer	*)
48113eed67faSmbalmer	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
48123eed67faSmbalmer	  exit $EXIT_FAILURE
48133eed67faSmbalmer	  ;;
48143eed67faSmbalmer	esac
48153eed67faSmbalmer      else
48163eed67faSmbalmer	# We keep going just in case the user didn't refer to
48173eed67faSmbalmer	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
48183eed67faSmbalmer	# really was required.
48193eed67faSmbalmer
48203eed67faSmbalmer	# Nullify the symbol file.
48213eed67faSmbalmer	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
48223eed67faSmbalmer	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
48233eed67faSmbalmer      fi
48243eed67faSmbalmer
48253eed67faSmbalmer      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
48263eed67faSmbalmer	# Replace the output file specification.
48273eed67faSmbalmer	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
48283eed67faSmbalmer	link_command="$compile_command$compile_rpath"
48293eed67faSmbalmer
48303eed67faSmbalmer	# We have no uninstalled library dependencies, so finalize right now.
48313eed67faSmbalmer	$show "$link_command"
48323eed67faSmbalmer	$run eval "$link_command"
48333eed67faSmbalmer	exit_status=$?
48343eed67faSmbalmer
48353eed67faSmbalmer	# Delete the generated files.
48363eed67faSmbalmer	if test -n "$dlsyms"; then
48373eed67faSmbalmer	  $show "$rm $output_objdir/${outputname}S.${objext}"
48383eed67faSmbalmer	  $run $rm "$output_objdir/${outputname}S.${objext}"
48393eed67faSmbalmer	fi
48403eed67faSmbalmer
48413eed67faSmbalmer	exit $exit_status
48423eed67faSmbalmer      fi
48433eed67faSmbalmer
48443eed67faSmbalmer      if test -n "$shlibpath_var"; then
48453eed67faSmbalmer	# We should set the shlibpath_var
48463eed67faSmbalmer	rpath=
48473eed67faSmbalmer	for dir in $temp_rpath; do
48483eed67faSmbalmer	  case $dir in
48493eed67faSmbalmer	  [\\/]* | [A-Za-z]:[\\/]*)
48503eed67faSmbalmer	    # Absolute path.
48513eed67faSmbalmer	    rpath="$rpath$dir:"
48523eed67faSmbalmer	    ;;
48533eed67faSmbalmer	  *)
48543eed67faSmbalmer	    # Relative path: add a thisdir entry.
48553eed67faSmbalmer	    rpath="$rpath\$thisdir/$dir:"
48563eed67faSmbalmer	    ;;
48573eed67faSmbalmer	  esac
48583eed67faSmbalmer	done
48593eed67faSmbalmer	temp_rpath="$rpath"
48603eed67faSmbalmer      fi
48613eed67faSmbalmer
48623eed67faSmbalmer      if test -n "$compile_shlibpath$finalize_shlibpath"; then
48633eed67faSmbalmer	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
48643eed67faSmbalmer      fi
48653eed67faSmbalmer      if test -n "$finalize_shlibpath"; then
48663eed67faSmbalmer	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
48673eed67faSmbalmer      fi
48683eed67faSmbalmer
48693eed67faSmbalmer      compile_var=
48703eed67faSmbalmer      finalize_var=
48713eed67faSmbalmer      if test -n "$runpath_var"; then
48723eed67faSmbalmer	if test -n "$perm_rpath"; then
48733eed67faSmbalmer	  # We should set the runpath_var.
48743eed67faSmbalmer	  rpath=
48753eed67faSmbalmer	  for dir in $perm_rpath; do
48763eed67faSmbalmer	    rpath="$rpath$dir:"
48773eed67faSmbalmer	  done
48783eed67faSmbalmer	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
48793eed67faSmbalmer	fi
48803eed67faSmbalmer	if test -n "$finalize_perm_rpath"; then
48813eed67faSmbalmer	  # We should set the runpath_var.
48823eed67faSmbalmer	  rpath=
48833eed67faSmbalmer	  for dir in $finalize_perm_rpath; do
48843eed67faSmbalmer	    rpath="$rpath$dir:"
48853eed67faSmbalmer	  done
48863eed67faSmbalmer	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
48873eed67faSmbalmer	fi
48883eed67faSmbalmer      fi
48893eed67faSmbalmer
48903eed67faSmbalmer      if test "$no_install" = yes; then
48913eed67faSmbalmer	# We don't need to create a wrapper script.
48923eed67faSmbalmer	link_command="$compile_var$compile_command$compile_rpath"
48933eed67faSmbalmer	# Replace the output file specification.
48943eed67faSmbalmer	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
48953eed67faSmbalmer	# Delete the old output file.
48963eed67faSmbalmer	$run $rm $output
48973eed67faSmbalmer	# Link the executable and exit
48983eed67faSmbalmer	$show "$link_command"
48993eed67faSmbalmer	$run eval "$link_command" || exit $?
49003eed67faSmbalmer	exit $EXIT_SUCCESS
49013eed67faSmbalmer      fi
49023eed67faSmbalmer
49033eed67faSmbalmer      if test "$hardcode_action" = relink; then
49043eed67faSmbalmer	# Fast installation is not supported
49053eed67faSmbalmer	link_command="$compile_var$compile_command$compile_rpath"
49063eed67faSmbalmer	relink_command="$finalize_var$finalize_command$finalize_rpath"
49073eed67faSmbalmer
49083eed67faSmbalmer	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
49093eed67faSmbalmer	$echo "$modename: \`$output' will be relinked during installation" 1>&2
49103eed67faSmbalmer      else
49113eed67faSmbalmer	if test "$fast_install" != no; then
49123eed67faSmbalmer	  link_command="$finalize_var$compile_command$finalize_rpath"
49133eed67faSmbalmer	  if test "$fast_install" = yes; then
49143eed67faSmbalmer	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
49153eed67faSmbalmer	  else
49163eed67faSmbalmer	    # fast_install is set to needless
49173eed67faSmbalmer	    relink_command=
49183eed67faSmbalmer	  fi
49193eed67faSmbalmer	else
49203eed67faSmbalmer	  link_command="$compile_var$compile_command$compile_rpath"
49213eed67faSmbalmer	  relink_command="$finalize_var$finalize_command$finalize_rpath"
49223eed67faSmbalmer	fi
49233eed67faSmbalmer      fi
49243eed67faSmbalmer
49253eed67faSmbalmer      # Replace the output file specification.
49263eed67faSmbalmer      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
49273eed67faSmbalmer
49283eed67faSmbalmer      # Delete the old output files.
49293eed67faSmbalmer      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
49303eed67faSmbalmer
49313eed67faSmbalmer      $show "$link_command"
49323eed67faSmbalmer      $run eval "$link_command" || exit $?
49333eed67faSmbalmer
49343eed67faSmbalmer      # Now create the wrapper script.
49353eed67faSmbalmer      $show "creating $output"
49363eed67faSmbalmer
49373eed67faSmbalmer      # Quote the relink command for shipping.
49383eed67faSmbalmer      if test -n "$relink_command"; then
49393eed67faSmbalmer	# Preserve any variables that may affect compiler behavior
49403eed67faSmbalmer	for var in $variables_saved_for_relink; do
49413eed67faSmbalmer	  if eval test -z \"\${$var+set}\"; then
49423eed67faSmbalmer	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
49433eed67faSmbalmer	  elif eval var_value=\$$var; test -z "$var_value"; then
49443eed67faSmbalmer	    relink_command="$var=; export $var; $relink_command"
49453eed67faSmbalmer	  else
49463eed67faSmbalmer	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
49473eed67faSmbalmer	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
49483eed67faSmbalmer	  fi
49493eed67faSmbalmer	done
49503eed67faSmbalmer	relink_command="(cd `pwd`; $relink_command)"
49513eed67faSmbalmer	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
49523eed67faSmbalmer      fi
49533eed67faSmbalmer
49543eed67faSmbalmer      # Quote $echo for shipping.
49553eed67faSmbalmer      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
49563eed67faSmbalmer	case $progpath in
49573eed67faSmbalmer	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
49583eed67faSmbalmer	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
49593eed67faSmbalmer	esac
49603eed67faSmbalmer	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
49613eed67faSmbalmer      else
49623eed67faSmbalmer	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
49633eed67faSmbalmer      fi
49643eed67faSmbalmer
49653eed67faSmbalmer      # Only actually do things if our run command is non-null.
49663eed67faSmbalmer      if test -z "$run"; then
49673eed67faSmbalmer	# win32 will think the script is a binary if it has
49683eed67faSmbalmer	# a .exe suffix, so we strip it off here.
49693eed67faSmbalmer	case $output in
49703eed67faSmbalmer	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
49713eed67faSmbalmer	esac
49723eed67faSmbalmer	# test for cygwin because mv fails w/o .exe extensions
49733eed67faSmbalmer	case $host in
49743eed67faSmbalmer	  *cygwin*)
49753eed67faSmbalmer	    exeext=.exe
49763eed67faSmbalmer	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
49773eed67faSmbalmer	  *) exeext= ;;
49783eed67faSmbalmer	esac
49793eed67faSmbalmer	case $host in
49803eed67faSmbalmer	  *cygwin* | *mingw* )
49813eed67faSmbalmer            output_name=`basename $output`
49823eed67faSmbalmer            output_path=`dirname $output`
49833eed67faSmbalmer            cwrappersource="$output_path/$objdir/lt-$output_name.c"
49843eed67faSmbalmer            cwrapper="$output_path/$output_name.exe"
49853eed67faSmbalmer            $rm $cwrappersource $cwrapper
49863eed67faSmbalmer            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
49873eed67faSmbalmer
49883eed67faSmbalmer	    cat > $cwrappersource <<EOF
49893eed67faSmbalmer
49903eed67faSmbalmer/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
49913eed67faSmbalmer   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
49923eed67faSmbalmer
49933eed67faSmbalmer   The $output program cannot be directly executed until all the libtool
49943eed67faSmbalmer   libraries that it depends on are installed.
49953eed67faSmbalmer
49963eed67faSmbalmer   This wrapper executable should never be moved out of the build directory.
49973eed67faSmbalmer   If it is, it will not operate correctly.
49983eed67faSmbalmer
49993eed67faSmbalmer   Currently, it simply execs the wrapper *script* "/bin/sh $output",
50003eed67faSmbalmer   but could eventually absorb all of the scripts functionality and
50013eed67faSmbalmer   exec $objdir/$outputname directly.
50023eed67faSmbalmer*/
50033eed67faSmbalmerEOF
50043eed67faSmbalmer	    cat >> $cwrappersource<<"EOF"
50053eed67faSmbalmer#include <stdio.h>
50063eed67faSmbalmer#include <stdlib.h>
50073eed67faSmbalmer#include <unistd.h>
50083eed67faSmbalmer#include <malloc.h>
50093eed67faSmbalmer#include <stdarg.h>
50103eed67faSmbalmer#include <assert.h>
50113eed67faSmbalmer#include <string.h>
50123eed67faSmbalmer#include <ctype.h>
50133eed67faSmbalmer#include <sys/stat.h>
50143eed67faSmbalmer
50153eed67faSmbalmer#if defined(PATH_MAX)
50163eed67faSmbalmer# define LT_PATHMAX PATH_MAX
50173eed67faSmbalmer#elif defined(MAXPATHLEN)
50183eed67faSmbalmer# define LT_PATHMAX MAXPATHLEN
50193eed67faSmbalmer#else
50203eed67faSmbalmer# define LT_PATHMAX 1024
50213eed67faSmbalmer#endif
50223eed67faSmbalmer
50233eed67faSmbalmer#ifndef DIR_SEPARATOR
50243eed67faSmbalmer# define DIR_SEPARATOR '/'
50253eed67faSmbalmer# define PATH_SEPARATOR ':'
50263eed67faSmbalmer#endif
50273eed67faSmbalmer
50283eed67faSmbalmer#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
50293eed67faSmbalmer  defined (__OS2__)
50303eed67faSmbalmer# define HAVE_DOS_BASED_FILE_SYSTEM
50313eed67faSmbalmer# ifndef DIR_SEPARATOR_2
50323eed67faSmbalmer#  define DIR_SEPARATOR_2 '\\'
50333eed67faSmbalmer# endif
50343eed67faSmbalmer# ifndef PATH_SEPARATOR_2
50353eed67faSmbalmer#  define PATH_SEPARATOR_2 ';'
50363eed67faSmbalmer# endif
50373eed67faSmbalmer#endif
50383eed67faSmbalmer
50393eed67faSmbalmer#ifndef DIR_SEPARATOR_2
50403eed67faSmbalmer# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
50413eed67faSmbalmer#else /* DIR_SEPARATOR_2 */
50423eed67faSmbalmer# define IS_DIR_SEPARATOR(ch) \
50433eed67faSmbalmer        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
50443eed67faSmbalmer#endif /* DIR_SEPARATOR_2 */
50453eed67faSmbalmer
50463eed67faSmbalmer#ifndef PATH_SEPARATOR_2
50473eed67faSmbalmer# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
50483eed67faSmbalmer#else /* PATH_SEPARATOR_2 */
50493eed67faSmbalmer# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
50503eed67faSmbalmer#endif /* PATH_SEPARATOR_2 */
50513eed67faSmbalmer
50523eed67faSmbalmer#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
50533eed67faSmbalmer#define XFREE(stale) do { \
50543eed67faSmbalmer  if (stale) { free ((void *) stale); stale = 0; } \
50553eed67faSmbalmer} while (0)
50563eed67faSmbalmer
50573eed67faSmbalmer/* -DDEBUG is fairly common in CFLAGS.  */
50583eed67faSmbalmer#undef DEBUG
50593eed67faSmbalmer#if defined DEBUGWRAPPER
50603eed67faSmbalmer# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
50613eed67faSmbalmer#else
50623eed67faSmbalmer# define DEBUG(format, ...)
50633eed67faSmbalmer#endif
50643eed67faSmbalmer
50653eed67faSmbalmerconst char *program_name = NULL;
50663eed67faSmbalmer
50673eed67faSmbalmervoid * xmalloc (size_t num);
50683eed67faSmbalmerchar * xstrdup (const char *string);
50693eed67faSmbalmerconst char * base_name (const char *name);
50703eed67faSmbalmerchar * find_executable(const char *wrapper);
50713eed67faSmbalmerint    check_executable(const char *path);
50723eed67faSmbalmerchar * strendzap(char *str, const char *pat);
50733eed67faSmbalmervoid lt_fatal (const char *message, ...);
50743eed67faSmbalmer
50753eed67faSmbalmerint
50763eed67faSmbalmermain (int argc, char *argv[])
50773eed67faSmbalmer{
50783eed67faSmbalmer  char **newargz;
50793eed67faSmbalmer  int i;
50803eed67faSmbalmer
50813eed67faSmbalmer  program_name = (char *) xstrdup (base_name (argv[0]));
50823eed67faSmbalmer  DEBUG("(main) argv[0]      : %s\n",argv[0]);
50833eed67faSmbalmer  DEBUG("(main) program_name : %s\n",program_name);
50843eed67faSmbalmer  newargz = XMALLOC(char *, argc+2);
50853eed67faSmbalmerEOF
50863eed67faSmbalmer
50873eed67faSmbalmer            cat >> $cwrappersource <<EOF
50883eed67faSmbalmer  newargz[0] = (char *) xstrdup("$SHELL");
50893eed67faSmbalmerEOF
50903eed67faSmbalmer
50913eed67faSmbalmer            cat >> $cwrappersource <<"EOF"
50923eed67faSmbalmer  newargz[1] = find_executable(argv[0]);
50933eed67faSmbalmer  if (newargz[1] == NULL)
50943eed67faSmbalmer    lt_fatal("Couldn't find %s", argv[0]);
50953eed67faSmbalmer  DEBUG("(main) found exe at : %s\n",newargz[1]);
50963eed67faSmbalmer  /* we know the script has the same name, without the .exe */
50973eed67faSmbalmer  /* so make sure newargz[1] doesn't end in .exe */
50983eed67faSmbalmer  strendzap(newargz[1],".exe");
50993eed67faSmbalmer  for (i = 1; i < argc; i++)
51003eed67faSmbalmer    newargz[i+1] = xstrdup(argv[i]);
51013eed67faSmbalmer  newargz[argc+1] = NULL;
51023eed67faSmbalmer
51033eed67faSmbalmer  for (i=0; i<argc+1; i++)
51043eed67faSmbalmer  {
51053eed67faSmbalmer    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
51063eed67faSmbalmer    ;
51073eed67faSmbalmer  }
51083eed67faSmbalmer
51093eed67faSmbalmerEOF
51103eed67faSmbalmer
51113eed67faSmbalmer            case $host_os in
51123eed67faSmbalmer              mingw*)
51133eed67faSmbalmer                cat >> $cwrappersource <<EOF
51143eed67faSmbalmer  execv("$SHELL",(char const **)newargz);
51153eed67faSmbalmerEOF
51163eed67faSmbalmer              ;;
51173eed67faSmbalmer              *)
51183eed67faSmbalmer                cat >> $cwrappersource <<EOF
51193eed67faSmbalmer  execv("$SHELL",newargz);
51203eed67faSmbalmerEOF
51213eed67faSmbalmer              ;;
51223eed67faSmbalmer            esac
51233eed67faSmbalmer
51243eed67faSmbalmer            cat >> $cwrappersource <<"EOF"
51253eed67faSmbalmer  return 127;
51263eed67faSmbalmer}
51273eed67faSmbalmer
51283eed67faSmbalmervoid *
51293eed67faSmbalmerxmalloc (size_t num)
51303eed67faSmbalmer{
51313eed67faSmbalmer  void * p = (void *) malloc (num);
51323eed67faSmbalmer  if (!p)
51333eed67faSmbalmer    lt_fatal ("Memory exhausted");
51343eed67faSmbalmer
51353eed67faSmbalmer  return p;
51363eed67faSmbalmer}
51373eed67faSmbalmer
51383eed67faSmbalmerchar *
51393eed67faSmbalmerxstrdup (const char *string)
51403eed67faSmbalmer{
51413eed67faSmbalmer  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
51423eed67faSmbalmer;
51433eed67faSmbalmer}
51443eed67faSmbalmer
51453eed67faSmbalmerconst char *
51463eed67faSmbalmerbase_name (const char *name)
51473eed67faSmbalmer{
51483eed67faSmbalmer  const char *base;
51493eed67faSmbalmer
51503eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51513eed67faSmbalmer  /* Skip over the disk name in MSDOS pathnames. */
51523eed67faSmbalmer  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
51533eed67faSmbalmer    name += 2;
51543eed67faSmbalmer#endif
51553eed67faSmbalmer
51563eed67faSmbalmer  for (base = name; *name; name++)
51573eed67faSmbalmer    if (IS_DIR_SEPARATOR (*name))
51583eed67faSmbalmer      base = name + 1;
51593eed67faSmbalmer  return base;
51603eed67faSmbalmer}
51613eed67faSmbalmer
51623eed67faSmbalmerint
51633eed67faSmbalmercheck_executable(const char * path)
51643eed67faSmbalmer{
51653eed67faSmbalmer  struct stat st;
51663eed67faSmbalmer
51673eed67faSmbalmer  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
51683eed67faSmbalmer  if ((!path) || (!*path))
51693eed67faSmbalmer    return 0;
51703eed67faSmbalmer
51713eed67faSmbalmer  if ((stat (path, &st) >= 0) &&
51723eed67faSmbalmer      (
51733eed67faSmbalmer        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
51743eed67faSmbalmer#if defined (S_IXOTH)
51753eed67faSmbalmer       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
51763eed67faSmbalmer#endif
51773eed67faSmbalmer#if defined (S_IXGRP)
51783eed67faSmbalmer       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
51793eed67faSmbalmer#endif
51803eed67faSmbalmer       ((st.st_mode & S_IXUSR) == S_IXUSR))
51813eed67faSmbalmer      )
51823eed67faSmbalmer    return 1;
51833eed67faSmbalmer  else
51843eed67faSmbalmer    return 0;
51853eed67faSmbalmer}
51863eed67faSmbalmer
51873eed67faSmbalmer/* Searches for the full path of the wrapper.  Returns
51883eed67faSmbalmer   newly allocated full path name if found, NULL otherwise */
51893eed67faSmbalmerchar *
51903eed67faSmbalmerfind_executable (const char* wrapper)
51913eed67faSmbalmer{
51923eed67faSmbalmer  int has_slash = 0;
51933eed67faSmbalmer  const char* p;
51943eed67faSmbalmer  const char* p_next;
51953eed67faSmbalmer  /* static buffer for getcwd */
51963eed67faSmbalmer  char tmp[LT_PATHMAX + 1];
51973eed67faSmbalmer  int tmp_len;
51983eed67faSmbalmer  char* concat_name;
51993eed67faSmbalmer
52003eed67faSmbalmer  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
52013eed67faSmbalmer
52023eed67faSmbalmer  if ((wrapper == NULL) || (*wrapper == '\0'))
52033eed67faSmbalmer    return NULL;
52043eed67faSmbalmer
52053eed67faSmbalmer  /* Absolute path? */
52063eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
52073eed67faSmbalmer  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
52083eed67faSmbalmer  {
52093eed67faSmbalmer    concat_name = xstrdup (wrapper);
52103eed67faSmbalmer    if (check_executable(concat_name))
52113eed67faSmbalmer      return concat_name;
52123eed67faSmbalmer    XFREE(concat_name);
52133eed67faSmbalmer  }
52143eed67faSmbalmer  else
52153eed67faSmbalmer  {
52163eed67faSmbalmer#endif
52173eed67faSmbalmer    if (IS_DIR_SEPARATOR (wrapper[0]))
52183eed67faSmbalmer    {
52193eed67faSmbalmer      concat_name = xstrdup (wrapper);
52203eed67faSmbalmer      if (check_executable(concat_name))
52213eed67faSmbalmer        return concat_name;
52223eed67faSmbalmer      XFREE(concat_name);
52233eed67faSmbalmer    }
52243eed67faSmbalmer#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
52253eed67faSmbalmer  }
52263eed67faSmbalmer#endif
52273eed67faSmbalmer
52283eed67faSmbalmer  for (p = wrapper; *p; p++)
52293eed67faSmbalmer    if (*p == '/')
52303eed67faSmbalmer    {
52313eed67faSmbalmer      has_slash = 1;
52323eed67faSmbalmer      break;
52333eed67faSmbalmer    }
52343eed67faSmbalmer  if (!has_slash)
52353eed67faSmbalmer  {
52363eed67faSmbalmer    /* no slashes; search PATH */
52373eed67faSmbalmer    const char* path = getenv ("PATH");
52383eed67faSmbalmer    if (path != NULL)
52393eed67faSmbalmer    {
52403eed67faSmbalmer      for (p = path; *p; p = p_next)
52413eed67faSmbalmer      {
52423eed67faSmbalmer        const char* q;
52433eed67faSmbalmer        size_t p_len;
52443eed67faSmbalmer        for (q = p; *q; q++)
52453eed67faSmbalmer          if (IS_PATH_SEPARATOR(*q))
52463eed67faSmbalmer            break;
52473eed67faSmbalmer        p_len = q - p;
52483eed67faSmbalmer        p_next = (*q == '\0' ? q : q + 1);
52493eed67faSmbalmer        if (p_len == 0)
52503eed67faSmbalmer        {
52513eed67faSmbalmer          /* empty path: current directory */
52523eed67faSmbalmer          if (getcwd (tmp, LT_PATHMAX) == NULL)
52533eed67faSmbalmer            lt_fatal ("getcwd failed");
52543eed67faSmbalmer          tmp_len = strlen(tmp);
52553eed67faSmbalmer          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52563eed67faSmbalmer          memcpy (concat_name, tmp, tmp_len);
52573eed67faSmbalmer          concat_name[tmp_len] = '/';
52583eed67faSmbalmer          strcpy (concat_name + tmp_len + 1, wrapper);
52593eed67faSmbalmer        }
52603eed67faSmbalmer        else
52613eed67faSmbalmer        {
52623eed67faSmbalmer          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
52633eed67faSmbalmer          memcpy (concat_name, p, p_len);
52643eed67faSmbalmer          concat_name[p_len] = '/';
52653eed67faSmbalmer          strcpy (concat_name + p_len + 1, wrapper);
52663eed67faSmbalmer        }
52673eed67faSmbalmer        if (check_executable(concat_name))
52683eed67faSmbalmer          return concat_name;
52693eed67faSmbalmer        XFREE(concat_name);
52703eed67faSmbalmer      }
52713eed67faSmbalmer    }
52723eed67faSmbalmer    /* not found in PATH; assume curdir */
52733eed67faSmbalmer  }
52743eed67faSmbalmer  /* Relative path | not found in path: prepend cwd */
52753eed67faSmbalmer  if (getcwd (tmp, LT_PATHMAX) == NULL)
52763eed67faSmbalmer    lt_fatal ("getcwd failed");
52773eed67faSmbalmer  tmp_len = strlen(tmp);
52783eed67faSmbalmer  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52793eed67faSmbalmer  memcpy (concat_name, tmp, tmp_len);
52803eed67faSmbalmer  concat_name[tmp_len] = '/';
52813eed67faSmbalmer  strcpy (concat_name + tmp_len + 1, wrapper);
52823eed67faSmbalmer
52833eed67faSmbalmer  if (check_executable(concat_name))
52843eed67faSmbalmer    return concat_name;
52853eed67faSmbalmer  XFREE(concat_name);
52863eed67faSmbalmer  return NULL;
52873eed67faSmbalmer}
52883eed67faSmbalmer
52893eed67faSmbalmerchar *
52903eed67faSmbalmerstrendzap(char *str, const char *pat)
52913eed67faSmbalmer{
52923eed67faSmbalmer  size_t len, patlen;
52933eed67faSmbalmer
52943eed67faSmbalmer  assert(str != NULL);
52953eed67faSmbalmer  assert(pat != NULL);
52963eed67faSmbalmer
52973eed67faSmbalmer  len = strlen(str);
52983eed67faSmbalmer  patlen = strlen(pat);
52993eed67faSmbalmer
53003eed67faSmbalmer  if (patlen <= len)
53013eed67faSmbalmer  {
53023eed67faSmbalmer    str += len - patlen;
53033eed67faSmbalmer    if (strcmp(str, pat) == 0)
53043eed67faSmbalmer      *str = '\0';
53053eed67faSmbalmer  }
53063eed67faSmbalmer  return str;
53073eed67faSmbalmer}
53083eed67faSmbalmer
53093eed67faSmbalmerstatic void
53103eed67faSmbalmerlt_error_core (int exit_status, const char * mode,
53113eed67faSmbalmer          const char * message, va_list ap)
53123eed67faSmbalmer{
53133eed67faSmbalmer  fprintf (stderr, "%s: %s: ", program_name, mode);
53143eed67faSmbalmer  vfprintf (stderr, message, ap);
53153eed67faSmbalmer  fprintf (stderr, ".\n");
53163eed67faSmbalmer
53173eed67faSmbalmer  if (exit_status >= 0)
53183eed67faSmbalmer    exit (exit_status);
53193eed67faSmbalmer}
53203eed67faSmbalmer
53213eed67faSmbalmervoid
53223eed67faSmbalmerlt_fatal (const char *message, ...)
53233eed67faSmbalmer{
53243eed67faSmbalmer  va_list ap;
53253eed67faSmbalmer  va_start (ap, message);
53263eed67faSmbalmer  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
53273eed67faSmbalmer  va_end (ap);
53283eed67faSmbalmer}
53293eed67faSmbalmerEOF
53303eed67faSmbalmer          # we should really use a build-platform specific compiler
53313eed67faSmbalmer          # here, but OTOH, the wrappers (shell script and this C one)
53323eed67faSmbalmer          # are only useful if you want to execute the "real" binary.
53333eed67faSmbalmer          # Since the "real" binary is built for $host, then this
53343eed67faSmbalmer          # wrapper might as well be built for $host, too.
53353eed67faSmbalmer          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
53363eed67faSmbalmer          ;;
53373eed67faSmbalmer        esac
53383eed67faSmbalmer        $rm $output
53393eed67faSmbalmer        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
53403eed67faSmbalmer
53413eed67faSmbalmer	$echo > $output "\
53423eed67faSmbalmer#! $SHELL
53433eed67faSmbalmer
53443eed67faSmbalmer# $output - temporary wrapper script for $objdir/$outputname
53453eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
53463eed67faSmbalmer#
53473eed67faSmbalmer# The $output program cannot be directly executed until all the libtool
53483eed67faSmbalmer# libraries that it depends on are installed.
53493eed67faSmbalmer#
53503eed67faSmbalmer# This wrapper script should never be moved out of the build directory.
53513eed67faSmbalmer# If it is, it will not operate correctly.
53523eed67faSmbalmer
53533eed67faSmbalmer# Sed substitution that helps us do robust quoting.  It backslashifies
53543eed67faSmbalmer# metacharacters that are still active within double-quoted strings.
53553eed67faSmbalmerXsed='${SED} -e 1s/^X//'
53563eed67faSmbalmersed_quote_subst='$sed_quote_subst'
53573eed67faSmbalmer
53583eed67faSmbalmer# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
53593eed67faSmbalmerif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
53603eed67faSmbalmer  emulate sh
53613eed67faSmbalmer  NULLCMD=:
53623eed67faSmbalmer  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
53633eed67faSmbalmer  # is contrary to our usage.  Disable this feature.
53643eed67faSmbalmer  alias -g '\${1+\"\$@\"}'='\"\$@\"'
53653eed67faSmbalmer  setopt NO_GLOB_SUBST
53663eed67faSmbalmerelse
53673eed67faSmbalmer  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
53683eed67faSmbalmerfi
53693eed67faSmbalmerBIN_SH=xpg4; export BIN_SH # for Tru64
53703eed67faSmbalmerDUALCASE=1; export DUALCASE # for MKS sh
53713eed67faSmbalmer
53723eed67faSmbalmer# The HP-UX ksh and POSIX shell print the target directory to stdout
53733eed67faSmbalmer# if CDPATH is set.
53743eed67faSmbalmer(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
53753eed67faSmbalmer
53763eed67faSmbalmerrelink_command=\"$relink_command\"
53773eed67faSmbalmer
53783eed67faSmbalmer# This environment variable determines our operation mode.
53793eed67faSmbalmerif test \"\$libtool_install_magic\" = \"$magic\"; then
53803eed67faSmbalmer  # install mode needs the following variable:
53813eed67faSmbalmer  notinst_deplibs='$notinst_deplibs'
53823eed67faSmbalmerelse
53833eed67faSmbalmer  # When we are sourced in execute mode, \$file and \$echo are already set.
53843eed67faSmbalmer  if test \"\$libtool_execute_magic\" != \"$magic\"; then
53853eed67faSmbalmer    echo=\"$qecho\"
53863eed67faSmbalmer    file=\"\$0\"
53873eed67faSmbalmer    # Make sure echo works.
53883eed67faSmbalmer    if test \"X\$1\" = X--no-reexec; then
53893eed67faSmbalmer      # Discard the --no-reexec flag, and continue.
53903eed67faSmbalmer      shift
53913eed67faSmbalmer    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
53923eed67faSmbalmer      # Yippee, \$echo works!
53933eed67faSmbalmer      :
53943eed67faSmbalmer    else
53953eed67faSmbalmer      # Restart under the correct shell, and then maybe \$echo will work.
53963eed67faSmbalmer      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
53973eed67faSmbalmer    fi
53983eed67faSmbalmer  fi\
53993eed67faSmbalmer"
54003eed67faSmbalmer	$echo >> $output "\
54013eed67faSmbalmer
54023eed67faSmbalmer  # Find the directory that this script lives in.
54033eed67faSmbalmer  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
54043eed67faSmbalmer  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
54053eed67faSmbalmer
54063eed67faSmbalmer  # Follow symbolic links until we get to the real thisdir.
54073eed67faSmbalmer  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
54083eed67faSmbalmer  while test -n \"\$file\"; do
54093eed67faSmbalmer    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
54103eed67faSmbalmer
54113eed67faSmbalmer    # If there was a directory component, then change thisdir.
54123eed67faSmbalmer    if test \"x\$destdir\" != \"x\$file\"; then
54133eed67faSmbalmer      case \"\$destdir\" in
54143eed67faSmbalmer      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
54153eed67faSmbalmer      *) thisdir=\"\$thisdir/\$destdir\" ;;
54163eed67faSmbalmer      esac
54173eed67faSmbalmer    fi
54183eed67faSmbalmer
54193eed67faSmbalmer    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
54203eed67faSmbalmer    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
54213eed67faSmbalmer  done
54223eed67faSmbalmer
54233eed67faSmbalmer  # Try to get the absolute directory name.
54243eed67faSmbalmer  absdir=\`cd \"\$thisdir\" && pwd\`
54253eed67faSmbalmer  test -n \"\$absdir\" && thisdir=\"\$absdir\"
54263eed67faSmbalmer"
54273eed67faSmbalmer
54283eed67faSmbalmer	if test "$fast_install" = yes; then
54293eed67faSmbalmer	  $echo >> $output "\
54303eed67faSmbalmer  program=lt-'$outputname'$exeext
54313eed67faSmbalmer  progdir=\"\$thisdir/$objdir\"
54323eed67faSmbalmer
54333eed67faSmbalmer  if test ! -f \"\$progdir/\$program\" || \\
54343eed67faSmbalmer     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
54353eed67faSmbalmer       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
54363eed67faSmbalmer
54373eed67faSmbalmer    file=\"\$\$-\$program\"
54383eed67faSmbalmer
54393eed67faSmbalmer    if test ! -d \"\$progdir\"; then
54403eed67faSmbalmer      $mkdir \"\$progdir\"
54413eed67faSmbalmer    else
54423eed67faSmbalmer      $rm \"\$progdir/\$file\"
54433eed67faSmbalmer    fi"
54443eed67faSmbalmer
54453eed67faSmbalmer	  $echo >> $output "\
54463eed67faSmbalmer
54473eed67faSmbalmer    # relink executable if necessary
54483eed67faSmbalmer    if test -n \"\$relink_command\"; then
54493eed67faSmbalmer      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
54503eed67faSmbalmer      else
54513eed67faSmbalmer	$echo \"\$relink_command_output\" >&2
54523eed67faSmbalmer	$rm \"\$progdir/\$file\"
54533eed67faSmbalmer	exit $EXIT_FAILURE
54543eed67faSmbalmer      fi
54553eed67faSmbalmer    fi
54563eed67faSmbalmer
54573eed67faSmbalmer    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
54583eed67faSmbalmer    { $rm \"\$progdir/\$program\";
54593eed67faSmbalmer      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
54603eed67faSmbalmer    $rm \"\$progdir/\$file\"
54613eed67faSmbalmer  fi"
54623eed67faSmbalmer	else
54633eed67faSmbalmer	  $echo >> $output "\
54643eed67faSmbalmer  program='$outputname'
54653eed67faSmbalmer  progdir=\"\$thisdir/$objdir\"
54663eed67faSmbalmer"
54673eed67faSmbalmer	fi
54683eed67faSmbalmer
54693eed67faSmbalmer	$echo >> $output "\
54703eed67faSmbalmer
54713eed67faSmbalmer  if test -f \"\$progdir/\$program\"; then"
54723eed67faSmbalmer
54733eed67faSmbalmer	# Export our shlibpath_var if we have one.
54743eed67faSmbalmer	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
54753eed67faSmbalmer	  $echo >> $output "\
54763eed67faSmbalmer    # Add our own library path to $shlibpath_var
54773eed67faSmbalmer    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
54783eed67faSmbalmer
54793eed67faSmbalmer    # Some systems cannot cope with colon-terminated $shlibpath_var
54803eed67faSmbalmer    # The second colon is a workaround for a bug in BeOS R4 sed
54813eed67faSmbalmer    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
54823eed67faSmbalmer
54833eed67faSmbalmer    export $shlibpath_var
54843eed67faSmbalmer"
54853eed67faSmbalmer	fi
54863eed67faSmbalmer
54873eed67faSmbalmer	# fixup the dll searchpath if we need to.
54883eed67faSmbalmer	if test -n "$dllsearchpath"; then
54893eed67faSmbalmer	  $echo >> $output "\
54903eed67faSmbalmer    # Add the dll search path components to the executable PATH
54913eed67faSmbalmer    PATH=$dllsearchpath:\$PATH
54923eed67faSmbalmer"
54933eed67faSmbalmer	fi
54943eed67faSmbalmer
54953eed67faSmbalmer	$echo >> $output "\
54963eed67faSmbalmer    if test \"\$libtool_execute_magic\" != \"$magic\"; then
54973eed67faSmbalmer      # Run the actual program with our arguments.
54983eed67faSmbalmer"
54993eed67faSmbalmer	case $host in
55003eed67faSmbalmer	# Backslashes separate directories on plain windows
55013eed67faSmbalmer	*-*-mingw | *-*-os2*)
55023eed67faSmbalmer	  $echo >> $output "\
55033eed67faSmbalmer      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
55043eed67faSmbalmer"
55053eed67faSmbalmer	  ;;
55063eed67faSmbalmer
55073eed67faSmbalmer	*)
55083eed67faSmbalmer	  $echo >> $output "\
55093eed67faSmbalmer      exec \"\$progdir/\$program\" \${1+\"\$@\"}
55103eed67faSmbalmer"
55113eed67faSmbalmer	  ;;
55123eed67faSmbalmer	esac
55133eed67faSmbalmer	$echo >> $output "\
55143eed67faSmbalmer      \$echo \"\$0: cannot exec \$program \$*\"
55153eed67faSmbalmer      exit $EXIT_FAILURE
55163eed67faSmbalmer    fi
55173eed67faSmbalmer  else
55183eed67faSmbalmer    # The program doesn't exist.
55193eed67faSmbalmer    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
55203eed67faSmbalmer    \$echo \"This script is just a wrapper for \$program.\" 1>&2
55213eed67faSmbalmer    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
55223eed67faSmbalmer    exit $EXIT_FAILURE
55233eed67faSmbalmer  fi
55243eed67faSmbalmerfi\
55253eed67faSmbalmer"
55263eed67faSmbalmer	chmod +x $output
55273eed67faSmbalmer      fi
55283eed67faSmbalmer      exit $EXIT_SUCCESS
55293eed67faSmbalmer      ;;
55303eed67faSmbalmer    esac
55313eed67faSmbalmer
55323eed67faSmbalmer    # See if we need to build an old-fashioned archive.
55333eed67faSmbalmer    for oldlib in $oldlibs; do
55343eed67faSmbalmer
55353eed67faSmbalmer      if test "$build_libtool_libs" = convenience; then
55363eed67faSmbalmer	oldobjs="$libobjs_save"
55373eed67faSmbalmer	addlibs="$convenience"
55383eed67faSmbalmer	build_libtool_libs=no
55393eed67faSmbalmer      else
55403eed67faSmbalmer	if test "$build_libtool_libs" = module; then
55413eed67faSmbalmer	  oldobjs="$libobjs_save"
55423eed67faSmbalmer	  build_libtool_libs=no
55433eed67faSmbalmer	else
55443eed67faSmbalmer	  oldobjs="$old_deplibs $non_pic_objects"
55453eed67faSmbalmer	fi
55463eed67faSmbalmer	addlibs="$old_convenience"
55473eed67faSmbalmer      fi
55483eed67faSmbalmer
55493eed67faSmbalmer      if test -n "$addlibs"; then
55503eed67faSmbalmer	gentop="$output_objdir/${outputname}x"
55513eed67faSmbalmer	generated="$generated $gentop"
55523eed67faSmbalmer
55533eed67faSmbalmer	func_extract_archives $gentop $addlibs
55543eed67faSmbalmer	oldobjs="$oldobjs $func_extract_archives_result"
55553eed67faSmbalmer      fi
55563eed67faSmbalmer
55573eed67faSmbalmer      # Do each command in the archive commands.
55583eed67faSmbalmer      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
55593eed67faSmbalmer       cmds=$old_archive_from_new_cmds
55603eed67faSmbalmer      else
55613eed67faSmbalmer	# POSIX demands no paths to be encoded in archives.  We have
55623eed67faSmbalmer	# to avoid creating archives with duplicate basenames if we
55633eed67faSmbalmer	# might have to extract them afterwards, e.g., when creating a
55643eed67faSmbalmer	# static archive out of a convenience library, or when linking
55653eed67faSmbalmer	# the entirety of a libtool archive into another (currently
55663eed67faSmbalmer	# not supported by libtool).
55673eed67faSmbalmer	if (for obj in $oldobjs
55683eed67faSmbalmer	    do
55693eed67faSmbalmer	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
55703eed67faSmbalmer	    done | sort | sort -uc >/dev/null 2>&1); then
55713eed67faSmbalmer	  :
55723eed67faSmbalmer	else
55733eed67faSmbalmer	  $echo "copying selected object files to avoid basename conflicts..."
55743eed67faSmbalmer
55753eed67faSmbalmer	  if test -z "$gentop"; then
55763eed67faSmbalmer	    gentop="$output_objdir/${outputname}x"
55773eed67faSmbalmer	    generated="$generated $gentop"
55783eed67faSmbalmer
55793eed67faSmbalmer	    $show "${rm}r $gentop"
55803eed67faSmbalmer	    $run ${rm}r "$gentop"
55813eed67faSmbalmer	    $show "$mkdir $gentop"
55823eed67faSmbalmer	    $run $mkdir "$gentop"
55833eed67faSmbalmer	    exit_status=$?
55843eed67faSmbalmer	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
55853eed67faSmbalmer	      exit $exit_status
55863eed67faSmbalmer	    fi
55873eed67faSmbalmer	  fi
55883eed67faSmbalmer
55893eed67faSmbalmer	  save_oldobjs=$oldobjs
55903eed67faSmbalmer	  oldobjs=
55913eed67faSmbalmer	  counter=1
55923eed67faSmbalmer	  for obj in $save_oldobjs
55933eed67faSmbalmer	  do
55943eed67faSmbalmer	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
55953eed67faSmbalmer	    case " $oldobjs " in
55963eed67faSmbalmer	    " ") oldobjs=$obj ;;
55973eed67faSmbalmer	    *[\ /]"$objbase "*)
55983eed67faSmbalmer	      while :; do
55993eed67faSmbalmer		# Make sure we don't pick an alternate name that also
56003eed67faSmbalmer		# overlaps.
56013eed67faSmbalmer		newobj=lt$counter-$objbase
56023eed67faSmbalmer		counter=`expr $counter + 1`
56033eed67faSmbalmer		case " $oldobjs " in
56043eed67faSmbalmer		*[\ /]"$newobj "*) ;;
56053eed67faSmbalmer		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
56063eed67faSmbalmer		esac
56073eed67faSmbalmer	      done
56083eed67faSmbalmer	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
56093eed67faSmbalmer	      $run ln "$obj" "$gentop/$newobj" ||
56103eed67faSmbalmer	      $run cp "$obj" "$gentop/$newobj"
56113eed67faSmbalmer	      oldobjs="$oldobjs $gentop/$newobj"
56123eed67faSmbalmer	      ;;
56133eed67faSmbalmer	    *) oldobjs="$oldobjs $obj" ;;
56143eed67faSmbalmer	    esac
56153eed67faSmbalmer	  done
56163eed67faSmbalmer	fi
56173eed67faSmbalmer
56183eed67faSmbalmer	eval cmds=\"$old_archive_cmds\"
56193eed67faSmbalmer
56203eed67faSmbalmer	if len=`expr "X$cmds" : ".*"` &&
56213eed67faSmbalmer	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
56223eed67faSmbalmer	  cmds=$old_archive_cmds
56233eed67faSmbalmer	else
56243eed67faSmbalmer	  # the command line is too long to link in one step, link in parts
56253eed67faSmbalmer	  $echo "using piecewise archive linking..."
56263eed67faSmbalmer	  save_RANLIB=$RANLIB
56273eed67faSmbalmer	  RANLIB=:
56283eed67faSmbalmer	  objlist=
56293eed67faSmbalmer	  concat_cmds=
56303eed67faSmbalmer	  save_oldobjs=$oldobjs
56313eed67faSmbalmer
56323eed67faSmbalmer	  # Is there a better way of finding the last object in the list?
56333eed67faSmbalmer	  for obj in $save_oldobjs
56343eed67faSmbalmer	  do
56353eed67faSmbalmer	    last_oldobj=$obj
56363eed67faSmbalmer	  done
56373eed67faSmbalmer	  for obj in $save_oldobjs
56383eed67faSmbalmer	  do
56393eed67faSmbalmer	    oldobjs="$objlist $obj"
56403eed67faSmbalmer	    objlist="$objlist $obj"
56413eed67faSmbalmer	    eval test_cmds=\"$old_archive_cmds\"
56423eed67faSmbalmer	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
56433eed67faSmbalmer	       test "$len" -le "$max_cmd_len"; then
56443eed67faSmbalmer	      :
56453eed67faSmbalmer	    else
56463eed67faSmbalmer	      # the above command should be used before it gets too long
56473eed67faSmbalmer	      oldobjs=$objlist
56483eed67faSmbalmer	      if test "$obj" = "$last_oldobj" ; then
56493eed67faSmbalmer	        RANLIB=$save_RANLIB
56503eed67faSmbalmer	      fi
56513eed67faSmbalmer	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
56523eed67faSmbalmer	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
56533eed67faSmbalmer	      objlist=
56543eed67faSmbalmer	    fi
56553eed67faSmbalmer	  done
56563eed67faSmbalmer	  RANLIB=$save_RANLIB
56573eed67faSmbalmer	  oldobjs=$objlist
56583eed67faSmbalmer	  if test "X$oldobjs" = "X" ; then
56593eed67faSmbalmer	    eval cmds=\"\$concat_cmds\"
56603eed67faSmbalmer	  else
56613eed67faSmbalmer	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
56623eed67faSmbalmer	  fi
56633eed67faSmbalmer	fi
56643eed67faSmbalmer      fi
56653eed67faSmbalmer      save_ifs="$IFS"; IFS='~'
56663eed67faSmbalmer      for cmd in $cmds; do
56673eed67faSmbalmer        eval cmd=\"$cmd\"
56683eed67faSmbalmer	IFS="$save_ifs"
56693eed67faSmbalmer	$show "$cmd"
56703eed67faSmbalmer	$run eval "$cmd" || exit $?
56713eed67faSmbalmer      done
56723eed67faSmbalmer      IFS="$save_ifs"
56733eed67faSmbalmer    done
56743eed67faSmbalmer
56753eed67faSmbalmer    if test -n "$generated"; then
56763eed67faSmbalmer      $show "${rm}r$generated"
56773eed67faSmbalmer      $run ${rm}r$generated
56783eed67faSmbalmer    fi
56793eed67faSmbalmer
56803eed67faSmbalmer    # Now create the libtool archive.
56813eed67faSmbalmer    case $output in
56823eed67faSmbalmer    *.la)
56833eed67faSmbalmer      old_library=
56843eed67faSmbalmer      test "$build_old_libs" = yes && old_library="$libname.$libext"
56853eed67faSmbalmer      $show "creating $output"
56863eed67faSmbalmer
56873eed67faSmbalmer      # Preserve any variables that may affect compiler behavior
56883eed67faSmbalmer      for var in $variables_saved_for_relink; do
56893eed67faSmbalmer	if eval test -z \"\${$var+set}\"; then
56903eed67faSmbalmer	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
56913eed67faSmbalmer	elif eval var_value=\$$var; test -z "$var_value"; then
56923eed67faSmbalmer	  relink_command="$var=; export $var; $relink_command"
56933eed67faSmbalmer	else
56943eed67faSmbalmer	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
56953eed67faSmbalmer	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
56963eed67faSmbalmer	fi
56973eed67faSmbalmer      done
56983eed67faSmbalmer      # Quote the link command for shipping.
56993eed67faSmbalmer      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
57003eed67faSmbalmer      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
57013eed67faSmbalmer      if test "$hardcode_automatic" = yes ; then
57023eed67faSmbalmer	relink_command=
57033eed67faSmbalmer      fi
57043eed67faSmbalmer
57053eed67faSmbalmer
57063eed67faSmbalmer      # Only create the output if not a dry run.
57073eed67faSmbalmer      if test -z "$run"; then
57083eed67faSmbalmer	for installed in no yes; do
57093eed67faSmbalmer	  if test "$installed" = yes; then
57103eed67faSmbalmer	    if test -z "$install_libdir"; then
57113eed67faSmbalmer	      break
57123eed67faSmbalmer	    fi
57133eed67faSmbalmer	    output="$output_objdir/$outputname"i
57143eed67faSmbalmer	    # Replace all uninstalled libtool libraries with the installed ones
57153eed67faSmbalmer	    newdependency_libs=
57163eed67faSmbalmer	    for deplib in $dependency_libs; do
57173eed67faSmbalmer	      case $deplib in
57183eed67faSmbalmer	      *.la)
57193eed67faSmbalmer		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
57203eed67faSmbalmer		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
57213eed67faSmbalmer		if test -z "$libdir"; then
57223eed67faSmbalmer		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
57233eed67faSmbalmer		  exit $EXIT_FAILURE
57243eed67faSmbalmer		fi
57253eed67faSmbalmer		newdependency_libs="$newdependency_libs $libdir/$name"
57263eed67faSmbalmer		;;
57273eed67faSmbalmer	      *) newdependency_libs="$newdependency_libs $deplib" ;;
57283eed67faSmbalmer	      esac
57293eed67faSmbalmer	    done
57303eed67faSmbalmer	    dependency_libs="$newdependency_libs"
57313eed67faSmbalmer	    newdlfiles=
57323eed67faSmbalmer	    for lib in $dlfiles; do
57333eed67faSmbalmer	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57343eed67faSmbalmer	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57353eed67faSmbalmer	      if test -z "$libdir"; then
57363eed67faSmbalmer		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57373eed67faSmbalmer		exit $EXIT_FAILURE
57383eed67faSmbalmer	      fi
57393eed67faSmbalmer	      newdlfiles="$newdlfiles $libdir/$name"
57403eed67faSmbalmer	    done
57413eed67faSmbalmer	    dlfiles="$newdlfiles"
57423eed67faSmbalmer	    newdlprefiles=
57433eed67faSmbalmer	    for lib in $dlprefiles; do
57443eed67faSmbalmer	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57453eed67faSmbalmer	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57463eed67faSmbalmer	      if test -z "$libdir"; then
57473eed67faSmbalmer		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57483eed67faSmbalmer		exit $EXIT_FAILURE
57493eed67faSmbalmer	      fi
57503eed67faSmbalmer	      newdlprefiles="$newdlprefiles $libdir/$name"
57513eed67faSmbalmer	    done
57523eed67faSmbalmer	    dlprefiles="$newdlprefiles"
57533eed67faSmbalmer	  else
57543eed67faSmbalmer	    newdlfiles=
57553eed67faSmbalmer	    for lib in $dlfiles; do
57563eed67faSmbalmer	      case $lib in
57573eed67faSmbalmer		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57583eed67faSmbalmer		*) abs=`pwd`"/$lib" ;;
57593eed67faSmbalmer	      esac
57603eed67faSmbalmer	      newdlfiles="$newdlfiles $abs"
57613eed67faSmbalmer	    done
57623eed67faSmbalmer	    dlfiles="$newdlfiles"
57633eed67faSmbalmer	    newdlprefiles=
57643eed67faSmbalmer	    for lib in $dlprefiles; do
57653eed67faSmbalmer	      case $lib in
57663eed67faSmbalmer		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57673eed67faSmbalmer		*) abs=`pwd`"/$lib" ;;
57683eed67faSmbalmer	      esac
57693eed67faSmbalmer	      newdlprefiles="$newdlprefiles $abs"
57703eed67faSmbalmer	    done
57713eed67faSmbalmer	    dlprefiles="$newdlprefiles"
57723eed67faSmbalmer	  fi
57733eed67faSmbalmer	  $rm $output
57743eed67faSmbalmer	  # place dlname in correct position for cygwin
57753eed67faSmbalmer	  tdlname=$dlname
57763eed67faSmbalmer	  case $host,$output,$installed,$module,$dlname in
57773eed67faSmbalmer	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
57783eed67faSmbalmer	  esac
57793eed67faSmbalmer	  $echo > $output "\
57803eed67faSmbalmer# $outputname - a libtool library file
57813eed67faSmbalmer# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
57823eed67faSmbalmer#
57833eed67faSmbalmer# Please DO NOT delete this file!
57843eed67faSmbalmer# It is necessary for linking the library.
57853eed67faSmbalmer
57863eed67faSmbalmer# The name that we can dlopen(3).
57873eed67faSmbalmerdlname='$tdlname'
57883eed67faSmbalmer
57893eed67faSmbalmer# Names of this library.
57903eed67faSmbalmerlibrary_names='$library_names'
57913eed67faSmbalmer
57923eed67faSmbalmer# The name of the static archive.
57933eed67faSmbalmerold_library='$old_library'
57943eed67faSmbalmer
57953eed67faSmbalmer# Libraries that this one depends upon.
57963eed67faSmbalmerdependency_libs='$dependency_libs'
57973eed67faSmbalmer
57983eed67faSmbalmer# Version information for $libname.
57993eed67faSmbalmercurrent=$current
58003eed67faSmbalmerage=$age
58013eed67faSmbalmerrevision=$revision
58023eed67faSmbalmer
58033eed67faSmbalmer# Is this an already installed library?
58043eed67faSmbalmerinstalled=$installed
58053eed67faSmbalmer
58063eed67faSmbalmer# Should we warn about portability when linking against -modules?
58073eed67faSmbalmershouldnotlink=$module
58083eed67faSmbalmer
58093eed67faSmbalmer# Files to dlopen/dlpreopen
58103eed67faSmbalmerdlopen='$dlfiles'
58113eed67faSmbalmerdlpreopen='$dlprefiles'
58123eed67faSmbalmer
58133eed67faSmbalmer# Directory that this library needs to be installed in:
58143eed67faSmbalmerlibdir='$install_libdir'"
58153eed67faSmbalmer	  if test "$installed" = no && test "$need_relink" = yes; then
58163eed67faSmbalmer	    $echo >> $output "\
58173eed67faSmbalmerrelink_command=\"$relink_command\""
58183eed67faSmbalmer	  fi
58193eed67faSmbalmer	done
58203eed67faSmbalmer      fi
58213eed67faSmbalmer
58223eed67faSmbalmer      # Do a symbolic link so that the libtool archive can be found in
58233eed67faSmbalmer      # LD_LIBRARY_PATH before the program is installed.
58243eed67faSmbalmer      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
58253eed67faSmbalmer      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
58263eed67faSmbalmer      ;;
58273eed67faSmbalmer    esac
58283eed67faSmbalmer    exit $EXIT_SUCCESS
58293eed67faSmbalmer    ;;
58303eed67faSmbalmer
58313eed67faSmbalmer  # libtool install mode
58323eed67faSmbalmer  install)
58333eed67faSmbalmer    modename="$modename: install"
58343eed67faSmbalmer
58353eed67faSmbalmer    # There may be an optional sh(1) argument at the beginning of
58363eed67faSmbalmer    # install_prog (especially on Windows NT).
58373eed67faSmbalmer    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
58383eed67faSmbalmer       # Allow the use of GNU shtool's install command.
58393eed67faSmbalmer       $echo "X$nonopt" | grep shtool > /dev/null; then
58403eed67faSmbalmer      # Aesthetically quote it.
58413eed67faSmbalmer      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
58423eed67faSmbalmer      case $arg in
58433eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58443eed67faSmbalmer	arg="\"$arg\""
58453eed67faSmbalmer	;;
58463eed67faSmbalmer      esac
58473eed67faSmbalmer      install_prog="$arg "
58483eed67faSmbalmer      arg="$1"
58493eed67faSmbalmer      shift
58503eed67faSmbalmer    else
58513eed67faSmbalmer      install_prog=
58523eed67faSmbalmer      arg=$nonopt
58533eed67faSmbalmer    fi
58543eed67faSmbalmer
58553eed67faSmbalmer    # The real first argument should be the name of the installation program.
58563eed67faSmbalmer    # Aesthetically quote it.
58573eed67faSmbalmer    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58583eed67faSmbalmer    case $arg in
58593eed67faSmbalmer    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58603eed67faSmbalmer      arg="\"$arg\""
58613eed67faSmbalmer      ;;
58623eed67faSmbalmer    esac
58633eed67faSmbalmer    install_prog="$install_prog$arg"
58643eed67faSmbalmer
58653eed67faSmbalmer    # We need to accept at least all the BSD install flags.
58663eed67faSmbalmer    dest=
58673eed67faSmbalmer    files=
58683eed67faSmbalmer    opts=
58693eed67faSmbalmer    prev=
58703eed67faSmbalmer    install_type=
58713eed67faSmbalmer    isdir=no
58723eed67faSmbalmer    stripme=
58733eed67faSmbalmer    for arg
58743eed67faSmbalmer    do
58753eed67faSmbalmer      if test -n "$dest"; then
58763eed67faSmbalmer	files="$files $dest"
58773eed67faSmbalmer	dest=$arg
58783eed67faSmbalmer	continue
58793eed67faSmbalmer      fi
58803eed67faSmbalmer
58813eed67faSmbalmer      case $arg in
58823eed67faSmbalmer      -d) isdir=yes ;;
58833eed67faSmbalmer      -f) 
58843eed67faSmbalmer      	case " $install_prog " in
58853eed67faSmbalmer	*[\\\ /]cp\ *) ;;
58863eed67faSmbalmer	*) prev=$arg ;;
58873eed67faSmbalmer	esac
58883eed67faSmbalmer	;;
58893eed67faSmbalmer      -g | -m | -o) prev=$arg ;;
58903eed67faSmbalmer      -s)
58913eed67faSmbalmer	stripme=" -s"
58923eed67faSmbalmer	continue
58933eed67faSmbalmer	;;
58943eed67faSmbalmer      -*)
58953eed67faSmbalmer	;;
58963eed67faSmbalmer      *)
58973eed67faSmbalmer	# If the previous option needed an argument, then skip it.
58983eed67faSmbalmer	if test -n "$prev"; then
58993eed67faSmbalmer	  prev=
59003eed67faSmbalmer	else
59013eed67faSmbalmer	  dest=$arg
59023eed67faSmbalmer	  continue
59033eed67faSmbalmer	fi
59043eed67faSmbalmer	;;
59053eed67faSmbalmer      esac
59063eed67faSmbalmer
59073eed67faSmbalmer      # Aesthetically quote the argument.
59083eed67faSmbalmer      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
59093eed67faSmbalmer      case $arg in
59103eed67faSmbalmer      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
59113eed67faSmbalmer	arg="\"$arg\""
59123eed67faSmbalmer	;;
59133eed67faSmbalmer      esac
59143eed67faSmbalmer      install_prog="$install_prog $arg"
59153eed67faSmbalmer    done
59163eed67faSmbalmer    case " $install_prog " in
59173eed67faSmbalmer    *[\\\ /]cp\ *) extra_mode=;;
59183eed67faSmbalmer    *) extra_mode='-m 644';;
59193eed67faSmbalmer    esac
59203eed67faSmbalmer
59213eed67faSmbalmer    if test -z "$install_prog"; then
59223eed67faSmbalmer      $echo "$modename: you must specify an install program" 1>&2
59233eed67faSmbalmer      $echo "$help" 1>&2
59243eed67faSmbalmer      exit $EXIT_FAILURE
59253eed67faSmbalmer    fi
59263eed67faSmbalmer
59273eed67faSmbalmer    if test -n "$prev"; then
59283eed67faSmbalmer      $echo "$modename: the \`$prev' option requires an argument" 1>&2
59293eed67faSmbalmer      $echo "$help" 1>&2
59303eed67faSmbalmer      exit $EXIT_FAILURE
59313eed67faSmbalmer    fi
59323eed67faSmbalmer
59333eed67faSmbalmer    if test -z "$files"; then
59343eed67faSmbalmer      if test -z "$dest"; then
59353eed67faSmbalmer	$echo "$modename: no file or destination specified" 1>&2
59363eed67faSmbalmer      else
59373eed67faSmbalmer	$echo "$modename: you must specify a destination" 1>&2
59383eed67faSmbalmer      fi
59393eed67faSmbalmer      $echo "$help" 1>&2
59403eed67faSmbalmer      exit $EXIT_FAILURE
59413eed67faSmbalmer    fi
59423eed67faSmbalmer
59433eed67faSmbalmer    # Strip any trailing slash from the destination.
59443eed67faSmbalmer    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
59453eed67faSmbalmer
59463eed67faSmbalmer    # Check to see that the destination is a directory.
59473eed67faSmbalmer    test -d "$dest" && isdir=yes
59483eed67faSmbalmer    if test "$isdir" = yes; then
59493eed67faSmbalmer      destdir="$dest"
59503eed67faSmbalmer      destname=
59513eed67faSmbalmer    else
59523eed67faSmbalmer      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
59533eed67faSmbalmer      test "X$destdir" = "X$dest" && destdir=.
59543eed67faSmbalmer      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
59553eed67faSmbalmer
59563eed67faSmbalmer      # Not a directory, so check to see that there is only one file specified.
59573eed67faSmbalmer      set dummy $files
59583eed67faSmbalmer      if test "$#" -gt 2; then
59593eed67faSmbalmer	$echo "$modename: \`$dest' is not a directory" 1>&2
59603eed67faSmbalmer	$echo "$help" 1>&2
59613eed67faSmbalmer	exit $EXIT_FAILURE
59623eed67faSmbalmer      fi
59633eed67faSmbalmer    fi
59643eed67faSmbalmer    case $destdir in
59653eed67faSmbalmer    [\\/]* | [A-Za-z]:[\\/]*) ;;
59663eed67faSmbalmer    *)
59673eed67faSmbalmer      for file in $files; do
59683eed67faSmbalmer	case $file in
59693eed67faSmbalmer	*.lo) ;;
59703eed67faSmbalmer	*)
59713eed67faSmbalmer	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
59723eed67faSmbalmer	  $echo "$help" 1>&2
59733eed67faSmbalmer	  exit $EXIT_FAILURE
59743eed67faSmbalmer	  ;;
59753eed67faSmbalmer	esac
59763eed67faSmbalmer      done
59773eed67faSmbalmer      ;;
59783eed67faSmbalmer    esac
59793eed67faSmbalmer
59803eed67faSmbalmer    # This variable tells wrapper scripts just to set variables rather
59813eed67faSmbalmer    # than running their programs.
59823eed67faSmbalmer    libtool_install_magic="$magic"
59833eed67faSmbalmer
59843eed67faSmbalmer    staticlibs=
59853eed67faSmbalmer    future_libdirs=
59863eed67faSmbalmer    current_libdirs=
59873eed67faSmbalmer    for file in $files; do
59883eed67faSmbalmer
59893eed67faSmbalmer      # Do each installation.
59903eed67faSmbalmer      case $file in
59913eed67faSmbalmer      *.$libext)
59923eed67faSmbalmer	# Do the static libraries later.
59933eed67faSmbalmer	staticlibs="$staticlibs $file"
59943eed67faSmbalmer	;;
59953eed67faSmbalmer
59963eed67faSmbalmer      *.la)
59973eed67faSmbalmer	# Check to see that this really is a libtool archive.
59983eed67faSmbalmer	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
59993eed67faSmbalmer	else
60003eed67faSmbalmer	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
60013eed67faSmbalmer	  $echo "$help" 1>&2
60023eed67faSmbalmer	  exit $EXIT_FAILURE
60033eed67faSmbalmer	fi
60043eed67faSmbalmer
60053eed67faSmbalmer	library_names=
60063eed67faSmbalmer	old_library=
60073eed67faSmbalmer	relink_command=
60083eed67faSmbalmer	# If there is no directory component, then add one.
60093eed67faSmbalmer	case $file in
60103eed67faSmbalmer	*/* | *\\*) . $file ;;
60113eed67faSmbalmer	*) . ./$file ;;
60123eed67faSmbalmer	esac
60133eed67faSmbalmer
60143eed67faSmbalmer	# Add the libdir to current_libdirs if it is the destination.
60153eed67faSmbalmer	if test "X$destdir" = "X$libdir"; then
60163eed67faSmbalmer	  case "$current_libdirs " in
60173eed67faSmbalmer	  *" $libdir "*) ;;
60183eed67faSmbalmer	  *) current_libdirs="$current_libdirs $libdir" ;;
60193eed67faSmbalmer	  esac
60203eed67faSmbalmer	else
60213eed67faSmbalmer	  # Note the libdir as a future libdir.
60223eed67faSmbalmer	  case "$future_libdirs " in
60233eed67faSmbalmer	  *" $libdir "*) ;;
60243eed67faSmbalmer	  *) future_libdirs="$future_libdirs $libdir" ;;
60253eed67faSmbalmer	  esac
60263eed67faSmbalmer	fi
60273eed67faSmbalmer
60283eed67faSmbalmer	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
60293eed67faSmbalmer	test "X$dir" = "X$file/" && dir=
60303eed67faSmbalmer	dir="$dir$objdir"
60313eed67faSmbalmer
60323eed67faSmbalmer	if test -n "$relink_command"; then
60333eed67faSmbalmer	  # Determine the prefix the user has applied to our future dir.
60343eed67faSmbalmer	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
60353eed67faSmbalmer
60363eed67faSmbalmer	  # Don't allow the user to place us outside of our expected
60373eed67faSmbalmer	  # location b/c this prevents finding dependent libraries that
60383eed67faSmbalmer	  # are installed to the same prefix.
60393eed67faSmbalmer	  # At present, this check doesn't affect windows .dll's that
60403eed67faSmbalmer	  # are installed into $libdir/../bin (currently, that works fine)
60413eed67faSmbalmer	  # but it's something to keep an eye on.
60423eed67faSmbalmer	  if test "$inst_prefix_dir" = "$destdir"; then
60433eed67faSmbalmer	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
60443eed67faSmbalmer	    exit $EXIT_FAILURE
60453eed67faSmbalmer	  fi
60463eed67faSmbalmer
60473eed67faSmbalmer	  if test -n "$inst_prefix_dir"; then
60483eed67faSmbalmer	    # Stick the inst_prefix_dir data into the link command.
60493eed67faSmbalmer	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
60503eed67faSmbalmer	  else
60513eed67faSmbalmer	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
60523eed67faSmbalmer	  fi
60533eed67faSmbalmer
60543eed67faSmbalmer	  $echo "$modename: warning: relinking \`$file'" 1>&2
60553eed67faSmbalmer	  $show "$relink_command"
60563eed67faSmbalmer	  if $run eval "$relink_command"; then :
60573eed67faSmbalmer	  else
60583eed67faSmbalmer	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
60593eed67faSmbalmer	    exit $EXIT_FAILURE
60603eed67faSmbalmer	  fi
60613eed67faSmbalmer	fi
60623eed67faSmbalmer
60633eed67faSmbalmer	# See the names of the shared library.
60643eed67faSmbalmer	set dummy $library_names
60653eed67faSmbalmer	if test -n "$2"; then
60663eed67faSmbalmer	  realname="$2"
60673eed67faSmbalmer	  shift
60683eed67faSmbalmer	  shift
60693eed67faSmbalmer
60703eed67faSmbalmer	  srcname="$realname"
60713eed67faSmbalmer	  test -n "$relink_command" && srcname="$realname"T
60723eed67faSmbalmer
60733eed67faSmbalmer	  # Install the shared library and build the symlinks.
60743eed67faSmbalmer	  $show "$install_prog $extra_mode $dir/$srcname $destdir/$realname"
60753eed67faSmbalmer	  $run eval "$install_prog $extra_mode $dir/$srcname $destdir/$realname" || exit $?
60763eed67faSmbalmer	  if test -n "$stripme" && test -n "$striplib"; then
60773eed67faSmbalmer	    $show "$striplib $destdir/$realname"
60783eed67faSmbalmer	    $run eval "$striplib $destdir/$realname" || exit $?
60793eed67faSmbalmer	  fi
60803eed67faSmbalmer
60813eed67faSmbalmer	  if test "$#" -gt 0; then
60823eed67faSmbalmer	    # Delete the old symlinks, and create new ones.
60833eed67faSmbalmer	    # Try `ln -sf' first, because the `ln' binary might depend on
60843eed67faSmbalmer	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
60853eed67faSmbalmer	    # so we also need to try rm && ln -s.
60863eed67faSmbalmer	    for linkname
60873eed67faSmbalmer	    do
60883eed67faSmbalmer	      if test "$linkname" != "$realname"; then
60893eed67faSmbalmer                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60903eed67faSmbalmer                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60913eed67faSmbalmer	      fi
60923eed67faSmbalmer	    done
60933eed67faSmbalmer	  fi
60943eed67faSmbalmer
60953eed67faSmbalmer	  # Do each command in the postinstall commands.
60963eed67faSmbalmer	  lib="$destdir/$realname"
60973eed67faSmbalmer	  cmds=$postinstall_cmds
60983eed67faSmbalmer	  save_ifs="$IFS"; IFS='~'
60993eed67faSmbalmer	  for cmd in $cmds; do
61003eed67faSmbalmer	    IFS="$save_ifs"
61013eed67faSmbalmer	    eval cmd=\"$cmd\"
61023eed67faSmbalmer	    $show "$cmd"
61033eed67faSmbalmer	    $run eval "$cmd" || {
61043eed67faSmbalmer	      lt_exit=$?
61053eed67faSmbalmer
61063eed67faSmbalmer	      # Restore the uninstalled library and exit
61073eed67faSmbalmer	      if test "$mode" = relink; then
61083eed67faSmbalmer		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
61093eed67faSmbalmer	      fi
61103eed67faSmbalmer
61113eed67faSmbalmer	      exit $lt_exit
61123eed67faSmbalmer	    }
61133eed67faSmbalmer	  done
61143eed67faSmbalmer	  IFS="$save_ifs"
61153eed67faSmbalmer	fi
61163eed67faSmbalmer
61173eed67faSmbalmer	# Install the pseudo-library for information purposes.
61183eed67faSmbalmer	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61193eed67faSmbalmer	instname="$dir/$name"i
61203eed67faSmbalmer	$show "$install_prog $extra_mode $instname $destdir/$name"
61213eed67faSmbalmer	$run eval "$install_prog $extra_mode $instname $destdir/$name" || exit $?
61223eed67faSmbalmer
61233eed67faSmbalmer	# Maybe install the static library, too.
61243eed67faSmbalmer	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
61253eed67faSmbalmer	;;
61263eed67faSmbalmer
61273eed67faSmbalmer      *.lo)
61283eed67faSmbalmer	# Install (i.e. copy) a libtool object.
61293eed67faSmbalmer
61303eed67faSmbalmer	# Figure out destination file name, if it wasn't already specified.
61313eed67faSmbalmer	if test -n "$destname"; then
61323eed67faSmbalmer	  destfile="$destdir/$destname"
61333eed67faSmbalmer	else
61343eed67faSmbalmer	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61353eed67faSmbalmer	  destfile="$destdir/$destfile"
61363eed67faSmbalmer	fi
61373eed67faSmbalmer
61383eed67faSmbalmer	# Deduce the name of the destination old-style object file.
61393eed67faSmbalmer	case $destfile in
61403eed67faSmbalmer	*.lo)
61413eed67faSmbalmer	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
61423eed67faSmbalmer	  ;;
61433eed67faSmbalmer	*.$objext)
61443eed67faSmbalmer	  staticdest="$destfile"
61453eed67faSmbalmer	  destfile=
61463eed67faSmbalmer	  ;;
61473eed67faSmbalmer	*)
61483eed67faSmbalmer	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
61493eed67faSmbalmer	  $echo "$help" 1>&2
61503eed67faSmbalmer	  exit $EXIT_FAILURE
61513eed67faSmbalmer	  ;;
61523eed67faSmbalmer	esac
61533eed67faSmbalmer
61543eed67faSmbalmer	# Install the libtool object if requested.
61553eed67faSmbalmer	if test -n "$destfile"; then
61563eed67faSmbalmer	  $show "$install_prog $extra_mode $file $destfile"
61573eed67faSmbalmer	  $run eval "$install_prog $extra_mode $file $destfile" || exit $?
61583eed67faSmbalmer	fi
61593eed67faSmbalmer
61603eed67faSmbalmer	# Install the old object if enabled.
61613eed67faSmbalmer	if test "$build_old_libs" = yes; then
61623eed67faSmbalmer	  # Deduce the name of the old-style object file.
61633eed67faSmbalmer	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
61643eed67faSmbalmer
61653eed67faSmbalmer	  $show "$install_prog $extra_mode $staticobj $staticdest"
61663eed67faSmbalmer	  $run eval "$install_prog $extra_mode \$staticobj \$staticdest" || exit $?
61673eed67faSmbalmer	fi
61683eed67faSmbalmer	exit $EXIT_SUCCESS
61693eed67faSmbalmer	;;
61703eed67faSmbalmer
61713eed67faSmbalmer      *)
61723eed67faSmbalmer	# Figure out destination file name, if it wasn't already specified.
61733eed67faSmbalmer	if test -n "$destname"; then
61743eed67faSmbalmer	  destfile="$destdir/$destname"
61753eed67faSmbalmer	else
61763eed67faSmbalmer	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61773eed67faSmbalmer	  destfile="$destdir/$destfile"
61783eed67faSmbalmer	fi
61793eed67faSmbalmer
61803eed67faSmbalmer	# If the file is missing, and there is a .exe on the end, strip it
61813eed67faSmbalmer	# because it is most likely a libtool script we actually want to
61823eed67faSmbalmer	# install
61833eed67faSmbalmer	stripped_ext=""
61843eed67faSmbalmer	case $file in
61853eed67faSmbalmer	  *.exe)
61863eed67faSmbalmer	    if test ! -f "$file"; then
61873eed67faSmbalmer	      file=`$echo $file|${SED} 's,.exe$,,'`
61883eed67faSmbalmer	      stripped_ext=".exe"
61893eed67faSmbalmer	    fi
61903eed67faSmbalmer	    ;;
61913eed67faSmbalmer	esac
61923eed67faSmbalmer
61933eed67faSmbalmer	# Do a test to see if this is really a libtool program.
61943eed67faSmbalmer	case $host in
61953eed67faSmbalmer	*cygwin*|*mingw*)
61963eed67faSmbalmer	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
61973eed67faSmbalmer	    ;;
61983eed67faSmbalmer	*)
61993eed67faSmbalmer	    wrapper=$file
62003eed67faSmbalmer	    ;;
62013eed67faSmbalmer	esac
62023eed67faSmbalmer	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
62033eed67faSmbalmer	  notinst_deplibs=
62043eed67faSmbalmer	  relink_command=
62053eed67faSmbalmer
62063eed67faSmbalmer	  # Note that it is not necessary on cygwin/mingw to append a dot to
62073eed67faSmbalmer	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
62083eed67faSmbalmer	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
62093eed67faSmbalmer	  # `FILE.' does not work on cygwin managed mounts.
62103eed67faSmbalmer	  #
62113eed67faSmbalmer	  # If there is no directory component, then add one.
62123eed67faSmbalmer	  case $wrapper in
62133eed67faSmbalmer	  */* | *\\*) . ${wrapper} ;;
62143eed67faSmbalmer	  *) . ./${wrapper} ;;
62153eed67faSmbalmer	  esac
62163eed67faSmbalmer
62173eed67faSmbalmer	  # Check the variables that should have been set.
62183eed67faSmbalmer	  if test -z "$notinst_deplibs"; then
62193eed67faSmbalmer	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
62203eed67faSmbalmer	    exit $EXIT_FAILURE
62213eed67faSmbalmer	  fi
62223eed67faSmbalmer
62233eed67faSmbalmer	  finalize=yes
62243eed67faSmbalmer	  for lib in $notinst_deplibs; do
62253eed67faSmbalmer	    # Check to see that each library is installed.
62263eed67faSmbalmer	    libdir=
62273eed67faSmbalmer	    if test -f "$lib"; then
62283eed67faSmbalmer	      # If there is no directory component, then add one.
62293eed67faSmbalmer	      case $lib in
62303eed67faSmbalmer	      */* | *\\*) . $lib ;;
62313eed67faSmbalmer	      *) . ./$lib ;;
62323eed67faSmbalmer	      esac
62333eed67faSmbalmer	    fi
62343eed67faSmbalmer	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
62353eed67faSmbalmer	    if test -n "$libdir" && test ! -f "$libfile"; then
62363eed67faSmbalmer	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
62373eed67faSmbalmer	      finalize=no
62383eed67faSmbalmer	    fi
62393eed67faSmbalmer	  done
62403eed67faSmbalmer
62413eed67faSmbalmer	  relink_command=
62423eed67faSmbalmer	  # Note that it is not necessary on cygwin/mingw to append a dot to
62433eed67faSmbalmer	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
62443eed67faSmbalmer	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
62453eed67faSmbalmer	  # `FILE.' does not work on cygwin managed mounts.
62463eed67faSmbalmer	  #
62473eed67faSmbalmer	  # If there is no directory component, then add one.
62483eed67faSmbalmer	  case $wrapper in
62493eed67faSmbalmer	  */* | *\\*) . ${wrapper} ;;
62503eed67faSmbalmer	  *) . ./${wrapper} ;;
62513eed67faSmbalmer	  esac
62523eed67faSmbalmer
62533eed67faSmbalmer	  outputname=
62543eed67faSmbalmer	  if test "$fast_install" = no && test -n "$relink_command"; then
62553eed67faSmbalmer	    if test "$finalize" = yes && test -z "$run"; then
62563eed67faSmbalmer	      tmpdir=`func_mktempdir`
62573eed67faSmbalmer	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
62583eed67faSmbalmer	      outputname="$tmpdir/$file"
62593eed67faSmbalmer	      # Replace the output file specification.
62603eed67faSmbalmer	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
62613eed67faSmbalmer
62623eed67faSmbalmer	      $show "$relink_command"
62633eed67faSmbalmer	      if $run eval "$relink_command"; then :
62643eed67faSmbalmer	      else
62653eed67faSmbalmer		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
62663eed67faSmbalmer		${rm}r "$tmpdir"
62673eed67faSmbalmer		continue
62683eed67faSmbalmer	      fi
62693eed67faSmbalmer	      file="$outputname"
62703eed67faSmbalmer	    else
62713eed67faSmbalmer	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
62723eed67faSmbalmer	    fi
62733eed67faSmbalmer	  else
62743eed67faSmbalmer	    # Install the binary that we compiled earlier.
62753eed67faSmbalmer	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
62763eed67faSmbalmer	  fi
62773eed67faSmbalmer	fi
62783eed67faSmbalmer
62793eed67faSmbalmer	# remove .exe since cygwin /usr/bin/install will append another
62803eed67faSmbalmer	# one anyway 
62813eed67faSmbalmer	case $install_prog,$host in
62823eed67faSmbalmer	*/usr/bin/install*,*cygwin*)
62833eed67faSmbalmer	  case $file:$destfile in
62843eed67faSmbalmer	  *.exe:*.exe)
62853eed67faSmbalmer	    # this is ok
62863eed67faSmbalmer	    ;;
62873eed67faSmbalmer	  *.exe:*)
62883eed67faSmbalmer	    destfile=$destfile.exe
62893eed67faSmbalmer	    ;;
62903eed67faSmbalmer	  *:*.exe)
62913eed67faSmbalmer	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
62923eed67faSmbalmer	    ;;
62933eed67faSmbalmer	  esac
62943eed67faSmbalmer	  ;;
62953eed67faSmbalmer	esac
62963eed67faSmbalmer	$show "$install_prog$stripme $file $destfile"
62973eed67faSmbalmer	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
62983eed67faSmbalmer	test -n "$outputname" && ${rm}r "$tmpdir"
62993eed67faSmbalmer	;;
63003eed67faSmbalmer      esac
63013eed67faSmbalmer    done
63023eed67faSmbalmer
63033eed67faSmbalmer    for file in $staticlibs; do
63043eed67faSmbalmer      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
63053eed67faSmbalmer
63063eed67faSmbalmer      # Set up the ranlib parameters.
63073eed67faSmbalmer      oldlib="$destdir/$name"
63083eed67faSmbalmer
63093eed67faSmbalmer      $show "$install_prog $file $oldlib"
63103eed67faSmbalmer      $run eval "$install_prog \$file \$oldlib" || exit $?
63113eed67faSmbalmer
63123eed67faSmbalmer      if test -n "$stripme" && test -n "$old_striplib"; then
63133eed67faSmbalmer	$show "$old_striplib $oldlib"
63143eed67faSmbalmer	$run eval "$old_striplib $oldlib" || exit $?
63153eed67faSmbalmer      fi
63163eed67faSmbalmer
63173eed67faSmbalmer      # Do each command in the postinstall commands.
63183eed67faSmbalmer      cmds=$old_postinstall_cmds
63193eed67faSmbalmer      save_ifs="$IFS"; IFS='~'
63203eed67faSmbalmer      for cmd in $cmds; do
63213eed67faSmbalmer	IFS="$save_ifs"
63223eed67faSmbalmer	eval cmd=\"$cmd\"
63233eed67faSmbalmer	$show "$cmd"
63243eed67faSmbalmer	$run eval "$cmd" || exit $?
63253eed67faSmbalmer      done
63263eed67faSmbalmer      IFS="$save_ifs"
63273eed67faSmbalmer    done
63283eed67faSmbalmer
63293eed67faSmbalmer    if test -n "$future_libdirs"; then
63303eed67faSmbalmer      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
63313eed67faSmbalmer    fi
63323eed67faSmbalmer
63333eed67faSmbalmer    if test -n "$current_libdirs"; then
63343eed67faSmbalmer      # Maybe just do a dry run.
63353eed67faSmbalmer      test -n "$run" && current_libdirs=" -n$current_libdirs"
63363eed67faSmbalmer      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
63373eed67faSmbalmer    else
63383eed67faSmbalmer      exit $EXIT_SUCCESS
63393eed67faSmbalmer    fi
63403eed67faSmbalmer    ;;
63413eed67faSmbalmer
63423eed67faSmbalmer  # libtool finish mode
63433eed67faSmbalmer  finish)
63443eed67faSmbalmer    modename="$modename: finish"
63453eed67faSmbalmer    libdirs="$nonopt"
63463eed67faSmbalmer    admincmds=
63473eed67faSmbalmer
63483eed67faSmbalmer    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
63493eed67faSmbalmer      for dir
63503eed67faSmbalmer      do
63513eed67faSmbalmer	libdirs="$libdirs $dir"
63523eed67faSmbalmer      done
63533eed67faSmbalmer
63543eed67faSmbalmer      for libdir in $libdirs; do
63553eed67faSmbalmer	if test -n "$finish_cmds"; then
63563eed67faSmbalmer	  # Do each command in the finish commands.
63573eed67faSmbalmer	  cmds=$finish_cmds
63583eed67faSmbalmer	  save_ifs="$IFS"; IFS='~'
63593eed67faSmbalmer	  for cmd in $cmds; do
63603eed67faSmbalmer	    IFS="$save_ifs"
63613eed67faSmbalmer	    eval cmd=\"$cmd\"
63623eed67faSmbalmer	    $show "$cmd"
63633eed67faSmbalmer	    $run eval "$cmd" || admincmds="$admincmds
63643eed67faSmbalmer       $cmd"
63653eed67faSmbalmer	  done
63663eed67faSmbalmer	  IFS="$save_ifs"
63673eed67faSmbalmer	fi
63683eed67faSmbalmer	if test -n "$finish_eval"; then
63693eed67faSmbalmer	  # Do the single finish_eval.
63703eed67faSmbalmer	  eval cmds=\"$finish_eval\"
63713eed67faSmbalmer	  $run eval "$cmds" || admincmds="$admincmds
63723eed67faSmbalmer       $cmds"
63733eed67faSmbalmer	fi
63743eed67faSmbalmer      done
63753eed67faSmbalmer    fi
63763eed67faSmbalmer
63773eed67faSmbalmer    # Exit here if they wanted silent mode.
63783eed67faSmbalmer    test "$show" = : && exit $EXIT_SUCCESS
63793eed67faSmbalmer
63803eed67faSmbalmer    exit $EXIT_SUCCESS
63813eed67faSmbalmer    ;;
63823eed67faSmbalmer
63833eed67faSmbalmer  # libtool execute mode
63843eed67faSmbalmer  execute)
63853eed67faSmbalmer    modename="$modename: execute"
63863eed67faSmbalmer
63873eed67faSmbalmer    # The first argument is the command name.
63883eed67faSmbalmer    cmd="$nonopt"
63893eed67faSmbalmer    if test -z "$cmd"; then
63903eed67faSmbalmer      $echo "$modename: you must specify a COMMAND" 1>&2
63913eed67faSmbalmer      $echo "$help"
63923eed67faSmbalmer      exit $EXIT_FAILURE
63933eed67faSmbalmer    fi
63943eed67faSmbalmer
63953eed67faSmbalmer    # Handle -dlopen flags immediately.
63963eed67faSmbalmer    for file in $execute_dlfiles; do
63973eed67faSmbalmer      if test ! -f "$file"; then
63983eed67faSmbalmer	$echo "$modename: \`$file' is not a file" 1>&2
63993eed67faSmbalmer	$echo "$help" 1>&2
64003eed67faSmbalmer	exit $EXIT_FAILURE
64013eed67faSmbalmer      fi
64023eed67faSmbalmer
64033eed67faSmbalmer      dir=
64043eed67faSmbalmer      case $file in
64053eed67faSmbalmer      *.la)
64063eed67faSmbalmer	# Check to see that this really is a libtool archive.
64073eed67faSmbalmer	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
64083eed67faSmbalmer	else
64093eed67faSmbalmer	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
64103eed67faSmbalmer	  $echo "$help" 1>&2
64113eed67faSmbalmer	  exit $EXIT_FAILURE
64123eed67faSmbalmer	fi
64133eed67faSmbalmer
64143eed67faSmbalmer	# Read the libtool library.
64153eed67faSmbalmer	dlname=
64163eed67faSmbalmer	library_names=
64173eed67faSmbalmer
64183eed67faSmbalmer	# If there is no directory component, then add one.
64193eed67faSmbalmer	case $file in
64203eed67faSmbalmer	*/* | *\\*) . $file ;;
64213eed67faSmbalmer	*) . ./$file ;;
64223eed67faSmbalmer	esac
64233eed67faSmbalmer
64243eed67faSmbalmer	# Skip this library if it cannot be dlopened.
64253eed67faSmbalmer	if test -z "$dlname"; then
64263eed67faSmbalmer	  # Warn if it was a shared library.
64273eed67faSmbalmer	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
64283eed67faSmbalmer	  continue
64293eed67faSmbalmer	fi
64303eed67faSmbalmer
64313eed67faSmbalmer	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64323eed67faSmbalmer	test "X$dir" = "X$file" && dir=.
64333eed67faSmbalmer
64343eed67faSmbalmer	if test -f "$dir/$objdir/$dlname"; then
64353eed67faSmbalmer	  dir="$dir/$objdir"
64363eed67faSmbalmer	else
64373eed67faSmbalmer	  if test ! -f "$dir/$dlname"; then
64383eed67faSmbalmer	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
64393eed67faSmbalmer	    exit $EXIT_FAILURE
64403eed67faSmbalmer	  fi
64413eed67faSmbalmer	fi
64423eed67faSmbalmer	;;
64433eed67faSmbalmer
64443eed67faSmbalmer      *.lo)
64453eed67faSmbalmer	# Just add the directory containing the .lo file.
64463eed67faSmbalmer	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64473eed67faSmbalmer	test "X$dir" = "X$file" && dir=.
64483eed67faSmbalmer	;;
64493eed67faSmbalmer
64503eed67faSmbalmer      *)
64513eed67faSmbalmer	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
64523eed67faSmbalmer	continue
64533eed67faSmbalmer	;;
64543eed67faSmbalmer      esac
64553eed67faSmbalmer
64563eed67faSmbalmer      # Get the absolute pathname.
64573eed67faSmbalmer      absdir=`cd "$dir" && pwd`
64583eed67faSmbalmer      test -n "$absdir" && dir="$absdir"
64593eed67faSmbalmer
64603eed67faSmbalmer      # Now add the directory to shlibpath_var.
64613eed67faSmbalmer      if eval "test -z \"\$$shlibpath_var\""; then
64623eed67faSmbalmer	eval "$shlibpath_var=\"\$dir\""
64633eed67faSmbalmer      else
64643eed67faSmbalmer	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
64653eed67faSmbalmer      fi
64663eed67faSmbalmer    done
64673eed67faSmbalmer
64683eed67faSmbalmer    # This variable tells wrapper scripts just to set shlibpath_var
64693eed67faSmbalmer    # rather than running their programs.
64703eed67faSmbalmer    libtool_execute_magic="$magic"
64713eed67faSmbalmer
64723eed67faSmbalmer    # Check if any of the arguments is a wrapper script.
64733eed67faSmbalmer    args=
64743eed67faSmbalmer    for file
64753eed67faSmbalmer    do
64763eed67faSmbalmer      case $file in
64773eed67faSmbalmer      -*) ;;
64783eed67faSmbalmer      *)
64793eed67faSmbalmer	# Do a test to see if this is really a libtool program.
64803eed67faSmbalmer	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
64813eed67faSmbalmer	  # If there is no directory component, then add one.
64823eed67faSmbalmer	  case $file in
64833eed67faSmbalmer	  */* | *\\*) . $file ;;
64843eed67faSmbalmer	  *) . ./$file ;;
64853eed67faSmbalmer	  esac
64863eed67faSmbalmer
64873eed67faSmbalmer	  # Transform arg to wrapped name.
64883eed67faSmbalmer	  file="$progdir/$program"
64893eed67faSmbalmer	fi
64903eed67faSmbalmer	;;
64913eed67faSmbalmer      esac
64923eed67faSmbalmer      # Quote arguments (to preserve shell metacharacters).
64933eed67faSmbalmer      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
64943eed67faSmbalmer      args="$args \"$file\""
64953eed67faSmbalmer    done
64963eed67faSmbalmer
64973eed67faSmbalmer    if test -z "$run"; then
64983eed67faSmbalmer      if test -n "$shlibpath_var"; then
64993eed67faSmbalmer	# Export the shlibpath_var.
65003eed67faSmbalmer	eval "export $shlibpath_var"
65013eed67faSmbalmer      fi
65023eed67faSmbalmer
65033eed67faSmbalmer      # Restore saved environment variables
65043eed67faSmbalmer      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
65053eed67faSmbalmer      do
65063eed67faSmbalmer	eval "if test \"\${save_$lt_var+set}\" = set; then
65073eed67faSmbalmer		$lt_var=\$save_$lt_var; export $lt_var
65083eed67faSmbalmer	      fi"
65093eed67faSmbalmer      done
65103eed67faSmbalmer
65113eed67faSmbalmer      # Now prepare to actually exec the command.
65123eed67faSmbalmer      exec_cmd="\$cmd$args"
65133eed67faSmbalmer    else
65143eed67faSmbalmer      # Display what would be done.
65153eed67faSmbalmer      if test -n "$shlibpath_var"; then
65163eed67faSmbalmer	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
65173eed67faSmbalmer	$echo "export $shlibpath_var"
65183eed67faSmbalmer      fi
65193eed67faSmbalmer      $echo "$cmd$args"
65203eed67faSmbalmer      exit $EXIT_SUCCESS
65213eed67faSmbalmer    fi
65223eed67faSmbalmer    ;;
65233eed67faSmbalmer
65243eed67faSmbalmer  # libtool clean and uninstall mode
65253eed67faSmbalmer  clean | uninstall)
65263eed67faSmbalmer    modename="$modename: $mode"
65273eed67faSmbalmer    rm="$nonopt"
65283eed67faSmbalmer    files=
65293eed67faSmbalmer    rmforce=
65303eed67faSmbalmer    exit_status=0
65313eed67faSmbalmer
65323eed67faSmbalmer    # This variable tells wrapper scripts just to set variables rather
65333eed67faSmbalmer    # than running their programs.
65343eed67faSmbalmer    libtool_install_magic="$magic"
65353eed67faSmbalmer
65363eed67faSmbalmer    for arg
65373eed67faSmbalmer    do
65383eed67faSmbalmer      case $arg in
65393eed67faSmbalmer      -f) rm="$rm $arg"; rmforce=yes ;;
65403eed67faSmbalmer      -*) rm="$rm $arg" ;;
65413eed67faSmbalmer      *) files="$files $arg" ;;
65423eed67faSmbalmer      esac
65433eed67faSmbalmer    done
65443eed67faSmbalmer
65453eed67faSmbalmer    if test -z "$rm"; then
65463eed67faSmbalmer      $echo "$modename: you must specify an RM program" 1>&2
65473eed67faSmbalmer      $echo "$help" 1>&2
65483eed67faSmbalmer      exit $EXIT_FAILURE
65493eed67faSmbalmer    fi
65503eed67faSmbalmer
65513eed67faSmbalmer    rmdirs=
65523eed67faSmbalmer
65533eed67faSmbalmer    origobjdir="$objdir"
65543eed67faSmbalmer    for file in $files; do
65553eed67faSmbalmer      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
65563eed67faSmbalmer      if test "X$dir" = "X$file"; then
65573eed67faSmbalmer	dir=.
65583eed67faSmbalmer	objdir="$origobjdir"
65593eed67faSmbalmer      else
65603eed67faSmbalmer	objdir="$dir/$origobjdir"
65613eed67faSmbalmer      fi
65623eed67faSmbalmer      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
65633eed67faSmbalmer      test "$mode" = uninstall && objdir="$dir"
65643eed67faSmbalmer
65653eed67faSmbalmer      # Remember objdir for removal later, being careful to avoid duplicates
65663eed67faSmbalmer      if test "$mode" = clean; then
65673eed67faSmbalmer	case " $rmdirs " in
65683eed67faSmbalmer	  *" $objdir "*) ;;
65693eed67faSmbalmer	  *) rmdirs="$rmdirs $objdir" ;;
65703eed67faSmbalmer	esac
65713eed67faSmbalmer      fi
65723eed67faSmbalmer
65733eed67faSmbalmer      # Don't error if the file doesn't exist and rm -f was used.
65743eed67faSmbalmer      if (test -L "$file") >/dev/null 2>&1 \
65753eed67faSmbalmer	|| (test -h "$file") >/dev/null 2>&1 \
65763eed67faSmbalmer	|| test -f "$file"; then
65773eed67faSmbalmer	:
65783eed67faSmbalmer      elif test -d "$file"; then
65793eed67faSmbalmer	exit_status=1
65803eed67faSmbalmer	continue
65813eed67faSmbalmer      elif test "$rmforce" = yes; then
65823eed67faSmbalmer	continue
65833eed67faSmbalmer      fi
65843eed67faSmbalmer
65853eed67faSmbalmer      rmfiles="$file"
65863eed67faSmbalmer
65873eed67faSmbalmer      case $name in
65883eed67faSmbalmer      *.la)
65893eed67faSmbalmer	# Possibly a libtool archive, so verify it.
65903eed67faSmbalmer	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
65913eed67faSmbalmer	  . $dir/$name
65923eed67faSmbalmer
65933eed67faSmbalmer	  # Delete the libtool libraries and symlinks.
65943eed67faSmbalmer	  for n in $library_names; do
65953eed67faSmbalmer	    rmfiles="$rmfiles $objdir/$n"
65963eed67faSmbalmer	  done
65973eed67faSmbalmer	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
65983eed67faSmbalmer
65993eed67faSmbalmer	  case "$mode" in
66003eed67faSmbalmer	  clean)
66013eed67faSmbalmer	    case "  $library_names " in
66023eed67faSmbalmer	    # "  " in the beginning catches empty $dlname
66033eed67faSmbalmer	    *" $dlname "*) ;;
66043eed67faSmbalmer	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
66053eed67faSmbalmer	    esac
66063eed67faSmbalmer	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
66073eed67faSmbalmer	    ;;
66083eed67faSmbalmer	  uninstall)
66093eed67faSmbalmer	    if test -n "$library_names"; then
66103eed67faSmbalmer	      # Do each command in the postuninstall commands.
66113eed67faSmbalmer	      cmds=$postuninstall_cmds
66123eed67faSmbalmer	      save_ifs="$IFS"; IFS='~'
66133eed67faSmbalmer	      for cmd in $cmds; do
66143eed67faSmbalmer		IFS="$save_ifs"
66153eed67faSmbalmer		eval cmd=\"$cmd\"
66163eed67faSmbalmer		$show "$cmd"
66173eed67faSmbalmer		$run eval "$cmd"
66183eed67faSmbalmer		if test "$?" -ne 0 && test "$rmforce" != yes; then
66193eed67faSmbalmer		  exit_status=1
66203eed67faSmbalmer		fi
66213eed67faSmbalmer	      done
66223eed67faSmbalmer	      IFS="$save_ifs"
66233eed67faSmbalmer	    fi
66243eed67faSmbalmer
66253eed67faSmbalmer	    if test -n "$old_library"; then
66263eed67faSmbalmer	      # Do each command in the old_postuninstall commands.
66273eed67faSmbalmer	      cmds=$old_postuninstall_cmds
66283eed67faSmbalmer	      save_ifs="$IFS"; IFS='~'
66293eed67faSmbalmer	      for cmd in $cmds; do
66303eed67faSmbalmer		IFS="$save_ifs"
66313eed67faSmbalmer		eval cmd=\"$cmd\"
66323eed67faSmbalmer		$show "$cmd"
66333eed67faSmbalmer		$run eval "$cmd"
66343eed67faSmbalmer		if test "$?" -ne 0 && test "$rmforce" != yes; then
66353eed67faSmbalmer		  exit_status=1
66363eed67faSmbalmer		fi
66373eed67faSmbalmer	      done
66383eed67faSmbalmer	      IFS="$save_ifs"
66393eed67faSmbalmer	    fi
66403eed67faSmbalmer	    # FIXME: should reinstall the best remaining shared library.
66413eed67faSmbalmer	    ;;
66423eed67faSmbalmer	  esac
66433eed67faSmbalmer	fi
66443eed67faSmbalmer	;;
66453eed67faSmbalmer
66463eed67faSmbalmer      *.lo)
66473eed67faSmbalmer	# Possibly a libtool object, so verify it.
66483eed67faSmbalmer	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66493eed67faSmbalmer
66503eed67faSmbalmer	  # Read the .lo file
66513eed67faSmbalmer	  . $dir/$name
66523eed67faSmbalmer
66533eed67faSmbalmer	  # Add PIC object to the list of files to remove.
66543eed67faSmbalmer	  if test -n "$pic_object" \
66553eed67faSmbalmer	     && test "$pic_object" != none; then
66563eed67faSmbalmer	    rmfiles="$rmfiles $dir/$pic_object"
66573eed67faSmbalmer	  fi
66583eed67faSmbalmer
66593eed67faSmbalmer	  # Add non-PIC object to the list of files to remove.
66603eed67faSmbalmer	  if test -n "$non_pic_object" \
66613eed67faSmbalmer	     && test "$non_pic_object" != none; then
66623eed67faSmbalmer	    rmfiles="$rmfiles $dir/$non_pic_object"
66633eed67faSmbalmer	  fi
66643eed67faSmbalmer	fi
66653eed67faSmbalmer	;;
66663eed67faSmbalmer
66673eed67faSmbalmer      *)
66683eed67faSmbalmer	if test "$mode" = clean ; then
66693eed67faSmbalmer	  noexename=$name
66703eed67faSmbalmer	  case $file in
66713eed67faSmbalmer	  *.exe)
66723eed67faSmbalmer	    file=`$echo $file|${SED} 's,.exe$,,'`
66733eed67faSmbalmer	    noexename=`$echo $name|${SED} 's,.exe$,,'`
66743eed67faSmbalmer	    # $file with .exe has already been added to rmfiles,
66753eed67faSmbalmer	    # add $file without .exe
66763eed67faSmbalmer	    rmfiles="$rmfiles $file"
66773eed67faSmbalmer	    ;;
66783eed67faSmbalmer	  esac
66793eed67faSmbalmer	  # Do a test to see if this is a libtool program.
66803eed67faSmbalmer	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66813eed67faSmbalmer	    relink_command=
66823eed67faSmbalmer	    . $dir/$noexename
66833eed67faSmbalmer
66843eed67faSmbalmer	    # note $name still contains .exe if it was in $file originally
66853eed67faSmbalmer	    # as does the version of $file that was added into $rmfiles
66863eed67faSmbalmer	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
66873eed67faSmbalmer	    if test "$fast_install" = yes && test -n "$relink_command"; then
66883eed67faSmbalmer	      rmfiles="$rmfiles $objdir/lt-$name"
66893eed67faSmbalmer	    fi
66903eed67faSmbalmer	    if test "X$noexename" != "X$name" ; then
66913eed67faSmbalmer	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
66923eed67faSmbalmer	    fi
66933eed67faSmbalmer	  fi
66943eed67faSmbalmer	fi
66953eed67faSmbalmer	;;
66963eed67faSmbalmer      esac
66973eed67faSmbalmer      $show "$rm $rmfiles"
66983eed67faSmbalmer      $run $rm $rmfiles || exit_status=1
66993eed67faSmbalmer    done
67003eed67faSmbalmer    objdir="$origobjdir"
67013eed67faSmbalmer
67023eed67faSmbalmer    # Try to remove the ${objdir}s in the directories where we deleted files
67033eed67faSmbalmer    for dir in $rmdirs; do
67043eed67faSmbalmer      if test -d "$dir"; then
67053eed67faSmbalmer	$show "rmdir $dir"
67063eed67faSmbalmer	$run rmdir $dir >/dev/null 2>&1
67073eed67faSmbalmer      fi
67083eed67faSmbalmer    done
67093eed67faSmbalmer
67103eed67faSmbalmer    exit $exit_status
67113eed67faSmbalmer    ;;
67123eed67faSmbalmer
67133eed67faSmbalmer  "")
67143eed67faSmbalmer    $echo "$modename: you must specify a MODE" 1>&2
67153eed67faSmbalmer    $echo "$generic_help" 1>&2
67163eed67faSmbalmer    exit $EXIT_FAILURE
67173eed67faSmbalmer    ;;
67183eed67faSmbalmer  esac
67193eed67faSmbalmer
67203eed67faSmbalmer  if test -z "$exec_cmd"; then
67213eed67faSmbalmer    $echo "$modename: invalid operation mode \`$mode'" 1>&2
67223eed67faSmbalmer    $echo "$generic_help" 1>&2
67233eed67faSmbalmer    exit $EXIT_FAILURE
67243eed67faSmbalmer  fi
67253eed67faSmbalmerfi # test -z "$show_help"
67263eed67faSmbalmer
67273eed67faSmbalmerif test -n "$exec_cmd"; then
67283eed67faSmbalmer  eval exec $exec_cmd
67293eed67faSmbalmer  exit $EXIT_FAILURE
67303eed67faSmbalmerfi
67313eed67faSmbalmer
67323eed67faSmbalmer# We need to display help for each of the modes.
67333eed67faSmbalmercase $mode in
67343eed67faSmbalmer"") $echo \
67353eed67faSmbalmer"Usage: $modename [OPTION]... [MODE-ARG]...
67363eed67faSmbalmer
67373eed67faSmbalmerProvide generalized library-building support services.
67383eed67faSmbalmer
67393eed67faSmbalmer    --config          show all configuration variables
67403eed67faSmbalmer    --debug           enable verbose shell tracing
67413eed67faSmbalmer-n, --dry-run         display commands without modifying any files
67423eed67faSmbalmer    --features        display basic configuration information and exit
67433eed67faSmbalmer    --finish          same as \`--mode=finish'
67443eed67faSmbalmer    --help            display this help message and exit
67453eed67faSmbalmer    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
67463eed67faSmbalmer    --quiet           same as \`--silent'
67473eed67faSmbalmer    --silent          don't print informational messages
67483eed67faSmbalmer    --tag=TAG         use configuration variables from tag TAG
67493eed67faSmbalmer    --version         print version information
67503eed67faSmbalmer
67513eed67faSmbalmerMODE must be one of the following:
67523eed67faSmbalmer
67533eed67faSmbalmer      clean           remove files from the build directory
67543eed67faSmbalmer      compile         compile a source file into a libtool object
67553eed67faSmbalmer      execute         automatically set library path, then run a program
67563eed67faSmbalmer      finish          complete the installation of libtool libraries
67573eed67faSmbalmer      install         install libraries or executables
67583eed67faSmbalmer      link            create a library or an executable
67593eed67faSmbalmer      uninstall       remove libraries from an installed directory
67603eed67faSmbalmer
67613eed67faSmbalmerMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
67623eed67faSmbalmera more detailed description of MODE.
67633eed67faSmbalmer
67643eed67faSmbalmerReport bugs to <bug-libtool@gnu.org>."
67653eed67faSmbalmer  exit $EXIT_SUCCESS
67663eed67faSmbalmer  ;;
67673eed67faSmbalmer
67683eed67faSmbalmerclean)
67693eed67faSmbalmer  $echo \
67703eed67faSmbalmer"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
67713eed67faSmbalmer
67723eed67faSmbalmerRemove files from the build directory.
67733eed67faSmbalmer
67743eed67faSmbalmerRM is the name of the program to use to delete files associated with each FILE
67753eed67faSmbalmer(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
67763eed67faSmbalmerto RM.
67773eed67faSmbalmer
67783eed67faSmbalmerIf FILE is a libtool library, object or program, all the files associated
67793eed67faSmbalmerwith it are deleted. Otherwise, only FILE itself is deleted using RM."
67803eed67faSmbalmer  ;;
67813eed67faSmbalmer
67823eed67faSmbalmercompile)
67833eed67faSmbalmer  $echo \
67843eed67faSmbalmer"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
67853eed67faSmbalmer
67863eed67faSmbalmerCompile a source file into a libtool library object.
67873eed67faSmbalmer
67883eed67faSmbalmerThis mode accepts the following additional options:
67893eed67faSmbalmer
67903eed67faSmbalmer  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
67913eed67faSmbalmer  -prefer-pic       try to building PIC objects only
67923eed67faSmbalmer  -prefer-non-pic   try to building non-PIC objects only
67933eed67faSmbalmer  -static           always build a \`.o' file suitable for static linking
67943eed67faSmbalmer
67953eed67faSmbalmerCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
67963eed67faSmbalmerfrom the given SOURCEFILE.
67973eed67faSmbalmer
67983eed67faSmbalmerThe output file name is determined by removing the directory component from
67993eed67faSmbalmerSOURCEFILE, then substituting the C source code suffix \`.c' with the
68003eed67faSmbalmerlibrary object suffix, \`.lo'."
68013eed67faSmbalmer  ;;
68023eed67faSmbalmer
68033eed67faSmbalmerexecute)
68043eed67faSmbalmer  $echo \
68053eed67faSmbalmer"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
68063eed67faSmbalmer
68073eed67faSmbalmerAutomatically set library path, then run a program.
68083eed67faSmbalmer
68093eed67faSmbalmerThis mode accepts the following additional options:
68103eed67faSmbalmer
68113eed67faSmbalmer  -dlopen FILE      add the directory containing FILE to the library path
68123eed67faSmbalmer
68133eed67faSmbalmerThis mode sets the library path environment variable according to \`-dlopen'
68143eed67faSmbalmerflags.
68153eed67faSmbalmer
68163eed67faSmbalmerIf any of the ARGS are libtool executable wrappers, then they are translated
68173eed67faSmbalmerinto their corresponding uninstalled binary, and any of their required library
68183eed67faSmbalmerdirectories are added to the library path.
68193eed67faSmbalmer
68203eed67faSmbalmerThen, COMMAND is executed, with ARGS as arguments."
68213eed67faSmbalmer  ;;
68223eed67faSmbalmer
68233eed67faSmbalmerfinish)
68243eed67faSmbalmer  $echo \
68253eed67faSmbalmer"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
68263eed67faSmbalmer
68273eed67faSmbalmerComplete the installation of libtool libraries.
68283eed67faSmbalmer
68293eed67faSmbalmerEach LIBDIR is a directory that contains libtool libraries.
68303eed67faSmbalmer
68313eed67faSmbalmerThe commands that this mode executes may require superuser privileges.  Use
68323eed67faSmbalmerthe \`--dry-run' option if you just want to see what would be executed."
68333eed67faSmbalmer  ;;
68343eed67faSmbalmer
68353eed67faSmbalmerinstall)
68363eed67faSmbalmer  $echo \
68373eed67faSmbalmer"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
68383eed67faSmbalmer
68393eed67faSmbalmerInstall executables or libraries.
68403eed67faSmbalmer
68413eed67faSmbalmerINSTALL-COMMAND is the installation command.  The first component should be
68423eed67faSmbalmereither the \`install' or \`cp' program.
68433eed67faSmbalmer
68443eed67faSmbalmerThe rest of the components are interpreted as arguments to that command (only
68453eed67faSmbalmerBSD-compatible install options are recognized)."
68463eed67faSmbalmer  ;;
68473eed67faSmbalmer
68483eed67faSmbalmerlink)
68493eed67faSmbalmer  $echo \
68503eed67faSmbalmer"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
68513eed67faSmbalmer
68523eed67faSmbalmerLink object files or libraries together to form another library, or to
68533eed67faSmbalmercreate an executable program.
68543eed67faSmbalmer
68553eed67faSmbalmerLINK-COMMAND is a command using the C compiler that you would use to create
68563eed67faSmbalmera program from several object files.
68573eed67faSmbalmer
68583eed67faSmbalmerThe following components of LINK-COMMAND are treated specially:
68593eed67faSmbalmer
68603eed67faSmbalmer  -all-static       do not do any dynamic linking at all
68613eed67faSmbalmer  -avoid-version    do not add a version suffix if possible
68623eed67faSmbalmer  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
68633eed67faSmbalmer  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
68643eed67faSmbalmer  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
68653eed67faSmbalmer  -export-symbols SYMFILE
68663eed67faSmbalmer                    try to export only the symbols listed in SYMFILE
68673eed67faSmbalmer  -export-symbols-regex REGEX
68683eed67faSmbalmer                    try to export only the symbols matching REGEX
68693eed67faSmbalmer  -LLIBDIR          search LIBDIR for required installed libraries
68703eed67faSmbalmer  -lNAME            OUTPUT-FILE requires the installed library libNAME
68713eed67faSmbalmer  -module           build a library that can dlopened
68723eed67faSmbalmer  -no-fast-install  disable the fast-install mode
68733eed67faSmbalmer  -no-install       link a not-installable executable
68743eed67faSmbalmer  -no-undefined     declare that a library does not refer to external symbols
68753eed67faSmbalmer  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
68763eed67faSmbalmer  -objectlist FILE  Use a list of object files found in FILE to specify objects
68773eed67faSmbalmer  -precious-files-regex REGEX
68783eed67faSmbalmer                    don't remove output files matching REGEX
68793eed67faSmbalmer  -release RELEASE  specify package release information
68803eed67faSmbalmer  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
68813eed67faSmbalmer  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
68823eed67faSmbalmer  -static           do not do any dynamic linking of uninstalled libtool libraries
68833eed67faSmbalmer  -static-libtool-libs
68843eed67faSmbalmer                    do not do any dynamic linking of libtool libraries
68853eed67faSmbalmer  -version-info CURRENT[:REVISION[:AGE]]
68863eed67faSmbalmer                    specify library version info [each variable defaults to 0]
68873eed67faSmbalmer
68883eed67faSmbalmerAll other options (arguments beginning with \`-') are ignored.
68893eed67faSmbalmer
68903eed67faSmbalmerEvery other argument is treated as a filename.  Files ending in \`.la' are
68913eed67faSmbalmertreated as uninstalled libtool libraries, other files are standard or library
68923eed67faSmbalmerobject files.
68933eed67faSmbalmer
68943eed67faSmbalmerIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
68953eed67faSmbalmeronly library objects (\`.lo' files) may be specified, and \`-rpath' is
68963eed67faSmbalmerrequired, except when creating a convenience library.
68973eed67faSmbalmer
68983eed67faSmbalmerIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
68993eed67faSmbalmerusing \`ar' and \`ranlib', or on Windows using \`lib'.
69003eed67faSmbalmer
69013eed67faSmbalmerIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
69023eed67faSmbalmeris created, otherwise an executable program is created."
69033eed67faSmbalmer  ;;
69043eed67faSmbalmer
69053eed67faSmbalmeruninstall)
69063eed67faSmbalmer  $echo \
69073eed67faSmbalmer"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
69083eed67faSmbalmer
69093eed67faSmbalmerRemove libraries from an installation directory.
69103eed67faSmbalmer
69113eed67faSmbalmerRM is the name of the program to use to delete files associated with each FILE
69123eed67faSmbalmer(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
69133eed67faSmbalmerto RM.
69143eed67faSmbalmer
69153eed67faSmbalmerIf FILE is a libtool library, all the files associated with it are deleted.
69163eed67faSmbalmerOtherwise, only FILE itself is deleted using RM."
69173eed67faSmbalmer  ;;
69183eed67faSmbalmer
69193eed67faSmbalmer*)
69203eed67faSmbalmer  $echo "$modename: invalid operation mode \`$mode'" 1>&2
69213eed67faSmbalmer  $echo "$help" 1>&2
69223eed67faSmbalmer  exit $EXIT_FAILURE
69233eed67faSmbalmer  ;;
69243eed67faSmbalmeresac
69253eed67faSmbalmer
69263eed67faSmbalmer$echo
69273eed67faSmbalmer$echo "Try \`$modename --help' for more information about other modes."
69283eed67faSmbalmer
69293eed67faSmbalmerexit $?
69303eed67faSmbalmer
69313eed67faSmbalmer# The TAGs below are defined such that we never get into a situation
69323eed67faSmbalmer# in which we disable both kinds of libraries.  Given conflicting
69333eed67faSmbalmer# choices, we go for a static library, that is the most portable,
69343eed67faSmbalmer# since we can't tell whether shared libraries were disabled because
69353eed67faSmbalmer# the user asked for that or because the platform doesn't support
69363eed67faSmbalmer# them.  This is particularly important on AIX, because we don't
69373eed67faSmbalmer# support having both static and shared libraries enabled at the same
69383eed67faSmbalmer# time on that platform, so we default to a shared-only configuration.
69393eed67faSmbalmer# If a disable-shared tag is given, we'll fallback to a static-only
69403eed67faSmbalmer# configuration.  But we'll never go from static-only to shared-only.
69413eed67faSmbalmer
69423eed67faSmbalmer# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
69433eed67faSmbalmerdisable_libs=shared
69443eed67faSmbalmer# ### END LIBTOOL TAG CONFIG: disable-shared
69453eed67faSmbalmer
69463eed67faSmbalmer# ### BEGIN LIBTOOL TAG CONFIG: disable-static
69473eed67faSmbalmerdisable_libs=static
69483eed67faSmbalmer# ### END LIBTOOL TAG CONFIG: disable-static
69493eed67faSmbalmer
69503eed67faSmbalmer# Local Variables:
69513eed67faSmbalmer# mode:shell-script
69523eed67faSmbalmer# sh-indentation:2
69533eed67faSmbalmer# End:
6954