ltmain.sh revision 7965d9ac
150806d53Smrg# ltmain.sh - Provide generalized library-building support services.
250806d53Smrg# NOTE: Changing this file will not affect anything until you rerun configure.
350806d53Smrg#
47965d9acSmrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
57965d9acSmrg# 2007, 2008  Free Software Foundation, Inc.
650806d53Smrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
750806d53Smrg#
850806d53Smrg# This program is free software; you can redistribute it and/or modify
950806d53Smrg# it under the terms of the GNU General Public License as published by
1050806d53Smrg# the Free Software Foundation; either version 2 of the License, or
1150806d53Smrg# (at your option) any later version.
1250806d53Smrg#
1350806d53Smrg# This program is distributed in the hope that it will be useful, but
1450806d53Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
1550806d53Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1650806d53Smrg# General Public License for more details.
1750806d53Smrg#
1850806d53Smrg# You should have received a copy of the GNU General Public License
1950806d53Smrg# along with this program; if not, write to the Free Software
2050806d53Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
2150806d53Smrg#
2250806d53Smrg# As a special exception to the GNU General Public License, if you
2350806d53Smrg# distribute this file as part of a program that contains a
2450806d53Smrg# configuration script generated by Autoconf, you may include it under
2550806d53Smrg# the same distribution terms that you use for the rest of that program.
2650806d53Smrg
2750806d53Smrgbasename="s,^.*/,,g"
2850806d53Smrg
2950806d53Smrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
3050806d53Smrg# is ksh but when the shell is invoked as "sh" and the current value of
3150806d53Smrg# the _XPG environment variable is not equal to 1 (one), the special
3250806d53Smrg# positional parameter $0, within a function call, is the name of the
3350806d53Smrg# function.
3450806d53Smrgprogpath="$0"
3550806d53Smrg
3650806d53Smrg# The name of this program:
3750806d53Smrgprogname=`echo "$progpath" | $SED $basename`
3850806d53Smrgmodename="$progname"
3950806d53Smrg
4050806d53Smrg# Global variables:
4150806d53SmrgEXIT_SUCCESS=0
4250806d53SmrgEXIT_FAILURE=1
4350806d53Smrg
4450806d53SmrgPROGRAM=ltmain.sh
4550806d53SmrgPACKAGE=libtool
467965d9acSmrgVERSION="1.5.26 Debian 1.5.26-4"
477965d9acSmrgTIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
4850806d53Smrg
4950806d53Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5050806d53Smrgif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
5150806d53Smrg  emulate sh
5250806d53Smrg  NULLCMD=:
5350806d53Smrg  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
5450806d53Smrg  # is contrary to our usage.  Disable this feature.
5550806d53Smrg  alias -g '${1+"$@"}'='"$@"'
5650806d53Smrg  setopt NO_GLOB_SUBST
5750806d53Smrgelse
5850806d53Smrg  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
5950806d53Smrgfi
607965d9acSmrgBIN_SH=xpg4; export BIN_SH # for Tru64
617965d9acSmrgDUALCASE=1; export DUALCASE # for MKS sh
6250806d53Smrg
6350806d53Smrg# Check that we have a working $echo.
6450806d53Smrgif test "X$1" = X--no-reexec; then
6550806d53Smrg  # Discard the --no-reexec flag, and continue.
6650806d53Smrg  shift
6750806d53Smrgelif test "X$1" = X--fallback-echo; then
6850806d53Smrg  # Avoid inline document here, it may be left over
6950806d53Smrg  :
7050806d53Smrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
7150806d53Smrg  # Yippee, $echo works!
7250806d53Smrg  :
7350806d53Smrgelse
7450806d53Smrg  # Restart under the correct shell, and then maybe $echo will work.
7550806d53Smrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
7650806d53Smrgfi
7750806d53Smrg
7850806d53Smrgif test "X$1" = X--fallback-echo; then
7950806d53Smrg  # used as fallback echo
8050806d53Smrg  shift
8150806d53Smrg  cat <<EOF
8250806d53Smrg$*
8350806d53SmrgEOF
8450806d53Smrg  exit $EXIT_SUCCESS
8550806d53Smrgfi
8650806d53Smrg
8750806d53Smrgdefault_mode=
8850806d53Smrghelp="Try \`$progname --help' for more information."
8950806d53Smrgmagic="%%%MAGIC variable%%%"
9050806d53Smrgmkdir="mkdir"
9150806d53Smrgmv="mv -f"
9250806d53Smrgrm="rm -f"
9350806d53Smrg
9450806d53Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
9550806d53Smrg# metacharacters that are still active within double-quoted strings.
9650806d53SmrgXsed="${SED}"' -e 1s/^X//'
9750806d53Smrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
9850806d53Smrg# test EBCDIC or ASCII
9950806d53Smrgcase `echo X|tr X '\101'` in
10050806d53Smrg A) # ASCII based system
10150806d53Smrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
10250806d53Smrg  SP2NL='tr \040 \012'
10350806d53Smrg  NL2SP='tr \015\012 \040\040'
10450806d53Smrg  ;;
10550806d53Smrg *) # EBCDIC based system
10650806d53Smrg  SP2NL='tr \100 \n'
10750806d53Smrg  NL2SP='tr \r\n \100\100'
10850806d53Smrg  ;;
10950806d53Smrgesac
11050806d53Smrg
11150806d53Smrg# NLS nuisances.
11250806d53Smrg# Only set LANG and LC_ALL to C if already set.
11350806d53Smrg# These must not be set unconditionally because not all systems understand
11450806d53Smrg# e.g. LANG=C (notably SCO).
11550806d53Smrg# We save the old values to restore during execute mode.
1167965d9acSmrglt_env=
1177965d9acSmrgfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
11850806d53Smrgdo
11950806d53Smrg  eval "if test \"\${$lt_var+set}\" = set; then
1207965d9acSmrg	  save_$lt_var=\$$lt_var
1217965d9acSmrg	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
1227965d9acSmrg	  $lt_var=C
1237965d9acSmrg	  export $lt_var
1247965d9acSmrg	fi"
12550806d53Smrgdone
12650806d53Smrg
1277965d9acSmrgif test -n "$lt_env"; then
1287965d9acSmrg  lt_env="env $lt_env"
1297965d9acSmrgfi
1307965d9acSmrg
13150806d53Smrg# Make sure IFS has a sensible default
13250806d53Smrglt_nl='
13350806d53Smrg'
13450806d53SmrgIFS=" 	$lt_nl"
13550806d53Smrg
13650806d53Smrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
13750806d53Smrg  $echo "$modename: not configured to build any kind of library" 1>&2
13850806d53Smrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
13950806d53Smrg  exit $EXIT_FAILURE
14050806d53Smrgfi
14150806d53Smrg
14250806d53Smrg# Global variables.
14350806d53Smrgmode=$default_mode
14450806d53Smrgnonopt=
14550806d53Smrgprev=
14650806d53Smrgprevopt=
14750806d53Smrgrun=
14850806d53Smrgshow="$echo"
14950806d53Smrgshow_help=
15050806d53Smrgexecute_dlfiles=
15150806d53Smrgduplicate_deps=no
15250806d53Smrgpreserve_args=
15350806d53Smrglo2o="s/\\.lo\$/.${objext}/"
15450806d53Smrgo2lo="s/\\.${objext}\$/.lo/"
15550806d53Smrgextracted_archives=
15650806d53Smrgextracted_serial=0
15750806d53Smrg
15850806d53Smrg#####################################
15950806d53Smrg# Shell function definitions:
16050806d53Smrg# This seems to be the best place for them
16150806d53Smrg
16250806d53Smrg# func_mktempdir [string]
16350806d53Smrg# Make a temporary directory that won't clash with other running
16450806d53Smrg# libtool processes, and avoids race conditions if possible.  If
16550806d53Smrg# given, STRING is the basename for that directory.
16650806d53Smrgfunc_mktempdir ()
16750806d53Smrg{
16850806d53Smrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
16950806d53Smrg
17050806d53Smrg    if test "$run" = ":"; then
17150806d53Smrg      # Return a directory name, but don't create it in dry-run mode
17250806d53Smrg      my_tmpdir="${my_template}-$$"
17350806d53Smrg    else
17450806d53Smrg
17550806d53Smrg      # If mktemp works, use that first and foremost
17650806d53Smrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
17750806d53Smrg
17850806d53Smrg      if test ! -d "$my_tmpdir"; then
17950806d53Smrg	# Failing that, at least try and use $RANDOM to avoid a race
18050806d53Smrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
18150806d53Smrg
18250806d53Smrg	save_mktempdir_umask=`umask`
18350806d53Smrg	umask 0077
18450806d53Smrg	$mkdir "$my_tmpdir"
18550806d53Smrg	umask $save_mktempdir_umask
18650806d53Smrg      fi
18750806d53Smrg
18850806d53Smrg      # If we're not in dry-run mode, bomb out on failure
18950806d53Smrg      test -d "$my_tmpdir" || {
19050806d53Smrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
19150806d53Smrg	exit $EXIT_FAILURE
19250806d53Smrg      }
19350806d53Smrg    fi
19450806d53Smrg
19550806d53Smrg    $echo "X$my_tmpdir" | $Xsed
19650806d53Smrg}
19750806d53Smrg
19850806d53Smrg
19950806d53Smrg# func_win32_libid arg
20050806d53Smrg# return the library type of file 'arg'
20150806d53Smrg#
20250806d53Smrg# Need a lot of goo to handle *both* DLLs and import libs
20350806d53Smrg# Has to be a shell function in order to 'eat' the argument
20450806d53Smrg# that is supplied when $file_magic_command is called.
20550806d53Smrgfunc_win32_libid ()
20650806d53Smrg{
20750806d53Smrg  win32_libid_type="unknown"
20850806d53Smrg  win32_fileres=`file -L $1 2>/dev/null`
20950806d53Smrg  case $win32_fileres in
21050806d53Smrg  *ar\ archive\ import\ library*) # definitely import
21150806d53Smrg    win32_libid_type="x86 archive import"
21250806d53Smrg    ;;
21350806d53Smrg  *ar\ archive*) # could be an import, or static
21450806d53Smrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
21550806d53Smrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
21650806d53Smrg      win32_nmres=`eval $NM -f posix -A $1 | \
2177965d9acSmrg	$SED -n -e '1,100{
2187965d9acSmrg		/ I /{
2197965d9acSmrg			s,.*,import,
2207965d9acSmrg			p
2217965d9acSmrg			q
2227965d9acSmrg			}
2237965d9acSmrg		}'`
22450806d53Smrg      case $win32_nmres in
22550806d53Smrg      import*)  win32_libid_type="x86 archive import";;
22650806d53Smrg      *)        win32_libid_type="x86 archive static";;
22750806d53Smrg      esac
22850806d53Smrg    fi
22950806d53Smrg    ;;
23050806d53Smrg  *DLL*)
23150806d53Smrg    win32_libid_type="x86 DLL"
23250806d53Smrg    ;;
23350806d53Smrg  *executable*) # but shell scripts are "executable" too...
23450806d53Smrg    case $win32_fileres in
23550806d53Smrg    *MS\ Windows\ PE\ Intel*)
23650806d53Smrg      win32_libid_type="x86 DLL"
23750806d53Smrg      ;;
23850806d53Smrg    esac
23950806d53Smrg    ;;
24050806d53Smrg  esac
24150806d53Smrg  $echo $win32_libid_type
24250806d53Smrg}
24350806d53Smrg
24450806d53Smrg
24550806d53Smrg# func_infer_tag arg
24650806d53Smrg# Infer tagged configuration to use if any are available and
24750806d53Smrg# if one wasn't chosen via the "--tag" command line option.
24850806d53Smrg# Only attempt this if the compiler in the base compile
24950806d53Smrg# command doesn't match the default compiler.
25050806d53Smrg# arg is usually of the form 'gcc ...'
25150806d53Smrgfunc_infer_tag ()
25250806d53Smrg{
25350806d53Smrg    if test -n "$available_tags" && test -z "$tagname"; then
25450806d53Smrg      CC_quoted=
25550806d53Smrg      for arg in $CC; do
25650806d53Smrg	case $arg in
25750806d53Smrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
25850806d53Smrg	  arg="\"$arg\""
25950806d53Smrg	  ;;
26050806d53Smrg	esac
26150806d53Smrg	CC_quoted="$CC_quoted $arg"
26250806d53Smrg      done
26350806d53Smrg      case $@ in
26450806d53Smrg      # Blanks in the command may have been stripped by the calling shell,
26550806d53Smrg      # but not from the CC environment variable when configure was run.
26650806d53Smrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
26750806d53Smrg      # Blanks at the start of $base_compile will cause this to fail
26850806d53Smrg      # if we don't check for them as well.
26950806d53Smrg      *)
27050806d53Smrg	for z in $available_tags; do
27150806d53Smrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
27250806d53Smrg	    # Evaluate the configuration.
27350806d53Smrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
27450806d53Smrg	    CC_quoted=
27550806d53Smrg	    for arg in $CC; do
27650806d53Smrg	    # Double-quote args containing other shell metacharacters.
27750806d53Smrg	    case $arg in
27850806d53Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
27950806d53Smrg	      arg="\"$arg\""
28050806d53Smrg	      ;;
28150806d53Smrg	    esac
28250806d53Smrg	    CC_quoted="$CC_quoted $arg"
28350806d53Smrg	  done
28450806d53Smrg	    case "$@ " in
28550806d53Smrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
28650806d53Smrg	      # The compiler in the base compile command matches
28750806d53Smrg	      # the one in the tagged configuration.
28850806d53Smrg	      # Assume this is the tagged configuration we want.
28950806d53Smrg	      tagname=$z
29050806d53Smrg	      break
29150806d53Smrg	      ;;
29250806d53Smrg	    esac
29350806d53Smrg	  fi
29450806d53Smrg	done
29550806d53Smrg	# If $tagname still isn't set, then no tagged configuration
29650806d53Smrg	# was found and let the user know that the "--tag" command
29750806d53Smrg	# line option must be used.
29850806d53Smrg	if test -z "$tagname"; then
29950806d53Smrg	  $echo "$modename: unable to infer tagged configuration"
30050806d53Smrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
30150806d53Smrg	  exit $EXIT_FAILURE
30250806d53Smrg#        else
30350806d53Smrg#          $echo "$modename: using $tagname tagged configuration"
30450806d53Smrg	fi
30550806d53Smrg	;;
30650806d53Smrg      esac
30750806d53Smrg    fi
30850806d53Smrg}
30950806d53Smrg
31050806d53Smrg
31150806d53Smrg# func_extract_an_archive dir oldlib
31250806d53Smrgfunc_extract_an_archive ()
31350806d53Smrg{
31450806d53Smrg    f_ex_an_ar_dir="$1"; shift
31550806d53Smrg    f_ex_an_ar_oldlib="$1"
31650806d53Smrg
31750806d53Smrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
31850806d53Smrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
31950806d53Smrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
32050806d53Smrg     :
32150806d53Smrg    else
32250806d53Smrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
32350806d53Smrg      exit $EXIT_FAILURE
32450806d53Smrg    fi
32550806d53Smrg}
32650806d53Smrg
32750806d53Smrg# func_extract_archives gentop oldlib ...
32850806d53Smrgfunc_extract_archives ()
32950806d53Smrg{
33050806d53Smrg    my_gentop="$1"; shift
33150806d53Smrg    my_oldlibs=${1+"$@"}
33250806d53Smrg    my_oldobjs=""
33350806d53Smrg    my_xlib=""
33450806d53Smrg    my_xabs=""
33550806d53Smrg    my_xdir=""
33650806d53Smrg    my_status=""
33750806d53Smrg
33850806d53Smrg    $show "${rm}r $my_gentop"
33950806d53Smrg    $run ${rm}r "$my_gentop"
34050806d53Smrg    $show "$mkdir $my_gentop"
34150806d53Smrg    $run $mkdir "$my_gentop"
34250806d53Smrg    my_status=$?
34350806d53Smrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
34450806d53Smrg      exit $my_status
34550806d53Smrg    fi
34650806d53Smrg
34750806d53Smrg    for my_xlib in $my_oldlibs; do
34850806d53Smrg      # Extract the objects.
34950806d53Smrg      case $my_xlib in
35050806d53Smrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
35150806d53Smrg	*) my_xabs=`pwd`"/$my_xlib" ;;
35250806d53Smrg      esac
35350806d53Smrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
35450806d53Smrg      my_xlib_u=$my_xlib
35550806d53Smrg      while :; do
35650806d53Smrg        case " $extracted_archives " in
3577965d9acSmrg	*" $my_xlib_u "*)
3587965d9acSmrg	  extracted_serial=`expr $extracted_serial + 1`
3597965d9acSmrg	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
3607965d9acSmrg	*) break ;;
3617965d9acSmrg	esac
36250806d53Smrg      done
36350806d53Smrg      extracted_archives="$extracted_archives $my_xlib_u"
36450806d53Smrg      my_xdir="$my_gentop/$my_xlib_u"
36550806d53Smrg
36650806d53Smrg      $show "${rm}r $my_xdir"
36750806d53Smrg      $run ${rm}r "$my_xdir"
36850806d53Smrg      $show "$mkdir $my_xdir"
36950806d53Smrg      $run $mkdir "$my_xdir"
37050806d53Smrg      exit_status=$?
37150806d53Smrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
37250806d53Smrg	exit $exit_status
37350806d53Smrg      fi
37450806d53Smrg      case $host in
37550806d53Smrg      *-darwin*)
37650806d53Smrg	$show "Extracting $my_xabs"
37750806d53Smrg	# Do not bother doing anything if just a dry run
37850806d53Smrg	if test -z "$run"; then
37950806d53Smrg	  darwin_orig_dir=`pwd`
38050806d53Smrg	  cd $my_xdir || exit $?
38150806d53Smrg	  darwin_archive=$my_xabs
38250806d53Smrg	  darwin_curdir=`pwd`
38350806d53Smrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
38450806d53Smrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
38550806d53Smrg	  if test -n "$darwin_arches"; then 
38650806d53Smrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
38750806d53Smrg	    darwin_arch=
38850806d53Smrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
38950806d53Smrg	    for darwin_arch in  $darwin_arches ; do
39050806d53Smrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
39150806d53Smrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
39250806d53Smrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
39350806d53Smrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
39450806d53Smrg	      cd "$darwin_curdir"
39550806d53Smrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
39650806d53Smrg	    done # $darwin_arches
39750806d53Smrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
39850806d53Smrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
39950806d53Smrg	    darwin_file=
40050806d53Smrg	    darwin_files=
40150806d53Smrg	    for darwin_file in $darwin_filelist; do
40250806d53Smrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
40350806d53Smrg	      lipo -create -output "$darwin_file" $darwin_files
40450806d53Smrg	    done # $darwin_filelist
40550806d53Smrg	    ${rm}r unfat-$$
40650806d53Smrg	    cd "$darwin_orig_dir"
40750806d53Smrg	  else
40850806d53Smrg	    cd "$darwin_orig_dir"
40950806d53Smrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
41050806d53Smrg	  fi # $darwin_arches
41150806d53Smrg	fi # $run
41250806d53Smrg	;;
41350806d53Smrg      *)
41450806d53Smrg        func_extract_an_archive "$my_xdir" "$my_xabs"
41550806d53Smrg        ;;
41650806d53Smrg      esac
41750806d53Smrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
41850806d53Smrg    done
41950806d53Smrg    func_extract_archives_result="$my_oldobjs"
42050806d53Smrg}
42150806d53Smrg# End of Shell function definitions
42250806d53Smrg#####################################
42350806d53Smrg
42450806d53Smrg# Darwin sucks
42550806d53Smrgeval std_shrext=\"$shrext_cmds\"
42650806d53Smrg
42750806d53Smrgdisable_libs=no
42850806d53Smrg
42950806d53Smrg# Parse our command line options once, thoroughly.
43050806d53Smrgwhile test "$#" -gt 0
43150806d53Smrgdo
43250806d53Smrg  arg="$1"
43350806d53Smrg  shift
43450806d53Smrg
43550806d53Smrg  case $arg in
43650806d53Smrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
43750806d53Smrg  *) optarg= ;;
43850806d53Smrg  esac
43950806d53Smrg
44050806d53Smrg  # If the previous option needs an argument, assign it.
44150806d53Smrg  if test -n "$prev"; then
44250806d53Smrg    case $prev in
44350806d53Smrg    execute_dlfiles)
44450806d53Smrg      execute_dlfiles="$execute_dlfiles $arg"
44550806d53Smrg      ;;
44650806d53Smrg    tag)
44750806d53Smrg      tagname="$arg"
44850806d53Smrg      preserve_args="${preserve_args}=$arg"
44950806d53Smrg
45050806d53Smrg      # Check whether tagname contains only valid characters
45150806d53Smrg      case $tagname in
45250806d53Smrg      *[!-_A-Za-z0-9,/]*)
45350806d53Smrg	$echo "$progname: invalid tag name: $tagname" 1>&2
45450806d53Smrg	exit $EXIT_FAILURE
45550806d53Smrg	;;
45650806d53Smrg      esac
45750806d53Smrg
45850806d53Smrg      case $tagname in
45950806d53Smrg      CC)
46050806d53Smrg	# Don't test for the "default" C tag, as we know, it's there, but
46150806d53Smrg	# not specially marked.
46250806d53Smrg	;;
46350806d53Smrg      *)
46450806d53Smrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
46550806d53Smrg	  taglist="$taglist $tagname"
46650806d53Smrg	  # Evaluate the configuration.
46750806d53Smrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
46850806d53Smrg	else
46950806d53Smrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
47050806d53Smrg	fi
47150806d53Smrg	;;
47250806d53Smrg      esac
47350806d53Smrg      ;;
47450806d53Smrg    *)
47550806d53Smrg      eval "$prev=\$arg"
47650806d53Smrg      ;;
47750806d53Smrg    esac
47850806d53Smrg
47950806d53Smrg    prev=
48050806d53Smrg    prevopt=
48150806d53Smrg    continue
48250806d53Smrg  fi
48350806d53Smrg
48450806d53Smrg  # Have we seen a non-optional argument yet?
48550806d53Smrg  case $arg in
48650806d53Smrg  --help)
48750806d53Smrg    show_help=yes
48850806d53Smrg    ;;
48950806d53Smrg
49050806d53Smrg  --version)
4917965d9acSmrg    echo "\
4927965d9acSmrg$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
4937965d9acSmrg
4947965d9acSmrgCopyright (C) 2008  Free Software Foundation, Inc.
4957965d9acSmrgThis is free software; see the source for copying conditions.  There is NO
4967965d9acSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
49750806d53Smrg    exit $?
49850806d53Smrg    ;;
49950806d53Smrg
50050806d53Smrg  --config)
50150806d53Smrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
50250806d53Smrg    # Now print the configurations for the tags.
50350806d53Smrg    for tagname in $taglist; do
50450806d53Smrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
50550806d53Smrg    done
50650806d53Smrg    exit $?
50750806d53Smrg    ;;
50850806d53Smrg
50950806d53Smrg  --debug)
51050806d53Smrg    $echo "$progname: enabling shell trace mode"
51150806d53Smrg    set -x
51250806d53Smrg    preserve_args="$preserve_args $arg"
51350806d53Smrg    ;;
51450806d53Smrg
51550806d53Smrg  --dry-run | -n)
51650806d53Smrg    run=:
51750806d53Smrg    ;;
51850806d53Smrg
51950806d53Smrg  --features)
52050806d53Smrg    $echo "host: $host"
52150806d53Smrg    if test "$build_libtool_libs" = yes; then
52250806d53Smrg      $echo "enable shared libraries"
52350806d53Smrg    else
52450806d53Smrg      $echo "disable shared libraries"
52550806d53Smrg    fi
52650806d53Smrg    if test "$build_old_libs" = yes; then
52750806d53Smrg      $echo "enable static libraries"
52850806d53Smrg    else
52950806d53Smrg      $echo "disable static libraries"
53050806d53Smrg    fi
53150806d53Smrg    exit $?
53250806d53Smrg    ;;
53350806d53Smrg
53450806d53Smrg  --finish) mode="finish" ;;
53550806d53Smrg
53650806d53Smrg  --mode) prevopt="--mode" prev=mode ;;
53750806d53Smrg  --mode=*) mode="$optarg" ;;
53850806d53Smrg
53950806d53Smrg  --preserve-dup-deps) duplicate_deps="yes" ;;
54050806d53Smrg
54150806d53Smrg  --quiet | --silent)
54250806d53Smrg    show=:
54350806d53Smrg    preserve_args="$preserve_args $arg"
54450806d53Smrg    ;;
54550806d53Smrg
54650806d53Smrg  --tag)
54750806d53Smrg    prevopt="--tag"
54850806d53Smrg    prev=tag
54950806d53Smrg    preserve_args="$preserve_args --tag"
55050806d53Smrg    ;;
55150806d53Smrg  --tag=*)
55250806d53Smrg    set tag "$optarg" ${1+"$@"}
55350806d53Smrg    shift
55450806d53Smrg    prev=tag
55550806d53Smrg    preserve_args="$preserve_args --tag"
55650806d53Smrg    ;;
55750806d53Smrg
55850806d53Smrg  -dlopen)
55950806d53Smrg    prevopt="-dlopen"
56050806d53Smrg    prev=execute_dlfiles
56150806d53Smrg    ;;
56250806d53Smrg
56350806d53Smrg  -*)
56450806d53Smrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
56550806d53Smrg    $echo "$help" 1>&2
56650806d53Smrg    exit $EXIT_FAILURE
56750806d53Smrg    ;;
56850806d53Smrg
56950806d53Smrg  *)
57050806d53Smrg    nonopt="$arg"
57150806d53Smrg    break
57250806d53Smrg    ;;
57350806d53Smrg  esac
57450806d53Smrgdone
57550806d53Smrg
57650806d53Smrgif test -n "$prevopt"; then
57750806d53Smrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
57850806d53Smrg  $echo "$help" 1>&2
57950806d53Smrg  exit $EXIT_FAILURE
58050806d53Smrgfi
58150806d53Smrg
58250806d53Smrgcase $disable_libs in
58350806d53Smrgno) 
58450806d53Smrg  ;;
58550806d53Smrgshared)
58650806d53Smrg  build_libtool_libs=no
58750806d53Smrg  build_old_libs=yes
58850806d53Smrg  ;;
58950806d53Smrgstatic)
59050806d53Smrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
59150806d53Smrg  ;;
59250806d53Smrgesac
59350806d53Smrg
59450806d53Smrg# If this variable is set in any of the actions, the command in it
59550806d53Smrg# will be execed at the end.  This prevents here-documents from being
59650806d53Smrg# left over by shells.
59750806d53Smrgexec_cmd=
59850806d53Smrg
59950806d53Smrgif test -z "$show_help"; then
60050806d53Smrg
60150806d53Smrg  # Infer the operation mode.
60250806d53Smrg  if test -z "$mode"; then
60350806d53Smrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
60450806d53Smrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
60550806d53Smrg    case $nonopt in
60650806d53Smrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
60750806d53Smrg      mode=link
60850806d53Smrg      for arg
60950806d53Smrg      do
61050806d53Smrg	case $arg in
61150806d53Smrg	-c)
61250806d53Smrg	   mode=compile
61350806d53Smrg	   break
61450806d53Smrg	   ;;
61550806d53Smrg	esac
61650806d53Smrg      done
61750806d53Smrg      ;;
61850806d53Smrg    *db | *dbx | *strace | *truss)
61950806d53Smrg      mode=execute
62050806d53Smrg      ;;
62150806d53Smrg    *install*|cp|mv)
62250806d53Smrg      mode=install
62350806d53Smrg      ;;
62450806d53Smrg    *rm)
62550806d53Smrg      mode=uninstall
62650806d53Smrg      ;;
62750806d53Smrg    *)
62850806d53Smrg      # If we have no mode, but dlfiles were specified, then do execute mode.
62950806d53Smrg      test -n "$execute_dlfiles" && mode=execute
63050806d53Smrg
63150806d53Smrg      # Just use the default operation mode.
63250806d53Smrg      if test -z "$mode"; then
63350806d53Smrg	if test -n "$nonopt"; then
63450806d53Smrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
63550806d53Smrg	else
63650806d53Smrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
63750806d53Smrg	fi
63850806d53Smrg      fi
63950806d53Smrg      ;;
64050806d53Smrg    esac
64150806d53Smrg  fi
64250806d53Smrg
64350806d53Smrg  # Only execute mode is allowed to have -dlopen flags.
64450806d53Smrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
64550806d53Smrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
64650806d53Smrg    $echo "$help" 1>&2
64750806d53Smrg    exit $EXIT_FAILURE
64850806d53Smrg  fi
64950806d53Smrg
65050806d53Smrg  # Change the help message to a mode-specific one.
65150806d53Smrg  generic_help="$help"
65250806d53Smrg  help="Try \`$modename --help --mode=$mode' for more information."
65350806d53Smrg
65450806d53Smrg  # These modes are in order of execution frequency so that they run quickly.
65550806d53Smrg  case $mode in
65650806d53Smrg  # libtool compile mode
65750806d53Smrg  compile)
65850806d53Smrg    modename="$modename: compile"
65950806d53Smrg    # Get the compilation command and the source file.
66050806d53Smrg    base_compile=
66150806d53Smrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
66250806d53Smrg    suppress_opt=yes
66350806d53Smrg    suppress_output=
66450806d53Smrg    arg_mode=normal
66550806d53Smrg    libobj=
66650806d53Smrg    later=
66750806d53Smrg
66850806d53Smrg    for arg
66950806d53Smrg    do
67050806d53Smrg      case $arg_mode in
67150806d53Smrg      arg  )
67250806d53Smrg	# do not "continue".  Instead, add this to base_compile
67350806d53Smrg	lastarg="$arg"
67450806d53Smrg	arg_mode=normal
67550806d53Smrg	;;
67650806d53Smrg
67750806d53Smrg      target )
67850806d53Smrg	libobj="$arg"
67950806d53Smrg	arg_mode=normal
68050806d53Smrg	continue
68150806d53Smrg	;;
68250806d53Smrg
68350806d53Smrg      normal )
68450806d53Smrg	# Accept any command-line options.
68550806d53Smrg	case $arg in
68650806d53Smrg	-o)
68750806d53Smrg	  if test -n "$libobj" ; then
68850806d53Smrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
68950806d53Smrg	    exit $EXIT_FAILURE
69050806d53Smrg	  fi
69150806d53Smrg	  arg_mode=target
69250806d53Smrg	  continue
69350806d53Smrg	  ;;
69450806d53Smrg
69550806d53Smrg	-static | -prefer-pic | -prefer-non-pic)
69650806d53Smrg	  later="$later $arg"
69750806d53Smrg	  continue
69850806d53Smrg	  ;;
69950806d53Smrg
70050806d53Smrg	-no-suppress)
70150806d53Smrg	  suppress_opt=no
70250806d53Smrg	  continue
70350806d53Smrg	  ;;
70450806d53Smrg
70550806d53Smrg	-Xcompiler)
70650806d53Smrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
70750806d53Smrg	  continue      #  The current "srcfile" will either be retained or
70850806d53Smrg	  ;;            #  replaced later.  I would guess that would be a bug.
70950806d53Smrg
71050806d53Smrg	-Wc,*)
71150806d53Smrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
71250806d53Smrg	  lastarg=
71350806d53Smrg	  save_ifs="$IFS"; IFS=','
71450806d53Smrg 	  for arg in $args; do
71550806d53Smrg	    IFS="$save_ifs"
71650806d53Smrg
71750806d53Smrg	    # Double-quote args containing other shell metacharacters.
71850806d53Smrg	    # Many Bourne shells cannot handle close brackets correctly
71950806d53Smrg	    # in scan sets, so we specify it separately.
72050806d53Smrg	    case $arg in
72150806d53Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
72250806d53Smrg	      arg="\"$arg\""
72350806d53Smrg	      ;;
72450806d53Smrg	    esac
72550806d53Smrg	    lastarg="$lastarg $arg"
72650806d53Smrg	  done
72750806d53Smrg	  IFS="$save_ifs"
72850806d53Smrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
72950806d53Smrg
73050806d53Smrg	  # Add the arguments to base_compile.
73150806d53Smrg	  base_compile="$base_compile $lastarg"
73250806d53Smrg	  continue
73350806d53Smrg	  ;;
73450806d53Smrg
73550806d53Smrg	* )
73650806d53Smrg	  # Accept the current argument as the source file.
73750806d53Smrg	  # The previous "srcfile" becomes the current argument.
73850806d53Smrg	  #
73950806d53Smrg	  lastarg="$srcfile"
74050806d53Smrg	  srcfile="$arg"
74150806d53Smrg	  ;;
74250806d53Smrg	esac  #  case $arg
74350806d53Smrg	;;
74450806d53Smrg      esac    #  case $arg_mode
74550806d53Smrg
74650806d53Smrg      # Aesthetically quote the previous argument.
74750806d53Smrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
74850806d53Smrg
74950806d53Smrg      case $lastarg in
75050806d53Smrg      # Double-quote args containing other shell metacharacters.
75150806d53Smrg      # Many Bourne shells cannot handle close brackets correctly
75250806d53Smrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
75350806d53Smrg      # in scan sets (worked around with variable expansion),
75450806d53Smrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
75550806d53Smrg      # at all, so we specify them separately.
75650806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
75750806d53Smrg	lastarg="\"$lastarg\""
75850806d53Smrg	;;
75950806d53Smrg      esac
76050806d53Smrg
76150806d53Smrg      base_compile="$base_compile $lastarg"
76250806d53Smrg    done # for arg
76350806d53Smrg
76450806d53Smrg    case $arg_mode in
76550806d53Smrg    arg)
76650806d53Smrg      $echo "$modename: you must specify an argument for -Xcompile"
76750806d53Smrg      exit $EXIT_FAILURE
76850806d53Smrg      ;;
76950806d53Smrg    target)
77050806d53Smrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
77150806d53Smrg      exit $EXIT_FAILURE
77250806d53Smrg      ;;
77350806d53Smrg    *)
77450806d53Smrg      # Get the name of the library object.
77550806d53Smrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
77650806d53Smrg      ;;
77750806d53Smrg    esac
77850806d53Smrg
77950806d53Smrg    # Recognize several different file suffixes.
78050806d53Smrg    # If the user specifies -o file.o, it is replaced with file.lo
78150806d53Smrg    xform='[cCFSifmso]'
78250806d53Smrg    case $libobj in
78350806d53Smrg    *.ada) xform=ada ;;
78450806d53Smrg    *.adb) xform=adb ;;
78550806d53Smrg    *.ads) xform=ads ;;
78650806d53Smrg    *.asm) xform=asm ;;
78750806d53Smrg    *.c++) xform=c++ ;;
78850806d53Smrg    *.cc) xform=cc ;;
78950806d53Smrg    *.ii) xform=ii ;;
79050806d53Smrg    *.class) xform=class ;;
79150806d53Smrg    *.cpp) xform=cpp ;;
79250806d53Smrg    *.cxx) xform=cxx ;;
7937965d9acSmrg    *.[fF][09]?) xform=[fF][09]. ;;
79450806d53Smrg    *.for) xform=for ;;
79550806d53Smrg    *.java) xform=java ;;
79650806d53Smrg    *.obj) xform=obj ;;
7977965d9acSmrg    *.sx) xform=sx ;;
79850806d53Smrg    esac
79950806d53Smrg
80050806d53Smrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
80150806d53Smrg
80250806d53Smrg    case $libobj in
80350806d53Smrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
80450806d53Smrg    *)
80550806d53Smrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
80650806d53Smrg      exit $EXIT_FAILURE
80750806d53Smrg      ;;
80850806d53Smrg    esac
80950806d53Smrg
81050806d53Smrg    func_infer_tag $base_compile
81150806d53Smrg
81250806d53Smrg    for arg in $later; do
81350806d53Smrg      case $arg in
81450806d53Smrg      -static)
81550806d53Smrg	build_old_libs=yes
81650806d53Smrg	continue
81750806d53Smrg	;;
81850806d53Smrg
81950806d53Smrg      -prefer-pic)
82050806d53Smrg	pic_mode=yes
82150806d53Smrg	continue
82250806d53Smrg	;;
82350806d53Smrg
82450806d53Smrg      -prefer-non-pic)
82550806d53Smrg	pic_mode=no
82650806d53Smrg	continue
82750806d53Smrg	;;
82850806d53Smrg      esac
82950806d53Smrg    done
83050806d53Smrg
83150806d53Smrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
83250806d53Smrg    case $qlibobj in
83350806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
83450806d53Smrg	qlibobj="\"$qlibobj\"" ;;
83550806d53Smrg    esac
83650806d53Smrg    test "X$libobj" != "X$qlibobj" \
83750806d53Smrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
83850806d53Smrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
83950806d53Smrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
84050806d53Smrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
84150806d53Smrg    if test "X$xdir" = "X$obj"; then
84250806d53Smrg      xdir=
84350806d53Smrg    else
84450806d53Smrg      xdir=$xdir/
84550806d53Smrg    fi
84650806d53Smrg    lobj=${xdir}$objdir/$objname
84750806d53Smrg
84850806d53Smrg    if test -z "$base_compile"; then
84950806d53Smrg      $echo "$modename: you must specify a compilation command" 1>&2
85050806d53Smrg      $echo "$help" 1>&2
85150806d53Smrg      exit $EXIT_FAILURE
85250806d53Smrg    fi
85350806d53Smrg
85450806d53Smrg    # Delete any leftover library objects.
85550806d53Smrg    if test "$build_old_libs" = yes; then
85650806d53Smrg      removelist="$obj $lobj $libobj ${libobj}T"
85750806d53Smrg    else
85850806d53Smrg      removelist="$lobj $libobj ${libobj}T"
85950806d53Smrg    fi
86050806d53Smrg
86150806d53Smrg    $run $rm $removelist
86250806d53Smrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
86350806d53Smrg
86450806d53Smrg    # On Cygwin there's no "real" PIC flag so we must build both object types
86550806d53Smrg    case $host_os in
86650806d53Smrg    cygwin* | mingw* | pw32* | os2*)
86750806d53Smrg      pic_mode=default
86850806d53Smrg      ;;
86950806d53Smrg    esac
87050806d53Smrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
87150806d53Smrg      # non-PIC code in shared libraries is not supported
87250806d53Smrg      pic_mode=default
87350806d53Smrg    fi
87450806d53Smrg
87550806d53Smrg    # Calculate the filename of the output object if compiler does
87650806d53Smrg    # not support -o with -c
87750806d53Smrg    if test "$compiler_c_o" = no; then
87850806d53Smrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
87950806d53Smrg      lockfile="$output_obj.lock"
88050806d53Smrg      removelist="$removelist $output_obj $lockfile"
88150806d53Smrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
88250806d53Smrg    else
88350806d53Smrg      output_obj=
88450806d53Smrg      need_locks=no
88550806d53Smrg      lockfile=
88650806d53Smrg    fi
88750806d53Smrg
88850806d53Smrg    # Lock this critical section if it is needed
88950806d53Smrg    # We use this script file to make the link, it avoids creating a new file
89050806d53Smrg    if test "$need_locks" = yes; then
89150806d53Smrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
89250806d53Smrg	$show "Waiting for $lockfile to be removed"
89350806d53Smrg	sleep 2
89450806d53Smrg      done
89550806d53Smrg    elif test "$need_locks" = warn; then
89650806d53Smrg      if test -f "$lockfile"; then
89750806d53Smrg	$echo "\
89850806d53Smrg*** ERROR, $lockfile exists and contains:
89950806d53Smrg`cat $lockfile 2>/dev/null`
90050806d53Smrg
90150806d53SmrgThis indicates that another process is trying to use the same
90250806d53Smrgtemporary object file, and libtool could not work around it because
90350806d53Smrgyour compiler does not support \`-c' and \`-o' together.  If you
90450806d53Smrgrepeat this compilation, it may succeed, by chance, but you had better
90550806d53Smrgavoid parallel builds (make -j) in this platform, or get a better
90650806d53Smrgcompiler."
90750806d53Smrg
90850806d53Smrg	$run $rm $removelist
90950806d53Smrg	exit $EXIT_FAILURE
91050806d53Smrg      fi
91150806d53Smrg      $echo "$srcfile" > "$lockfile"
91250806d53Smrg    fi
91350806d53Smrg
91450806d53Smrg    if test -n "$fix_srcfile_path"; then
91550806d53Smrg      eval srcfile=\"$fix_srcfile_path\"
91650806d53Smrg    fi
91750806d53Smrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
91850806d53Smrg    case $qsrcfile in
91950806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
92050806d53Smrg      qsrcfile="\"$qsrcfile\"" ;;
92150806d53Smrg    esac
92250806d53Smrg
92350806d53Smrg    $run $rm "$libobj" "${libobj}T"
92450806d53Smrg
92550806d53Smrg    # Create a libtool object file (analogous to a ".la" file),
92650806d53Smrg    # but don't create it if we're doing a dry run.
92750806d53Smrg    test -z "$run" && cat > ${libobj}T <<EOF
92850806d53Smrg# $libobj - a libtool object file
92950806d53Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
93050806d53Smrg#
93150806d53Smrg# Please DO NOT delete this file!
93250806d53Smrg# It is necessary for linking the library.
93350806d53Smrg
93450806d53Smrg# Name of the PIC object.
93550806d53SmrgEOF
93650806d53Smrg
93750806d53Smrg    # Only build a PIC object if we are building libtool libraries.
93850806d53Smrg    if test "$build_libtool_libs" = yes; then
93950806d53Smrg      # Without this assignment, base_compile gets emptied.
94050806d53Smrg      fbsd_hideous_sh_bug=$base_compile
94150806d53Smrg
94250806d53Smrg      if test "$pic_mode" != no; then
94350806d53Smrg	command="$base_compile $qsrcfile $pic_flag"
94450806d53Smrg      else
94550806d53Smrg	# Don't build PIC code
94650806d53Smrg	command="$base_compile $qsrcfile"
94750806d53Smrg      fi
94850806d53Smrg
94950806d53Smrg      if test ! -d "${xdir}$objdir"; then
95050806d53Smrg	$show "$mkdir ${xdir}$objdir"
95150806d53Smrg	$run $mkdir ${xdir}$objdir
95250806d53Smrg	exit_status=$?
95350806d53Smrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
95450806d53Smrg	  exit $exit_status
95550806d53Smrg	fi
95650806d53Smrg      fi
95750806d53Smrg
95850806d53Smrg      if test -z "$output_obj"; then
95950806d53Smrg	# Place PIC objects in $objdir
96050806d53Smrg	command="$command -o $lobj"
96150806d53Smrg      fi
96250806d53Smrg
96350806d53Smrg      $run $rm "$lobj" "$output_obj"
96450806d53Smrg
96550806d53Smrg      $show "$command"
9667965d9acSmrg      if $run eval $lt_env "$command"; then :
96750806d53Smrg      else
96850806d53Smrg	test -n "$output_obj" && $run $rm $removelist
96950806d53Smrg	exit $EXIT_FAILURE
97050806d53Smrg      fi
97150806d53Smrg
97250806d53Smrg      if test "$need_locks" = warn &&
97350806d53Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
97450806d53Smrg	$echo "\
97550806d53Smrg*** ERROR, $lockfile contains:
97650806d53Smrg`cat $lockfile 2>/dev/null`
97750806d53Smrg
97850806d53Smrgbut it should contain:
97950806d53Smrg$srcfile
98050806d53Smrg
98150806d53SmrgThis indicates that another process is trying to use the same
98250806d53Smrgtemporary object file, and libtool could not work around it because
98350806d53Smrgyour compiler does not support \`-c' and \`-o' together.  If you
98450806d53Smrgrepeat this compilation, it may succeed, by chance, but you had better
98550806d53Smrgavoid parallel builds (make -j) in this platform, or get a better
98650806d53Smrgcompiler."
98750806d53Smrg
98850806d53Smrg	$run $rm $removelist
98950806d53Smrg	exit $EXIT_FAILURE
99050806d53Smrg      fi
99150806d53Smrg
99250806d53Smrg      # Just move the object if needed, then go on to compile the next one
99350806d53Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
99450806d53Smrg	$show "$mv $output_obj $lobj"
99550806d53Smrg	if $run $mv $output_obj $lobj; then :
99650806d53Smrg	else
99750806d53Smrg	  error=$?
99850806d53Smrg	  $run $rm $removelist
99950806d53Smrg	  exit $error
100050806d53Smrg	fi
100150806d53Smrg      fi
100250806d53Smrg
100350806d53Smrg      # Append the name of the PIC object to the libtool object file.
100450806d53Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
100550806d53Smrgpic_object='$objdir/$objname'
100650806d53Smrg
100750806d53SmrgEOF
100850806d53Smrg
100950806d53Smrg      # Allow error messages only from the first compilation.
101050806d53Smrg      if test "$suppress_opt" = yes; then
101150806d53Smrg        suppress_output=' >/dev/null 2>&1'
101250806d53Smrg      fi
101350806d53Smrg    else
101450806d53Smrg      # No PIC object so indicate it doesn't exist in the libtool
101550806d53Smrg      # object file.
101650806d53Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
101750806d53Smrgpic_object=none
101850806d53Smrg
101950806d53SmrgEOF
102050806d53Smrg    fi
102150806d53Smrg
102250806d53Smrg    # Only build a position-dependent object if we build old libraries.
102350806d53Smrg    if test "$build_old_libs" = yes; then
102450806d53Smrg      if test "$pic_mode" != yes; then
102550806d53Smrg	# Don't build PIC code
102650806d53Smrg	command="$base_compile $qsrcfile"
102750806d53Smrg      else
102850806d53Smrg	command="$base_compile $qsrcfile $pic_flag"
102950806d53Smrg      fi
103050806d53Smrg      if test "$compiler_c_o" = yes; then
103150806d53Smrg	command="$command -o $obj"
103250806d53Smrg      fi
103350806d53Smrg
103450806d53Smrg      # Suppress compiler output if we already did a PIC compilation.
103550806d53Smrg      command="$command$suppress_output"
103650806d53Smrg      $run $rm "$obj" "$output_obj"
103750806d53Smrg      $show "$command"
10387965d9acSmrg      if $run eval $lt_env "$command"; then :
103950806d53Smrg      else
104050806d53Smrg	$run $rm $removelist
104150806d53Smrg	exit $EXIT_FAILURE
104250806d53Smrg      fi
104350806d53Smrg
104450806d53Smrg      if test "$need_locks" = warn &&
104550806d53Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
104650806d53Smrg	$echo "\
104750806d53Smrg*** ERROR, $lockfile contains:
104850806d53Smrg`cat $lockfile 2>/dev/null`
104950806d53Smrg
105050806d53Smrgbut it should contain:
105150806d53Smrg$srcfile
105250806d53Smrg
105350806d53SmrgThis indicates that another process is trying to use the same
105450806d53Smrgtemporary object file, and libtool could not work around it because
105550806d53Smrgyour compiler does not support \`-c' and \`-o' together.  If you
105650806d53Smrgrepeat this compilation, it may succeed, by chance, but you had better
105750806d53Smrgavoid parallel builds (make -j) in this platform, or get a better
105850806d53Smrgcompiler."
105950806d53Smrg
106050806d53Smrg	$run $rm $removelist
106150806d53Smrg	exit $EXIT_FAILURE
106250806d53Smrg      fi
106350806d53Smrg
106450806d53Smrg      # Just move the object if needed
106550806d53Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
106650806d53Smrg	$show "$mv $output_obj $obj"
106750806d53Smrg	if $run $mv $output_obj $obj; then :
106850806d53Smrg	else
106950806d53Smrg	  error=$?
107050806d53Smrg	  $run $rm $removelist
107150806d53Smrg	  exit $error
107250806d53Smrg	fi
107350806d53Smrg      fi
107450806d53Smrg
107550806d53Smrg      # Append the name of the non-PIC object the libtool object file.
107650806d53Smrg      # Only append if the libtool object file exists.
107750806d53Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
107850806d53Smrg# Name of the non-PIC object.
107950806d53Smrgnon_pic_object='$objname'
108050806d53Smrg
108150806d53SmrgEOF
108250806d53Smrg    else
108350806d53Smrg      # Append the name of the non-PIC object the libtool object file.
108450806d53Smrg      # Only append if the libtool object file exists.
108550806d53Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
108650806d53Smrg# Name of the non-PIC object.
108750806d53Smrgnon_pic_object=none
108850806d53Smrg
108950806d53SmrgEOF
109050806d53Smrg    fi
109150806d53Smrg
109250806d53Smrg    $run $mv "${libobj}T" "${libobj}"
109350806d53Smrg
109450806d53Smrg    # Unlock the critical section if it was locked
109550806d53Smrg    if test "$need_locks" != no; then
109650806d53Smrg      $run $rm "$lockfile"
109750806d53Smrg    fi
109850806d53Smrg
109950806d53Smrg    exit $EXIT_SUCCESS
110050806d53Smrg    ;;
110150806d53Smrg
110250806d53Smrg  # libtool link mode
110350806d53Smrg  link | relink)
110450806d53Smrg    modename="$modename: link"
110550806d53Smrg    case $host in
110650806d53Smrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
110750806d53Smrg      # It is impossible to link a dll without this setting, and
110850806d53Smrg      # we shouldn't force the makefile maintainer to figure out
110950806d53Smrg      # which system we are compiling for in order to pass an extra
111050806d53Smrg      # flag for every libtool invocation.
111150806d53Smrg      # allow_undefined=no
111250806d53Smrg
111350806d53Smrg      # FIXME: Unfortunately, there are problems with the above when trying
111450806d53Smrg      # to make a dll which has undefined symbols, in which case not
111550806d53Smrg      # even a static library is built.  For now, we need to specify
111650806d53Smrg      # -no-undefined on the libtool link line when we can be certain
111750806d53Smrg      # that all symbols are satisfied, otherwise we get a static library.
111850806d53Smrg      allow_undefined=yes
111950806d53Smrg      ;;
112050806d53Smrg    *)
112150806d53Smrg      allow_undefined=yes
112250806d53Smrg      ;;
112350806d53Smrg    esac
112450806d53Smrg    libtool_args="$nonopt"
112550806d53Smrg    base_compile="$nonopt $@"
112650806d53Smrg    compile_command="$nonopt"
112750806d53Smrg    finalize_command="$nonopt"
112850806d53Smrg
112950806d53Smrg    compile_rpath=
113050806d53Smrg    finalize_rpath=
113150806d53Smrg    compile_shlibpath=
113250806d53Smrg    finalize_shlibpath=
113350806d53Smrg    convenience=
113450806d53Smrg    old_convenience=
113550806d53Smrg    deplibs=
113650806d53Smrg    old_deplibs=
113750806d53Smrg    compiler_flags=
113850806d53Smrg    linker_flags=
113950806d53Smrg    dllsearchpath=
114050806d53Smrg    lib_search_path=`pwd`
114150806d53Smrg    inst_prefix_dir=
114250806d53Smrg
114350806d53Smrg    avoid_version=no
114450806d53Smrg    dlfiles=
114550806d53Smrg    dlprefiles=
114650806d53Smrg    dlself=no
114750806d53Smrg    export_dynamic=no
114850806d53Smrg    export_symbols=
114950806d53Smrg    export_symbols_regex=
115050806d53Smrg    generated=
115150806d53Smrg    libobjs=
115250806d53Smrg    ltlibs=
115350806d53Smrg    module=no
115450806d53Smrg    no_install=no
115550806d53Smrg    objs=
115650806d53Smrg    non_pic_objects=
115750806d53Smrg    notinst_path= # paths that contain not-installed libtool libraries
115850806d53Smrg    precious_files_regex=
115950806d53Smrg    prefer_static_libs=no
116050806d53Smrg    preload=no
116150806d53Smrg    prev=
116250806d53Smrg    prevarg=
116350806d53Smrg    release=
116450806d53Smrg    rpath=
116550806d53Smrg    xrpath=
116650806d53Smrg    perm_rpath=
116750806d53Smrg    temp_rpath=
116850806d53Smrg    thread_safe=no
116950806d53Smrg    vinfo=
117050806d53Smrg    vinfo_number=no
11717965d9acSmrg    single_module="${wl}-single_module"
117250806d53Smrg
117350806d53Smrg    func_infer_tag $base_compile
117450806d53Smrg
117550806d53Smrg    # We need to know -static, to get the right output filenames.
117650806d53Smrg    for arg
117750806d53Smrg    do
117850806d53Smrg      case $arg in
117950806d53Smrg      -all-static | -static | -static-libtool-libs)
11807965d9acSmrg	case $arg in
11817965d9acSmrg	-all-static)
118250806d53Smrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
118350806d53Smrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
118450806d53Smrg	  fi
118550806d53Smrg	  if test -n "$link_static_flag"; then
118650806d53Smrg	    dlopen_self=$dlopen_self_static
118750806d53Smrg	  fi
118850806d53Smrg	  prefer_static_libs=yes
118950806d53Smrg	  ;;
11907965d9acSmrg	-static)
119150806d53Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
119250806d53Smrg	    dlopen_self=$dlopen_self_static
119350806d53Smrg	  fi
119450806d53Smrg	  prefer_static_libs=built
119550806d53Smrg	  ;;
11967965d9acSmrg	-static-libtool-libs)
11977965d9acSmrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11987965d9acSmrg	    dlopen_self=$dlopen_self_static
11997965d9acSmrg	  fi
12007965d9acSmrg	  prefer_static_libs=yes
12017965d9acSmrg	  ;;
12027965d9acSmrg	esac
120350806d53Smrg	build_libtool_libs=no
120450806d53Smrg	build_old_libs=yes
120550806d53Smrg	break
120650806d53Smrg	;;
120750806d53Smrg      esac
120850806d53Smrg    done
120950806d53Smrg
121050806d53Smrg    # See if our shared archives depend on static archives.
121150806d53Smrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
121250806d53Smrg
121350806d53Smrg    # Go through the arguments, transforming them on the way.
121450806d53Smrg    while test "$#" -gt 0; do
121550806d53Smrg      arg="$1"
121650806d53Smrg      shift
121750806d53Smrg      case $arg in
121850806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
121950806d53Smrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
122050806d53Smrg	;;
122150806d53Smrg      *) qarg=$arg ;;
122250806d53Smrg      esac
122350806d53Smrg      libtool_args="$libtool_args $qarg"
122450806d53Smrg
122550806d53Smrg      # If the previous option needs an argument, assign it.
122650806d53Smrg      if test -n "$prev"; then
122750806d53Smrg	case $prev in
122850806d53Smrg	output)
122950806d53Smrg	  compile_command="$compile_command @OUTPUT@"
123050806d53Smrg	  finalize_command="$finalize_command @OUTPUT@"
123150806d53Smrg	  ;;
123250806d53Smrg	esac
123350806d53Smrg
123450806d53Smrg	case $prev in
123550806d53Smrg	dlfiles|dlprefiles)
123650806d53Smrg	  if test "$preload" = no; then
123750806d53Smrg	    # Add the symbol object into the linking commands.
123850806d53Smrg	    compile_command="$compile_command @SYMFILE@"
123950806d53Smrg	    finalize_command="$finalize_command @SYMFILE@"
124050806d53Smrg	    preload=yes
124150806d53Smrg	  fi
124250806d53Smrg	  case $arg in
124350806d53Smrg	  *.la | *.lo) ;;  # We handle these cases below.
124450806d53Smrg	  force)
124550806d53Smrg	    if test "$dlself" = no; then
124650806d53Smrg	      dlself=needless
124750806d53Smrg	      export_dynamic=yes
124850806d53Smrg	    fi
124950806d53Smrg	    prev=
125050806d53Smrg	    continue
125150806d53Smrg	    ;;
125250806d53Smrg	  self)
125350806d53Smrg	    if test "$prev" = dlprefiles; then
125450806d53Smrg	      dlself=yes
125550806d53Smrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
125650806d53Smrg	      dlself=yes
125750806d53Smrg	    else
125850806d53Smrg	      dlself=needless
125950806d53Smrg	      export_dynamic=yes
126050806d53Smrg	    fi
126150806d53Smrg	    prev=
126250806d53Smrg	    continue
126350806d53Smrg	    ;;
126450806d53Smrg	  *)
126550806d53Smrg	    if test "$prev" = dlfiles; then
126650806d53Smrg	      dlfiles="$dlfiles $arg"
126750806d53Smrg	    else
126850806d53Smrg	      dlprefiles="$dlprefiles $arg"
126950806d53Smrg	    fi
127050806d53Smrg	    prev=
127150806d53Smrg	    continue
127250806d53Smrg	    ;;
127350806d53Smrg	  esac
127450806d53Smrg	  ;;
127550806d53Smrg	expsyms)
127650806d53Smrg	  export_symbols="$arg"
127750806d53Smrg	  if test ! -f "$arg"; then
127850806d53Smrg	    $echo "$modename: symbol file \`$arg' does not exist"
127950806d53Smrg	    exit $EXIT_FAILURE
128050806d53Smrg	  fi
128150806d53Smrg	  prev=
128250806d53Smrg	  continue
128350806d53Smrg	  ;;
128450806d53Smrg	expsyms_regex)
128550806d53Smrg	  export_symbols_regex="$arg"
128650806d53Smrg	  prev=
128750806d53Smrg	  continue
128850806d53Smrg	  ;;
128950806d53Smrg	inst_prefix)
129050806d53Smrg	  inst_prefix_dir="$arg"
129150806d53Smrg	  prev=
129250806d53Smrg	  continue
129350806d53Smrg	  ;;
129450806d53Smrg	precious_regex)
129550806d53Smrg	  precious_files_regex="$arg"
129650806d53Smrg	  prev=
129750806d53Smrg	  continue
129850806d53Smrg	  ;;
129950806d53Smrg	release)
130050806d53Smrg	  release="-$arg"
130150806d53Smrg	  prev=
130250806d53Smrg	  continue
130350806d53Smrg	  ;;
130450806d53Smrg	objectlist)
130550806d53Smrg	  if test -f "$arg"; then
130650806d53Smrg	    save_arg=$arg
130750806d53Smrg	    moreargs=
130850806d53Smrg	    for fil in `cat $save_arg`
130950806d53Smrg	    do
131050806d53Smrg#	      moreargs="$moreargs $fil"
131150806d53Smrg	      arg=$fil
131250806d53Smrg	      # A libtool-controlled object.
131350806d53Smrg
131450806d53Smrg	      # Check to see that this really is a libtool object.
131550806d53Smrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
131650806d53Smrg		pic_object=
131750806d53Smrg		non_pic_object=
131850806d53Smrg
131950806d53Smrg		# Read the .lo file
132050806d53Smrg		# If there is no directory component, then add one.
132150806d53Smrg		case $arg in
132250806d53Smrg		*/* | *\\*) . $arg ;;
132350806d53Smrg		*) . ./$arg ;;
132450806d53Smrg		esac
132550806d53Smrg
132650806d53Smrg		if test -z "$pic_object" || \
132750806d53Smrg		   test -z "$non_pic_object" ||
132850806d53Smrg		   test "$pic_object" = none && \
132950806d53Smrg		   test "$non_pic_object" = none; then
133050806d53Smrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
133150806d53Smrg		  exit $EXIT_FAILURE
133250806d53Smrg		fi
133350806d53Smrg
133450806d53Smrg		# Extract subdirectory from the argument.
133550806d53Smrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
133650806d53Smrg		if test "X$xdir" = "X$arg"; then
133750806d53Smrg		  xdir=
133850806d53Smrg		else
133950806d53Smrg		  xdir="$xdir/"
134050806d53Smrg		fi
134150806d53Smrg
134250806d53Smrg		if test "$pic_object" != none; then
134350806d53Smrg		  # Prepend the subdirectory the object is found in.
134450806d53Smrg		  pic_object="$xdir$pic_object"
134550806d53Smrg
134650806d53Smrg		  if test "$prev" = dlfiles; then
134750806d53Smrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
134850806d53Smrg		      dlfiles="$dlfiles $pic_object"
134950806d53Smrg		      prev=
135050806d53Smrg		      continue
135150806d53Smrg		    else
135250806d53Smrg		      # If libtool objects are unsupported, then we need to preload.
135350806d53Smrg		      prev=dlprefiles
135450806d53Smrg		    fi
135550806d53Smrg		  fi
135650806d53Smrg
135750806d53Smrg		  # CHECK ME:  I think I busted this.  -Ossama
135850806d53Smrg		  if test "$prev" = dlprefiles; then
135950806d53Smrg		    # Preload the old-style object.
136050806d53Smrg		    dlprefiles="$dlprefiles $pic_object"
136150806d53Smrg		    prev=
136250806d53Smrg		  fi
136350806d53Smrg
136450806d53Smrg		  # A PIC object.
136550806d53Smrg		  libobjs="$libobjs $pic_object"
136650806d53Smrg		  arg="$pic_object"
136750806d53Smrg		fi
136850806d53Smrg
136950806d53Smrg		# Non-PIC object.
137050806d53Smrg		if test "$non_pic_object" != none; then
137150806d53Smrg		  # Prepend the subdirectory the object is found in.
137250806d53Smrg		  non_pic_object="$xdir$non_pic_object"
137350806d53Smrg
137450806d53Smrg		  # A standard non-PIC object
137550806d53Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
137650806d53Smrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
137750806d53Smrg		    arg="$non_pic_object"
137850806d53Smrg		  fi
137950806d53Smrg		else
138050806d53Smrg		  # If the PIC object exists, use it instead.
138150806d53Smrg		  # $xdir was prepended to $pic_object above.
138250806d53Smrg		  non_pic_object="$pic_object"
138350806d53Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
138450806d53Smrg		fi
138550806d53Smrg	      else
138650806d53Smrg		# Only an error if not doing a dry-run.
138750806d53Smrg		if test -z "$run"; then
138850806d53Smrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
138950806d53Smrg		  exit $EXIT_FAILURE
139050806d53Smrg		else
139150806d53Smrg		  # Dry-run case.
139250806d53Smrg
139350806d53Smrg		  # Extract subdirectory from the argument.
139450806d53Smrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
139550806d53Smrg		  if test "X$xdir" = "X$arg"; then
139650806d53Smrg		    xdir=
139750806d53Smrg		  else
139850806d53Smrg		    xdir="$xdir/"
139950806d53Smrg		  fi
140050806d53Smrg
140150806d53Smrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
140250806d53Smrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
140350806d53Smrg		  libobjs="$libobjs $pic_object"
140450806d53Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
140550806d53Smrg		fi
140650806d53Smrg	      fi
140750806d53Smrg	    done
140850806d53Smrg	  else
140950806d53Smrg	    $echo "$modename: link input file \`$save_arg' does not exist"
141050806d53Smrg	    exit $EXIT_FAILURE
141150806d53Smrg	  fi
141250806d53Smrg	  arg=$save_arg
141350806d53Smrg	  prev=
141450806d53Smrg	  continue
141550806d53Smrg	  ;;
141650806d53Smrg	rpath | xrpath)
141750806d53Smrg	  # We need an absolute path.
141850806d53Smrg	  case $arg in
141950806d53Smrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
142050806d53Smrg	  *)
142150806d53Smrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
142250806d53Smrg	    exit $EXIT_FAILURE
142350806d53Smrg	    ;;
142450806d53Smrg	  esac
142550806d53Smrg	  if test "$prev" = rpath; then
142650806d53Smrg	    case "$rpath " in
142750806d53Smrg	    *" $arg "*) ;;
142850806d53Smrg	    *) rpath="$rpath $arg" ;;
142950806d53Smrg	    esac
143050806d53Smrg	  else
143150806d53Smrg	    case "$xrpath " in
143250806d53Smrg	    *" $arg "*) ;;
143350806d53Smrg	    *) xrpath="$xrpath $arg" ;;
143450806d53Smrg	    esac
143550806d53Smrg	  fi
143650806d53Smrg	  prev=
143750806d53Smrg	  continue
143850806d53Smrg	  ;;
143950806d53Smrg	xcompiler)
144050806d53Smrg	  compiler_flags="$compiler_flags $qarg"
144150806d53Smrg	  prev=
144250806d53Smrg	  compile_command="$compile_command $qarg"
144350806d53Smrg	  finalize_command="$finalize_command $qarg"
144450806d53Smrg	  continue
144550806d53Smrg	  ;;
144650806d53Smrg	xlinker)
144750806d53Smrg	  linker_flags="$linker_flags $qarg"
144850806d53Smrg	  compiler_flags="$compiler_flags $wl$qarg"
144950806d53Smrg	  prev=
145050806d53Smrg	  compile_command="$compile_command $wl$qarg"
145150806d53Smrg	  finalize_command="$finalize_command $wl$qarg"
145250806d53Smrg	  continue
145350806d53Smrg	  ;;
145450806d53Smrg	xcclinker)
145550806d53Smrg	  linker_flags="$linker_flags $qarg"
145650806d53Smrg	  compiler_flags="$compiler_flags $qarg"
145750806d53Smrg	  prev=
145850806d53Smrg	  compile_command="$compile_command $qarg"
145950806d53Smrg	  finalize_command="$finalize_command $qarg"
146050806d53Smrg	  continue
146150806d53Smrg	  ;;
146250806d53Smrg	shrext)
146350806d53Smrg  	  shrext_cmds="$arg"
146450806d53Smrg	  prev=
146550806d53Smrg	  continue
146650806d53Smrg	  ;;
146750806d53Smrg	darwin_framework|darwin_framework_skip)
146850806d53Smrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
146950806d53Smrg	  compile_command="$compile_command $arg"
147050806d53Smrg	  finalize_command="$finalize_command $arg"
147150806d53Smrg	  prev=
147250806d53Smrg	  continue
147350806d53Smrg	  ;;
147450806d53Smrg	*)
147550806d53Smrg	  eval "$prev=\"\$arg\""
147650806d53Smrg	  prev=
147750806d53Smrg	  continue
147850806d53Smrg	  ;;
147950806d53Smrg	esac
148050806d53Smrg      fi # test -n "$prev"
148150806d53Smrg
148250806d53Smrg      prevarg="$arg"
148350806d53Smrg
148450806d53Smrg      case $arg in
148550806d53Smrg      -all-static)
148650806d53Smrg	if test -n "$link_static_flag"; then
148750806d53Smrg	  compile_command="$compile_command $link_static_flag"
148850806d53Smrg	  finalize_command="$finalize_command $link_static_flag"
148950806d53Smrg	fi
149050806d53Smrg	continue
149150806d53Smrg	;;
149250806d53Smrg
149350806d53Smrg      -allow-undefined)
149450806d53Smrg	# FIXME: remove this flag sometime in the future.
149550806d53Smrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
149650806d53Smrg	continue
149750806d53Smrg	;;
149850806d53Smrg
149950806d53Smrg      -avoid-version)
150050806d53Smrg	avoid_version=yes
150150806d53Smrg	continue
150250806d53Smrg	;;
150350806d53Smrg
150450806d53Smrg      -dlopen)
150550806d53Smrg	prev=dlfiles
150650806d53Smrg	continue
150750806d53Smrg	;;
150850806d53Smrg
150950806d53Smrg      -dlpreopen)
151050806d53Smrg	prev=dlprefiles
151150806d53Smrg	continue
151250806d53Smrg	;;
151350806d53Smrg
151450806d53Smrg      -export-dynamic)
151550806d53Smrg	export_dynamic=yes
151650806d53Smrg	continue
151750806d53Smrg	;;
151850806d53Smrg
151950806d53Smrg      -export-symbols | -export-symbols-regex)
152050806d53Smrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
152150806d53Smrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
152250806d53Smrg	  exit $EXIT_FAILURE
152350806d53Smrg	fi
152450806d53Smrg	if test "X$arg" = "X-export-symbols"; then
152550806d53Smrg	  prev=expsyms
152650806d53Smrg	else
152750806d53Smrg	  prev=expsyms_regex
152850806d53Smrg	fi
152950806d53Smrg	continue
153050806d53Smrg	;;
153150806d53Smrg
153250806d53Smrg      -framework|-arch|-isysroot)
153350806d53Smrg	case " $CC " in
153450806d53Smrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
153550806d53Smrg		prev=darwin_framework_skip ;;
153650806d53Smrg	  *) compiler_flags="$compiler_flags $arg"
153750806d53Smrg	     prev=darwin_framework ;;
153850806d53Smrg	esac
153950806d53Smrg	compile_command="$compile_command $arg"
154050806d53Smrg	finalize_command="$finalize_command $arg"
154150806d53Smrg	continue
154250806d53Smrg	;;
154350806d53Smrg
154450806d53Smrg      -inst-prefix-dir)
154550806d53Smrg	prev=inst_prefix
154650806d53Smrg	continue
154750806d53Smrg	;;
154850806d53Smrg
154950806d53Smrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
155050806d53Smrg      # so, if we see these flags be careful not to treat them like -L
155150806d53Smrg      -L[A-Z][A-Z]*:*)
155250806d53Smrg	case $with_gcc/$host in
155350806d53Smrg	no/*-*-irix* | /*-*-irix*)
155450806d53Smrg	  compile_command="$compile_command $arg"
155550806d53Smrg	  finalize_command="$finalize_command $arg"
155650806d53Smrg	  ;;
155750806d53Smrg	esac
155850806d53Smrg	continue
155950806d53Smrg	;;
156050806d53Smrg
156150806d53Smrg      -L*)
156250806d53Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
156350806d53Smrg	# We need an absolute path.
156450806d53Smrg	case $dir in
156550806d53Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
156650806d53Smrg	*)
156750806d53Smrg	  absdir=`cd "$dir" && pwd`
156850806d53Smrg	  if test -z "$absdir"; then
156950806d53Smrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
157050806d53Smrg	    absdir="$dir"
157150806d53Smrg	    notinst_path="$notinst_path $dir"
157250806d53Smrg	  fi
157350806d53Smrg	  dir="$absdir"
157450806d53Smrg	  ;;
157550806d53Smrg	esac
157650806d53Smrg	case "$deplibs " in
157750806d53Smrg	*" -L$dir "*) ;;
157850806d53Smrg	*)
157950806d53Smrg	  deplibs="$deplibs -L$dir"
158050806d53Smrg	  lib_search_path="$lib_search_path $dir"
158150806d53Smrg	  ;;
158250806d53Smrg	esac
158350806d53Smrg	case $host in
158450806d53Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
158550806d53Smrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
158650806d53Smrg	  case :$dllsearchpath: in
158750806d53Smrg	  *":$dir:"*) ;;
158850806d53Smrg	  *) dllsearchpath="$dllsearchpath:$dir";;
158950806d53Smrg	  esac
159050806d53Smrg	  case :$dllsearchpath: in
159150806d53Smrg	  *":$testbindir:"*) ;;
159250806d53Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
159350806d53Smrg	  esac
159450806d53Smrg	  ;;
159550806d53Smrg	esac
159650806d53Smrg	continue
159750806d53Smrg	;;
159850806d53Smrg
159950806d53Smrg      -l*)
160050806d53Smrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
160150806d53Smrg	  case $host in
160250806d53Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
160350806d53Smrg	    # These systems don't actually have a C or math library (as such)
160450806d53Smrg	    continue
160550806d53Smrg	    ;;
160650806d53Smrg	  *-*-os2*)
160750806d53Smrg	    # These systems don't actually have a C library (as such)
160850806d53Smrg	    test "X$arg" = "X-lc" && continue
160950806d53Smrg	    ;;
161050806d53Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
161150806d53Smrg	    # Do not include libc due to us having libc/libc_r.
161250806d53Smrg	    test "X$arg" = "X-lc" && continue
161350806d53Smrg	    ;;
161450806d53Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
161550806d53Smrg	    # Rhapsody C and math libraries are in the System framework
161650806d53Smrg	    deplibs="$deplibs -framework System"
161750806d53Smrg	    continue
161850806d53Smrg	    ;;
161950806d53Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
162050806d53Smrg	    # Causes problems with __ctype
162150806d53Smrg	    test "X$arg" = "X-lc" && continue
162250806d53Smrg	    ;;
162350806d53Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
162450806d53Smrg	    # Compiler inserts libc in the correct place for threads to work
162550806d53Smrg	    test "X$arg" = "X-lc" && continue
162650806d53Smrg	    ;;
162750806d53Smrg	  esac
162850806d53Smrg	elif test "X$arg" = "X-lc_r"; then
162950806d53Smrg	 case $host in
163050806d53Smrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
163150806d53Smrg	   # Do not include libc_r directly, use -pthread flag.
163250806d53Smrg	   continue
163350806d53Smrg	   ;;
163450806d53Smrg	 esac
163550806d53Smrg	fi
163650806d53Smrg	deplibs="$deplibs $arg"
163750806d53Smrg	continue
163850806d53Smrg	;;
163950806d53Smrg
164050806d53Smrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
164150806d53Smrg      # classes, name mangling, and exception handling.
164250806d53Smrg      -model)
164350806d53Smrg	compile_command="$compile_command $arg"
164450806d53Smrg	compiler_flags="$compiler_flags $arg"
164550806d53Smrg	finalize_command="$finalize_command $arg"
164650806d53Smrg	prev=xcompiler
164750806d53Smrg	continue
164850806d53Smrg	;;
164950806d53Smrg
16507965d9acSmrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
165150806d53Smrg	compiler_flags="$compiler_flags $arg"
165250806d53Smrg	compile_command="$compile_command $arg"
165350806d53Smrg	finalize_command="$finalize_command $arg"
165450806d53Smrg	continue
165550806d53Smrg	;;
165650806d53Smrg
16577965d9acSmrg      -multi_module)
16587965d9acSmrg	single_module="${wl}-multi_module"
16597965d9acSmrg	continue
16607965d9acSmrg	;;
16617965d9acSmrg
166250806d53Smrg      -module)
166350806d53Smrg	module=yes
166450806d53Smrg	continue
166550806d53Smrg	;;
166650806d53Smrg
166750806d53Smrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
166850806d53Smrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
166950806d53Smrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
167050806d53Smrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
167150806d53Smrg      # -q* pass through compiler args for the IBM compiler
167250806d53Smrg      # -m* pass through architecture-specific compiler args for GCC
167350806d53Smrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
167450806d53Smrg      # compiler args for GCC
16757965d9acSmrg      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
16767965d9acSmrg      # -F/path gives path to uninstalled frameworks, gcc on darwin
167750806d53Smrg      # @file GCC response files
16787965d9acSmrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
16797965d9acSmrg      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
168050806d53Smrg
168150806d53Smrg	# Unknown arguments in both finalize_command and compile_command need
168250806d53Smrg	# to be aesthetically quoted because they are evaled later.
168350806d53Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
168450806d53Smrg	case $arg in
168550806d53Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
168650806d53Smrg	  arg="\"$arg\""
168750806d53Smrg	  ;;
168850806d53Smrg	esac
168950806d53Smrg        compile_command="$compile_command $arg"
169050806d53Smrg        finalize_command="$finalize_command $arg"
169150806d53Smrg        compiler_flags="$compiler_flags $arg"
169250806d53Smrg        continue
169350806d53Smrg        ;;
169450806d53Smrg
169550806d53Smrg      -shrext)
169650806d53Smrg	prev=shrext
169750806d53Smrg	continue
169850806d53Smrg	;;
169950806d53Smrg
170050806d53Smrg      -no-fast-install)
170150806d53Smrg	fast_install=no
170250806d53Smrg	continue
170350806d53Smrg	;;
170450806d53Smrg
170550806d53Smrg      -no-install)
170650806d53Smrg	case $host in
17077965d9acSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
170850806d53Smrg	  # The PATH hackery in wrapper scripts is required on Windows
17097965d9acSmrg	  # and Darwin in order for the loader to find any dlls it needs.
171050806d53Smrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
171150806d53Smrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
171250806d53Smrg	  fast_install=no
171350806d53Smrg	  ;;
171450806d53Smrg	*) no_install=yes ;;
171550806d53Smrg	esac
171650806d53Smrg	continue
171750806d53Smrg	;;
171850806d53Smrg
171950806d53Smrg      -no-undefined)
172050806d53Smrg	allow_undefined=no
172150806d53Smrg	continue
172250806d53Smrg	;;
172350806d53Smrg
172450806d53Smrg      -objectlist)
172550806d53Smrg	prev=objectlist
172650806d53Smrg	continue
172750806d53Smrg	;;
172850806d53Smrg
172950806d53Smrg      -o) prev=output ;;
173050806d53Smrg
173150806d53Smrg      -precious-files-regex)
173250806d53Smrg	prev=precious_regex
173350806d53Smrg	continue
173450806d53Smrg	;;
173550806d53Smrg
173650806d53Smrg      -release)
173750806d53Smrg	prev=release
173850806d53Smrg	continue
173950806d53Smrg	;;
174050806d53Smrg
174150806d53Smrg      -rpath)
174250806d53Smrg	prev=rpath
174350806d53Smrg	continue
174450806d53Smrg	;;
174550806d53Smrg
174650806d53Smrg      -R)
174750806d53Smrg	prev=xrpath
174850806d53Smrg	continue
174950806d53Smrg	;;
175050806d53Smrg
175150806d53Smrg      -R*)
175250806d53Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
175350806d53Smrg	# We need an absolute path.
175450806d53Smrg	case $dir in
175550806d53Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
175650806d53Smrg	*)
175750806d53Smrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
175850806d53Smrg	  exit $EXIT_FAILURE
175950806d53Smrg	  ;;
176050806d53Smrg	esac
176150806d53Smrg	case "$xrpath " in
176250806d53Smrg	*" $dir "*) ;;
176350806d53Smrg	*) xrpath="$xrpath $dir" ;;
176450806d53Smrg	esac
176550806d53Smrg	continue
176650806d53Smrg	;;
176750806d53Smrg
176850806d53Smrg      -static | -static-libtool-libs)
176950806d53Smrg	# The effects of -static are defined in a previous loop.
177050806d53Smrg	# We used to do the same as -all-static on platforms that
177150806d53Smrg	# didn't have a PIC flag, but the assumption that the effects
177250806d53Smrg	# would be equivalent was wrong.  It would break on at least
177350806d53Smrg	# Digital Unix and AIX.
177450806d53Smrg	continue
177550806d53Smrg	;;
177650806d53Smrg
177750806d53Smrg      -thread-safe)
177850806d53Smrg	thread_safe=yes
177950806d53Smrg	continue
178050806d53Smrg	;;
178150806d53Smrg
178250806d53Smrg      -version-info)
178350806d53Smrg	prev=vinfo
178450806d53Smrg	continue
178550806d53Smrg	;;
178650806d53Smrg      -version-number)
178750806d53Smrg	prev=vinfo
178850806d53Smrg	vinfo_number=yes
178950806d53Smrg	continue
179050806d53Smrg	;;
179150806d53Smrg
179250806d53Smrg      -Wc,*)
179350806d53Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
179450806d53Smrg	arg=
179550806d53Smrg	save_ifs="$IFS"; IFS=','
179650806d53Smrg	for flag in $args; do
179750806d53Smrg	  IFS="$save_ifs"
179850806d53Smrg	  case $flag in
179950806d53Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
180050806d53Smrg	    flag="\"$flag\""
180150806d53Smrg	    ;;
180250806d53Smrg	  esac
180350806d53Smrg	  arg="$arg $wl$flag"
180450806d53Smrg	  compiler_flags="$compiler_flags $flag"
180550806d53Smrg	done
180650806d53Smrg	IFS="$save_ifs"
180750806d53Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
180850806d53Smrg	;;
180950806d53Smrg
181050806d53Smrg      -Wl,*)
181150806d53Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
181250806d53Smrg	arg=
181350806d53Smrg	save_ifs="$IFS"; IFS=','
181450806d53Smrg	for flag in $args; do
181550806d53Smrg	  IFS="$save_ifs"
181650806d53Smrg	  case $flag in
181750806d53Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
181850806d53Smrg	    flag="\"$flag\""
181950806d53Smrg	    ;;
182050806d53Smrg	  esac
182150806d53Smrg	  arg="$arg $wl$flag"
182250806d53Smrg	  compiler_flags="$compiler_flags $wl$flag"
182350806d53Smrg	  linker_flags="$linker_flags $flag"
182450806d53Smrg	done
182550806d53Smrg	IFS="$save_ifs"
182650806d53Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
182750806d53Smrg	;;
182850806d53Smrg
182950806d53Smrg      -Xcompiler)
183050806d53Smrg	prev=xcompiler
183150806d53Smrg	continue
183250806d53Smrg	;;
183350806d53Smrg
183450806d53Smrg      -Xlinker)
183550806d53Smrg	prev=xlinker
183650806d53Smrg	continue
183750806d53Smrg	;;
183850806d53Smrg
183950806d53Smrg      -XCClinker)
184050806d53Smrg	prev=xcclinker
184150806d53Smrg	continue
184250806d53Smrg	;;
184350806d53Smrg
184450806d53Smrg      # Some other compiler flag.
184550806d53Smrg      -* | +*)
184650806d53Smrg	# Unknown arguments in both finalize_command and compile_command need
184750806d53Smrg	# to be aesthetically quoted because they are evaled later.
184850806d53Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
184950806d53Smrg	case $arg in
185050806d53Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
185150806d53Smrg	  arg="\"$arg\""
185250806d53Smrg	  ;;
185350806d53Smrg	esac
185450806d53Smrg	;;
185550806d53Smrg
185650806d53Smrg      *.$objext)
185750806d53Smrg	# A standard object.
185850806d53Smrg	objs="$objs $arg"
185950806d53Smrg	;;
186050806d53Smrg
186150806d53Smrg      *.lo)
186250806d53Smrg	# A libtool-controlled object.
186350806d53Smrg
186450806d53Smrg	# Check to see that this really is a libtool object.
186550806d53Smrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
186650806d53Smrg	  pic_object=
186750806d53Smrg	  non_pic_object=
186850806d53Smrg
186950806d53Smrg	  # Read the .lo file
187050806d53Smrg	  # If there is no directory component, then add one.
187150806d53Smrg	  case $arg in
187250806d53Smrg	  */* | *\\*) . $arg ;;
187350806d53Smrg	  *) . ./$arg ;;
187450806d53Smrg	  esac
187550806d53Smrg
187650806d53Smrg	  if test -z "$pic_object" || \
187750806d53Smrg	     test -z "$non_pic_object" ||
187850806d53Smrg	     test "$pic_object" = none && \
187950806d53Smrg	     test "$non_pic_object" = none; then
188050806d53Smrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
188150806d53Smrg	    exit $EXIT_FAILURE
188250806d53Smrg	  fi
188350806d53Smrg
188450806d53Smrg	  # Extract subdirectory from the argument.
188550806d53Smrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
188650806d53Smrg	  if test "X$xdir" = "X$arg"; then
188750806d53Smrg	    xdir=
188850806d53Smrg 	  else
188950806d53Smrg	    xdir="$xdir/"
189050806d53Smrg	  fi
189150806d53Smrg
189250806d53Smrg	  if test "$pic_object" != none; then
189350806d53Smrg	    # Prepend the subdirectory the object is found in.
189450806d53Smrg	    pic_object="$xdir$pic_object"
189550806d53Smrg
189650806d53Smrg	    if test "$prev" = dlfiles; then
189750806d53Smrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
189850806d53Smrg		dlfiles="$dlfiles $pic_object"
189950806d53Smrg		prev=
190050806d53Smrg		continue
190150806d53Smrg	      else
190250806d53Smrg		# If libtool objects are unsupported, then we need to preload.
190350806d53Smrg		prev=dlprefiles
190450806d53Smrg	      fi
190550806d53Smrg	    fi
190650806d53Smrg
190750806d53Smrg	    # CHECK ME:  I think I busted this.  -Ossama
190850806d53Smrg	    if test "$prev" = dlprefiles; then
190950806d53Smrg	      # Preload the old-style object.
191050806d53Smrg	      dlprefiles="$dlprefiles $pic_object"
191150806d53Smrg	      prev=
191250806d53Smrg	    fi
191350806d53Smrg
191450806d53Smrg	    # A PIC object.
191550806d53Smrg	    libobjs="$libobjs $pic_object"
191650806d53Smrg	    arg="$pic_object"
191750806d53Smrg	  fi
191850806d53Smrg
191950806d53Smrg	  # Non-PIC object.
192050806d53Smrg	  if test "$non_pic_object" != none; then
192150806d53Smrg	    # Prepend the subdirectory the object is found in.
192250806d53Smrg	    non_pic_object="$xdir$non_pic_object"
192350806d53Smrg
192450806d53Smrg	    # A standard non-PIC object
192550806d53Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
192650806d53Smrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
192750806d53Smrg	      arg="$non_pic_object"
192850806d53Smrg	    fi
192950806d53Smrg	  else
193050806d53Smrg	    # If the PIC object exists, use it instead.
193150806d53Smrg	    # $xdir was prepended to $pic_object above.
193250806d53Smrg	    non_pic_object="$pic_object"
193350806d53Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
193450806d53Smrg	  fi
193550806d53Smrg	else
193650806d53Smrg	  # Only an error if not doing a dry-run.
193750806d53Smrg	  if test -z "$run"; then
193850806d53Smrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
193950806d53Smrg	    exit $EXIT_FAILURE
194050806d53Smrg	  else
194150806d53Smrg	    # Dry-run case.
194250806d53Smrg
194350806d53Smrg	    # Extract subdirectory from the argument.
194450806d53Smrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
194550806d53Smrg	    if test "X$xdir" = "X$arg"; then
194650806d53Smrg	      xdir=
194750806d53Smrg	    else
194850806d53Smrg	      xdir="$xdir/"
194950806d53Smrg	    fi
195050806d53Smrg
195150806d53Smrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
195250806d53Smrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
195350806d53Smrg	    libobjs="$libobjs $pic_object"
195450806d53Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
195550806d53Smrg	  fi
195650806d53Smrg	fi
195750806d53Smrg	;;
195850806d53Smrg
195950806d53Smrg      *.$libext)
196050806d53Smrg	# An archive.
196150806d53Smrg	deplibs="$deplibs $arg"
196250806d53Smrg	old_deplibs="$old_deplibs $arg"
196350806d53Smrg	continue
196450806d53Smrg	;;
196550806d53Smrg
196650806d53Smrg      *.la)
196750806d53Smrg	# A libtool-controlled library.
196850806d53Smrg
196950806d53Smrg	if test "$prev" = dlfiles; then
197050806d53Smrg	  # This library was specified with -dlopen.
197150806d53Smrg	  dlfiles="$dlfiles $arg"
197250806d53Smrg	  prev=
197350806d53Smrg	elif test "$prev" = dlprefiles; then
197450806d53Smrg	  # The library was specified with -dlpreopen.
197550806d53Smrg	  dlprefiles="$dlprefiles $arg"
197650806d53Smrg	  prev=
197750806d53Smrg	else
197850806d53Smrg	  deplibs="$deplibs $arg"
197950806d53Smrg	fi
198050806d53Smrg	continue
198150806d53Smrg	;;
198250806d53Smrg
198350806d53Smrg      # Some other compiler argument.
198450806d53Smrg      *)
198550806d53Smrg	# Unknown arguments in both finalize_command and compile_command need
198650806d53Smrg	# to be aesthetically quoted because they are evaled later.
198750806d53Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
198850806d53Smrg	case $arg in
198950806d53Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
199050806d53Smrg	  arg="\"$arg\""
199150806d53Smrg	  ;;
199250806d53Smrg	esac
199350806d53Smrg	;;
199450806d53Smrg      esac # arg
199550806d53Smrg
199650806d53Smrg      # Now actually substitute the argument into the commands.
199750806d53Smrg      if test -n "$arg"; then
199850806d53Smrg	compile_command="$compile_command $arg"
199950806d53Smrg	finalize_command="$finalize_command $arg"
200050806d53Smrg      fi
200150806d53Smrg    done # argument parsing loop
200250806d53Smrg
200350806d53Smrg    if test -n "$prev"; then
200450806d53Smrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
200550806d53Smrg      $echo "$help" 1>&2
200650806d53Smrg      exit $EXIT_FAILURE
200750806d53Smrg    fi
200850806d53Smrg
200950806d53Smrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
201050806d53Smrg      eval arg=\"$export_dynamic_flag_spec\"
201150806d53Smrg      compile_command="$compile_command $arg"
201250806d53Smrg      finalize_command="$finalize_command $arg"
201350806d53Smrg    fi
201450806d53Smrg
201550806d53Smrg    oldlibs=
201650806d53Smrg    # calculate the name of the file, without its directory
201750806d53Smrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
201850806d53Smrg    libobjs_save="$libobjs"
201950806d53Smrg
202050806d53Smrg    if test -n "$shlibpath_var"; then
202150806d53Smrg      # get the directories listed in $shlibpath_var
202250806d53Smrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
202350806d53Smrg    else
202450806d53Smrg      shlib_search_path=
202550806d53Smrg    fi
202650806d53Smrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
202750806d53Smrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
202850806d53Smrg
202950806d53Smrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
203050806d53Smrg    if test "X$output_objdir" = "X$output"; then
203150806d53Smrg      output_objdir="$objdir"
203250806d53Smrg    else
203350806d53Smrg      output_objdir="$output_objdir/$objdir"
203450806d53Smrg    fi
203550806d53Smrg    # Create the object directory.
203650806d53Smrg    if test ! -d "$output_objdir"; then
203750806d53Smrg      $show "$mkdir $output_objdir"
203850806d53Smrg      $run $mkdir $output_objdir
203950806d53Smrg      exit_status=$?
204050806d53Smrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
204150806d53Smrg	exit $exit_status
204250806d53Smrg      fi
204350806d53Smrg    fi
204450806d53Smrg
204550806d53Smrg    # Determine the type of output
204650806d53Smrg    case $output in
204750806d53Smrg    "")
204850806d53Smrg      $echo "$modename: you must specify an output file" 1>&2
204950806d53Smrg      $echo "$help" 1>&2
205050806d53Smrg      exit $EXIT_FAILURE
205150806d53Smrg      ;;
205250806d53Smrg    *.$libext) linkmode=oldlib ;;
205350806d53Smrg    *.lo | *.$objext) linkmode=obj ;;
205450806d53Smrg    *.la) linkmode=lib ;;
205550806d53Smrg    *) linkmode=prog ;; # Anything else should be a program.
205650806d53Smrg    esac
205750806d53Smrg
205850806d53Smrg    case $host in
205950806d53Smrg    *cygwin* | *mingw* | *pw32*)
206050806d53Smrg      # don't eliminate duplications in $postdeps and $predeps
206150806d53Smrg      duplicate_compiler_generated_deps=yes
206250806d53Smrg      ;;
206350806d53Smrg    *)
206450806d53Smrg      duplicate_compiler_generated_deps=$duplicate_deps
206550806d53Smrg      ;;
206650806d53Smrg    esac
206750806d53Smrg    specialdeplibs=
206850806d53Smrg
206950806d53Smrg    libs=
207050806d53Smrg    # Find all interdependent deplibs by searching for libraries
207150806d53Smrg    # that are linked more than once (e.g. -la -lb -la)
207250806d53Smrg    for deplib in $deplibs; do
207350806d53Smrg      if test "X$duplicate_deps" = "Xyes" ; then
207450806d53Smrg	case "$libs " in
207550806d53Smrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
207650806d53Smrg	esac
207750806d53Smrg      fi
207850806d53Smrg      libs="$libs $deplib"
207950806d53Smrg    done
208050806d53Smrg
208150806d53Smrg    if test "$linkmode" = lib; then
208250806d53Smrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
208350806d53Smrg
208450806d53Smrg      # Compute libraries that are listed more than once in $predeps
208550806d53Smrg      # $postdeps and mark them as special (i.e., whose duplicates are
208650806d53Smrg      # not to be eliminated).
208750806d53Smrg      pre_post_deps=
208850806d53Smrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
208950806d53Smrg	for pre_post_dep in $predeps $postdeps; do
209050806d53Smrg	  case "$pre_post_deps " in
209150806d53Smrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
209250806d53Smrg	  esac
209350806d53Smrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
209450806d53Smrg	done
209550806d53Smrg      fi
209650806d53Smrg      pre_post_deps=
209750806d53Smrg    fi
209850806d53Smrg
209950806d53Smrg    deplibs=
210050806d53Smrg    newdependency_libs=
210150806d53Smrg    newlib_search_path=
210250806d53Smrg    need_relink=no # whether we're linking any uninstalled libtool libraries
210350806d53Smrg    notinst_deplibs= # not-installed libtool libraries
210450806d53Smrg    case $linkmode in
210550806d53Smrg    lib)
210650806d53Smrg	passes="conv link"
210750806d53Smrg	for file in $dlfiles $dlprefiles; do
210850806d53Smrg	  case $file in
210950806d53Smrg	  *.la) ;;
211050806d53Smrg	  *)
211150806d53Smrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
211250806d53Smrg	    exit $EXIT_FAILURE
211350806d53Smrg	    ;;
211450806d53Smrg	  esac
211550806d53Smrg	done
211650806d53Smrg	;;
211750806d53Smrg    prog)
211850806d53Smrg	compile_deplibs=
211950806d53Smrg	finalize_deplibs=
212050806d53Smrg	alldeplibs=no
212150806d53Smrg	newdlfiles=
212250806d53Smrg	newdlprefiles=
212350806d53Smrg	passes="conv scan dlopen dlpreopen link"
212450806d53Smrg	;;
212550806d53Smrg    *)  passes="conv"
212650806d53Smrg	;;
212750806d53Smrg    esac
212850806d53Smrg    for pass in $passes; do
212950806d53Smrg      if test "$linkmode,$pass" = "lib,link" ||
213050806d53Smrg	 test "$linkmode,$pass" = "prog,scan"; then
213150806d53Smrg	libs="$deplibs"
213250806d53Smrg	deplibs=
213350806d53Smrg      fi
213450806d53Smrg      if test "$linkmode" = prog; then
213550806d53Smrg	case $pass in
213650806d53Smrg	dlopen) libs="$dlfiles" ;;
213750806d53Smrg	dlpreopen) libs="$dlprefiles" ;;
21387965d9acSmrg	link)
21397965d9acSmrg	  libs="$deplibs %DEPLIBS%"
21407965d9acSmrg	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
21417965d9acSmrg	  ;;
214250806d53Smrg	esac
214350806d53Smrg      fi
214450806d53Smrg      if test "$pass" = dlopen; then
214550806d53Smrg	# Collect dlpreopened libraries
214650806d53Smrg	save_deplibs="$deplibs"
214750806d53Smrg	deplibs=
214850806d53Smrg      fi
214950806d53Smrg      for deplib in $libs; do
215050806d53Smrg	lib=
215150806d53Smrg	found=no
215250806d53Smrg	case $deplib in
21537965d9acSmrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
215450806d53Smrg	  if test "$linkmode,$pass" = "prog,link"; then
215550806d53Smrg	    compile_deplibs="$deplib $compile_deplibs"
215650806d53Smrg	    finalize_deplibs="$deplib $finalize_deplibs"
215750806d53Smrg	  else
215850806d53Smrg	    compiler_flags="$compiler_flags $deplib"
215950806d53Smrg	  fi
216050806d53Smrg	  continue
216150806d53Smrg	  ;;
216250806d53Smrg	-l*)
216350806d53Smrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
216450806d53Smrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
216550806d53Smrg	    continue
216650806d53Smrg	  fi
216750806d53Smrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
21687965d9acSmrg	  if test "$linkmode" = lib; then
21697965d9acSmrg	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
21707965d9acSmrg	  else
21717965d9acSmrg	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
21727965d9acSmrg	  fi
21737965d9acSmrg	  for searchdir in $searchdirs; do
217450806d53Smrg	    for search_ext in .la $std_shrext .so .a; do
217550806d53Smrg	      # Search the libtool library
217650806d53Smrg	      lib="$searchdir/lib${name}${search_ext}"
217750806d53Smrg	      if test -f "$lib"; then
217850806d53Smrg		if test "$search_ext" = ".la"; then
217950806d53Smrg		  found=yes
218050806d53Smrg		else
218150806d53Smrg		  found=no
218250806d53Smrg		fi
218350806d53Smrg		break 2
218450806d53Smrg	      fi
218550806d53Smrg	    done
218650806d53Smrg	  done
218750806d53Smrg	  if test "$found" != yes; then
218850806d53Smrg	    # deplib doesn't seem to be a libtool library
218950806d53Smrg	    if test "$linkmode,$pass" = "prog,link"; then
219050806d53Smrg	      compile_deplibs="$deplib $compile_deplibs"
219150806d53Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
219250806d53Smrg	    else
219350806d53Smrg	      deplibs="$deplib $deplibs"
219450806d53Smrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
219550806d53Smrg	    fi
219650806d53Smrg	    continue
219750806d53Smrg	  else # deplib is a libtool library
219850806d53Smrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
219950806d53Smrg	    # We need to do some special things here, and not later.
220050806d53Smrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
220150806d53Smrg	      case " $predeps $postdeps " in
220250806d53Smrg	      *" $deplib "*)
220350806d53Smrg		if (${SED} -e '2q' $lib |
220450806d53Smrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
220550806d53Smrg		  library_names=
220650806d53Smrg		  old_library=
220750806d53Smrg		  case $lib in
220850806d53Smrg		  */* | *\\*) . $lib ;;
220950806d53Smrg		  *) . ./$lib ;;
221050806d53Smrg		  esac
221150806d53Smrg		  for l in $old_library $library_names; do
221250806d53Smrg		    ll="$l"
221350806d53Smrg		  done
221450806d53Smrg		  if test "X$ll" = "X$old_library" ; then # only static version available
221550806d53Smrg		    found=no
221650806d53Smrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
221750806d53Smrg		    test "X$ladir" = "X$lib" && ladir="."
221850806d53Smrg		    lib=$ladir/$old_library
221950806d53Smrg		    if test "$linkmode,$pass" = "prog,link"; then
222050806d53Smrg		      compile_deplibs="$deplib $compile_deplibs"
222150806d53Smrg		      finalize_deplibs="$deplib $finalize_deplibs"
222250806d53Smrg		    else
222350806d53Smrg		      deplibs="$deplib $deplibs"
222450806d53Smrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
222550806d53Smrg		    fi
222650806d53Smrg		    continue
222750806d53Smrg		  fi
222850806d53Smrg		fi
222950806d53Smrg	        ;;
223050806d53Smrg	      *) ;;
223150806d53Smrg	      esac
223250806d53Smrg	    fi
223350806d53Smrg	  fi
223450806d53Smrg	  ;; # -l
223550806d53Smrg	-L*)
223650806d53Smrg	  case $linkmode in
223750806d53Smrg	  lib)
223850806d53Smrg	    deplibs="$deplib $deplibs"
223950806d53Smrg	    test "$pass" = conv && continue
224050806d53Smrg	    newdependency_libs="$deplib $newdependency_libs"
224150806d53Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
224250806d53Smrg	    ;;
224350806d53Smrg	  prog)
224450806d53Smrg	    if test "$pass" = conv; then
224550806d53Smrg	      deplibs="$deplib $deplibs"
224650806d53Smrg	      continue
224750806d53Smrg	    fi
224850806d53Smrg	    if test "$pass" = scan; then
224950806d53Smrg	      deplibs="$deplib $deplibs"
225050806d53Smrg	    else
225150806d53Smrg	      compile_deplibs="$deplib $compile_deplibs"
225250806d53Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
225350806d53Smrg	    fi
225450806d53Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
225550806d53Smrg	    ;;
225650806d53Smrg	  *)
225750806d53Smrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
225850806d53Smrg	    ;;
225950806d53Smrg	  esac # linkmode
226050806d53Smrg	  continue
226150806d53Smrg	  ;; # -L
226250806d53Smrg	-R*)
226350806d53Smrg	  if test "$pass" = link; then
226450806d53Smrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
226550806d53Smrg	    # Make sure the xrpath contains only unique directories.
226650806d53Smrg	    case "$xrpath " in
226750806d53Smrg	    *" $dir "*) ;;
226850806d53Smrg	    *) xrpath="$xrpath $dir" ;;
226950806d53Smrg	    esac
227050806d53Smrg	  fi
227150806d53Smrg	  deplibs="$deplib $deplibs"
227250806d53Smrg	  continue
227350806d53Smrg	  ;;
227450806d53Smrg	*.la) lib="$deplib" ;;
227550806d53Smrg	*.$libext)
227650806d53Smrg	  if test "$pass" = conv; then
227750806d53Smrg	    deplibs="$deplib $deplibs"
227850806d53Smrg	    continue
227950806d53Smrg	  fi
228050806d53Smrg	  case $linkmode in
228150806d53Smrg	  lib)
228250806d53Smrg	    valid_a_lib=no
228350806d53Smrg	    case $deplibs_check_method in
228450806d53Smrg	      match_pattern*)
228550806d53Smrg		set dummy $deplibs_check_method
228650806d53Smrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
228750806d53Smrg		if eval $echo \"$deplib\" 2>/dev/null \
228850806d53Smrg		    | $SED 10q \
228950806d53Smrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
229050806d53Smrg		  valid_a_lib=yes
229150806d53Smrg		fi
229250806d53Smrg		;;
229350806d53Smrg	      pass_all)
229450806d53Smrg		valid_a_lib=yes
229550806d53Smrg		;;
229650806d53Smrg            esac
229750806d53Smrg	    if test "$valid_a_lib" != yes; then
229850806d53Smrg	      $echo
229950806d53Smrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
230050806d53Smrg	      $echo "*** I have the capability to make that library automatically link in when"
230150806d53Smrg	      $echo "*** you link to this library.  But I can only do this if you have a"
230250806d53Smrg	      $echo "*** shared version of the library, which you do not appear to have"
230350806d53Smrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
230450806d53Smrg	      $echo "*** that it is just a static archive that I should not used here."
230550806d53Smrg	    else
230650806d53Smrg	      $echo
230750806d53Smrg	      $echo "*** Warning: Linking the shared library $output against the"
230850806d53Smrg	      $echo "*** static library $deplib is not portable!"
230950806d53Smrg	      deplibs="$deplib $deplibs"
231050806d53Smrg	    fi
231150806d53Smrg	    continue
231250806d53Smrg	    ;;
231350806d53Smrg	  prog)
231450806d53Smrg	    if test "$pass" != link; then
231550806d53Smrg	      deplibs="$deplib $deplibs"
231650806d53Smrg	    else
231750806d53Smrg	      compile_deplibs="$deplib $compile_deplibs"
231850806d53Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
231950806d53Smrg	    fi
232050806d53Smrg	    continue
232150806d53Smrg	    ;;
232250806d53Smrg	  esac # linkmode
232350806d53Smrg	  ;; # *.$libext
232450806d53Smrg	*.lo | *.$objext)
232550806d53Smrg	  if test "$pass" = conv; then
232650806d53Smrg	    deplibs="$deplib $deplibs"
232750806d53Smrg	  elif test "$linkmode" = prog; then
232850806d53Smrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
232950806d53Smrg	      # If there is no dlopen support or we're linking statically,
233050806d53Smrg	      # we need to preload.
233150806d53Smrg	      newdlprefiles="$newdlprefiles $deplib"
233250806d53Smrg	      compile_deplibs="$deplib $compile_deplibs"
233350806d53Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
233450806d53Smrg	    else
233550806d53Smrg	      newdlfiles="$newdlfiles $deplib"
233650806d53Smrg	    fi
233750806d53Smrg	  fi
233850806d53Smrg	  continue
233950806d53Smrg	  ;;
234050806d53Smrg	%DEPLIBS%)
234150806d53Smrg	  alldeplibs=yes
234250806d53Smrg	  continue
234350806d53Smrg	  ;;
234450806d53Smrg	esac # case $deplib
234550806d53Smrg	if test "$found" = yes || test -f "$lib"; then :
234650806d53Smrg	else
234750806d53Smrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
234850806d53Smrg	  exit $EXIT_FAILURE
234950806d53Smrg	fi
235050806d53Smrg
235150806d53Smrg	# Check to see that this really is a libtool archive.
235250806d53Smrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
235350806d53Smrg	else
235450806d53Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
235550806d53Smrg	  exit $EXIT_FAILURE
235650806d53Smrg	fi
235750806d53Smrg
235850806d53Smrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
235950806d53Smrg	test "X$ladir" = "X$lib" && ladir="."
236050806d53Smrg
236150806d53Smrg	dlname=
236250806d53Smrg	dlopen=
236350806d53Smrg	dlpreopen=
236450806d53Smrg	libdir=
236550806d53Smrg	library_names=
236650806d53Smrg	old_library=
236750806d53Smrg	# If the library was installed with an old release of libtool,
236850806d53Smrg	# it will not redefine variables installed, or shouldnotlink
236950806d53Smrg	installed=yes
237050806d53Smrg	shouldnotlink=no
237150806d53Smrg	avoidtemprpath=
237250806d53Smrg
237350806d53Smrg
237450806d53Smrg	# Read the .la file
237550806d53Smrg	case $lib in
237650806d53Smrg	*/* | *\\*) . $lib ;;
237750806d53Smrg	*) . ./$lib ;;
237850806d53Smrg	esac
237950806d53Smrg
238050806d53Smrg	if test "$linkmode,$pass" = "lib,link" ||
238150806d53Smrg	   test "$linkmode,$pass" = "prog,scan" ||
238250806d53Smrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
238350806d53Smrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
238450806d53Smrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
238550806d53Smrg	fi
238650806d53Smrg
238750806d53Smrg	if test "$pass" = conv; then
238850806d53Smrg	  # Only check for convenience libraries
238950806d53Smrg	  deplibs="$lib $deplibs"
239050806d53Smrg	  if test -z "$libdir"; then
239150806d53Smrg	    if test -z "$old_library"; then
239250806d53Smrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
239350806d53Smrg	      exit $EXIT_FAILURE
239450806d53Smrg	    fi
239550806d53Smrg	    # It is a libtool convenience library, so add in its objects.
239650806d53Smrg	    convenience="$convenience $ladir/$objdir/$old_library"
239750806d53Smrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
239850806d53Smrg	    tmp_libs=
239950806d53Smrg	    for deplib in $dependency_libs; do
240050806d53Smrg	      deplibs="$deplib $deplibs"
240150806d53Smrg              if test "X$duplicate_deps" = "Xyes" ; then
240250806d53Smrg	        case "$tmp_libs " in
240350806d53Smrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
240450806d53Smrg	        esac
240550806d53Smrg              fi
240650806d53Smrg	      tmp_libs="$tmp_libs $deplib"
240750806d53Smrg	    done
240850806d53Smrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
240950806d53Smrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
241050806d53Smrg	    exit $EXIT_FAILURE
241150806d53Smrg	  fi
241250806d53Smrg	  continue
241350806d53Smrg	fi # $pass = conv
241450806d53Smrg
241550806d53Smrg
241650806d53Smrg	# Get the name of the library we link against.
241750806d53Smrg	linklib=
241850806d53Smrg	for l in $old_library $library_names; do
241950806d53Smrg	  linklib="$l"
242050806d53Smrg	done
242150806d53Smrg	if test -z "$linklib"; then
242250806d53Smrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
242350806d53Smrg	  exit $EXIT_FAILURE
242450806d53Smrg	fi
242550806d53Smrg
242650806d53Smrg	# This library was specified with -dlopen.
242750806d53Smrg	if test "$pass" = dlopen; then
242850806d53Smrg	  if test -z "$libdir"; then
242950806d53Smrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
243050806d53Smrg	    exit $EXIT_FAILURE
243150806d53Smrg	  fi
243250806d53Smrg	  if test -z "$dlname" ||
243350806d53Smrg	     test "$dlopen_support" != yes ||
243450806d53Smrg	     test "$build_libtool_libs" = no; then
243550806d53Smrg	    # If there is no dlname, no dlopen support or we're linking
243650806d53Smrg	    # statically, we need to preload.  We also need to preload any
243750806d53Smrg	    # dependent libraries so libltdl's deplib preloader doesn't
243850806d53Smrg	    # bomb out in the load deplibs phase.
243950806d53Smrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
244050806d53Smrg	  else
244150806d53Smrg	    newdlfiles="$newdlfiles $lib"
244250806d53Smrg	  fi
244350806d53Smrg	  continue
244450806d53Smrg	fi # $pass = dlopen
244550806d53Smrg
244650806d53Smrg	# We need an absolute path.
244750806d53Smrg	case $ladir in
244850806d53Smrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
244950806d53Smrg	*)
245050806d53Smrg	  abs_ladir=`cd "$ladir" && pwd`
245150806d53Smrg	  if test -z "$abs_ladir"; then
245250806d53Smrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
245350806d53Smrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
245450806d53Smrg	    abs_ladir="$ladir"
245550806d53Smrg	  fi
245650806d53Smrg	  ;;
245750806d53Smrg	esac
245850806d53Smrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
245950806d53Smrg
246050806d53Smrg	# Find the relevant object directory and library name.
246150806d53Smrg	if test "X$installed" = Xyes; then
246250806d53Smrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
246350806d53Smrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
246450806d53Smrg	    dir="$ladir"
246550806d53Smrg	    absdir="$abs_ladir"
246650806d53Smrg	    libdir="$abs_ladir"
246750806d53Smrg	  else
246850806d53Smrg	    dir="$libdir"
246950806d53Smrg	    absdir="$libdir"
247050806d53Smrg	  fi
247150806d53Smrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
247250806d53Smrg	else
247350806d53Smrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
247450806d53Smrg	    dir="$ladir"
247550806d53Smrg	    absdir="$abs_ladir"
247650806d53Smrg	    # Remove this search path later
247750806d53Smrg	    notinst_path="$notinst_path $abs_ladir"
247850806d53Smrg	  else
247950806d53Smrg	    dir="$ladir/$objdir"
248050806d53Smrg	    absdir="$abs_ladir/$objdir"
248150806d53Smrg	    # Remove this search path later
248250806d53Smrg	    notinst_path="$notinst_path $abs_ladir"
248350806d53Smrg	  fi
248450806d53Smrg	fi # $installed = yes
248550806d53Smrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
248650806d53Smrg
248750806d53Smrg	# This library was specified with -dlpreopen.
248850806d53Smrg	if test "$pass" = dlpreopen; then
248950806d53Smrg	  if test -z "$libdir"; then
249050806d53Smrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
249150806d53Smrg	    exit $EXIT_FAILURE
249250806d53Smrg	  fi
249350806d53Smrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
249450806d53Smrg	  # are required to link).
249550806d53Smrg	  if test -n "$old_library"; then
249650806d53Smrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
249750806d53Smrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
249850806d53Smrg	  elif test -n "$dlname"; then
249950806d53Smrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
250050806d53Smrg	  else
250150806d53Smrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
250250806d53Smrg	  fi
250350806d53Smrg	fi # $pass = dlpreopen
250450806d53Smrg
250550806d53Smrg	if test -z "$libdir"; then
250650806d53Smrg	  # Link the convenience library
250750806d53Smrg	  if test "$linkmode" = lib; then
250850806d53Smrg	    deplibs="$dir/$old_library $deplibs"
250950806d53Smrg	  elif test "$linkmode,$pass" = "prog,link"; then
251050806d53Smrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
251150806d53Smrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
251250806d53Smrg	  else
251350806d53Smrg	    deplibs="$lib $deplibs" # used for prog,scan pass
251450806d53Smrg	  fi
251550806d53Smrg	  continue
251650806d53Smrg	fi
251750806d53Smrg
251850806d53Smrg
251950806d53Smrg	if test "$linkmode" = prog && test "$pass" != link; then
252050806d53Smrg	  newlib_search_path="$newlib_search_path $ladir"
252150806d53Smrg	  deplibs="$lib $deplibs"
252250806d53Smrg
252350806d53Smrg	  linkalldeplibs=no
252450806d53Smrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
252550806d53Smrg	     test "$build_libtool_libs" = no; then
252650806d53Smrg	    linkalldeplibs=yes
252750806d53Smrg	  fi
252850806d53Smrg
252950806d53Smrg	  tmp_libs=
253050806d53Smrg	  for deplib in $dependency_libs; do
253150806d53Smrg	    case $deplib in
253250806d53Smrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
253350806d53Smrg	    esac
253450806d53Smrg	    # Need to link against all dependency_libs?
253550806d53Smrg	    if test "$linkalldeplibs" = yes; then
253650806d53Smrg	      deplibs="$deplib $deplibs"
253750806d53Smrg	    else
253850806d53Smrg	      # Need to hardcode shared library paths
253950806d53Smrg	      # or/and link against static libraries
254050806d53Smrg	      newdependency_libs="$deplib $newdependency_libs"
254150806d53Smrg	    fi
254250806d53Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
254350806d53Smrg	      case "$tmp_libs " in
254450806d53Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
254550806d53Smrg	      esac
254650806d53Smrg	    fi
254750806d53Smrg	    tmp_libs="$tmp_libs $deplib"
254850806d53Smrg	  done # for deplib
254950806d53Smrg	  continue
255050806d53Smrg	fi # $linkmode = prog...
255150806d53Smrg
255250806d53Smrg	if test "$linkmode,$pass" = "prog,link"; then
255350806d53Smrg	  if test -n "$library_names" &&
25547965d9acSmrg	     { { test "$prefer_static_libs" = no ||
25557965d9acSmrg		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
25567965d9acSmrg	       test -z "$old_library"; }; then
255750806d53Smrg	    # We need to hardcode the library path
255850806d53Smrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
255950806d53Smrg	      # Make sure the rpath contains only unique directories.
256050806d53Smrg	      case "$temp_rpath " in
256150806d53Smrg	      *" $dir "*) ;;
256250806d53Smrg	      *" $absdir "*) ;;
256350806d53Smrg	      *) temp_rpath="$temp_rpath $absdir" ;;
256450806d53Smrg	      esac
256550806d53Smrg	    fi
256650806d53Smrg
256750806d53Smrg	    # Hardcode the library path.
256850806d53Smrg	    # Skip directories that are in the system default run-time
256950806d53Smrg	    # search path.
257050806d53Smrg	    case " $sys_lib_dlsearch_path " in
257150806d53Smrg	    *" $absdir "*) ;;
257250806d53Smrg	    *)
257350806d53Smrg	      case "$compile_rpath " in
257450806d53Smrg	      *" $absdir "*) ;;
257550806d53Smrg	      *) compile_rpath="$compile_rpath $absdir"
257650806d53Smrg	      esac
257750806d53Smrg	      ;;
257850806d53Smrg	    esac
257950806d53Smrg	    case " $sys_lib_dlsearch_path " in
258050806d53Smrg	    *" $libdir "*) ;;
258150806d53Smrg	    *)
258250806d53Smrg	      case "$finalize_rpath " in
258350806d53Smrg	      *" $libdir "*) ;;
258450806d53Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
258550806d53Smrg	      esac
258650806d53Smrg	      ;;
258750806d53Smrg	    esac
258850806d53Smrg	  fi # $linkmode,$pass = prog,link...
258950806d53Smrg
259050806d53Smrg	  if test "$alldeplibs" = yes &&
259150806d53Smrg	     { test "$deplibs_check_method" = pass_all ||
259250806d53Smrg	       { test "$build_libtool_libs" = yes &&
259350806d53Smrg		 test -n "$library_names"; }; }; then
259450806d53Smrg	    # We only need to search for static libraries
259550806d53Smrg	    continue
259650806d53Smrg	  fi
259750806d53Smrg	fi
259850806d53Smrg
259950806d53Smrg	link_static=no # Whether the deplib will be linked statically
260050806d53Smrg	use_static_libs=$prefer_static_libs
260150806d53Smrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
260250806d53Smrg	  use_static_libs=no
260350806d53Smrg	fi
260450806d53Smrg	if test -n "$library_names" &&
260550806d53Smrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
260650806d53Smrg	  if test "$installed" = no; then
260750806d53Smrg	    notinst_deplibs="$notinst_deplibs $lib"
260850806d53Smrg	    need_relink=yes
260950806d53Smrg	  fi
261050806d53Smrg	  # This is a shared library
261150806d53Smrg
261250806d53Smrg	  # Warn about portability, can't link against -module's on
261350806d53Smrg	  # some systems (darwin)
261450806d53Smrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
261550806d53Smrg	    $echo
261650806d53Smrg	    if test "$linkmode" = prog; then
261750806d53Smrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
261850806d53Smrg	    else
261950806d53Smrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
262050806d53Smrg	    fi
262150806d53Smrg	    $echo "*** $linklib is not portable!"
262250806d53Smrg	  fi
262350806d53Smrg	  if test "$linkmode" = lib &&
262450806d53Smrg	     test "$hardcode_into_libs" = yes; then
262550806d53Smrg	    # Hardcode the library path.
262650806d53Smrg	    # Skip directories that are in the system default run-time
262750806d53Smrg	    # search path.
262850806d53Smrg	    case " $sys_lib_dlsearch_path " in
262950806d53Smrg	    *" $absdir "*) ;;
263050806d53Smrg	    *)
263150806d53Smrg	      case "$compile_rpath " in
263250806d53Smrg	      *" $absdir "*) ;;
263350806d53Smrg	      *) compile_rpath="$compile_rpath $absdir"
263450806d53Smrg	      esac
263550806d53Smrg	      ;;
263650806d53Smrg	    esac
263750806d53Smrg	    case " $sys_lib_dlsearch_path " in
263850806d53Smrg	    *" $libdir "*) ;;
263950806d53Smrg	    *)
264050806d53Smrg	      case "$finalize_rpath " in
264150806d53Smrg	      *" $libdir "*) ;;
264250806d53Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
264350806d53Smrg	      esac
264450806d53Smrg	      ;;
264550806d53Smrg	    esac
264650806d53Smrg	  fi
264750806d53Smrg
264850806d53Smrg	  if test -n "$old_archive_from_expsyms_cmds"; then
264950806d53Smrg	    # figure out the soname
265050806d53Smrg	    set dummy $library_names
265150806d53Smrg	    realname="$2"
265250806d53Smrg	    shift; shift
265350806d53Smrg	    libname=`eval \\$echo \"$libname_spec\"`
265450806d53Smrg	    # use dlname if we got it. it's perfectly good, no?
265550806d53Smrg	    if test -n "$dlname"; then
265650806d53Smrg	      soname="$dlname"
265750806d53Smrg	    elif test -n "$soname_spec"; then
265850806d53Smrg	      # bleh windows
265950806d53Smrg	      case $host in
266050806d53Smrg	      *cygwin* | mingw*)
266150806d53Smrg		major=`expr $current - $age`
266250806d53Smrg		versuffix="-$major"
266350806d53Smrg		;;
266450806d53Smrg	      esac
266550806d53Smrg	      eval soname=\"$soname_spec\"
266650806d53Smrg	    else
266750806d53Smrg	      soname="$realname"
266850806d53Smrg	    fi
266950806d53Smrg
267050806d53Smrg	    # Make a new name for the extract_expsyms_cmds to use
267150806d53Smrg	    soroot="$soname"
267250806d53Smrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
267350806d53Smrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
267450806d53Smrg
267550806d53Smrg	    # If the library has no export list, then create one now
267650806d53Smrg	    if test -f "$output_objdir/$soname-def"; then :
267750806d53Smrg	    else
267850806d53Smrg	      $show "extracting exported symbol list from \`$soname'"
267950806d53Smrg	      save_ifs="$IFS"; IFS='~'
268050806d53Smrg	      cmds=$extract_expsyms_cmds
268150806d53Smrg	      for cmd in $cmds; do
268250806d53Smrg		IFS="$save_ifs"
268350806d53Smrg		eval cmd=\"$cmd\"
268450806d53Smrg		$show "$cmd"
268550806d53Smrg		$run eval "$cmd" || exit $?
268650806d53Smrg	      done
268750806d53Smrg	      IFS="$save_ifs"
268850806d53Smrg	    fi
268950806d53Smrg
269050806d53Smrg	    # Create $newlib
269150806d53Smrg	    if test -f "$output_objdir/$newlib"; then :; else
269250806d53Smrg	      $show "generating import library for \`$soname'"
269350806d53Smrg	      save_ifs="$IFS"; IFS='~'
269450806d53Smrg	      cmds=$old_archive_from_expsyms_cmds
269550806d53Smrg	      for cmd in $cmds; do
269650806d53Smrg		IFS="$save_ifs"
269750806d53Smrg		eval cmd=\"$cmd\"
269850806d53Smrg		$show "$cmd"
269950806d53Smrg		$run eval "$cmd" || exit $?
270050806d53Smrg	      done
270150806d53Smrg	      IFS="$save_ifs"
270250806d53Smrg	    fi
270350806d53Smrg	    # make sure the library variables are pointing to the new library
270450806d53Smrg	    dir=$output_objdir
270550806d53Smrg	    linklib=$newlib
270650806d53Smrg	  fi # test -n "$old_archive_from_expsyms_cmds"
270750806d53Smrg
270850806d53Smrg	  if test "$linkmode" = prog || test "$mode" != relink; then
270950806d53Smrg	    add_shlibpath=
271050806d53Smrg	    add_dir=
271150806d53Smrg	    add=
271250806d53Smrg	    lib_linked=yes
271350806d53Smrg	    case $hardcode_action in
271450806d53Smrg	    immediate | unsupported)
271550806d53Smrg	      if test "$hardcode_direct" = no; then
271650806d53Smrg		add="$dir/$linklib"
271750806d53Smrg		case $host in
271850806d53Smrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
271950806d53Smrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
272050806d53Smrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
272150806d53Smrg		    *-*-unixware7*) add_dir="-L$dir" ;;
272250806d53Smrg		  *-*-darwin* )
272350806d53Smrg		    # if the lib is a module then we can not link against
272450806d53Smrg		    # it, someone is ignoring the new warnings I added
272550806d53Smrg		    if /usr/bin/file -L $add 2> /dev/null |
272650806d53Smrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
272750806d53Smrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
272850806d53Smrg		      if test -z "$old_library" ; then
272950806d53Smrg		        $echo
273050806d53Smrg		        $echo "** And there doesn't seem to be a static archive available"
273150806d53Smrg		        $echo "** The link will probably fail, sorry"
273250806d53Smrg		      else
273350806d53Smrg		        add="$dir/$old_library"
273450806d53Smrg		      fi
273550806d53Smrg		    fi
273650806d53Smrg		esac
273750806d53Smrg	      elif test "$hardcode_minus_L" = no; then
273850806d53Smrg		case $host in
273950806d53Smrg		*-*-sunos*) add_shlibpath="$dir" ;;
274050806d53Smrg		esac
274150806d53Smrg		add_dir="-L$dir"
274250806d53Smrg		add="-l$name"
274350806d53Smrg	      elif test "$hardcode_shlibpath_var" = no; then
274450806d53Smrg		add_shlibpath="$dir"
274550806d53Smrg		add="-l$name"
274650806d53Smrg	      else
274750806d53Smrg		lib_linked=no
274850806d53Smrg	      fi
274950806d53Smrg	      ;;
275050806d53Smrg	    relink)
275150806d53Smrg	      if test "$hardcode_direct" = yes; then
275250806d53Smrg		add="$dir/$linklib"
275350806d53Smrg	      elif test "$hardcode_minus_L" = yes; then
275450806d53Smrg		add_dir="-L$dir"
275550806d53Smrg		# Try looking first in the location we're being installed to.
275650806d53Smrg		if test -n "$inst_prefix_dir"; then
275750806d53Smrg		  case $libdir in
275850806d53Smrg		    [\\/]*)
275950806d53Smrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
276050806d53Smrg		      ;;
276150806d53Smrg		  esac
276250806d53Smrg		fi
276350806d53Smrg		add="-l$name"
276450806d53Smrg	      elif test "$hardcode_shlibpath_var" = yes; then
276550806d53Smrg		add_shlibpath="$dir"
276650806d53Smrg		add="-l$name"
276750806d53Smrg	      else
276850806d53Smrg		lib_linked=no
276950806d53Smrg	      fi
277050806d53Smrg	      ;;
277150806d53Smrg	    *) lib_linked=no ;;
277250806d53Smrg	    esac
277350806d53Smrg
277450806d53Smrg	    if test "$lib_linked" != yes; then
277550806d53Smrg	      $echo "$modename: configuration error: unsupported hardcode properties"
277650806d53Smrg	      exit $EXIT_FAILURE
277750806d53Smrg	    fi
277850806d53Smrg
277950806d53Smrg	    if test -n "$add_shlibpath"; then
278050806d53Smrg	      case :$compile_shlibpath: in
278150806d53Smrg	      *":$add_shlibpath:"*) ;;
278250806d53Smrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
278350806d53Smrg	      esac
278450806d53Smrg	    fi
278550806d53Smrg	    if test "$linkmode" = prog; then
278650806d53Smrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
278750806d53Smrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
278850806d53Smrg	    else
278950806d53Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
279050806d53Smrg	      test -n "$add" && deplibs="$add $deplibs"
279150806d53Smrg	      if test "$hardcode_direct" != yes && \
279250806d53Smrg		 test "$hardcode_minus_L" != yes && \
279350806d53Smrg		 test "$hardcode_shlibpath_var" = yes; then
279450806d53Smrg		case :$finalize_shlibpath: in
279550806d53Smrg		*":$libdir:"*) ;;
279650806d53Smrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
279750806d53Smrg		esac
279850806d53Smrg	      fi
279950806d53Smrg	    fi
280050806d53Smrg	  fi
280150806d53Smrg
280250806d53Smrg	  if test "$linkmode" = prog || test "$mode" = relink; then
280350806d53Smrg	    add_shlibpath=
280450806d53Smrg	    add_dir=
280550806d53Smrg	    add=
280650806d53Smrg	    # Finalize command for both is simple: just hardcode it.
280750806d53Smrg	    if test "$hardcode_direct" = yes; then
280850806d53Smrg	      add="$libdir/$linklib"
280950806d53Smrg	    elif test "$hardcode_minus_L" = yes; then
281050806d53Smrg	      add_dir="-L$libdir"
281150806d53Smrg	      add="-l$name"
281250806d53Smrg	    elif test "$hardcode_shlibpath_var" = yes; then
281350806d53Smrg	      case :$finalize_shlibpath: in
281450806d53Smrg	      *":$libdir:"*) ;;
281550806d53Smrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
281650806d53Smrg	      esac
281750806d53Smrg	      add="-l$name"
281850806d53Smrg	    elif test "$hardcode_automatic" = yes; then
281950806d53Smrg	      if test -n "$inst_prefix_dir" &&
282050806d53Smrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
282150806d53Smrg	        add="$inst_prefix_dir$libdir/$linklib"
282250806d53Smrg	      else
282350806d53Smrg	        add="$libdir/$linklib"
282450806d53Smrg	      fi
282550806d53Smrg	    else
282650806d53Smrg	      # We cannot seem to hardcode it, guess we'll fake it.
282750806d53Smrg	      add_dir="-L$libdir"
282850806d53Smrg	      # Try looking first in the location we're being installed to.
282950806d53Smrg	      if test -n "$inst_prefix_dir"; then
283050806d53Smrg		case $libdir in
283150806d53Smrg		  [\\/]*)
283250806d53Smrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
283350806d53Smrg		    ;;
283450806d53Smrg		esac
283550806d53Smrg	      fi
283650806d53Smrg	      add="-l$name"
283750806d53Smrg	    fi
283850806d53Smrg
283950806d53Smrg	    if test "$linkmode" = prog; then
284050806d53Smrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
284150806d53Smrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
284250806d53Smrg	    else
284350806d53Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
284450806d53Smrg	      test -n "$add" && deplibs="$add $deplibs"
284550806d53Smrg	    fi
284650806d53Smrg	  fi
284750806d53Smrg	elif test "$linkmode" = prog; then
284850806d53Smrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
284950806d53Smrg	  # is not unsupported.  This is valid on all known static and
285050806d53Smrg	  # shared platforms.
285150806d53Smrg	  if test "$hardcode_direct" != unsupported; then
285250806d53Smrg	    test -n "$old_library" && linklib="$old_library"
285350806d53Smrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
285450806d53Smrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
285550806d53Smrg	  else
285650806d53Smrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
285750806d53Smrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
285850806d53Smrg	  fi
285950806d53Smrg	elif test "$build_libtool_libs" = yes; then
286050806d53Smrg	  # Not a shared library
286150806d53Smrg	  if test "$deplibs_check_method" != pass_all; then
286250806d53Smrg	    # We're trying link a shared library against a static one
286350806d53Smrg	    # but the system doesn't support it.
286450806d53Smrg
286550806d53Smrg	    # Just print a warning and add the library to dependency_libs so
286650806d53Smrg	    # that the program can be linked against the static library.
286750806d53Smrg	    $echo
286850806d53Smrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
286950806d53Smrg	    $echo "*** I have the capability to make that library automatically link in when"
287050806d53Smrg	    $echo "*** you link to this library.  But I can only do this if you have a"
287150806d53Smrg	    $echo "*** shared version of the library, which you do not appear to have."
287250806d53Smrg	    if test "$module" = yes; then
287350806d53Smrg	      $echo "*** But as you try to build a module library, libtool will still create "
287450806d53Smrg	      $echo "*** a static module, that should work as long as the dlopening application"
287550806d53Smrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
287650806d53Smrg	      if test -z "$global_symbol_pipe"; then
287750806d53Smrg		$echo
287850806d53Smrg		$echo "*** However, this would only work if libtool was able to extract symbol"
287950806d53Smrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
288050806d53Smrg		$echo "*** not find such a program.  So, this module is probably useless."
288150806d53Smrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
288250806d53Smrg	      fi
288350806d53Smrg	      if test "$build_old_libs" = no; then
288450806d53Smrg		build_libtool_libs=module
288550806d53Smrg		build_old_libs=yes
288650806d53Smrg	      else
288750806d53Smrg		build_libtool_libs=no
288850806d53Smrg	      fi
288950806d53Smrg	    fi
289050806d53Smrg	  else
289150806d53Smrg	    deplibs="$dir/$old_library $deplibs"
289250806d53Smrg	    link_static=yes
289350806d53Smrg	  fi
289450806d53Smrg	fi # link shared/static library?
289550806d53Smrg
289650806d53Smrg	if test "$linkmode" = lib; then
289750806d53Smrg	  if test -n "$dependency_libs" &&
289850806d53Smrg	     { test "$hardcode_into_libs" != yes ||
289950806d53Smrg	       test "$build_old_libs" = yes ||
290050806d53Smrg	       test "$link_static" = yes; }; then
290150806d53Smrg	    # Extract -R from dependency_libs
290250806d53Smrg	    temp_deplibs=
290350806d53Smrg	    for libdir in $dependency_libs; do
290450806d53Smrg	      case $libdir in
290550806d53Smrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
290650806d53Smrg		   case " $xrpath " in
290750806d53Smrg		   *" $temp_xrpath "*) ;;
290850806d53Smrg		   *) xrpath="$xrpath $temp_xrpath";;
290950806d53Smrg		   esac;;
291050806d53Smrg	      *) temp_deplibs="$temp_deplibs $libdir";;
291150806d53Smrg	      esac
291250806d53Smrg	    done
291350806d53Smrg	    dependency_libs="$temp_deplibs"
291450806d53Smrg	  fi
291550806d53Smrg
291650806d53Smrg	  newlib_search_path="$newlib_search_path $absdir"
291750806d53Smrg	  # Link against this library
291850806d53Smrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
291950806d53Smrg	  # ... and its dependency_libs
292050806d53Smrg	  tmp_libs=
292150806d53Smrg	  for deplib in $dependency_libs; do
292250806d53Smrg	    newdependency_libs="$deplib $newdependency_libs"
292350806d53Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
292450806d53Smrg	      case "$tmp_libs " in
292550806d53Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
292650806d53Smrg	      esac
292750806d53Smrg	    fi
292850806d53Smrg	    tmp_libs="$tmp_libs $deplib"
292950806d53Smrg	  done
293050806d53Smrg
293150806d53Smrg	  if test "$link_all_deplibs" != no; then
293250806d53Smrg	    # Add the search paths of all dependency libraries
293350806d53Smrg	    for deplib in $dependency_libs; do
293450806d53Smrg	      case $deplib in
293550806d53Smrg	      -L*) path="$deplib" ;;
293650806d53Smrg	      *.la)
293750806d53Smrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
293850806d53Smrg		test "X$dir" = "X$deplib" && dir="."
293950806d53Smrg		# We need an absolute path.
294050806d53Smrg		case $dir in
294150806d53Smrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
294250806d53Smrg		*)
294350806d53Smrg		  absdir=`cd "$dir" && pwd`
294450806d53Smrg		  if test -z "$absdir"; then
294550806d53Smrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
294650806d53Smrg		    absdir="$dir"
294750806d53Smrg		  fi
294850806d53Smrg		  ;;
294950806d53Smrg		esac
295050806d53Smrg		if grep "^installed=no" $deplib > /dev/null; then
295150806d53Smrg		  path="$absdir/$objdir"
295250806d53Smrg		else
295350806d53Smrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
295450806d53Smrg		  if test -z "$libdir"; then
295550806d53Smrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
295650806d53Smrg		    exit $EXIT_FAILURE
295750806d53Smrg		  fi
295850806d53Smrg		  if test "$absdir" != "$libdir"; then
295950806d53Smrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
296050806d53Smrg		  fi
296150806d53Smrg		  path="$absdir"
296250806d53Smrg		fi
296350806d53Smrg		depdepl=
296450806d53Smrg		case $host in
296550806d53Smrg		*-*-darwin*)
296650806d53Smrg		  # we do not want to link against static libs,
296750806d53Smrg		  # but need to link against shared
296850806d53Smrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
29697965d9acSmrg		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
297050806d53Smrg		  if test -n "$deplibrary_names" ; then
297150806d53Smrg		    for tmp in $deplibrary_names ; do
297250806d53Smrg		      depdepl=$tmp
297350806d53Smrg		    done
29747965d9acSmrg		    if test -f "$deplibdir/$depdepl" ; then
29757965d9acSmrg		      depdepl="$deplibdir/$depdepl"
29767965d9acSmrg	      	    elif test -f "$path/$depdepl" ; then
297750806d53Smrg		      depdepl="$path/$depdepl"
29787965d9acSmrg		    else
29797965d9acSmrg		      # Can't find it, oh well...
29807965d9acSmrg		      depdepl=
298150806d53Smrg		    fi
298250806d53Smrg		    # do not add paths which are already there
298350806d53Smrg		    case " $newlib_search_path " in
298450806d53Smrg		    *" $path "*) ;;
298550806d53Smrg		    *) newlib_search_path="$newlib_search_path $path";;
298650806d53Smrg		    esac
298750806d53Smrg		  fi
298850806d53Smrg		  path=""
298950806d53Smrg		  ;;
299050806d53Smrg		*)
299150806d53Smrg		  path="-L$path"
299250806d53Smrg		  ;;
299350806d53Smrg		esac
299450806d53Smrg		;;
299550806d53Smrg	      -l*)
299650806d53Smrg		case $host in
299750806d53Smrg		*-*-darwin*)
299850806d53Smrg		  # Again, we only want to link against shared libraries
299950806d53Smrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
300050806d53Smrg		  for tmp in $newlib_search_path ; do
300150806d53Smrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
300250806d53Smrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
300350806d53Smrg		      break
300450806d53Smrg		    fi
300550806d53Smrg		  done
300650806d53Smrg		  path=""
300750806d53Smrg		  ;;
300850806d53Smrg		*) continue ;;
300950806d53Smrg		esac
301050806d53Smrg		;;
301150806d53Smrg	      *) continue ;;
301250806d53Smrg	      esac
301350806d53Smrg	      case " $deplibs " in
301450806d53Smrg	      *" $path "*) ;;
301550806d53Smrg	      *) deplibs="$path $deplibs" ;;
301650806d53Smrg	      esac
301750806d53Smrg	      case " $deplibs " in
301850806d53Smrg	      *" $depdepl "*) ;;
301950806d53Smrg	      *) deplibs="$depdepl $deplibs" ;;
302050806d53Smrg	      esac
302150806d53Smrg	    done
302250806d53Smrg	  fi # link_all_deplibs != no
302350806d53Smrg	fi # linkmode = lib
302450806d53Smrg      done # for deplib in $libs
302550806d53Smrg      dependency_libs="$newdependency_libs"
302650806d53Smrg      if test "$pass" = dlpreopen; then
302750806d53Smrg	# Link the dlpreopened libraries before other libraries
302850806d53Smrg	for deplib in $save_deplibs; do
302950806d53Smrg	  deplibs="$deplib $deplibs"
303050806d53Smrg	done
303150806d53Smrg      fi
303250806d53Smrg      if test "$pass" != dlopen; then
303350806d53Smrg	if test "$pass" != conv; then
303450806d53Smrg	  # Make sure lib_search_path contains only unique directories.
303550806d53Smrg	  lib_search_path=
303650806d53Smrg	  for dir in $newlib_search_path; do
303750806d53Smrg	    case "$lib_search_path " in
303850806d53Smrg	    *" $dir "*) ;;
303950806d53Smrg	    *) lib_search_path="$lib_search_path $dir" ;;
304050806d53Smrg	    esac
304150806d53Smrg	  done
304250806d53Smrg	  newlib_search_path=
304350806d53Smrg	fi
304450806d53Smrg
304550806d53Smrg	if test "$linkmode,$pass" != "prog,link"; then
304650806d53Smrg	  vars="deplibs"
304750806d53Smrg	else
304850806d53Smrg	  vars="compile_deplibs finalize_deplibs"
304950806d53Smrg	fi
305050806d53Smrg	for var in $vars dependency_libs; do
305150806d53Smrg	  # Add libraries to $var in reverse order
305250806d53Smrg	  eval tmp_libs=\"\$$var\"
305350806d53Smrg	  new_libs=
305450806d53Smrg	  for deplib in $tmp_libs; do
305550806d53Smrg	    # FIXME: Pedantically, this is the right thing to do, so
305650806d53Smrg	    #        that some nasty dependency loop isn't accidentally
305750806d53Smrg	    #        broken:
305850806d53Smrg	    #new_libs="$deplib $new_libs"
305950806d53Smrg	    # Pragmatically, this seems to cause very few problems in
306050806d53Smrg	    # practice:
306150806d53Smrg	    case $deplib in
306250806d53Smrg	    -L*) new_libs="$deplib $new_libs" ;;
306350806d53Smrg	    -R*) ;;
306450806d53Smrg	    *)
306550806d53Smrg	      # And here is the reason: when a library appears more
306650806d53Smrg	      # than once as an explicit dependence of a library, or
306750806d53Smrg	      # is implicitly linked in more than once by the
306850806d53Smrg	      # compiler, it is considered special, and multiple
306950806d53Smrg	      # occurrences thereof are not removed.  Compare this
307050806d53Smrg	      # with having the same library being listed as a
307150806d53Smrg	      # dependency of multiple other libraries: in this case,
307250806d53Smrg	      # we know (pedantically, we assume) the library does not
307350806d53Smrg	      # need to be listed more than once, so we keep only the
307450806d53Smrg	      # last copy.  This is not always right, but it is rare
307550806d53Smrg	      # enough that we require users that really mean to play
307650806d53Smrg	      # such unportable linking tricks to link the library
307750806d53Smrg	      # using -Wl,-lname, so that libtool does not consider it
307850806d53Smrg	      # for duplicate removal.
307950806d53Smrg	      case " $specialdeplibs " in
308050806d53Smrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
308150806d53Smrg	      *)
308250806d53Smrg		case " $new_libs " in
308350806d53Smrg		*" $deplib "*) ;;
308450806d53Smrg		*) new_libs="$deplib $new_libs" ;;
308550806d53Smrg		esac
308650806d53Smrg		;;
308750806d53Smrg	      esac
308850806d53Smrg	      ;;
308950806d53Smrg	    esac
309050806d53Smrg	  done
309150806d53Smrg	  tmp_libs=
309250806d53Smrg	  for deplib in $new_libs; do
309350806d53Smrg	    case $deplib in
309450806d53Smrg	    -L*)
309550806d53Smrg	      case " $tmp_libs " in
309650806d53Smrg	      *" $deplib "*) ;;
309750806d53Smrg	      *) tmp_libs="$tmp_libs $deplib" ;;
309850806d53Smrg	      esac
309950806d53Smrg	      ;;
310050806d53Smrg	    *) tmp_libs="$tmp_libs $deplib" ;;
310150806d53Smrg	    esac
310250806d53Smrg	  done
310350806d53Smrg	  eval $var=\"$tmp_libs\"
310450806d53Smrg	done # for var
310550806d53Smrg      fi
310650806d53Smrg      # Last step: remove runtime libs from dependency_libs
310750806d53Smrg      # (they stay in deplibs)
310850806d53Smrg      tmp_libs=
310950806d53Smrg      for i in $dependency_libs ; do
311050806d53Smrg	case " $predeps $postdeps $compiler_lib_search_path " in
311150806d53Smrg	*" $i "*)
311250806d53Smrg	  i=""
311350806d53Smrg	  ;;
311450806d53Smrg	esac
311550806d53Smrg	if test -n "$i" ; then
311650806d53Smrg	  tmp_libs="$tmp_libs $i"
311750806d53Smrg	fi
311850806d53Smrg      done
311950806d53Smrg      dependency_libs=$tmp_libs
312050806d53Smrg    done # for pass
312150806d53Smrg    if test "$linkmode" = prog; then
312250806d53Smrg      dlfiles="$newdlfiles"
312350806d53Smrg      dlprefiles="$newdlprefiles"
312450806d53Smrg    fi
312550806d53Smrg
312650806d53Smrg    case $linkmode in
312750806d53Smrg    oldlib)
31287965d9acSmrg      case " $deplibs" in
31297965d9acSmrg      *\ -l* | *\ -L*)
31307965d9acSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
31317965d9acSmrg      esac
313250806d53Smrg
313350806d53Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
313450806d53Smrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
313550806d53Smrg      fi
313650806d53Smrg
313750806d53Smrg      if test -n "$rpath"; then
313850806d53Smrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
313950806d53Smrg      fi
314050806d53Smrg
314150806d53Smrg      if test -n "$xrpath"; then
314250806d53Smrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
314350806d53Smrg      fi
314450806d53Smrg
314550806d53Smrg      if test -n "$vinfo"; then
314650806d53Smrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
314750806d53Smrg      fi
314850806d53Smrg
314950806d53Smrg      if test -n "$release"; then
315050806d53Smrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
315150806d53Smrg      fi
315250806d53Smrg
315350806d53Smrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
315450806d53Smrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
315550806d53Smrg      fi
315650806d53Smrg
315750806d53Smrg      # Now set the variables for building old libraries.
315850806d53Smrg      build_libtool_libs=no
315950806d53Smrg      oldlibs="$output"
316050806d53Smrg      objs="$objs$old_deplibs"
316150806d53Smrg      ;;
316250806d53Smrg
316350806d53Smrg    lib)
316450806d53Smrg      # Make sure we only generate libraries of the form `libNAME.la'.
316550806d53Smrg      case $outputname in
316650806d53Smrg      lib*)
316750806d53Smrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
316850806d53Smrg	eval shared_ext=\"$shrext_cmds\"
316950806d53Smrg	eval libname=\"$libname_spec\"
317050806d53Smrg	;;
317150806d53Smrg      *)
317250806d53Smrg	if test "$module" = no; then
317350806d53Smrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
317450806d53Smrg	  $echo "$help" 1>&2
317550806d53Smrg	  exit $EXIT_FAILURE
317650806d53Smrg	fi
317750806d53Smrg	if test "$need_lib_prefix" != no; then
317850806d53Smrg	  # Add the "lib" prefix for modules if required
317950806d53Smrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
318050806d53Smrg	  eval shared_ext=\"$shrext_cmds\"
318150806d53Smrg	  eval libname=\"$libname_spec\"
318250806d53Smrg	else
318350806d53Smrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
318450806d53Smrg	fi
318550806d53Smrg	;;
318650806d53Smrg      esac
318750806d53Smrg
318850806d53Smrg      if test -n "$objs"; then
318950806d53Smrg	if test "$deplibs_check_method" != pass_all; then
319050806d53Smrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
319150806d53Smrg	  exit $EXIT_FAILURE
319250806d53Smrg	else
319350806d53Smrg	  $echo
319450806d53Smrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
319550806d53Smrg	  $echo "*** objects $objs is not portable!"
319650806d53Smrg	  libobjs="$libobjs $objs"
319750806d53Smrg	fi
319850806d53Smrg      fi
319950806d53Smrg
320050806d53Smrg      if test "$dlself" != no; then
320150806d53Smrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
320250806d53Smrg      fi
320350806d53Smrg
320450806d53Smrg      set dummy $rpath
320550806d53Smrg      if test "$#" -gt 2; then
320650806d53Smrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
320750806d53Smrg      fi
320850806d53Smrg      install_libdir="$2"
320950806d53Smrg
321050806d53Smrg      oldlibs=
321150806d53Smrg      if test -z "$rpath"; then
321250806d53Smrg	if test "$build_libtool_libs" = yes; then
321350806d53Smrg	  # Building a libtool convenience library.
321450806d53Smrg	  # Some compilers have problems with a `.al' extension so
321550806d53Smrg	  # convenience libraries should have the same extension an
321650806d53Smrg	  # archive normally would.
321750806d53Smrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
321850806d53Smrg	  build_libtool_libs=convenience
321950806d53Smrg	  build_old_libs=yes
322050806d53Smrg	fi
322150806d53Smrg
322250806d53Smrg	if test -n "$vinfo"; then
322350806d53Smrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
322450806d53Smrg	fi
322550806d53Smrg
322650806d53Smrg	if test -n "$release"; then
322750806d53Smrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
322850806d53Smrg	fi
322950806d53Smrg      else
323050806d53Smrg
323150806d53Smrg	# Parse the version information argument.
323250806d53Smrg	save_ifs="$IFS"; IFS=':'
323350806d53Smrg	set dummy $vinfo 0 0 0
323450806d53Smrg	IFS="$save_ifs"
323550806d53Smrg
323650806d53Smrg	if test -n "$8"; then
323750806d53Smrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
323850806d53Smrg	  $echo "$help" 1>&2
323950806d53Smrg	  exit $EXIT_FAILURE
324050806d53Smrg	fi
324150806d53Smrg
324250806d53Smrg	# convert absolute version numbers to libtool ages
324350806d53Smrg	# this retains compatibility with .la files and attempts
324450806d53Smrg	# to make the code below a bit more comprehensible
324550806d53Smrg
324650806d53Smrg	case $vinfo_number in
324750806d53Smrg	yes)
324850806d53Smrg	  number_major="$2"
324950806d53Smrg	  number_minor="$3"
325050806d53Smrg	  number_revision="$4"
325150806d53Smrg	  #
325250806d53Smrg	  # There are really only two kinds -- those that
325350806d53Smrg	  # use the current revision as the major version
325450806d53Smrg	  # and those that subtract age and use age as
325550806d53Smrg	  # a minor version.  But, then there is irix
325650806d53Smrg	  # which has an extra 1 added just for fun
325750806d53Smrg	  #
325850806d53Smrg	  case $version_type in
325950806d53Smrg	  darwin|linux|osf|windows|none)
326050806d53Smrg	    current=`expr $number_major + $number_minor`
326150806d53Smrg	    age="$number_minor"
326250806d53Smrg	    revision="$number_revision"
326350806d53Smrg	    ;;
326450806d53Smrg	  freebsd-aout|freebsd-elf|sunos)
326550806d53Smrg	    current="$number_major"
326650806d53Smrg	    revision="$number_minor"
326750806d53Smrg	    age="0"
326850806d53Smrg	    ;;
326950806d53Smrg	  irix|nonstopux)
32707965d9acSmrg	    current=`expr $number_major + $number_minor`
327150806d53Smrg	    age="$number_minor"
327250806d53Smrg	    revision="$number_minor"
32737965d9acSmrg	    lt_irix_increment=no
32747965d9acSmrg	    ;;
32757965d9acSmrg	  *)
32767965d9acSmrg	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
32777965d9acSmrg	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
32787965d9acSmrg	    exit $EXIT_FAILURE
327950806d53Smrg	    ;;
328050806d53Smrg	  esac
328150806d53Smrg	  ;;
328250806d53Smrg	no)
328350806d53Smrg	  current="$2"
328450806d53Smrg	  revision="$3"
328550806d53Smrg	  age="$4"
328650806d53Smrg	  ;;
328750806d53Smrg	esac
328850806d53Smrg
328950806d53Smrg	# Check that each of the things are valid numbers.
329050806d53Smrg	case $current in
329150806d53Smrg	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]) ;;
329250806d53Smrg	*)
329350806d53Smrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
329450806d53Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
329550806d53Smrg	  exit $EXIT_FAILURE
329650806d53Smrg	  ;;
329750806d53Smrg	esac
329850806d53Smrg
329950806d53Smrg	case $revision in
330050806d53Smrg	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]) ;;
330150806d53Smrg	*)
330250806d53Smrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
330350806d53Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
330450806d53Smrg	  exit $EXIT_FAILURE
330550806d53Smrg	  ;;
330650806d53Smrg	esac
330750806d53Smrg
330850806d53Smrg	case $age in
330950806d53Smrg	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]) ;;
331050806d53Smrg	*)
331150806d53Smrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
331250806d53Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
331350806d53Smrg	  exit $EXIT_FAILURE
331450806d53Smrg	  ;;
331550806d53Smrg	esac
331650806d53Smrg
331750806d53Smrg	if test "$age" -gt "$current"; then
331850806d53Smrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
331950806d53Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
332050806d53Smrg	  exit $EXIT_FAILURE
332150806d53Smrg	fi
332250806d53Smrg
332350806d53Smrg	# Calculate the version variables.
332450806d53Smrg	major=
332550806d53Smrg	versuffix=
332650806d53Smrg	verstring=
332750806d53Smrg	case $version_type in
332850806d53Smrg	none) ;;
332950806d53Smrg
333050806d53Smrg	darwin)
333150806d53Smrg	  # Like Linux, but with the current version available in
333250806d53Smrg	  # verstring for coding it into the library header
333350806d53Smrg	  major=.`expr $current - $age`
333450806d53Smrg	  versuffix="$major.$age.$revision"
333550806d53Smrg	  # Darwin ld doesn't like 0 for these options...
333650806d53Smrg	  minor_current=`expr $current + 1`
33377965d9acSmrg	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
33387965d9acSmrg	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
333950806d53Smrg	  ;;
334050806d53Smrg
334150806d53Smrg	freebsd-aout)
334250806d53Smrg	  major=".$current"
334350806d53Smrg	  versuffix=".$current.$revision";
334450806d53Smrg	  ;;
334550806d53Smrg
334650806d53Smrg	freebsd-elf)
334750806d53Smrg	  major=".$current"
334850806d53Smrg	  versuffix=".$current";
334950806d53Smrg	  ;;
335050806d53Smrg
335150806d53Smrg	irix | nonstopux)
33527965d9acSmrg	  if test "X$lt_irix_increment" = "Xno"; then
33537965d9acSmrg	    major=`expr $current - $age`
33547965d9acSmrg	  else
33557965d9acSmrg	    major=`expr $current - $age + 1`
33567965d9acSmrg	  fi
335750806d53Smrg	  case $version_type in
335850806d53Smrg	    nonstopux) verstring_prefix=nonstopux ;;
335950806d53Smrg	    *)         verstring_prefix=sgi ;;
336050806d53Smrg	  esac
336150806d53Smrg	  verstring="$verstring_prefix$major.$revision"
336250806d53Smrg
336350806d53Smrg	  # Add in all the interfaces that we are compatible with.
336450806d53Smrg	  loop=$revision
336550806d53Smrg	  while test "$loop" -ne 0; do
336650806d53Smrg	    iface=`expr $revision - $loop`
336750806d53Smrg	    loop=`expr $loop - 1`
336850806d53Smrg	    verstring="$verstring_prefix$major.$iface:$verstring"
336950806d53Smrg	  done
337050806d53Smrg
337150806d53Smrg	  # Before this point, $major must not contain `.'.
337250806d53Smrg	  major=.$major
337350806d53Smrg	  versuffix="$major.$revision"
337450806d53Smrg	  ;;
337550806d53Smrg
337650806d53Smrg	linux)
337750806d53Smrg	  major=.`expr $current - $age`
337850806d53Smrg	  versuffix="$major.$age.$revision"
337950806d53Smrg	  ;;
338050806d53Smrg
338150806d53Smrg	osf)
338250806d53Smrg	  major=.`expr $current - $age`
338350806d53Smrg	  versuffix=".$current.$age.$revision"
338450806d53Smrg	  verstring="$current.$age.$revision"
338550806d53Smrg
338650806d53Smrg	  # Add in all the interfaces that we are compatible with.
338750806d53Smrg	  loop=$age
338850806d53Smrg	  while test "$loop" -ne 0; do
338950806d53Smrg	    iface=`expr $current - $loop`
339050806d53Smrg	    loop=`expr $loop - 1`
339150806d53Smrg	    verstring="$verstring:${iface}.0"
339250806d53Smrg	  done
339350806d53Smrg
339450806d53Smrg	  # Make executables depend on our current version.
339550806d53Smrg	  verstring="$verstring:${current}.0"
339650806d53Smrg	  ;;
339750806d53Smrg
339850806d53Smrg	sunos)
339950806d53Smrg	  major=".$current"
340050806d53Smrg	  versuffix=".$current.$revision"
340150806d53Smrg	  ;;
340250806d53Smrg
340350806d53Smrg	windows)
340450806d53Smrg	  # Use '-' rather than '.', since we only want one
340550806d53Smrg	  # extension on DOS 8.3 filesystems.
340650806d53Smrg	  major=`expr $current - $age`
340750806d53Smrg	  versuffix="-$major"
340850806d53Smrg	  ;;
340950806d53Smrg
341050806d53Smrg	*)
341150806d53Smrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
341250806d53Smrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
341350806d53Smrg	  exit $EXIT_FAILURE
341450806d53Smrg	  ;;
341550806d53Smrg	esac
341650806d53Smrg
341750806d53Smrg	# Clear the version info if we defaulted, and they specified a release.
341850806d53Smrg	if test -z "$vinfo" && test -n "$release"; then
341950806d53Smrg	  major=
342050806d53Smrg	  case $version_type in
342150806d53Smrg	  darwin)
342250806d53Smrg	    # we can't check for "0.0" in archive_cmds due to quoting
342350806d53Smrg	    # problems, so we reset it completely
342450806d53Smrg	    verstring=
342550806d53Smrg	    ;;
342650806d53Smrg	  *)
342750806d53Smrg	    verstring="0.0"
342850806d53Smrg	    ;;
342950806d53Smrg	  esac
343050806d53Smrg	  if test "$need_version" = no; then
343150806d53Smrg	    versuffix=
343250806d53Smrg	  else
343350806d53Smrg	    versuffix=".0.0"
343450806d53Smrg	  fi
343550806d53Smrg	fi
343650806d53Smrg
343750806d53Smrg	# Remove version info from name if versioning should be avoided
343850806d53Smrg	if test "$avoid_version" = yes && test "$need_version" = no; then
343950806d53Smrg	  major=
344050806d53Smrg	  versuffix=
344150806d53Smrg	  verstring=""
344250806d53Smrg	fi
344350806d53Smrg
344450806d53Smrg	# Check to see if the archive will have undefined symbols.
344550806d53Smrg	if test "$allow_undefined" = yes; then
344650806d53Smrg	  if test "$allow_undefined_flag" = unsupported; then
344750806d53Smrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
344850806d53Smrg	    build_libtool_libs=no
344950806d53Smrg	    build_old_libs=yes
345050806d53Smrg	  fi
345150806d53Smrg	else
345250806d53Smrg	  # Don't allow undefined symbols.
345350806d53Smrg	  allow_undefined_flag="$no_undefined_flag"
345450806d53Smrg	fi
345550806d53Smrg      fi
345650806d53Smrg
345750806d53Smrg      if test "$mode" != relink; then
345850806d53Smrg	# Remove our outputs, but don't remove object files since they
345950806d53Smrg	# may have been created when compiling PIC objects.
346050806d53Smrg	removelist=
346150806d53Smrg	tempremovelist=`$echo "$output_objdir/*"`
346250806d53Smrg	for p in $tempremovelist; do
346350806d53Smrg	  case $p in
346450806d53Smrg	    *.$objext)
346550806d53Smrg	       ;;
346650806d53Smrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
346750806d53Smrg	       if test "X$precious_files_regex" != "X"; then
346850806d53Smrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
346950806d53Smrg	         then
347050806d53Smrg		   continue
347150806d53Smrg		 fi
347250806d53Smrg	       fi
347350806d53Smrg	       removelist="$removelist $p"
347450806d53Smrg	       ;;
347550806d53Smrg	    *) ;;
347650806d53Smrg	  esac
347750806d53Smrg	done
347850806d53Smrg	if test -n "$removelist"; then
347950806d53Smrg	  $show "${rm}r $removelist"
348050806d53Smrg	  $run ${rm}r $removelist
348150806d53Smrg	fi
348250806d53Smrg      fi
348350806d53Smrg
348450806d53Smrg      # Now set the variables for building old libraries.
348550806d53Smrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
348650806d53Smrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
348750806d53Smrg
348850806d53Smrg	# Transform .lo files to .o files.
348950806d53Smrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
349050806d53Smrg      fi
349150806d53Smrg
349250806d53Smrg      # Eliminate all temporary directories.
34937965d9acSmrg      #for path in $notinst_path; do
34947965d9acSmrg      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
34957965d9acSmrg      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
34967965d9acSmrg      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
34977965d9acSmrg      #done
349850806d53Smrg
349950806d53Smrg      if test -n "$xrpath"; then
350050806d53Smrg	# If the user specified any rpath flags, then add them.
350150806d53Smrg	temp_xrpath=
350250806d53Smrg	for libdir in $xrpath; do
350350806d53Smrg	  temp_xrpath="$temp_xrpath -R$libdir"
350450806d53Smrg	  case "$finalize_rpath " in
350550806d53Smrg	  *" $libdir "*) ;;
350650806d53Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
350750806d53Smrg	  esac
350850806d53Smrg	done
350950806d53Smrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
351050806d53Smrg	  dependency_libs="$temp_xrpath $dependency_libs"
351150806d53Smrg	fi
351250806d53Smrg      fi
351350806d53Smrg
351450806d53Smrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
351550806d53Smrg      old_dlfiles="$dlfiles"
351650806d53Smrg      dlfiles=
351750806d53Smrg      for lib in $old_dlfiles; do
351850806d53Smrg	case " $dlprefiles $dlfiles " in
351950806d53Smrg	*" $lib "*) ;;
352050806d53Smrg	*) dlfiles="$dlfiles $lib" ;;
352150806d53Smrg	esac
352250806d53Smrg      done
352350806d53Smrg
352450806d53Smrg      # Make sure dlprefiles contains only unique files
352550806d53Smrg      old_dlprefiles="$dlprefiles"
352650806d53Smrg      dlprefiles=
352750806d53Smrg      for lib in $old_dlprefiles; do
352850806d53Smrg	case "$dlprefiles " in
352950806d53Smrg	*" $lib "*) ;;
353050806d53Smrg	*) dlprefiles="$dlprefiles $lib" ;;
353150806d53Smrg	esac
353250806d53Smrg      done
353350806d53Smrg
353450806d53Smrg      if test "$build_libtool_libs" = yes; then
353550806d53Smrg	if test -n "$rpath"; then
353650806d53Smrg	  case $host in
353750806d53Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
353850806d53Smrg	    # these systems don't actually have a c library (as such)!
353950806d53Smrg	    ;;
354050806d53Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
354150806d53Smrg	    # Rhapsody C library is in the System framework
354250806d53Smrg	    deplibs="$deplibs -framework System"
354350806d53Smrg	    ;;
354450806d53Smrg	  *-*-netbsd*)
354550806d53Smrg	    # Don't link with libc until the a.out ld.so is fixed.
354650806d53Smrg	    ;;
354750806d53Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
354850806d53Smrg	    # Do not include libc due to us having libc/libc_r.
354950806d53Smrg	    ;;
355050806d53Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
355150806d53Smrg	    # Causes problems with __ctype
355250806d53Smrg	    ;;
355350806d53Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
355450806d53Smrg	    # Compiler inserts libc in the correct place for threads to work
355550806d53Smrg	    ;;
355650806d53Smrg 	  *)
355750806d53Smrg	    # Add libc to deplibs on all other systems if necessary.
355850806d53Smrg	    if test "$build_libtool_need_lc" = "yes"; then
355950806d53Smrg	      deplibs="$deplibs -lc"
356050806d53Smrg	    fi
356150806d53Smrg	    ;;
356250806d53Smrg	  esac
356350806d53Smrg	fi
356450806d53Smrg
356550806d53Smrg	# Transform deplibs into only deplibs that can be linked in shared.
356650806d53Smrg	name_save=$name
356750806d53Smrg	libname_save=$libname
356850806d53Smrg	release_save=$release
356950806d53Smrg	versuffix_save=$versuffix
357050806d53Smrg	major_save=$major
357150806d53Smrg	# I'm not sure if I'm treating the release correctly.  I think
357250806d53Smrg	# release should show up in the -l (ie -lgmp5) so we don't want to
357350806d53Smrg	# add it in twice.  Is that correct?
357450806d53Smrg	release=""
357550806d53Smrg	versuffix=""
357650806d53Smrg	major=""
357750806d53Smrg	newdeplibs=
357850806d53Smrg	droppeddeps=no
357950806d53Smrg	case $deplibs_check_method in
358050806d53Smrg	pass_all)
358150806d53Smrg	  # Don't check for shared/static.  Everything works.
358250806d53Smrg	  # This might be a little naive.  We might want to check
358350806d53Smrg	  # whether the library exists or not.  But this is on
358450806d53Smrg	  # osf3 & osf4 and I'm not really sure... Just
358550806d53Smrg	  # implementing what was already the behavior.
358650806d53Smrg	  newdeplibs=$deplibs
358750806d53Smrg	  ;;
358850806d53Smrg	test_compile)
358950806d53Smrg	  # This code stresses the "libraries are programs" paradigm to its
359050806d53Smrg	  # limits. Maybe even breaks it.  We compile a program, linking it
359150806d53Smrg	  # against the deplibs as a proxy for the library.  Then we can check
359250806d53Smrg	  # whether they linked in statically or dynamically with ldd.
359350806d53Smrg	  $rm conftest.c
359450806d53Smrg	  cat > conftest.c <<EOF
359550806d53Smrg	  int main() { return 0; }
359650806d53SmrgEOF
359750806d53Smrg	  $rm conftest
35987965d9acSmrg	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
359950806d53Smrg	    ldd_output=`ldd conftest`
360050806d53Smrg	    for i in $deplibs; do
360150806d53Smrg	      name=`expr $i : '-l\(.*\)'`
360250806d53Smrg	      # If $name is empty we are operating on a -L argument.
360350806d53Smrg              if test "$name" != "" && test "$name" != "0"; then
360450806d53Smrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
360550806d53Smrg		  case " $predeps $postdeps " in
360650806d53Smrg		  *" $i "*)
360750806d53Smrg		    newdeplibs="$newdeplibs $i"
360850806d53Smrg		    i=""
360950806d53Smrg		    ;;
361050806d53Smrg		  esac
361150806d53Smrg	        fi
361250806d53Smrg		if test -n "$i" ; then
361350806d53Smrg		  libname=`eval \\$echo \"$libname_spec\"`
361450806d53Smrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
361550806d53Smrg		  set dummy $deplib_matches
361650806d53Smrg		  deplib_match=$2
361750806d53Smrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
361850806d53Smrg		    newdeplibs="$newdeplibs $i"
361950806d53Smrg		  else
362050806d53Smrg		    droppeddeps=yes
362150806d53Smrg		    $echo
362250806d53Smrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
362350806d53Smrg		    $echo "*** I have the capability to make that library automatically link in when"
362450806d53Smrg		    $echo "*** you link to this library.  But I can only do this if you have a"
362550806d53Smrg		    $echo "*** shared version of the library, which I believe you do not have"
362650806d53Smrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
362750806d53Smrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
362850806d53Smrg		  fi
362950806d53Smrg		fi
363050806d53Smrg	      else
363150806d53Smrg		newdeplibs="$newdeplibs $i"
363250806d53Smrg	      fi
363350806d53Smrg	    done
363450806d53Smrg	  else
363550806d53Smrg	    # Error occurred in the first compile.  Let's try to salvage
363650806d53Smrg	    # the situation: Compile a separate program for each library.
363750806d53Smrg	    for i in $deplibs; do
363850806d53Smrg	      name=`expr $i : '-l\(.*\)'`
363950806d53Smrg	      # If $name is empty we are operating on a -L argument.
364050806d53Smrg              if test "$name" != "" && test "$name" != "0"; then
364150806d53Smrg		$rm conftest
364250806d53Smrg		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
364350806d53Smrg		  ldd_output=`ldd conftest`
364450806d53Smrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
364550806d53Smrg		    case " $predeps $postdeps " in
364650806d53Smrg		    *" $i "*)
364750806d53Smrg		      newdeplibs="$newdeplibs $i"
364850806d53Smrg		      i=""
364950806d53Smrg		      ;;
365050806d53Smrg		    esac
365150806d53Smrg		  fi
365250806d53Smrg		  if test -n "$i" ; then
365350806d53Smrg		    libname=`eval \\$echo \"$libname_spec\"`
365450806d53Smrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
365550806d53Smrg		    set dummy $deplib_matches
365650806d53Smrg		    deplib_match=$2
365750806d53Smrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
365850806d53Smrg		      newdeplibs="$newdeplibs $i"
365950806d53Smrg		    else
366050806d53Smrg		      droppeddeps=yes
366150806d53Smrg		      $echo
366250806d53Smrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
366350806d53Smrg		      $echo "*** I have the capability to make that library automatically link in when"
366450806d53Smrg		      $echo "*** you link to this library.  But I can only do this if you have a"
366550806d53Smrg		      $echo "*** shared version of the library, which you do not appear to have"
366650806d53Smrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
366750806d53Smrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
366850806d53Smrg		    fi
366950806d53Smrg		  fi
367050806d53Smrg		else
367150806d53Smrg		  droppeddeps=yes
367250806d53Smrg		  $echo
367350806d53Smrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
367450806d53Smrg		  $echo "*** make it link in!  You will probably need to install it or some"
367550806d53Smrg		  $echo "*** library that it depends on before this library will be fully"
367650806d53Smrg		  $echo "*** functional.  Installing it before continuing would be even better."
367750806d53Smrg		fi
367850806d53Smrg	      else
367950806d53Smrg		newdeplibs="$newdeplibs $i"
368050806d53Smrg	      fi
368150806d53Smrg	    done
368250806d53Smrg	  fi
368350806d53Smrg	  ;;
368450806d53Smrg	file_magic*)
368550806d53Smrg	  set dummy $deplibs_check_method
368650806d53Smrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
368750806d53Smrg	  for a_deplib in $deplibs; do
368850806d53Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
368950806d53Smrg	    # If $name is empty we are operating on a -L argument.
369050806d53Smrg            if test "$name" != "" && test  "$name" != "0"; then
369150806d53Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
369250806d53Smrg		case " $predeps $postdeps " in
369350806d53Smrg		*" $a_deplib "*)
369450806d53Smrg		  newdeplibs="$newdeplibs $a_deplib"
369550806d53Smrg		  a_deplib=""
369650806d53Smrg		  ;;
369750806d53Smrg		esac
369850806d53Smrg	      fi
369950806d53Smrg	      if test -n "$a_deplib" ; then
370050806d53Smrg		libname=`eval \\$echo \"$libname_spec\"`
370150806d53Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
370250806d53Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
370350806d53Smrg		  for potent_lib in $potential_libs; do
370450806d53Smrg		      # Follow soft links.
370550806d53Smrg		      if ls -lLd "$potent_lib" 2>/dev/null \
370650806d53Smrg			 | grep " -> " >/dev/null; then
370750806d53Smrg			continue
370850806d53Smrg		      fi
370950806d53Smrg		      # The statement above tries to avoid entering an
371050806d53Smrg		      # endless loop below, in case of cyclic links.
371150806d53Smrg		      # We might still enter an endless loop, since a link
371250806d53Smrg		      # loop can be closed while we follow links,
371350806d53Smrg		      # but so what?
371450806d53Smrg		      potlib="$potent_lib"
371550806d53Smrg		      while test -h "$potlib" 2>/dev/null; do
371650806d53Smrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
371750806d53Smrg			case $potliblink in
371850806d53Smrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
371950806d53Smrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
372050806d53Smrg			esac
372150806d53Smrg		      done
372250806d53Smrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
372350806d53Smrg			 | ${SED} 10q \
372450806d53Smrg			 | $EGREP "$file_magic_regex" > /dev/null; then
372550806d53Smrg			newdeplibs="$newdeplibs $a_deplib"
372650806d53Smrg			a_deplib=""
372750806d53Smrg			break 2
372850806d53Smrg		      fi
372950806d53Smrg		  done
373050806d53Smrg		done
373150806d53Smrg	      fi
373250806d53Smrg	      if test -n "$a_deplib" ; then
373350806d53Smrg		droppeddeps=yes
373450806d53Smrg		$echo
373550806d53Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
373650806d53Smrg		$echo "*** I have the capability to make that library automatically link in when"
373750806d53Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
373850806d53Smrg		$echo "*** shared version of the library, which you do not appear to have"
373950806d53Smrg		$echo "*** because I did check the linker path looking for a file starting"
374050806d53Smrg		if test -z "$potlib" ; then
374150806d53Smrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
374250806d53Smrg		else
374350806d53Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
374450806d53Smrg		  $echo "*** using a file magic. Last file checked: $potlib"
374550806d53Smrg		fi
374650806d53Smrg	      fi
374750806d53Smrg	    else
374850806d53Smrg	      # Add a -L argument.
374950806d53Smrg	      newdeplibs="$newdeplibs $a_deplib"
375050806d53Smrg	    fi
375150806d53Smrg	  done # Gone through all deplibs.
375250806d53Smrg	  ;;
375350806d53Smrg	match_pattern*)
375450806d53Smrg	  set dummy $deplibs_check_method
375550806d53Smrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
375650806d53Smrg	  for a_deplib in $deplibs; do
375750806d53Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
375850806d53Smrg	    # If $name is empty we are operating on a -L argument.
375950806d53Smrg	    if test -n "$name" && test "$name" != "0"; then
376050806d53Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
376150806d53Smrg		case " $predeps $postdeps " in
376250806d53Smrg		*" $a_deplib "*)
376350806d53Smrg		  newdeplibs="$newdeplibs $a_deplib"
376450806d53Smrg		  a_deplib=""
376550806d53Smrg		  ;;
376650806d53Smrg		esac
376750806d53Smrg	      fi
376850806d53Smrg	      if test -n "$a_deplib" ; then
376950806d53Smrg		libname=`eval \\$echo \"$libname_spec\"`
377050806d53Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
377150806d53Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
377250806d53Smrg		  for potent_lib in $potential_libs; do
377350806d53Smrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
377450806d53Smrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
377550806d53Smrg		        | ${SED} 10q \
377650806d53Smrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
377750806d53Smrg		      newdeplibs="$newdeplibs $a_deplib"
377850806d53Smrg		      a_deplib=""
377950806d53Smrg		      break 2
378050806d53Smrg		    fi
378150806d53Smrg		  done
378250806d53Smrg		done
378350806d53Smrg	      fi
378450806d53Smrg	      if test -n "$a_deplib" ; then
378550806d53Smrg		droppeddeps=yes
378650806d53Smrg		$echo
378750806d53Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
378850806d53Smrg		$echo "*** I have the capability to make that library automatically link in when"
378950806d53Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
379050806d53Smrg		$echo "*** shared version of the library, which you do not appear to have"
379150806d53Smrg		$echo "*** because I did check the linker path looking for a file starting"
379250806d53Smrg		if test -z "$potlib" ; then
379350806d53Smrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
379450806d53Smrg		else
379550806d53Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
379650806d53Smrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
379750806d53Smrg		fi
379850806d53Smrg	      fi
379950806d53Smrg	    else
380050806d53Smrg	      # Add a -L argument.
380150806d53Smrg	      newdeplibs="$newdeplibs $a_deplib"
380250806d53Smrg	    fi
380350806d53Smrg	  done # Gone through all deplibs.
380450806d53Smrg	  ;;
380550806d53Smrg	none | unknown | *)
380650806d53Smrg	  newdeplibs=""
380750806d53Smrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
380850806d53Smrg	    -e 's/ -[LR][^ ]*//g'`
380950806d53Smrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
381050806d53Smrg	    for i in $predeps $postdeps ; do
381150806d53Smrg	      # can't use Xsed below, because $i might contain '/'
381250806d53Smrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
381350806d53Smrg	    done
381450806d53Smrg	  fi
381550806d53Smrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
381650806d53Smrg	    | grep . >/dev/null; then
381750806d53Smrg	    $echo
381850806d53Smrg	    if test "X$deplibs_check_method" = "Xnone"; then
381950806d53Smrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
382050806d53Smrg	    else
382150806d53Smrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
382250806d53Smrg	    fi
382350806d53Smrg	    $echo "*** All declared inter-library dependencies are being dropped."
382450806d53Smrg	    droppeddeps=yes
382550806d53Smrg	  fi
382650806d53Smrg	  ;;
382750806d53Smrg	esac
382850806d53Smrg	versuffix=$versuffix_save
382950806d53Smrg	major=$major_save
383050806d53Smrg	release=$release_save
383150806d53Smrg	libname=$libname_save
383250806d53Smrg	name=$name_save
383350806d53Smrg
383450806d53Smrg	case $host in
383550806d53Smrg	*-*-rhapsody* | *-*-darwin1.[012])
383650806d53Smrg	  # On Rhapsody replace the C library is the System framework
383750806d53Smrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
383850806d53Smrg	  ;;
383950806d53Smrg	esac
384050806d53Smrg
384150806d53Smrg	if test "$droppeddeps" = yes; then
384250806d53Smrg	  if test "$module" = yes; then
384350806d53Smrg	    $echo
384450806d53Smrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
384550806d53Smrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
384650806d53Smrg	    $echo "*** a static module, that should work as long as the dlopening"
384750806d53Smrg	    $echo "*** application is linked with the -dlopen flag."
384850806d53Smrg	    if test -z "$global_symbol_pipe"; then
384950806d53Smrg	      $echo
385050806d53Smrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
385150806d53Smrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
385250806d53Smrg	      $echo "*** not find such a program.  So, this module is probably useless."
385350806d53Smrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
385450806d53Smrg	    fi
385550806d53Smrg	    if test "$build_old_libs" = no; then
385650806d53Smrg	      oldlibs="$output_objdir/$libname.$libext"
385750806d53Smrg	      build_libtool_libs=module
385850806d53Smrg	      build_old_libs=yes
385950806d53Smrg	    else
386050806d53Smrg	      build_libtool_libs=no
386150806d53Smrg	    fi
386250806d53Smrg	  else
386350806d53Smrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
386450806d53Smrg	    $echo "*** automatically added whenever a program is linked with this library"
386550806d53Smrg	    $echo "*** or is declared to -dlopen it."
386650806d53Smrg
386750806d53Smrg	    if test "$allow_undefined" = no; then
386850806d53Smrg	      $echo
386950806d53Smrg	      $echo "*** Since this library must not contain undefined symbols,"
387050806d53Smrg	      $echo "*** because either the platform does not support them or"
387150806d53Smrg	      $echo "*** it was explicitly requested with -no-undefined,"
387250806d53Smrg	      $echo "*** libtool will only create a static version of it."
387350806d53Smrg	      if test "$build_old_libs" = no; then
387450806d53Smrg		oldlibs="$output_objdir/$libname.$libext"
387550806d53Smrg		build_libtool_libs=module
387650806d53Smrg		build_old_libs=yes
387750806d53Smrg	      else
387850806d53Smrg		build_libtool_libs=no
387950806d53Smrg	      fi
388050806d53Smrg	    fi
388150806d53Smrg	  fi
388250806d53Smrg	fi
388350806d53Smrg	# Done checking deplibs!
388450806d53Smrg	deplibs=$newdeplibs
388550806d53Smrg      fi
388650806d53Smrg
388750806d53Smrg
388850806d53Smrg      # move library search paths that coincide with paths to not yet
388950806d53Smrg      # installed libraries to the beginning of the library search list
389050806d53Smrg      new_libs=
389150806d53Smrg      for path in $notinst_path; do
389250806d53Smrg	case " $new_libs " in
389350806d53Smrg	*" -L$path/$objdir "*) ;;
389450806d53Smrg	*)
389550806d53Smrg	  case " $deplibs " in
389650806d53Smrg	  *" -L$path/$objdir "*)
389750806d53Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
389850806d53Smrg	  esac
389950806d53Smrg	  ;;
390050806d53Smrg	esac
390150806d53Smrg      done
390250806d53Smrg      for deplib in $deplibs; do
390350806d53Smrg	case $deplib in
390450806d53Smrg	-L*)
390550806d53Smrg	  case " $new_libs " in
390650806d53Smrg	  *" $deplib "*) ;;
390750806d53Smrg	  *) new_libs="$new_libs $deplib" ;;
390850806d53Smrg	  esac
390950806d53Smrg	  ;;
391050806d53Smrg	*) new_libs="$new_libs $deplib" ;;
391150806d53Smrg	esac
391250806d53Smrg      done
391350806d53Smrg      deplibs="$new_libs"
391450806d53Smrg
391550806d53Smrg
391650806d53Smrg      # All the library-specific variables (install_libdir is set above).
391750806d53Smrg      library_names=
391850806d53Smrg      old_library=
391950806d53Smrg      dlname=
392050806d53Smrg
392150806d53Smrg      # Test again, we may have decided not to build it any more
392250806d53Smrg      if test "$build_libtool_libs" = yes; then
392350806d53Smrg	if test "$hardcode_into_libs" = yes; then
392450806d53Smrg	  # Hardcode the library paths
392550806d53Smrg	  hardcode_libdirs=
392650806d53Smrg	  dep_rpath=
392750806d53Smrg	  rpath="$finalize_rpath"
392850806d53Smrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
392950806d53Smrg	  for libdir in $rpath; do
393050806d53Smrg	    if test -n "$hardcode_libdir_flag_spec"; then
393150806d53Smrg	      if test -n "$hardcode_libdir_separator"; then
393250806d53Smrg		if test -z "$hardcode_libdirs"; then
393350806d53Smrg		  hardcode_libdirs="$libdir"
393450806d53Smrg		else
393550806d53Smrg		  # Just accumulate the unique libdirs.
393650806d53Smrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
393750806d53Smrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
393850806d53Smrg		    ;;
393950806d53Smrg		  *)
394050806d53Smrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
394150806d53Smrg		    ;;
394250806d53Smrg		  esac
394350806d53Smrg		fi
394450806d53Smrg	      else
394550806d53Smrg		eval flag=\"$hardcode_libdir_flag_spec\"
394650806d53Smrg		dep_rpath="$dep_rpath $flag"
394750806d53Smrg	      fi
394850806d53Smrg	    elif test -n "$runpath_var"; then
394950806d53Smrg	      case "$perm_rpath " in
395050806d53Smrg	      *" $libdir "*) ;;
395150806d53Smrg	      *) perm_rpath="$perm_rpath $libdir" ;;
395250806d53Smrg	      esac
395350806d53Smrg	    fi
395450806d53Smrg	  done
395550806d53Smrg	  # Substitute the hardcoded libdirs into the rpath.
395650806d53Smrg	  if test -n "$hardcode_libdir_separator" &&
395750806d53Smrg	     test -n "$hardcode_libdirs"; then
395850806d53Smrg	    libdir="$hardcode_libdirs"
395950806d53Smrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
39607965d9acSmrg	      case $archive_cmds in
39617965d9acSmrg	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
39627965d9acSmrg	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
39637965d9acSmrg	      esac
396450806d53Smrg	    else
396550806d53Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
396650806d53Smrg	    fi
396750806d53Smrg	  fi
396850806d53Smrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
396950806d53Smrg	    # We should set the runpath_var.
397050806d53Smrg	    rpath=
397150806d53Smrg	    for dir in $perm_rpath; do
397250806d53Smrg	      rpath="$rpath$dir:"
397350806d53Smrg	    done
397450806d53Smrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
397550806d53Smrg	  fi
397650806d53Smrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
397750806d53Smrg	fi
397850806d53Smrg
397950806d53Smrg	shlibpath="$finalize_shlibpath"
398050806d53Smrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
398150806d53Smrg	if test -n "$shlibpath"; then
398250806d53Smrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
398350806d53Smrg	fi
398450806d53Smrg
398550806d53Smrg	# Get the real and link names of the library.
398650806d53Smrg	eval shared_ext=\"$shrext_cmds\"
398750806d53Smrg	eval library_names=\"$library_names_spec\"
398850806d53Smrg	set dummy $library_names
398950806d53Smrg	realname="$2"
399050806d53Smrg	shift; shift
399150806d53Smrg
399250806d53Smrg	if test -n "$soname_spec"; then
399350806d53Smrg	  eval soname=\"$soname_spec\"
399450806d53Smrg	else
399550806d53Smrg	  soname="$realname"
399650806d53Smrg	fi
399750806d53Smrg	if test -z "$dlname"; then
399850806d53Smrg	  dlname=$soname
399950806d53Smrg	fi
400050806d53Smrg
400150806d53Smrg	lib="$output_objdir/$realname"
400250806d53Smrg	linknames=
400350806d53Smrg	for link
400450806d53Smrg	do
400550806d53Smrg	  linknames="$linknames $link"
400650806d53Smrg	done
400750806d53Smrg
400850806d53Smrg	# Use standard objects if they are pic
400950806d53Smrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
401050806d53Smrg
401150806d53Smrg	# Prepare the list of exported symbols
401250806d53Smrg	if test -z "$export_symbols"; then
401350806d53Smrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
401450806d53Smrg	    $show "generating symbol list for \`$libname.la'"
401550806d53Smrg	    export_symbols="$output_objdir/$libname.exp"
401650806d53Smrg	    $run $rm $export_symbols
401750806d53Smrg	    cmds=$export_symbols_cmds
401850806d53Smrg	    save_ifs="$IFS"; IFS='~'
401950806d53Smrg	    for cmd in $cmds; do
402050806d53Smrg	      IFS="$save_ifs"
402150806d53Smrg	      eval cmd=\"$cmd\"
402250806d53Smrg	      if len=`expr "X$cmd" : ".*"` &&
402350806d53Smrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
402450806d53Smrg	        $show "$cmd"
402550806d53Smrg	        $run eval "$cmd" || exit $?
402650806d53Smrg	        skipped_export=false
402750806d53Smrg	      else
402850806d53Smrg	        # The command line is too long to execute in one step.
402950806d53Smrg	        $show "using reloadable object file for export list..."
403050806d53Smrg	        skipped_export=:
403150806d53Smrg		# Break out early, otherwise skipped_export may be
403250806d53Smrg		# set to false by a later but shorter cmd.
403350806d53Smrg		break
403450806d53Smrg	      fi
403550806d53Smrg	    done
403650806d53Smrg	    IFS="$save_ifs"
403750806d53Smrg	    if test -n "$export_symbols_regex"; then
403850806d53Smrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
403950806d53Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
404050806d53Smrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
404150806d53Smrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
404250806d53Smrg	    fi
404350806d53Smrg	  fi
404450806d53Smrg	fi
404550806d53Smrg
404650806d53Smrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
404750806d53Smrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
404850806d53Smrg	fi
404950806d53Smrg
405050806d53Smrg	tmp_deplibs=
405150806d53Smrg	for test_deplib in $deplibs; do
405250806d53Smrg		case " $convenience " in
405350806d53Smrg		*" $test_deplib "*) ;;
405450806d53Smrg		*)
405550806d53Smrg			tmp_deplibs="$tmp_deplibs $test_deplib"
405650806d53Smrg			;;
405750806d53Smrg		esac
405850806d53Smrg	done
405950806d53Smrg	deplibs="$tmp_deplibs"
406050806d53Smrg
406150806d53Smrg	if test -n "$convenience"; then
406250806d53Smrg	  if test -n "$whole_archive_flag_spec"; then
406350806d53Smrg	    save_libobjs=$libobjs
406450806d53Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
406550806d53Smrg	  else
406650806d53Smrg	    gentop="$output_objdir/${outputname}x"
406750806d53Smrg	    generated="$generated $gentop"
406850806d53Smrg
406950806d53Smrg	    func_extract_archives $gentop $convenience
407050806d53Smrg	    libobjs="$libobjs $func_extract_archives_result"
407150806d53Smrg	  fi
407250806d53Smrg	fi
407350806d53Smrg	
407450806d53Smrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
407550806d53Smrg	  eval flag=\"$thread_safe_flag_spec\"
407650806d53Smrg	  linker_flags="$linker_flags $flag"
407750806d53Smrg	fi
407850806d53Smrg
407950806d53Smrg	# Make a backup of the uninstalled library when relinking
408050806d53Smrg	if test "$mode" = relink; then
408150806d53Smrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
408250806d53Smrg	fi
408350806d53Smrg
408450806d53Smrg	# Do each of the archive commands.
408550806d53Smrg	if test "$module" = yes && test -n "$module_cmds" ; then
408650806d53Smrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
408750806d53Smrg	    eval test_cmds=\"$module_expsym_cmds\"
408850806d53Smrg	    cmds=$module_expsym_cmds
408950806d53Smrg	  else
409050806d53Smrg	    eval test_cmds=\"$module_cmds\"
409150806d53Smrg	    cmds=$module_cmds
409250806d53Smrg	  fi
409350806d53Smrg	else
409450806d53Smrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
409550806d53Smrg	  eval test_cmds=\"$archive_expsym_cmds\"
409650806d53Smrg	  cmds=$archive_expsym_cmds
409750806d53Smrg	else
409850806d53Smrg	  eval test_cmds=\"$archive_cmds\"
409950806d53Smrg	  cmds=$archive_cmds
410050806d53Smrg	  fi
410150806d53Smrg	fi
410250806d53Smrg
410350806d53Smrg	if test "X$skipped_export" != "X:" &&
410450806d53Smrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
410550806d53Smrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
410650806d53Smrg	  :
410750806d53Smrg	else
410850806d53Smrg	  # The command line is too long to link in one step, link piecewise.
410950806d53Smrg	  $echo "creating reloadable object files..."
411050806d53Smrg
411150806d53Smrg	  # Save the value of $output and $libobjs because we want to
411250806d53Smrg	  # use them later.  If we have whole_archive_flag_spec, we
411350806d53Smrg	  # want to use save_libobjs as it was before
411450806d53Smrg	  # whole_archive_flag_spec was expanded, because we can't
411550806d53Smrg	  # assume the linker understands whole_archive_flag_spec.
411650806d53Smrg	  # This may have to be revisited, in case too many
411750806d53Smrg	  # convenience libraries get linked in and end up exceeding
411850806d53Smrg	  # the spec.
411950806d53Smrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
412050806d53Smrg	    save_libobjs=$libobjs
412150806d53Smrg	  fi
412250806d53Smrg	  save_output=$output
412350806d53Smrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
412450806d53Smrg
412550806d53Smrg	  # Clear the reloadable object creation command queue and
412650806d53Smrg	  # initialize k to one.
412750806d53Smrg	  test_cmds=
412850806d53Smrg	  concat_cmds=
412950806d53Smrg	  objlist=
413050806d53Smrg	  delfiles=
413150806d53Smrg	  last_robj=
413250806d53Smrg	  k=1
413350806d53Smrg	  output=$output_objdir/$output_la-${k}.$objext
413450806d53Smrg	  # Loop over the list of objects to be linked.
413550806d53Smrg	  for obj in $save_libobjs
413650806d53Smrg	  do
413750806d53Smrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
413850806d53Smrg	    if test "X$objlist" = X ||
413950806d53Smrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
414050806d53Smrg		 test "$len" -le "$max_cmd_len"; }; then
414150806d53Smrg	      objlist="$objlist $obj"
414250806d53Smrg	    else
414350806d53Smrg	      # The command $test_cmds is almost too long, add a
414450806d53Smrg	      # command to the queue.
414550806d53Smrg	      if test "$k" -eq 1 ; then
414650806d53Smrg		# The first file doesn't have a previous command to add.
414750806d53Smrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
414850806d53Smrg	      else
414950806d53Smrg		# All subsequent reloadable object files will link in
415050806d53Smrg		# the last one created.
415150806d53Smrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
415250806d53Smrg	      fi
415350806d53Smrg	      last_robj=$output_objdir/$output_la-${k}.$objext
415450806d53Smrg	      k=`expr $k + 1`
415550806d53Smrg	      output=$output_objdir/$output_la-${k}.$objext
415650806d53Smrg	      objlist=$obj
415750806d53Smrg	      len=1
415850806d53Smrg	    fi
415950806d53Smrg	  done
416050806d53Smrg	  # Handle the remaining objects by creating one last
416150806d53Smrg	  # reloadable object file.  All subsequent reloadable object
416250806d53Smrg	  # files will link in the last one created.
416350806d53Smrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
416450806d53Smrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
416550806d53Smrg
416650806d53Smrg	  if ${skipped_export-false}; then
416750806d53Smrg	    $show "generating symbol list for \`$libname.la'"
416850806d53Smrg	    export_symbols="$output_objdir/$libname.exp"
416950806d53Smrg	    $run $rm $export_symbols
417050806d53Smrg	    libobjs=$output
417150806d53Smrg	    # Append the command to create the export file.
417250806d53Smrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
417350806d53Smrg          fi
417450806d53Smrg
417550806d53Smrg	  # Set up a command to remove the reloadable object files
417650806d53Smrg	  # after they are used.
417750806d53Smrg	  i=0
417850806d53Smrg	  while test "$i" -lt "$k"
417950806d53Smrg	  do
418050806d53Smrg	    i=`expr $i + 1`
418150806d53Smrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
418250806d53Smrg	  done
418350806d53Smrg
418450806d53Smrg	  $echo "creating a temporary reloadable object file: $output"
418550806d53Smrg
418650806d53Smrg	  # Loop through the commands generated above and execute them.
418750806d53Smrg	  save_ifs="$IFS"; IFS='~'
418850806d53Smrg	  for cmd in $concat_cmds; do
418950806d53Smrg	    IFS="$save_ifs"
419050806d53Smrg	    $show "$cmd"
419150806d53Smrg	    $run eval "$cmd" || exit $?
419250806d53Smrg	  done
419350806d53Smrg	  IFS="$save_ifs"
419450806d53Smrg
419550806d53Smrg	  libobjs=$output
419650806d53Smrg	  # Restore the value of output.
419750806d53Smrg	  output=$save_output
419850806d53Smrg
419950806d53Smrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
420050806d53Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
420150806d53Smrg	  fi
420250806d53Smrg	  # Expand the library linking commands again to reset the
420350806d53Smrg	  # value of $libobjs for piecewise linking.
420450806d53Smrg
420550806d53Smrg	  # Do each of the archive commands.
420650806d53Smrg	  if test "$module" = yes && test -n "$module_cmds" ; then
420750806d53Smrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
420850806d53Smrg	      cmds=$module_expsym_cmds
420950806d53Smrg	    else
421050806d53Smrg	      cmds=$module_cmds
421150806d53Smrg	    fi
421250806d53Smrg	  else
421350806d53Smrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
421450806d53Smrg	    cmds=$archive_expsym_cmds
421550806d53Smrg	  else
421650806d53Smrg	    cmds=$archive_cmds
421750806d53Smrg	    fi
421850806d53Smrg	  fi
421950806d53Smrg
422050806d53Smrg	  # Append the command to remove the reloadable object files
422150806d53Smrg	  # to the just-reset $cmds.
422250806d53Smrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
422350806d53Smrg	fi
422450806d53Smrg	save_ifs="$IFS"; IFS='~'
422550806d53Smrg	for cmd in $cmds; do
422650806d53Smrg	  IFS="$save_ifs"
422750806d53Smrg	  eval cmd=\"$cmd\"
422850806d53Smrg	  $show "$cmd"
422950806d53Smrg	  $run eval "$cmd" || {
423050806d53Smrg	    lt_exit=$?
423150806d53Smrg
423250806d53Smrg	    # Restore the uninstalled library and exit
423350806d53Smrg	    if test "$mode" = relink; then
423450806d53Smrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
423550806d53Smrg	    fi
423650806d53Smrg
423750806d53Smrg	    exit $lt_exit
423850806d53Smrg	  }
423950806d53Smrg	done
424050806d53Smrg	IFS="$save_ifs"
424150806d53Smrg
424250806d53Smrg	# Restore the uninstalled library and exit
424350806d53Smrg	if test "$mode" = relink; then
424450806d53Smrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
424550806d53Smrg
424650806d53Smrg	  if test -n "$convenience"; then
424750806d53Smrg	    if test -z "$whole_archive_flag_spec"; then
424850806d53Smrg	      $show "${rm}r $gentop"
424950806d53Smrg	      $run ${rm}r "$gentop"
425050806d53Smrg	    fi
425150806d53Smrg	  fi
425250806d53Smrg
425350806d53Smrg	  exit $EXIT_SUCCESS
425450806d53Smrg	fi
425550806d53Smrg
425650806d53Smrg	# Create links to the real library.
425750806d53Smrg	for linkname in $linknames; do
425850806d53Smrg	  if test "$realname" != "$linkname"; then
425950806d53Smrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
426050806d53Smrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
426150806d53Smrg	  fi
426250806d53Smrg	done
426350806d53Smrg
426450806d53Smrg	# If -module or -export-dynamic was specified, set the dlname.
426550806d53Smrg	if test "$module" = yes || test "$export_dynamic" = yes; then
426650806d53Smrg	  # On all known operating systems, these are identical.
426750806d53Smrg	  dlname="$soname"
426850806d53Smrg	fi
426950806d53Smrg      fi
427050806d53Smrg      ;;
427150806d53Smrg
427250806d53Smrg    obj)
42737965d9acSmrg      case " $deplibs" in
42747965d9acSmrg      *\ -l* | *\ -L*)
42757965d9acSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
42767965d9acSmrg      esac
427750806d53Smrg
427850806d53Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
427950806d53Smrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
428050806d53Smrg      fi
428150806d53Smrg
428250806d53Smrg      if test -n "$rpath"; then
428350806d53Smrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
428450806d53Smrg      fi
428550806d53Smrg
428650806d53Smrg      if test -n "$xrpath"; then
428750806d53Smrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
428850806d53Smrg      fi
428950806d53Smrg
429050806d53Smrg      if test -n "$vinfo"; then
429150806d53Smrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
429250806d53Smrg      fi
429350806d53Smrg
429450806d53Smrg      if test -n "$release"; then
429550806d53Smrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
429650806d53Smrg      fi
429750806d53Smrg
429850806d53Smrg      case $output in
429950806d53Smrg      *.lo)
430050806d53Smrg	if test -n "$objs$old_deplibs"; then
430150806d53Smrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
430250806d53Smrg	  exit $EXIT_FAILURE
430350806d53Smrg	fi
430450806d53Smrg	libobj="$output"
430550806d53Smrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
430650806d53Smrg	;;
430750806d53Smrg      *)
430850806d53Smrg	libobj=
430950806d53Smrg	obj="$output"
431050806d53Smrg	;;
431150806d53Smrg      esac
431250806d53Smrg
431350806d53Smrg      # Delete the old objects.
431450806d53Smrg      $run $rm $obj $libobj
431550806d53Smrg
431650806d53Smrg      # Objects from convenience libraries.  This assumes
431750806d53Smrg      # single-version convenience libraries.  Whenever we create
431850806d53Smrg      # different ones for PIC/non-PIC, this we'll have to duplicate
431950806d53Smrg      # the extraction.
432050806d53Smrg      reload_conv_objs=
432150806d53Smrg      gentop=
432250806d53Smrg      # reload_cmds runs $LD directly, so let us get rid of
432350806d53Smrg      # -Wl from whole_archive_flag_spec and hope we can get by with
432450806d53Smrg      # turning comma into space..
432550806d53Smrg      wl=
432650806d53Smrg
432750806d53Smrg      if test -n "$convenience"; then
432850806d53Smrg	if test -n "$whole_archive_flag_spec"; then
432950806d53Smrg	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
43307965d9acSmrg	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
433150806d53Smrg	else
433250806d53Smrg	  gentop="$output_objdir/${obj}x"
433350806d53Smrg	  generated="$generated $gentop"
433450806d53Smrg
433550806d53Smrg	  func_extract_archives $gentop $convenience
433650806d53Smrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
433750806d53Smrg	fi
433850806d53Smrg      fi
433950806d53Smrg
434050806d53Smrg      # Create the old-style object.
434150806d53Smrg      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
434250806d53Smrg
434350806d53Smrg      output="$obj"
434450806d53Smrg      cmds=$reload_cmds
434550806d53Smrg      save_ifs="$IFS"; IFS='~'
434650806d53Smrg      for cmd in $cmds; do
434750806d53Smrg	IFS="$save_ifs"
434850806d53Smrg	eval cmd=\"$cmd\"
434950806d53Smrg	$show "$cmd"
435050806d53Smrg	$run eval "$cmd" || exit $?
435150806d53Smrg      done
435250806d53Smrg      IFS="$save_ifs"
435350806d53Smrg
435450806d53Smrg      # Exit if we aren't doing a library object file.
435550806d53Smrg      if test -z "$libobj"; then
435650806d53Smrg	if test -n "$gentop"; then
435750806d53Smrg	  $show "${rm}r $gentop"
435850806d53Smrg	  $run ${rm}r $gentop
435950806d53Smrg	fi
436050806d53Smrg
436150806d53Smrg	exit $EXIT_SUCCESS
436250806d53Smrg      fi
436350806d53Smrg
436450806d53Smrg      if test "$build_libtool_libs" != yes; then
436550806d53Smrg	if test -n "$gentop"; then
436650806d53Smrg	  $show "${rm}r $gentop"
436750806d53Smrg	  $run ${rm}r $gentop
436850806d53Smrg	fi
436950806d53Smrg
437050806d53Smrg	# Create an invalid libtool object if no PIC, so that we don't
437150806d53Smrg	# accidentally link it into a program.
437250806d53Smrg	# $show "echo timestamp > $libobj"
437350806d53Smrg	# $run eval "echo timestamp > $libobj" || exit $?
437450806d53Smrg	exit $EXIT_SUCCESS
437550806d53Smrg      fi
437650806d53Smrg
437750806d53Smrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
437850806d53Smrg	# Only do commands if we really have different PIC objects.
437950806d53Smrg	reload_objs="$libobjs $reload_conv_objs"
438050806d53Smrg	output="$libobj"
438150806d53Smrg	cmds=$reload_cmds
438250806d53Smrg	save_ifs="$IFS"; IFS='~'
438350806d53Smrg	for cmd in $cmds; do
438450806d53Smrg	  IFS="$save_ifs"
438550806d53Smrg	  eval cmd=\"$cmd\"
438650806d53Smrg	  $show "$cmd"
438750806d53Smrg	  $run eval "$cmd" || exit $?
438850806d53Smrg	done
438950806d53Smrg	IFS="$save_ifs"
439050806d53Smrg      fi
439150806d53Smrg
439250806d53Smrg      if test -n "$gentop"; then
439350806d53Smrg	$show "${rm}r $gentop"
439450806d53Smrg	$run ${rm}r $gentop
439550806d53Smrg      fi
439650806d53Smrg
439750806d53Smrg      exit $EXIT_SUCCESS
439850806d53Smrg      ;;
439950806d53Smrg
440050806d53Smrg    prog)
440150806d53Smrg      case $host in
440250806d53Smrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
440350806d53Smrg      esac
440450806d53Smrg      if test -n "$vinfo"; then
440550806d53Smrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
440650806d53Smrg      fi
440750806d53Smrg
440850806d53Smrg      if test -n "$release"; then
440950806d53Smrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
441050806d53Smrg      fi
441150806d53Smrg
441250806d53Smrg      if test "$preload" = yes; then
441350806d53Smrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
441450806d53Smrg	   test "$dlopen_self_static" = unknown; then
441550806d53Smrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
441650806d53Smrg	fi
441750806d53Smrg      fi
441850806d53Smrg
441950806d53Smrg      case $host in
442050806d53Smrg      *-*-rhapsody* | *-*-darwin1.[012])
442150806d53Smrg	# On Rhapsody replace the C library is the System framework
442250806d53Smrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
442350806d53Smrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
442450806d53Smrg	;;
442550806d53Smrg      esac
442650806d53Smrg
442750806d53Smrg      case $host in
442850806d53Smrg      *darwin*)
442950806d53Smrg        # Don't allow lazy linking, it breaks C++ global constructors
443050806d53Smrg        if test "$tagname" = CXX ; then
443150806d53Smrg        compile_command="$compile_command ${wl}-bind_at_load"
443250806d53Smrg        finalize_command="$finalize_command ${wl}-bind_at_load"
443350806d53Smrg        fi
443450806d53Smrg        ;;
443550806d53Smrg      esac
443650806d53Smrg
443750806d53Smrg
443850806d53Smrg      # move library search paths that coincide with paths to not yet
443950806d53Smrg      # installed libraries to the beginning of the library search list
444050806d53Smrg      new_libs=
444150806d53Smrg      for path in $notinst_path; do
444250806d53Smrg	case " $new_libs " in
444350806d53Smrg	*" -L$path/$objdir "*) ;;
444450806d53Smrg	*)
444550806d53Smrg	  case " $compile_deplibs " in
444650806d53Smrg	  *" -L$path/$objdir "*)
444750806d53Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
444850806d53Smrg	  esac
444950806d53Smrg	  ;;
445050806d53Smrg	esac
445150806d53Smrg      done
445250806d53Smrg      for deplib in $compile_deplibs; do
445350806d53Smrg	case $deplib in
445450806d53Smrg	-L*)
445550806d53Smrg	  case " $new_libs " in
445650806d53Smrg	  *" $deplib "*) ;;
445750806d53Smrg	  *) new_libs="$new_libs $deplib" ;;
445850806d53Smrg	  esac
445950806d53Smrg	  ;;
446050806d53Smrg	*) new_libs="$new_libs $deplib" ;;
446150806d53Smrg	esac
446250806d53Smrg      done
446350806d53Smrg      compile_deplibs="$new_libs"
446450806d53Smrg
446550806d53Smrg
446650806d53Smrg      compile_command="$compile_command $compile_deplibs"
446750806d53Smrg      finalize_command="$finalize_command $finalize_deplibs"
446850806d53Smrg
446950806d53Smrg      if test -n "$rpath$xrpath"; then
447050806d53Smrg	# If the user specified any rpath flags, then add them.
447150806d53Smrg	for libdir in $rpath $xrpath; do
447250806d53Smrg	  # This is the magic to use -rpath.
447350806d53Smrg	  case "$finalize_rpath " in
447450806d53Smrg	  *" $libdir "*) ;;
447550806d53Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
447650806d53Smrg	  esac
447750806d53Smrg	done
447850806d53Smrg      fi
447950806d53Smrg
448050806d53Smrg      # Now hardcode the library paths
448150806d53Smrg      rpath=
448250806d53Smrg      hardcode_libdirs=
448350806d53Smrg      for libdir in $compile_rpath $finalize_rpath; do
448450806d53Smrg	if test -n "$hardcode_libdir_flag_spec"; then
448550806d53Smrg	  if test -n "$hardcode_libdir_separator"; then
448650806d53Smrg	    if test -z "$hardcode_libdirs"; then
448750806d53Smrg	      hardcode_libdirs="$libdir"
448850806d53Smrg	    else
448950806d53Smrg	      # Just accumulate the unique libdirs.
449050806d53Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
449150806d53Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
449250806d53Smrg		;;
449350806d53Smrg	      *)
449450806d53Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
449550806d53Smrg		;;
449650806d53Smrg	      esac
449750806d53Smrg	    fi
449850806d53Smrg	  else
449950806d53Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
450050806d53Smrg	    rpath="$rpath $flag"
450150806d53Smrg	  fi
450250806d53Smrg	elif test -n "$runpath_var"; then
450350806d53Smrg	  case "$perm_rpath " in
450450806d53Smrg	  *" $libdir "*) ;;
450550806d53Smrg	  *) perm_rpath="$perm_rpath $libdir" ;;
450650806d53Smrg	  esac
450750806d53Smrg	fi
450850806d53Smrg	case $host in
450950806d53Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
451050806d53Smrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
451150806d53Smrg	  case :$dllsearchpath: in
451250806d53Smrg	  *":$libdir:"*) ;;
451350806d53Smrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
451450806d53Smrg	  esac
451550806d53Smrg	  case :$dllsearchpath: in
451650806d53Smrg	  *":$testbindir:"*) ;;
451750806d53Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
451850806d53Smrg	  esac
451950806d53Smrg	  ;;
452050806d53Smrg	esac
452150806d53Smrg      done
452250806d53Smrg      # Substitute the hardcoded libdirs into the rpath.
452350806d53Smrg      if test -n "$hardcode_libdir_separator" &&
452450806d53Smrg	 test -n "$hardcode_libdirs"; then
452550806d53Smrg	libdir="$hardcode_libdirs"
452650806d53Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
452750806d53Smrg      fi
452850806d53Smrg      compile_rpath="$rpath"
452950806d53Smrg
453050806d53Smrg      rpath=
453150806d53Smrg      hardcode_libdirs=
453250806d53Smrg      for libdir in $finalize_rpath; do
453350806d53Smrg	if test -n "$hardcode_libdir_flag_spec"; then
453450806d53Smrg	  if test -n "$hardcode_libdir_separator"; then
453550806d53Smrg	    if test -z "$hardcode_libdirs"; then
453650806d53Smrg	      hardcode_libdirs="$libdir"
453750806d53Smrg	    else
453850806d53Smrg	      # Just accumulate the unique libdirs.
453950806d53Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
454050806d53Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
454150806d53Smrg		;;
454250806d53Smrg	      *)
454350806d53Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
454450806d53Smrg		;;
454550806d53Smrg	      esac
454650806d53Smrg	    fi
454750806d53Smrg	  else
454850806d53Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
454950806d53Smrg	    rpath="$rpath $flag"
455050806d53Smrg	  fi
455150806d53Smrg	elif test -n "$runpath_var"; then
455250806d53Smrg	  case "$finalize_perm_rpath " in
455350806d53Smrg	  *" $libdir "*) ;;
455450806d53Smrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
455550806d53Smrg	  esac
455650806d53Smrg	fi
455750806d53Smrg      done
455850806d53Smrg      # Substitute the hardcoded libdirs into the rpath.
455950806d53Smrg      if test -n "$hardcode_libdir_separator" &&
456050806d53Smrg	 test -n "$hardcode_libdirs"; then
456150806d53Smrg	libdir="$hardcode_libdirs"
456250806d53Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
456350806d53Smrg      fi
456450806d53Smrg      finalize_rpath="$rpath"
456550806d53Smrg
456650806d53Smrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
456750806d53Smrg	# Transform all the library objects into standard objects.
456850806d53Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
456950806d53Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
457050806d53Smrg      fi
457150806d53Smrg
457250806d53Smrg      dlsyms=
457350806d53Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
457450806d53Smrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
457550806d53Smrg	  dlsyms="${outputname}S.c"
457650806d53Smrg	else
457750806d53Smrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
457850806d53Smrg	fi
457950806d53Smrg      fi
458050806d53Smrg
458150806d53Smrg      if test -n "$dlsyms"; then
458250806d53Smrg	case $dlsyms in
458350806d53Smrg	"") ;;
458450806d53Smrg	*.c)
458550806d53Smrg	  # Discover the nlist of each of the dlfiles.
458650806d53Smrg	  nlist="$output_objdir/${outputname}.nm"
458750806d53Smrg
458850806d53Smrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
458950806d53Smrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
459050806d53Smrg
459150806d53Smrg	  # Parse the name list into a source file.
459250806d53Smrg	  $show "creating $output_objdir/$dlsyms"
459350806d53Smrg
459450806d53Smrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
459550806d53Smrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
459650806d53Smrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
459750806d53Smrg
459850806d53Smrg#ifdef __cplusplus
459950806d53Smrgextern \"C\" {
460050806d53Smrg#endif
460150806d53Smrg
460250806d53Smrg/* Prevent the only kind of declaration conflicts we can make. */
460350806d53Smrg#define lt_preloaded_symbols some_other_symbol
460450806d53Smrg
460550806d53Smrg/* External symbol declarations for the compiler. */\
460650806d53Smrg"
460750806d53Smrg
460850806d53Smrg	  if test "$dlself" = yes; then
460950806d53Smrg	    $show "generating symbol list for \`$output'"
461050806d53Smrg
461150806d53Smrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
461250806d53Smrg
461350806d53Smrg	    # Add our own program objects to the symbol list.
461450806d53Smrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
461550806d53Smrg	    for arg in $progfiles; do
461650806d53Smrg	      $show "extracting global C symbols from \`$arg'"
461750806d53Smrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
461850806d53Smrg	    done
461950806d53Smrg
462050806d53Smrg	    if test -n "$exclude_expsyms"; then
462150806d53Smrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
462250806d53Smrg	      $run eval '$mv "$nlist"T "$nlist"'
462350806d53Smrg	    fi
462450806d53Smrg
462550806d53Smrg	    if test -n "$export_symbols_regex"; then
462650806d53Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
462750806d53Smrg	      $run eval '$mv "$nlist"T "$nlist"'
462850806d53Smrg	    fi
462950806d53Smrg
463050806d53Smrg	    # Prepare the list of exported symbols
463150806d53Smrg	    if test -z "$export_symbols"; then
463250806d53Smrg	      export_symbols="$output_objdir/$outputname.exp"
463350806d53Smrg	      $run $rm $export_symbols
463450806d53Smrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
463550806d53Smrg              case $host in
463650806d53Smrg              *cygwin* | *mingw* )
463750806d53Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
463850806d53Smrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
463950806d53Smrg                ;;
464050806d53Smrg              esac
464150806d53Smrg	    else
464250806d53Smrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
464350806d53Smrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
464450806d53Smrg	      $run eval 'mv "$nlist"T "$nlist"'
464550806d53Smrg              case $host in
464650806d53Smrg              *cygwin* | *mingw* )
464750806d53Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
464850806d53Smrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
464950806d53Smrg                ;;
465050806d53Smrg              esac
465150806d53Smrg	    fi
465250806d53Smrg	  fi
465350806d53Smrg
465450806d53Smrg	  for arg in $dlprefiles; do
465550806d53Smrg	    $show "extracting global C symbols from \`$arg'"
465650806d53Smrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
465750806d53Smrg	    $run eval '$echo ": $name " >> "$nlist"'
465850806d53Smrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
465950806d53Smrg	  done
466050806d53Smrg
466150806d53Smrg	  if test -z "$run"; then
466250806d53Smrg	    # Make sure we have at least an empty file.
466350806d53Smrg	    test -f "$nlist" || : > "$nlist"
466450806d53Smrg
466550806d53Smrg	    if test -n "$exclude_expsyms"; then
466650806d53Smrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
466750806d53Smrg	      $mv "$nlist"T "$nlist"
466850806d53Smrg	    fi
466950806d53Smrg
467050806d53Smrg	    # Try sorting and uniquifying the output.
467150806d53Smrg	    if grep -v "^: " < "$nlist" |
467250806d53Smrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
467350806d53Smrg		  sort -k 3
467450806d53Smrg		else
467550806d53Smrg		  sort +2
467650806d53Smrg		fi |
467750806d53Smrg		uniq > "$nlist"S; then
467850806d53Smrg	      :
467950806d53Smrg	    else
468050806d53Smrg	      grep -v "^: " < "$nlist" > "$nlist"S
468150806d53Smrg	    fi
468250806d53Smrg
468350806d53Smrg	    if test -f "$nlist"S; then
468450806d53Smrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
468550806d53Smrg	    else
468650806d53Smrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
468750806d53Smrg	    fi
468850806d53Smrg
468950806d53Smrg	    $echo >> "$output_objdir/$dlsyms" "\
469050806d53Smrg
469150806d53Smrg#undef lt_preloaded_symbols
469250806d53Smrg
469350806d53Smrg#if defined (__STDC__) && __STDC__
469450806d53Smrg# define lt_ptr void *
469550806d53Smrg#else
469650806d53Smrg# define lt_ptr char *
469750806d53Smrg# define const
469850806d53Smrg#endif
469950806d53Smrg
470050806d53Smrg/* The mapping between symbol names and symbols. */
470150806d53Smrg"
470250806d53Smrg
470350806d53Smrg	    case $host in
470450806d53Smrg	    *cygwin* | *mingw* )
470550806d53Smrg	  $echo >> "$output_objdir/$dlsyms" "\
470650806d53Smrg/* DATA imports from DLLs on WIN32 can't be const, because
470750806d53Smrg   runtime relocations are performed -- see ld's documentation
470850806d53Smrg   on pseudo-relocs */
470950806d53Smrgstruct {
471050806d53Smrg"
471150806d53Smrg	      ;;
471250806d53Smrg	    * )
471350806d53Smrg	  $echo >> "$output_objdir/$dlsyms" "\
471450806d53Smrgconst struct {
471550806d53Smrg"
471650806d53Smrg	      ;;
471750806d53Smrg	    esac
471850806d53Smrg
471950806d53Smrg
472050806d53Smrg	  $echo >> "$output_objdir/$dlsyms" "\
472150806d53Smrg  const char *name;
472250806d53Smrg  lt_ptr address;
472350806d53Smrg}
472450806d53Smrglt_preloaded_symbols[] =
472550806d53Smrg{\
472650806d53Smrg"
472750806d53Smrg
472850806d53Smrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
472950806d53Smrg
473050806d53Smrg	    $echo >> "$output_objdir/$dlsyms" "\
473150806d53Smrg  {0, (lt_ptr) 0}
473250806d53Smrg};
473350806d53Smrg
473450806d53Smrg/* This works around a problem in FreeBSD linker */
473550806d53Smrg#ifdef FREEBSD_WORKAROUND
473650806d53Smrgstatic const void *lt_preloaded_setup() {
473750806d53Smrg  return lt_preloaded_symbols;
473850806d53Smrg}
473950806d53Smrg#endif
474050806d53Smrg
474150806d53Smrg#ifdef __cplusplus
474250806d53Smrg}
474350806d53Smrg#endif\
474450806d53Smrg"
474550806d53Smrg	  fi
474650806d53Smrg
474750806d53Smrg	  pic_flag_for_symtable=
474850806d53Smrg	  case $host in
474950806d53Smrg	  # compiling the symbol table file with pic_flag works around
475050806d53Smrg	  # a FreeBSD bug that causes programs to crash when -lm is
475150806d53Smrg	  # linked before any other PIC object.  But we must not use
475250806d53Smrg	  # pic_flag when linking with -static.  The problem exists in
475350806d53Smrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
475450806d53Smrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
475550806d53Smrg	    case "$compile_command " in
475650806d53Smrg	    *" -static "*) ;;
475750806d53Smrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
475850806d53Smrg	    esac;;
475950806d53Smrg	  *-*-hpux*)
476050806d53Smrg	    case "$compile_command " in
476150806d53Smrg	    *" -static "*) ;;
476250806d53Smrg	    *) pic_flag_for_symtable=" $pic_flag";;
476350806d53Smrg	    esac
476450806d53Smrg	  esac
476550806d53Smrg
476650806d53Smrg	  # Now compile the dynamic symbol file.
476750806d53Smrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
476850806d53Smrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
476950806d53Smrg
477050806d53Smrg	  # Clean up the generated files.
477150806d53Smrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
477250806d53Smrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
477350806d53Smrg
477450806d53Smrg	  # Transform the symbol file into the correct name.
477550806d53Smrg          case $host in
477650806d53Smrg          *cygwin* | *mingw* )
477750806d53Smrg            if test -f "$output_objdir/${outputname}.def" ; then
477850806d53Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
477950806d53Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
478050806d53Smrg            else
478150806d53Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
478250806d53Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
478350806d53Smrg             fi
478450806d53Smrg            ;;
478550806d53Smrg          * )
478650806d53Smrg            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
478750806d53Smrg            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
478850806d53Smrg            ;;
478950806d53Smrg          esac
479050806d53Smrg	  ;;
479150806d53Smrg	*)
479250806d53Smrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
479350806d53Smrg	  exit $EXIT_FAILURE
479450806d53Smrg	  ;;
479550806d53Smrg	esac
479650806d53Smrg      else
479750806d53Smrg	# We keep going just in case the user didn't refer to
479850806d53Smrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
479950806d53Smrg	# really was required.
480050806d53Smrg
480150806d53Smrg	# Nullify the symbol file.
480250806d53Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
480350806d53Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
480450806d53Smrg      fi
480550806d53Smrg
480650806d53Smrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
480750806d53Smrg	# Replace the output file specification.
480850806d53Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
480950806d53Smrg	link_command="$compile_command$compile_rpath"
481050806d53Smrg
481150806d53Smrg	# We have no uninstalled library dependencies, so finalize right now.
481250806d53Smrg	$show "$link_command"
481350806d53Smrg	$run eval "$link_command"
481450806d53Smrg	exit_status=$?
481550806d53Smrg
481650806d53Smrg	# Delete the generated files.
481750806d53Smrg	if test -n "$dlsyms"; then
481850806d53Smrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
481950806d53Smrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
482050806d53Smrg	fi
482150806d53Smrg
482250806d53Smrg	exit $exit_status
482350806d53Smrg      fi
482450806d53Smrg
482550806d53Smrg      if test -n "$shlibpath_var"; then
482650806d53Smrg	# We should set the shlibpath_var
482750806d53Smrg	rpath=
482850806d53Smrg	for dir in $temp_rpath; do
482950806d53Smrg	  case $dir in
483050806d53Smrg	  [\\/]* | [A-Za-z]:[\\/]*)
483150806d53Smrg	    # Absolute path.
483250806d53Smrg	    rpath="$rpath$dir:"
483350806d53Smrg	    ;;
483450806d53Smrg	  *)
483550806d53Smrg	    # Relative path: add a thisdir entry.
483650806d53Smrg	    rpath="$rpath\$thisdir/$dir:"
483750806d53Smrg	    ;;
483850806d53Smrg	  esac
483950806d53Smrg	done
484050806d53Smrg	temp_rpath="$rpath"
484150806d53Smrg      fi
484250806d53Smrg
484350806d53Smrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
484450806d53Smrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
484550806d53Smrg      fi
484650806d53Smrg      if test -n "$finalize_shlibpath"; then
484750806d53Smrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
484850806d53Smrg      fi
484950806d53Smrg
485050806d53Smrg      compile_var=
485150806d53Smrg      finalize_var=
485250806d53Smrg      if test -n "$runpath_var"; then
485350806d53Smrg	if test -n "$perm_rpath"; then
485450806d53Smrg	  # We should set the runpath_var.
485550806d53Smrg	  rpath=
485650806d53Smrg	  for dir in $perm_rpath; do
485750806d53Smrg	    rpath="$rpath$dir:"
485850806d53Smrg	  done
485950806d53Smrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
486050806d53Smrg	fi
486150806d53Smrg	if test -n "$finalize_perm_rpath"; then
486250806d53Smrg	  # We should set the runpath_var.
486350806d53Smrg	  rpath=
486450806d53Smrg	  for dir in $finalize_perm_rpath; do
486550806d53Smrg	    rpath="$rpath$dir:"
486650806d53Smrg	  done
486750806d53Smrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
486850806d53Smrg	fi
486950806d53Smrg      fi
487050806d53Smrg
487150806d53Smrg      if test "$no_install" = yes; then
487250806d53Smrg	# We don't need to create a wrapper script.
487350806d53Smrg	link_command="$compile_var$compile_command$compile_rpath"
487450806d53Smrg	# Replace the output file specification.
487550806d53Smrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
487650806d53Smrg	# Delete the old output file.
487750806d53Smrg	$run $rm $output
487850806d53Smrg	# Link the executable and exit
487950806d53Smrg	$show "$link_command"
488050806d53Smrg	$run eval "$link_command" || exit $?
488150806d53Smrg	exit $EXIT_SUCCESS
488250806d53Smrg      fi
488350806d53Smrg
488450806d53Smrg      if test "$hardcode_action" = relink; then
488550806d53Smrg	# Fast installation is not supported
488650806d53Smrg	link_command="$compile_var$compile_command$compile_rpath"
488750806d53Smrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
488850806d53Smrg
488950806d53Smrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
489050806d53Smrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
489150806d53Smrg      else
489250806d53Smrg	if test "$fast_install" != no; then
489350806d53Smrg	  link_command="$finalize_var$compile_command$finalize_rpath"
489450806d53Smrg	  if test "$fast_install" = yes; then
489550806d53Smrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
489650806d53Smrg	  else
489750806d53Smrg	    # fast_install is set to needless
489850806d53Smrg	    relink_command=
489950806d53Smrg	  fi
490050806d53Smrg	else
490150806d53Smrg	  link_command="$compile_var$compile_command$compile_rpath"
490250806d53Smrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
490350806d53Smrg	fi
490450806d53Smrg      fi
490550806d53Smrg
490650806d53Smrg      # Replace the output file specification.
490750806d53Smrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
490850806d53Smrg
490950806d53Smrg      # Delete the old output files.
491050806d53Smrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
491150806d53Smrg
491250806d53Smrg      $show "$link_command"
491350806d53Smrg      $run eval "$link_command" || exit $?
491450806d53Smrg
491550806d53Smrg      # Now create the wrapper script.
491650806d53Smrg      $show "creating $output"
491750806d53Smrg
491850806d53Smrg      # Quote the relink command for shipping.
491950806d53Smrg      if test -n "$relink_command"; then
492050806d53Smrg	# Preserve any variables that may affect compiler behavior
492150806d53Smrg	for var in $variables_saved_for_relink; do
492250806d53Smrg	  if eval test -z \"\${$var+set}\"; then
492350806d53Smrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
492450806d53Smrg	  elif eval var_value=\$$var; test -z "$var_value"; then
492550806d53Smrg	    relink_command="$var=; export $var; $relink_command"
492650806d53Smrg	  else
492750806d53Smrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
492850806d53Smrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
492950806d53Smrg	  fi
493050806d53Smrg	done
493150806d53Smrg	relink_command="(cd `pwd`; $relink_command)"
493250806d53Smrg	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
493350806d53Smrg      fi
493450806d53Smrg
493550806d53Smrg      # Quote $echo for shipping.
493650806d53Smrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
493750806d53Smrg	case $progpath in
493850806d53Smrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
493950806d53Smrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
494050806d53Smrg	esac
494150806d53Smrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
494250806d53Smrg      else
494350806d53Smrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
494450806d53Smrg      fi
494550806d53Smrg
494650806d53Smrg      # Only actually do things if our run command is non-null.
494750806d53Smrg      if test -z "$run"; then
494850806d53Smrg	# win32 will think the script is a binary if it has
494950806d53Smrg	# a .exe suffix, so we strip it off here.
495050806d53Smrg	case $output in
495150806d53Smrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
495250806d53Smrg	esac
495350806d53Smrg	# test for cygwin because mv fails w/o .exe extensions
495450806d53Smrg	case $host in
495550806d53Smrg	  *cygwin*)
495650806d53Smrg	    exeext=.exe
495750806d53Smrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
495850806d53Smrg	  *) exeext= ;;
495950806d53Smrg	esac
496050806d53Smrg	case $host in
496150806d53Smrg	  *cygwin* | *mingw* )
496250806d53Smrg            output_name=`basename $output`
496350806d53Smrg            output_path=`dirname $output`
496450806d53Smrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
496550806d53Smrg            cwrapper="$output_path/$output_name.exe"
496650806d53Smrg            $rm $cwrappersource $cwrapper
496750806d53Smrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
496850806d53Smrg
496950806d53Smrg	    cat > $cwrappersource <<EOF
497050806d53Smrg
497150806d53Smrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
497250806d53Smrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
497350806d53Smrg
497450806d53Smrg   The $output program cannot be directly executed until all the libtool
497550806d53Smrg   libraries that it depends on are installed.
497650806d53Smrg
497750806d53Smrg   This wrapper executable should never be moved out of the build directory.
497850806d53Smrg   If it is, it will not operate correctly.
497950806d53Smrg
498050806d53Smrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
498150806d53Smrg   but could eventually absorb all of the scripts functionality and
498250806d53Smrg   exec $objdir/$outputname directly.
498350806d53Smrg*/
498450806d53SmrgEOF
498550806d53Smrg	    cat >> $cwrappersource<<"EOF"
498650806d53Smrg#include <stdio.h>
498750806d53Smrg#include <stdlib.h>
498850806d53Smrg#include <unistd.h>
498950806d53Smrg#include <malloc.h>
499050806d53Smrg#include <stdarg.h>
499150806d53Smrg#include <assert.h>
499250806d53Smrg#include <string.h>
499350806d53Smrg#include <ctype.h>
499450806d53Smrg#include <sys/stat.h>
499550806d53Smrg
499650806d53Smrg#if defined(PATH_MAX)
499750806d53Smrg# define LT_PATHMAX PATH_MAX
499850806d53Smrg#elif defined(MAXPATHLEN)
499950806d53Smrg# define LT_PATHMAX MAXPATHLEN
500050806d53Smrg#else
500150806d53Smrg# define LT_PATHMAX 1024
500250806d53Smrg#endif
500350806d53Smrg
500450806d53Smrg#ifndef DIR_SEPARATOR
500550806d53Smrg# define DIR_SEPARATOR '/'
500650806d53Smrg# define PATH_SEPARATOR ':'
500750806d53Smrg#endif
500850806d53Smrg
500950806d53Smrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
501050806d53Smrg  defined (__OS2__)
501150806d53Smrg# define HAVE_DOS_BASED_FILE_SYSTEM
501250806d53Smrg# ifndef DIR_SEPARATOR_2
501350806d53Smrg#  define DIR_SEPARATOR_2 '\\'
501450806d53Smrg# endif
501550806d53Smrg# ifndef PATH_SEPARATOR_2
501650806d53Smrg#  define PATH_SEPARATOR_2 ';'
501750806d53Smrg# endif
501850806d53Smrg#endif
501950806d53Smrg
502050806d53Smrg#ifndef DIR_SEPARATOR_2
502150806d53Smrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
502250806d53Smrg#else /* DIR_SEPARATOR_2 */
502350806d53Smrg# define IS_DIR_SEPARATOR(ch) \
502450806d53Smrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
502550806d53Smrg#endif /* DIR_SEPARATOR_2 */
502650806d53Smrg
502750806d53Smrg#ifndef PATH_SEPARATOR_2
502850806d53Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
502950806d53Smrg#else /* PATH_SEPARATOR_2 */
503050806d53Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
503150806d53Smrg#endif /* PATH_SEPARATOR_2 */
503250806d53Smrg
503350806d53Smrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
503450806d53Smrg#define XFREE(stale) do { \
503550806d53Smrg  if (stale) { free ((void *) stale); stale = 0; } \
503650806d53Smrg} while (0)
503750806d53Smrg
503850806d53Smrg/* -DDEBUG is fairly common in CFLAGS.  */
503950806d53Smrg#undef DEBUG
504050806d53Smrg#if defined DEBUGWRAPPER
504150806d53Smrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
504250806d53Smrg#else
504350806d53Smrg# define DEBUG(format, ...)
504450806d53Smrg#endif
504550806d53Smrg
504650806d53Smrgconst char *program_name = NULL;
504750806d53Smrg
504850806d53Smrgvoid * xmalloc (size_t num);
504950806d53Smrgchar * xstrdup (const char *string);
505050806d53Smrgconst char * base_name (const char *name);
505150806d53Smrgchar * find_executable(const char *wrapper);
505250806d53Smrgint    check_executable(const char *path);
505350806d53Smrgchar * strendzap(char *str, const char *pat);
505450806d53Smrgvoid lt_fatal (const char *message, ...);
505550806d53Smrg
505650806d53Smrgint
505750806d53Smrgmain (int argc, char *argv[])
505850806d53Smrg{
505950806d53Smrg  char **newargz;
506050806d53Smrg  int i;
506150806d53Smrg
506250806d53Smrg  program_name = (char *) xstrdup (base_name (argv[0]));
506350806d53Smrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
506450806d53Smrg  DEBUG("(main) program_name : %s\n",program_name);
506550806d53Smrg  newargz = XMALLOC(char *, argc+2);
506650806d53SmrgEOF
506750806d53Smrg
506850806d53Smrg            cat >> $cwrappersource <<EOF
506950806d53Smrg  newargz[0] = (char *) xstrdup("$SHELL");
507050806d53SmrgEOF
507150806d53Smrg
507250806d53Smrg            cat >> $cwrappersource <<"EOF"
507350806d53Smrg  newargz[1] = find_executable(argv[0]);
507450806d53Smrg  if (newargz[1] == NULL)
507550806d53Smrg    lt_fatal("Couldn't find %s", argv[0]);
507650806d53Smrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
507750806d53Smrg  /* we know the script has the same name, without the .exe */
507850806d53Smrg  /* so make sure newargz[1] doesn't end in .exe */
507950806d53Smrg  strendzap(newargz[1],".exe");
508050806d53Smrg  for (i = 1; i < argc; i++)
508150806d53Smrg    newargz[i+1] = xstrdup(argv[i]);
508250806d53Smrg  newargz[argc+1] = NULL;
508350806d53Smrg
508450806d53Smrg  for (i=0; i<argc+1; i++)
508550806d53Smrg  {
508650806d53Smrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
508750806d53Smrg    ;
508850806d53Smrg  }
508950806d53Smrg
509050806d53SmrgEOF
509150806d53Smrg
509250806d53Smrg            case $host_os in
509350806d53Smrg              mingw*)
509450806d53Smrg                cat >> $cwrappersource <<EOF
509550806d53Smrg  execv("$SHELL",(char const **)newargz);
509650806d53SmrgEOF
509750806d53Smrg              ;;
509850806d53Smrg              *)
509950806d53Smrg                cat >> $cwrappersource <<EOF
510050806d53Smrg  execv("$SHELL",newargz);
510150806d53SmrgEOF
510250806d53Smrg              ;;
510350806d53Smrg            esac
510450806d53Smrg
510550806d53Smrg            cat >> $cwrappersource <<"EOF"
510650806d53Smrg  return 127;
510750806d53Smrg}
510850806d53Smrg
510950806d53Smrgvoid *
511050806d53Smrgxmalloc (size_t num)
511150806d53Smrg{
511250806d53Smrg  void * p = (void *) malloc (num);
511350806d53Smrg  if (!p)
511450806d53Smrg    lt_fatal ("Memory exhausted");
511550806d53Smrg
511650806d53Smrg  return p;
511750806d53Smrg}
511850806d53Smrg
511950806d53Smrgchar *
512050806d53Smrgxstrdup (const char *string)
512150806d53Smrg{
512250806d53Smrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
512350806d53Smrg;
512450806d53Smrg}
512550806d53Smrg
512650806d53Smrgconst char *
512750806d53Smrgbase_name (const char *name)
512850806d53Smrg{
512950806d53Smrg  const char *base;
513050806d53Smrg
513150806d53Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
513250806d53Smrg  /* Skip over the disk name in MSDOS pathnames. */
513350806d53Smrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
513450806d53Smrg    name += 2;
513550806d53Smrg#endif
513650806d53Smrg
513750806d53Smrg  for (base = name; *name; name++)
513850806d53Smrg    if (IS_DIR_SEPARATOR (*name))
513950806d53Smrg      base = name + 1;
514050806d53Smrg  return base;
514150806d53Smrg}
514250806d53Smrg
514350806d53Smrgint
514450806d53Smrgcheck_executable(const char * path)
514550806d53Smrg{
514650806d53Smrg  struct stat st;
514750806d53Smrg
514850806d53Smrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
514950806d53Smrg  if ((!path) || (!*path))
515050806d53Smrg    return 0;
515150806d53Smrg
515250806d53Smrg  if ((stat (path, &st) >= 0) &&
515350806d53Smrg      (
515450806d53Smrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
515550806d53Smrg#if defined (S_IXOTH)
515650806d53Smrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
515750806d53Smrg#endif
515850806d53Smrg#if defined (S_IXGRP)
515950806d53Smrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
516050806d53Smrg#endif
516150806d53Smrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
516250806d53Smrg      )
516350806d53Smrg    return 1;
516450806d53Smrg  else
516550806d53Smrg    return 0;
516650806d53Smrg}
516750806d53Smrg
516850806d53Smrg/* Searches for the full path of the wrapper.  Returns
516950806d53Smrg   newly allocated full path name if found, NULL otherwise */
517050806d53Smrgchar *
517150806d53Smrgfind_executable (const char* wrapper)
517250806d53Smrg{
517350806d53Smrg  int has_slash = 0;
517450806d53Smrg  const char* p;
517550806d53Smrg  const char* p_next;
517650806d53Smrg  /* static buffer for getcwd */
517750806d53Smrg  char tmp[LT_PATHMAX + 1];
517850806d53Smrg  int tmp_len;
517950806d53Smrg  char* concat_name;
518050806d53Smrg
518150806d53Smrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
518250806d53Smrg
518350806d53Smrg  if ((wrapper == NULL) || (*wrapper == '\0'))
518450806d53Smrg    return NULL;
518550806d53Smrg
518650806d53Smrg  /* Absolute path? */
518750806d53Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
518850806d53Smrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
518950806d53Smrg  {
519050806d53Smrg    concat_name = xstrdup (wrapper);
519150806d53Smrg    if (check_executable(concat_name))
519250806d53Smrg      return concat_name;
519350806d53Smrg    XFREE(concat_name);
519450806d53Smrg  }
519550806d53Smrg  else
519650806d53Smrg  {
519750806d53Smrg#endif
519850806d53Smrg    if (IS_DIR_SEPARATOR (wrapper[0]))
519950806d53Smrg    {
520050806d53Smrg      concat_name = xstrdup (wrapper);
520150806d53Smrg      if (check_executable(concat_name))
520250806d53Smrg        return concat_name;
520350806d53Smrg      XFREE(concat_name);
520450806d53Smrg    }
520550806d53Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
520650806d53Smrg  }
520750806d53Smrg#endif
520850806d53Smrg
520950806d53Smrg  for (p = wrapper; *p; p++)
521050806d53Smrg    if (*p == '/')
521150806d53Smrg    {
521250806d53Smrg      has_slash = 1;
521350806d53Smrg      break;
521450806d53Smrg    }
521550806d53Smrg  if (!has_slash)
521650806d53Smrg  {
521750806d53Smrg    /* no slashes; search PATH */
521850806d53Smrg    const char* path = getenv ("PATH");
521950806d53Smrg    if (path != NULL)
522050806d53Smrg    {
522150806d53Smrg      for (p = path; *p; p = p_next)
522250806d53Smrg      {
522350806d53Smrg        const char* q;
522450806d53Smrg        size_t p_len;
522550806d53Smrg        for (q = p; *q; q++)
522650806d53Smrg          if (IS_PATH_SEPARATOR(*q))
522750806d53Smrg            break;
522850806d53Smrg        p_len = q - p;
522950806d53Smrg        p_next = (*q == '\0' ? q : q + 1);
523050806d53Smrg        if (p_len == 0)
523150806d53Smrg        {
523250806d53Smrg          /* empty path: current directory */
523350806d53Smrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
523450806d53Smrg            lt_fatal ("getcwd failed");
523550806d53Smrg          tmp_len = strlen(tmp);
523650806d53Smrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
523750806d53Smrg          memcpy (concat_name, tmp, tmp_len);
523850806d53Smrg          concat_name[tmp_len] = '/';
523950806d53Smrg          strcpy (concat_name + tmp_len + 1, wrapper);
524050806d53Smrg        }
524150806d53Smrg        else
524250806d53Smrg        {
524350806d53Smrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
524450806d53Smrg          memcpy (concat_name, p, p_len);
524550806d53Smrg          concat_name[p_len] = '/';
524650806d53Smrg          strcpy (concat_name + p_len + 1, wrapper);
524750806d53Smrg        }
524850806d53Smrg        if (check_executable(concat_name))
524950806d53Smrg          return concat_name;
525050806d53Smrg        XFREE(concat_name);
525150806d53Smrg      }
525250806d53Smrg    }
525350806d53Smrg    /* not found in PATH; assume curdir */
525450806d53Smrg  }
525550806d53Smrg  /* Relative path | not found in path: prepend cwd */
525650806d53Smrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
525750806d53Smrg    lt_fatal ("getcwd failed");
525850806d53Smrg  tmp_len = strlen(tmp);
525950806d53Smrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
526050806d53Smrg  memcpy (concat_name, tmp, tmp_len);
526150806d53Smrg  concat_name[tmp_len] = '/';
526250806d53Smrg  strcpy (concat_name + tmp_len + 1, wrapper);
526350806d53Smrg
526450806d53Smrg  if (check_executable(concat_name))
526550806d53Smrg    return concat_name;
526650806d53Smrg  XFREE(concat_name);
526750806d53Smrg  return NULL;
526850806d53Smrg}
526950806d53Smrg
527050806d53Smrgchar *
527150806d53Smrgstrendzap(char *str, const char *pat)
527250806d53Smrg{
527350806d53Smrg  size_t len, patlen;
527450806d53Smrg
527550806d53Smrg  assert(str != NULL);
527650806d53Smrg  assert(pat != NULL);
527750806d53Smrg
527850806d53Smrg  len = strlen(str);
527950806d53Smrg  patlen = strlen(pat);
528050806d53Smrg
528150806d53Smrg  if (patlen <= len)
528250806d53Smrg  {
528350806d53Smrg    str += len - patlen;
528450806d53Smrg    if (strcmp(str, pat) == 0)
528550806d53Smrg      *str = '\0';
528650806d53Smrg  }
528750806d53Smrg  return str;
528850806d53Smrg}
528950806d53Smrg
529050806d53Smrgstatic void
529150806d53Smrglt_error_core (int exit_status, const char * mode,
529250806d53Smrg          const char * message, va_list ap)
529350806d53Smrg{
529450806d53Smrg  fprintf (stderr, "%s: %s: ", program_name, mode);
529550806d53Smrg  vfprintf (stderr, message, ap);
529650806d53Smrg  fprintf (stderr, ".\n");
529750806d53Smrg
529850806d53Smrg  if (exit_status >= 0)
529950806d53Smrg    exit (exit_status);
530050806d53Smrg}
530150806d53Smrg
530250806d53Smrgvoid
530350806d53Smrglt_fatal (const char *message, ...)
530450806d53Smrg{
530550806d53Smrg  va_list ap;
530650806d53Smrg  va_start (ap, message);
530750806d53Smrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
530850806d53Smrg  va_end (ap);
530950806d53Smrg}
531050806d53SmrgEOF
531150806d53Smrg          # we should really use a build-platform specific compiler
531250806d53Smrg          # here, but OTOH, the wrappers (shell script and this C one)
531350806d53Smrg          # are only useful if you want to execute the "real" binary.
531450806d53Smrg          # Since the "real" binary is built for $host, then this
531550806d53Smrg          # wrapper might as well be built for $host, too.
531650806d53Smrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
531750806d53Smrg          ;;
531850806d53Smrg        esac
531950806d53Smrg        $rm $output
532050806d53Smrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
532150806d53Smrg
532250806d53Smrg	$echo > $output "\
532350806d53Smrg#! $SHELL
532450806d53Smrg
532550806d53Smrg# $output - temporary wrapper script for $objdir/$outputname
532650806d53Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
532750806d53Smrg#
532850806d53Smrg# The $output program cannot be directly executed until all the libtool
532950806d53Smrg# libraries that it depends on are installed.
533050806d53Smrg#
533150806d53Smrg# This wrapper script should never be moved out of the build directory.
533250806d53Smrg# If it is, it will not operate correctly.
533350806d53Smrg
533450806d53Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
533550806d53Smrg# metacharacters that are still active within double-quoted strings.
533650806d53SmrgXsed='${SED} -e 1s/^X//'
533750806d53Smrgsed_quote_subst='$sed_quote_subst'
533850806d53Smrg
533950806d53Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
534050806d53Smrgif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
534150806d53Smrg  emulate sh
534250806d53Smrg  NULLCMD=:
534350806d53Smrg  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
534450806d53Smrg  # is contrary to our usage.  Disable this feature.
534550806d53Smrg  alias -g '\${1+\"\$@\"}'='\"\$@\"'
534650806d53Smrg  setopt NO_GLOB_SUBST
534750806d53Smrgelse
534850806d53Smrg  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
534950806d53Smrgfi
53507965d9acSmrgBIN_SH=xpg4; export BIN_SH # for Tru64
53517965d9acSmrgDUALCASE=1; export DUALCASE # for MKS sh
535250806d53Smrg
535350806d53Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout
535450806d53Smrg# if CDPATH is set.
535550806d53Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
535650806d53Smrg
535750806d53Smrgrelink_command=\"$relink_command\"
535850806d53Smrg
535950806d53Smrg# This environment variable determines our operation mode.
536050806d53Smrgif test \"\$libtool_install_magic\" = \"$magic\"; then
536150806d53Smrg  # install mode needs the following variable:
536250806d53Smrg  notinst_deplibs='$notinst_deplibs'
536350806d53Smrgelse
536450806d53Smrg  # When we are sourced in execute mode, \$file and \$echo are already set.
536550806d53Smrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
536650806d53Smrg    echo=\"$qecho\"
536750806d53Smrg    file=\"\$0\"
536850806d53Smrg    # Make sure echo works.
536950806d53Smrg    if test \"X\$1\" = X--no-reexec; then
537050806d53Smrg      # Discard the --no-reexec flag, and continue.
537150806d53Smrg      shift
537250806d53Smrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
537350806d53Smrg      # Yippee, \$echo works!
537450806d53Smrg      :
537550806d53Smrg    else
537650806d53Smrg      # Restart under the correct shell, and then maybe \$echo will work.
537750806d53Smrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
537850806d53Smrg    fi
537950806d53Smrg  fi\
538050806d53Smrg"
538150806d53Smrg	$echo >> $output "\
538250806d53Smrg
538350806d53Smrg  # Find the directory that this script lives in.
538450806d53Smrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
538550806d53Smrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
538650806d53Smrg
538750806d53Smrg  # Follow symbolic links until we get to the real thisdir.
538850806d53Smrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
538950806d53Smrg  while test -n \"\$file\"; do
539050806d53Smrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
539150806d53Smrg
539250806d53Smrg    # If there was a directory component, then change thisdir.
539350806d53Smrg    if test \"x\$destdir\" != \"x\$file\"; then
539450806d53Smrg      case \"\$destdir\" in
539550806d53Smrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
539650806d53Smrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
539750806d53Smrg      esac
539850806d53Smrg    fi
539950806d53Smrg
540050806d53Smrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
540150806d53Smrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
540250806d53Smrg  done
540350806d53Smrg
540450806d53Smrg  # Try to get the absolute directory name.
540550806d53Smrg  absdir=\`cd \"\$thisdir\" && pwd\`
540650806d53Smrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
540750806d53Smrg"
540850806d53Smrg
540950806d53Smrg	if test "$fast_install" = yes; then
541050806d53Smrg	  $echo >> $output "\
541150806d53Smrg  program=lt-'$outputname'$exeext
541250806d53Smrg  progdir=\"\$thisdir/$objdir\"
541350806d53Smrg
541450806d53Smrg  if test ! -f \"\$progdir/\$program\" || \\
541550806d53Smrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
541650806d53Smrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
541750806d53Smrg
541850806d53Smrg    file=\"\$\$-\$program\"
541950806d53Smrg
542050806d53Smrg    if test ! -d \"\$progdir\"; then
542150806d53Smrg      $mkdir \"\$progdir\"
542250806d53Smrg    else
542350806d53Smrg      $rm \"\$progdir/\$file\"
542450806d53Smrg    fi"
542550806d53Smrg
542650806d53Smrg	  $echo >> $output "\
542750806d53Smrg
542850806d53Smrg    # relink executable if necessary
542950806d53Smrg    if test -n \"\$relink_command\"; then
543050806d53Smrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
543150806d53Smrg      else
543250806d53Smrg	$echo \"\$relink_command_output\" >&2
543350806d53Smrg	$rm \"\$progdir/\$file\"
543450806d53Smrg	exit $EXIT_FAILURE
543550806d53Smrg      fi
543650806d53Smrg    fi
543750806d53Smrg
543850806d53Smrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
543950806d53Smrg    { $rm \"\$progdir/\$program\";
544050806d53Smrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
544150806d53Smrg    $rm \"\$progdir/\$file\"
544250806d53Smrg  fi"
544350806d53Smrg	else
544450806d53Smrg	  $echo >> $output "\
544550806d53Smrg  program='$outputname'
544650806d53Smrg  progdir=\"\$thisdir/$objdir\"
544750806d53Smrg"
544850806d53Smrg	fi
544950806d53Smrg
545050806d53Smrg	$echo >> $output "\
545150806d53Smrg
545250806d53Smrg  if test -f \"\$progdir/\$program\"; then"
545350806d53Smrg
545450806d53Smrg	# Export our shlibpath_var if we have one.
545550806d53Smrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
545650806d53Smrg	  $echo >> $output "\
545750806d53Smrg    # Add our own library path to $shlibpath_var
545850806d53Smrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
545950806d53Smrg
546050806d53Smrg    # Some systems cannot cope with colon-terminated $shlibpath_var
546150806d53Smrg    # The second colon is a workaround for a bug in BeOS R4 sed
546250806d53Smrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
546350806d53Smrg
546450806d53Smrg    export $shlibpath_var
546550806d53Smrg"
546650806d53Smrg	fi
546750806d53Smrg
546850806d53Smrg	# fixup the dll searchpath if we need to.
546950806d53Smrg	if test -n "$dllsearchpath"; then
547050806d53Smrg	  $echo >> $output "\
547150806d53Smrg    # Add the dll search path components to the executable PATH
547250806d53Smrg    PATH=$dllsearchpath:\$PATH
547350806d53Smrg"
547450806d53Smrg	fi
547550806d53Smrg
547650806d53Smrg	$echo >> $output "\
547750806d53Smrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
547850806d53Smrg      # Run the actual program with our arguments.
547950806d53Smrg"
548050806d53Smrg	case $host in
548150806d53Smrg	# Backslashes separate directories on plain windows
548250806d53Smrg	*-*-mingw | *-*-os2*)
548350806d53Smrg	  $echo >> $output "\
548450806d53Smrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
548550806d53Smrg"
548650806d53Smrg	  ;;
548750806d53Smrg
548850806d53Smrg	*)
548950806d53Smrg	  $echo >> $output "\
549050806d53Smrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
549150806d53Smrg"
549250806d53Smrg	  ;;
549350806d53Smrg	esac
549450806d53Smrg	$echo >> $output "\
549550806d53Smrg      \$echo \"\$0: cannot exec \$program \$*\"
549650806d53Smrg      exit $EXIT_FAILURE
549750806d53Smrg    fi
549850806d53Smrg  else
549950806d53Smrg    # The program doesn't exist.
550050806d53Smrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
550150806d53Smrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
550250806d53Smrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
550350806d53Smrg    exit $EXIT_FAILURE
550450806d53Smrg  fi
550550806d53Smrgfi\
550650806d53Smrg"
550750806d53Smrg	chmod +x $output
550850806d53Smrg      fi
550950806d53Smrg      exit $EXIT_SUCCESS
551050806d53Smrg      ;;
551150806d53Smrg    esac
551250806d53Smrg
551350806d53Smrg    # See if we need to build an old-fashioned archive.
551450806d53Smrg    for oldlib in $oldlibs; do
551550806d53Smrg
551650806d53Smrg      if test "$build_libtool_libs" = convenience; then
551750806d53Smrg	oldobjs="$libobjs_save"
551850806d53Smrg	addlibs="$convenience"
551950806d53Smrg	build_libtool_libs=no
552050806d53Smrg      else
552150806d53Smrg	if test "$build_libtool_libs" = module; then
552250806d53Smrg	  oldobjs="$libobjs_save"
552350806d53Smrg	  build_libtool_libs=no
552450806d53Smrg	else
552550806d53Smrg	  oldobjs="$old_deplibs $non_pic_objects"
552650806d53Smrg	fi
552750806d53Smrg	addlibs="$old_convenience"
552850806d53Smrg      fi
552950806d53Smrg
553050806d53Smrg      if test -n "$addlibs"; then
553150806d53Smrg	gentop="$output_objdir/${outputname}x"
553250806d53Smrg	generated="$generated $gentop"
553350806d53Smrg
553450806d53Smrg	func_extract_archives $gentop $addlibs
553550806d53Smrg	oldobjs="$oldobjs $func_extract_archives_result"
553650806d53Smrg      fi
553750806d53Smrg
553850806d53Smrg      # Do each command in the archive commands.
553950806d53Smrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
554050806d53Smrg       cmds=$old_archive_from_new_cmds
554150806d53Smrg      else
554250806d53Smrg	# POSIX demands no paths to be encoded in archives.  We have
554350806d53Smrg	# to avoid creating archives with duplicate basenames if we
554450806d53Smrg	# might have to extract them afterwards, e.g., when creating a
554550806d53Smrg	# static archive out of a convenience library, or when linking
554650806d53Smrg	# the entirety of a libtool archive into another (currently
554750806d53Smrg	# not supported by libtool).
554850806d53Smrg	if (for obj in $oldobjs
554950806d53Smrg	    do
555050806d53Smrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
555150806d53Smrg	    done | sort | sort -uc >/dev/null 2>&1); then
555250806d53Smrg	  :
555350806d53Smrg	else
555450806d53Smrg	  $echo "copying selected object files to avoid basename conflicts..."
555550806d53Smrg
555650806d53Smrg	  if test -z "$gentop"; then
555750806d53Smrg	    gentop="$output_objdir/${outputname}x"
555850806d53Smrg	    generated="$generated $gentop"
555950806d53Smrg
556050806d53Smrg	    $show "${rm}r $gentop"
556150806d53Smrg	    $run ${rm}r "$gentop"
556250806d53Smrg	    $show "$mkdir $gentop"
556350806d53Smrg	    $run $mkdir "$gentop"
556450806d53Smrg	    exit_status=$?
556550806d53Smrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
556650806d53Smrg	      exit $exit_status
556750806d53Smrg	    fi
556850806d53Smrg	  fi
556950806d53Smrg
557050806d53Smrg	  save_oldobjs=$oldobjs
557150806d53Smrg	  oldobjs=
557250806d53Smrg	  counter=1
557350806d53Smrg	  for obj in $save_oldobjs
557450806d53Smrg	  do
557550806d53Smrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
557650806d53Smrg	    case " $oldobjs " in
557750806d53Smrg	    " ") oldobjs=$obj ;;
557850806d53Smrg	    *[\ /]"$objbase "*)
557950806d53Smrg	      while :; do
558050806d53Smrg		# Make sure we don't pick an alternate name that also
558150806d53Smrg		# overlaps.
558250806d53Smrg		newobj=lt$counter-$objbase
558350806d53Smrg		counter=`expr $counter + 1`
558450806d53Smrg		case " $oldobjs " in
558550806d53Smrg		*[\ /]"$newobj "*) ;;
558650806d53Smrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
558750806d53Smrg		esac
558850806d53Smrg	      done
558950806d53Smrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
559050806d53Smrg	      $run ln "$obj" "$gentop/$newobj" ||
559150806d53Smrg	      $run cp "$obj" "$gentop/$newobj"
559250806d53Smrg	      oldobjs="$oldobjs $gentop/$newobj"
559350806d53Smrg	      ;;
559450806d53Smrg	    *) oldobjs="$oldobjs $obj" ;;
559550806d53Smrg	    esac
559650806d53Smrg	  done
559750806d53Smrg	fi
559850806d53Smrg
559950806d53Smrg	eval cmds=\"$old_archive_cmds\"
560050806d53Smrg
560150806d53Smrg	if len=`expr "X$cmds" : ".*"` &&
560250806d53Smrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
560350806d53Smrg	  cmds=$old_archive_cmds
560450806d53Smrg	else
560550806d53Smrg	  # the command line is too long to link in one step, link in parts
560650806d53Smrg	  $echo "using piecewise archive linking..."
560750806d53Smrg	  save_RANLIB=$RANLIB
560850806d53Smrg	  RANLIB=:
560950806d53Smrg	  objlist=
561050806d53Smrg	  concat_cmds=
561150806d53Smrg	  save_oldobjs=$oldobjs
561250806d53Smrg
561350806d53Smrg	  # Is there a better way of finding the last object in the list?
561450806d53Smrg	  for obj in $save_oldobjs
561550806d53Smrg	  do
561650806d53Smrg	    last_oldobj=$obj
561750806d53Smrg	  done
561850806d53Smrg	  for obj in $save_oldobjs
561950806d53Smrg	  do
562050806d53Smrg	    oldobjs="$objlist $obj"
562150806d53Smrg	    objlist="$objlist $obj"
562250806d53Smrg	    eval test_cmds=\"$old_archive_cmds\"
562350806d53Smrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
562450806d53Smrg	       test "$len" -le "$max_cmd_len"; then
562550806d53Smrg	      :
562650806d53Smrg	    else
562750806d53Smrg	      # the above command should be used before it gets too long
562850806d53Smrg	      oldobjs=$objlist
562950806d53Smrg	      if test "$obj" = "$last_oldobj" ; then
563050806d53Smrg	        RANLIB=$save_RANLIB
563150806d53Smrg	      fi
563250806d53Smrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
563350806d53Smrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
563450806d53Smrg	      objlist=
563550806d53Smrg	    fi
563650806d53Smrg	  done
563750806d53Smrg	  RANLIB=$save_RANLIB
563850806d53Smrg	  oldobjs=$objlist
563950806d53Smrg	  if test "X$oldobjs" = "X" ; then
564050806d53Smrg	    eval cmds=\"\$concat_cmds\"
564150806d53Smrg	  else
564250806d53Smrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
564350806d53Smrg	  fi
564450806d53Smrg	fi
564550806d53Smrg      fi
564650806d53Smrg      save_ifs="$IFS"; IFS='~'
564750806d53Smrg      for cmd in $cmds; do
564850806d53Smrg        eval cmd=\"$cmd\"
564950806d53Smrg	IFS="$save_ifs"
565050806d53Smrg	$show "$cmd"
565150806d53Smrg	$run eval "$cmd" || exit $?
565250806d53Smrg      done
565350806d53Smrg      IFS="$save_ifs"
565450806d53Smrg    done
565550806d53Smrg
565650806d53Smrg    if test -n "$generated"; then
565750806d53Smrg      $show "${rm}r$generated"
565850806d53Smrg      $run ${rm}r$generated
565950806d53Smrg    fi
566050806d53Smrg
566150806d53Smrg    # Now create the libtool archive.
566250806d53Smrg    case $output in
566350806d53Smrg    *.la)
566450806d53Smrg      old_library=
566550806d53Smrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
566650806d53Smrg      $show "creating $output"
566750806d53Smrg
566850806d53Smrg      # Preserve any variables that may affect compiler behavior
566950806d53Smrg      for var in $variables_saved_for_relink; do
567050806d53Smrg	if eval test -z \"\${$var+set}\"; then
567150806d53Smrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
567250806d53Smrg	elif eval var_value=\$$var; test -z "$var_value"; then
567350806d53Smrg	  relink_command="$var=; export $var; $relink_command"
567450806d53Smrg	else
567550806d53Smrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
567650806d53Smrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
567750806d53Smrg	fi
567850806d53Smrg      done
567950806d53Smrg      # Quote the link command for shipping.
568050806d53Smrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
568150806d53Smrg      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
568250806d53Smrg      if test "$hardcode_automatic" = yes ; then
568350806d53Smrg	relink_command=
568450806d53Smrg      fi
568550806d53Smrg
568650806d53Smrg
568750806d53Smrg      # Only create the output if not a dry run.
568850806d53Smrg      if test -z "$run"; then
568950806d53Smrg	for installed in no yes; do
569050806d53Smrg	  if test "$installed" = yes; then
569150806d53Smrg	    if test -z "$install_libdir"; then
569250806d53Smrg	      break
569350806d53Smrg	    fi
569450806d53Smrg	    output="$output_objdir/$outputname"i
569550806d53Smrg	    # Replace all uninstalled libtool libraries with the installed ones
569650806d53Smrg	    newdependency_libs=
569750806d53Smrg	    for deplib in $dependency_libs; do
569850806d53Smrg	      case $deplib in
569950806d53Smrg	      *.la)
570050806d53Smrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
570150806d53Smrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
570250806d53Smrg		if test -z "$libdir"; then
570350806d53Smrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
570450806d53Smrg		  exit $EXIT_FAILURE
570550806d53Smrg		fi
570650806d53Smrg		newdependency_libs="$newdependency_libs $libdir/$name"
570750806d53Smrg		;;
570850806d53Smrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
570950806d53Smrg	      esac
571050806d53Smrg	    done
571150806d53Smrg	    dependency_libs="$newdependency_libs"
571250806d53Smrg	    newdlfiles=
571350806d53Smrg	    for lib in $dlfiles; do
571450806d53Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
571550806d53Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
571650806d53Smrg	      if test -z "$libdir"; then
571750806d53Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
571850806d53Smrg		exit $EXIT_FAILURE
571950806d53Smrg	      fi
572050806d53Smrg	      newdlfiles="$newdlfiles $libdir/$name"
572150806d53Smrg	    done
572250806d53Smrg	    dlfiles="$newdlfiles"
572350806d53Smrg	    newdlprefiles=
572450806d53Smrg	    for lib in $dlprefiles; do
572550806d53Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
572650806d53Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
572750806d53Smrg	      if test -z "$libdir"; then
572850806d53Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
572950806d53Smrg		exit $EXIT_FAILURE
573050806d53Smrg	      fi
573150806d53Smrg	      newdlprefiles="$newdlprefiles $libdir/$name"
573250806d53Smrg	    done
573350806d53Smrg	    dlprefiles="$newdlprefiles"
573450806d53Smrg	  else
573550806d53Smrg	    newdlfiles=
573650806d53Smrg	    for lib in $dlfiles; do
573750806d53Smrg	      case $lib in
573850806d53Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
573950806d53Smrg		*) abs=`pwd`"/$lib" ;;
574050806d53Smrg	      esac
574150806d53Smrg	      newdlfiles="$newdlfiles $abs"
574250806d53Smrg	    done
574350806d53Smrg	    dlfiles="$newdlfiles"
574450806d53Smrg	    newdlprefiles=
574550806d53Smrg	    for lib in $dlprefiles; do
574650806d53Smrg	      case $lib in
574750806d53Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
574850806d53Smrg		*) abs=`pwd`"/$lib" ;;
574950806d53Smrg	      esac
575050806d53Smrg	      newdlprefiles="$newdlprefiles $abs"
575150806d53Smrg	    done
575250806d53Smrg	    dlprefiles="$newdlprefiles"
575350806d53Smrg	  fi
575450806d53Smrg	  $rm $output
575550806d53Smrg	  # place dlname in correct position for cygwin
575650806d53Smrg	  tdlname=$dlname
575750806d53Smrg	  case $host,$output,$installed,$module,$dlname in
575850806d53Smrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
575950806d53Smrg	  esac
576050806d53Smrg	  $echo > $output "\
576150806d53Smrg# $outputname - a libtool library file
576250806d53Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
576350806d53Smrg#
576450806d53Smrg# Please DO NOT delete this file!
576550806d53Smrg# It is necessary for linking the library.
576650806d53Smrg
576750806d53Smrg# The name that we can dlopen(3).
576850806d53Smrgdlname='$tdlname'
576950806d53Smrg
577050806d53Smrg# Names of this library.
577150806d53Smrglibrary_names='$library_names'
577250806d53Smrg
577350806d53Smrg# The name of the static archive.
577450806d53Smrgold_library='$old_library'
577550806d53Smrg
577650806d53Smrg# Libraries that this one depends upon.
577750806d53Smrgdependency_libs='$dependency_libs'
577850806d53Smrg
577950806d53Smrg# Version information for $libname.
578050806d53Smrgcurrent=$current
578150806d53Smrgage=$age
578250806d53Smrgrevision=$revision
578350806d53Smrg
578450806d53Smrg# Is this an already installed library?
578550806d53Smrginstalled=$installed
578650806d53Smrg
578750806d53Smrg# Should we warn about portability when linking against -modules?
578850806d53Smrgshouldnotlink=$module
578950806d53Smrg
579050806d53Smrg# Files to dlopen/dlpreopen
579150806d53Smrgdlopen='$dlfiles'
579250806d53Smrgdlpreopen='$dlprefiles'
579350806d53Smrg
579450806d53Smrg# Directory that this library needs to be installed in:
579550806d53Smrglibdir='$install_libdir'"
579650806d53Smrg	  if test "$installed" = no && test "$need_relink" = yes; then
579750806d53Smrg	    $echo >> $output "\
579850806d53Smrgrelink_command=\"$relink_command\""
579950806d53Smrg	  fi
580050806d53Smrg	done
580150806d53Smrg      fi
580250806d53Smrg
580350806d53Smrg      # Do a symbolic link so that the libtool archive can be found in
580450806d53Smrg      # LD_LIBRARY_PATH before the program is installed.
580550806d53Smrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
580650806d53Smrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
580750806d53Smrg      ;;
580850806d53Smrg    esac
580950806d53Smrg    exit $EXIT_SUCCESS
581050806d53Smrg    ;;
581150806d53Smrg
581250806d53Smrg  # libtool install mode
581350806d53Smrg  install)
581450806d53Smrg    modename="$modename: install"
581550806d53Smrg
581650806d53Smrg    # There may be an optional sh(1) argument at the beginning of
581750806d53Smrg    # install_prog (especially on Windows NT).
581850806d53Smrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
581950806d53Smrg       # Allow the use of GNU shtool's install command.
582050806d53Smrg       $echo "X$nonopt" | grep shtool > /dev/null; then
582150806d53Smrg      # Aesthetically quote it.
582250806d53Smrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
582350806d53Smrg      case $arg in
582450806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
582550806d53Smrg	arg="\"$arg\""
582650806d53Smrg	;;
582750806d53Smrg      esac
582850806d53Smrg      install_prog="$arg "
582950806d53Smrg      arg="$1"
583050806d53Smrg      shift
583150806d53Smrg    else
583250806d53Smrg      install_prog=
583350806d53Smrg      arg=$nonopt
583450806d53Smrg    fi
583550806d53Smrg
583650806d53Smrg    # The real first argument should be the name of the installation program.
583750806d53Smrg    # Aesthetically quote it.
583850806d53Smrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
583950806d53Smrg    case $arg in
584050806d53Smrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
584150806d53Smrg      arg="\"$arg\""
584250806d53Smrg      ;;
584350806d53Smrg    esac
584450806d53Smrg    install_prog="$install_prog$arg"
584550806d53Smrg
584650806d53Smrg    # We need to accept at least all the BSD install flags.
584750806d53Smrg    dest=
584850806d53Smrg    files=
584950806d53Smrg    opts=
585050806d53Smrg    prev=
585150806d53Smrg    install_type=
585250806d53Smrg    isdir=no
585350806d53Smrg    stripme=
585450806d53Smrg    for arg
585550806d53Smrg    do
585650806d53Smrg      if test -n "$dest"; then
585750806d53Smrg	files="$files $dest"
585850806d53Smrg	dest=$arg
585950806d53Smrg	continue
586050806d53Smrg      fi
586150806d53Smrg
586250806d53Smrg      case $arg in
586350806d53Smrg      -d) isdir=yes ;;
586450806d53Smrg      -f) 
586550806d53Smrg      	case " $install_prog " in
586650806d53Smrg	*[\\\ /]cp\ *) ;;
586750806d53Smrg	*) prev=$arg ;;
586850806d53Smrg	esac
586950806d53Smrg	;;
587050806d53Smrg      -g | -m | -o) prev=$arg ;;
587150806d53Smrg      -s)
587250806d53Smrg	stripme=" -s"
587350806d53Smrg	continue
587450806d53Smrg	;;
587550806d53Smrg      -*)
587650806d53Smrg	;;
587750806d53Smrg      *)
587850806d53Smrg	# If the previous option needed an argument, then skip it.
587950806d53Smrg	if test -n "$prev"; then
588050806d53Smrg	  prev=
588150806d53Smrg	else
588250806d53Smrg	  dest=$arg
588350806d53Smrg	  continue
588450806d53Smrg	fi
588550806d53Smrg	;;
588650806d53Smrg      esac
588750806d53Smrg
588850806d53Smrg      # Aesthetically quote the argument.
588950806d53Smrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
589050806d53Smrg      case $arg in
589150806d53Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
589250806d53Smrg	arg="\"$arg\""
589350806d53Smrg	;;
589450806d53Smrg      esac
589550806d53Smrg      install_prog="$install_prog $arg"
589650806d53Smrg    done
589750806d53Smrg
589850806d53Smrg    if test -z "$install_prog"; then
589950806d53Smrg      $echo "$modename: you must specify an install program" 1>&2
590050806d53Smrg      $echo "$help" 1>&2
590150806d53Smrg      exit $EXIT_FAILURE
590250806d53Smrg    fi
590350806d53Smrg
590450806d53Smrg    if test -n "$prev"; then
590550806d53Smrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
590650806d53Smrg      $echo "$help" 1>&2
590750806d53Smrg      exit $EXIT_FAILURE
590850806d53Smrg    fi
590950806d53Smrg
591050806d53Smrg    if test -z "$files"; then
591150806d53Smrg      if test -z "$dest"; then
591250806d53Smrg	$echo "$modename: no file or destination specified" 1>&2
591350806d53Smrg      else
591450806d53Smrg	$echo "$modename: you must specify a destination" 1>&2
591550806d53Smrg      fi
591650806d53Smrg      $echo "$help" 1>&2
591750806d53Smrg      exit $EXIT_FAILURE
591850806d53Smrg    fi
591950806d53Smrg
592050806d53Smrg    # Strip any trailing slash from the destination.
592150806d53Smrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
592250806d53Smrg
592350806d53Smrg    # Check to see that the destination is a directory.
592450806d53Smrg    test -d "$dest" && isdir=yes
592550806d53Smrg    if test "$isdir" = yes; then
592650806d53Smrg      destdir="$dest"
592750806d53Smrg      destname=
592850806d53Smrg    else
592950806d53Smrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
593050806d53Smrg      test "X$destdir" = "X$dest" && destdir=.
593150806d53Smrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
593250806d53Smrg
593350806d53Smrg      # Not a directory, so check to see that there is only one file specified.
593450806d53Smrg      set dummy $files
593550806d53Smrg      if test "$#" -gt 2; then
593650806d53Smrg	$echo "$modename: \`$dest' is not a directory" 1>&2
593750806d53Smrg	$echo "$help" 1>&2
593850806d53Smrg	exit $EXIT_FAILURE
593950806d53Smrg      fi
594050806d53Smrg    fi
594150806d53Smrg    case $destdir in
594250806d53Smrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
594350806d53Smrg    *)
594450806d53Smrg      for file in $files; do
594550806d53Smrg	case $file in
594650806d53Smrg	*.lo) ;;
594750806d53Smrg	*)
594850806d53Smrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
594950806d53Smrg	  $echo "$help" 1>&2
595050806d53Smrg	  exit $EXIT_FAILURE
595150806d53Smrg	  ;;
595250806d53Smrg	esac
595350806d53Smrg      done
595450806d53Smrg      ;;
595550806d53Smrg    esac
595650806d53Smrg
595750806d53Smrg    # This variable tells wrapper scripts just to set variables rather
595850806d53Smrg    # than running their programs.
595950806d53Smrg    libtool_install_magic="$magic"
596050806d53Smrg
596150806d53Smrg    staticlibs=
596250806d53Smrg    future_libdirs=
596350806d53Smrg    current_libdirs=
596450806d53Smrg    for file in $files; do
596550806d53Smrg
596650806d53Smrg      # Do each installation.
596750806d53Smrg      case $file in
596850806d53Smrg      *.$libext)
596950806d53Smrg	# Do the static libraries later.
597050806d53Smrg	staticlibs="$staticlibs $file"
597150806d53Smrg	;;
597250806d53Smrg
597350806d53Smrg      *.la)
597450806d53Smrg	# Check to see that this really is a libtool archive.
597550806d53Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
597650806d53Smrg	else
597750806d53Smrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
597850806d53Smrg	  $echo "$help" 1>&2
597950806d53Smrg	  exit $EXIT_FAILURE
598050806d53Smrg	fi
598150806d53Smrg
598250806d53Smrg	library_names=
598350806d53Smrg	old_library=
598450806d53Smrg	relink_command=
598550806d53Smrg	# If there is no directory component, then add one.
598650806d53Smrg	case $file in
598750806d53Smrg	*/* | *\\*) . $file ;;
598850806d53Smrg	*) . ./$file ;;
598950806d53Smrg	esac
599050806d53Smrg
599150806d53Smrg	# Add the libdir to current_libdirs if it is the destination.
599250806d53Smrg	if test "X$destdir" = "X$libdir"; then
599350806d53Smrg	  case "$current_libdirs " in
599450806d53Smrg	  *" $libdir "*) ;;
599550806d53Smrg	  *) current_libdirs="$current_libdirs $libdir" ;;
599650806d53Smrg	  esac
599750806d53Smrg	else
599850806d53Smrg	  # Note the libdir as a future libdir.
599950806d53Smrg	  case "$future_libdirs " in
600050806d53Smrg	  *" $libdir "*) ;;
600150806d53Smrg	  *) future_libdirs="$future_libdirs $libdir" ;;
600250806d53Smrg	  esac
600350806d53Smrg	fi
600450806d53Smrg
600550806d53Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
600650806d53Smrg	test "X$dir" = "X$file/" && dir=
600750806d53Smrg	dir="$dir$objdir"
600850806d53Smrg
600950806d53Smrg	if test -n "$relink_command"; then
601050806d53Smrg	  # Determine the prefix the user has applied to our future dir.
601150806d53Smrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
601250806d53Smrg
601350806d53Smrg	  # Don't allow the user to place us outside of our expected
601450806d53Smrg	  # location b/c this prevents finding dependent libraries that
601550806d53Smrg	  # are installed to the same prefix.
601650806d53Smrg	  # At present, this check doesn't affect windows .dll's that
601750806d53Smrg	  # are installed into $libdir/../bin (currently, that works fine)
601850806d53Smrg	  # but it's something to keep an eye on.
601950806d53Smrg	  if test "$inst_prefix_dir" = "$destdir"; then
602050806d53Smrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
602150806d53Smrg	    exit $EXIT_FAILURE
602250806d53Smrg	  fi
602350806d53Smrg
602450806d53Smrg	  if test -n "$inst_prefix_dir"; then
602550806d53Smrg	    # Stick the inst_prefix_dir data into the link command.
602650806d53Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
602750806d53Smrg	  else
602850806d53Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
602950806d53Smrg	  fi
603050806d53Smrg
603150806d53Smrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
603250806d53Smrg	  $show "$relink_command"
603350806d53Smrg	  if $run eval "$relink_command"; then :
603450806d53Smrg	  else
603550806d53Smrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
603650806d53Smrg	    exit $EXIT_FAILURE
603750806d53Smrg	  fi
603850806d53Smrg	fi
603950806d53Smrg
604050806d53Smrg	# See the names of the shared library.
604150806d53Smrg	set dummy $library_names
604250806d53Smrg	if test -n "$2"; then
604350806d53Smrg	  realname="$2"
604450806d53Smrg	  shift
604550806d53Smrg	  shift
604650806d53Smrg
604750806d53Smrg	  srcname="$realname"
604850806d53Smrg	  test -n "$relink_command" && srcname="$realname"T
604950806d53Smrg
605050806d53Smrg	  # Install the shared library and build the symlinks.
605150806d53Smrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
605250806d53Smrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
605350806d53Smrg	  if test -n "$stripme" && test -n "$striplib"; then
605450806d53Smrg	    $show "$striplib $destdir/$realname"
605550806d53Smrg	    $run eval "$striplib $destdir/$realname" || exit $?
605650806d53Smrg	  fi
605750806d53Smrg
605850806d53Smrg	  if test "$#" -gt 0; then
605950806d53Smrg	    # Delete the old symlinks, and create new ones.
606050806d53Smrg	    # Try `ln -sf' first, because the `ln' binary might depend on
606150806d53Smrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
606250806d53Smrg	    # so we also need to try rm && ln -s.
606350806d53Smrg	    for linkname
606450806d53Smrg	    do
606550806d53Smrg	      if test "$linkname" != "$realname"; then
606650806d53Smrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
606750806d53Smrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
606850806d53Smrg	      fi
606950806d53Smrg	    done
607050806d53Smrg	  fi
607150806d53Smrg
607250806d53Smrg	  # Do each command in the postinstall commands.
607350806d53Smrg	  lib="$destdir/$realname"
607450806d53Smrg	  cmds=$postinstall_cmds
607550806d53Smrg	  save_ifs="$IFS"; IFS='~'
607650806d53Smrg	  for cmd in $cmds; do
607750806d53Smrg	    IFS="$save_ifs"
607850806d53Smrg	    eval cmd=\"$cmd\"
607950806d53Smrg	    $show "$cmd"
608050806d53Smrg	    $run eval "$cmd" || {
608150806d53Smrg	      lt_exit=$?
608250806d53Smrg
608350806d53Smrg	      # Restore the uninstalled library and exit
608450806d53Smrg	      if test "$mode" = relink; then
608550806d53Smrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
608650806d53Smrg	      fi
608750806d53Smrg
608850806d53Smrg	      exit $lt_exit
608950806d53Smrg	    }
609050806d53Smrg	  done
609150806d53Smrg	  IFS="$save_ifs"
609250806d53Smrg	fi
609350806d53Smrg
609450806d53Smrg	# Install the pseudo-library for information purposes.
609550806d53Smrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
609650806d53Smrg	instname="$dir/$name"i
609750806d53Smrg	$show "$install_prog $instname $destdir/$name"
609850806d53Smrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
609950806d53Smrg
610050806d53Smrg	# Maybe install the static library, too.
610150806d53Smrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
610250806d53Smrg	;;
610350806d53Smrg
610450806d53Smrg      *.lo)
610550806d53Smrg	# Install (i.e. copy) a libtool object.
610650806d53Smrg
610750806d53Smrg	# Figure out destination file name, if it wasn't already specified.
610850806d53Smrg	if test -n "$destname"; then
610950806d53Smrg	  destfile="$destdir/$destname"
611050806d53Smrg	else
611150806d53Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
611250806d53Smrg	  destfile="$destdir/$destfile"
611350806d53Smrg	fi
611450806d53Smrg
611550806d53Smrg	# Deduce the name of the destination old-style object file.
611650806d53Smrg	case $destfile in
611750806d53Smrg	*.lo)
611850806d53Smrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
611950806d53Smrg	  ;;
612050806d53Smrg	*.$objext)
612150806d53Smrg	  staticdest="$destfile"
612250806d53Smrg	  destfile=
612350806d53Smrg	  ;;
612450806d53Smrg	*)
612550806d53Smrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
612650806d53Smrg	  $echo "$help" 1>&2
612750806d53Smrg	  exit $EXIT_FAILURE
612850806d53Smrg	  ;;
612950806d53Smrg	esac
613050806d53Smrg
613150806d53Smrg	# Install the libtool object if requested.
613250806d53Smrg	if test -n "$destfile"; then
613350806d53Smrg	  $show "$install_prog $file $destfile"
613450806d53Smrg	  $run eval "$install_prog $file $destfile" || exit $?
613550806d53Smrg	fi
613650806d53Smrg
613750806d53Smrg	# Install the old object if enabled.
613850806d53Smrg	if test "$build_old_libs" = yes; then
613950806d53Smrg	  # Deduce the name of the old-style object file.
614050806d53Smrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
614150806d53Smrg
614250806d53Smrg	  $show "$install_prog $staticobj $staticdest"
614350806d53Smrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
614450806d53Smrg	fi
614550806d53Smrg	exit $EXIT_SUCCESS
614650806d53Smrg	;;
614750806d53Smrg
614850806d53Smrg      *)
614950806d53Smrg	# Figure out destination file name, if it wasn't already specified.
615050806d53Smrg	if test -n "$destname"; then
615150806d53Smrg	  destfile="$destdir/$destname"
615250806d53Smrg	else
615350806d53Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
615450806d53Smrg	  destfile="$destdir/$destfile"
615550806d53Smrg	fi
615650806d53Smrg
615750806d53Smrg	# If the file is missing, and there is a .exe on the end, strip it
615850806d53Smrg	# because it is most likely a libtool script we actually want to
615950806d53Smrg	# install
616050806d53Smrg	stripped_ext=""
616150806d53Smrg	case $file in
616250806d53Smrg	  *.exe)
616350806d53Smrg	    if test ! -f "$file"; then
616450806d53Smrg	      file=`$echo $file|${SED} 's,.exe$,,'`
616550806d53Smrg	      stripped_ext=".exe"
616650806d53Smrg	    fi
616750806d53Smrg	    ;;
616850806d53Smrg	esac
616950806d53Smrg
617050806d53Smrg	# Do a test to see if this is really a libtool program.
617150806d53Smrg	case $host in
617250806d53Smrg	*cygwin*|*mingw*)
617350806d53Smrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
617450806d53Smrg	    ;;
617550806d53Smrg	*)
617650806d53Smrg	    wrapper=$file
617750806d53Smrg	    ;;
617850806d53Smrg	esac
617950806d53Smrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
618050806d53Smrg	  notinst_deplibs=
618150806d53Smrg	  relink_command=
618250806d53Smrg
618350806d53Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
618450806d53Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
618550806d53Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
618650806d53Smrg	  # `FILE.' does not work on cygwin managed mounts.
618750806d53Smrg	  #
618850806d53Smrg	  # If there is no directory component, then add one.
618950806d53Smrg	  case $wrapper in
619050806d53Smrg	  */* | *\\*) . ${wrapper} ;;
619150806d53Smrg	  *) . ./${wrapper} ;;
619250806d53Smrg	  esac
619350806d53Smrg
619450806d53Smrg	  # Check the variables that should have been set.
619550806d53Smrg	  if test -z "$notinst_deplibs"; then
619650806d53Smrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
619750806d53Smrg	    exit $EXIT_FAILURE
619850806d53Smrg	  fi
619950806d53Smrg
620050806d53Smrg	  finalize=yes
620150806d53Smrg	  for lib in $notinst_deplibs; do
620250806d53Smrg	    # Check to see that each library is installed.
620350806d53Smrg	    libdir=
620450806d53Smrg	    if test -f "$lib"; then
620550806d53Smrg	      # If there is no directory component, then add one.
620650806d53Smrg	      case $lib in
620750806d53Smrg	      */* | *\\*) . $lib ;;
620850806d53Smrg	      *) . ./$lib ;;
620950806d53Smrg	      esac
621050806d53Smrg	    fi
621150806d53Smrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
621250806d53Smrg	    if test -n "$libdir" && test ! -f "$libfile"; then
621350806d53Smrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
621450806d53Smrg	      finalize=no
621550806d53Smrg	    fi
621650806d53Smrg	  done
621750806d53Smrg
621850806d53Smrg	  relink_command=
621950806d53Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
622050806d53Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
622150806d53Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
622250806d53Smrg	  # `FILE.' does not work on cygwin managed mounts.
622350806d53Smrg	  #
622450806d53Smrg	  # If there is no directory component, then add one.
622550806d53Smrg	  case $wrapper in
622650806d53Smrg	  */* | *\\*) . ${wrapper} ;;
622750806d53Smrg	  *) . ./${wrapper} ;;
622850806d53Smrg	  esac
622950806d53Smrg
623050806d53Smrg	  outputname=
623150806d53Smrg	  if test "$fast_install" = no && test -n "$relink_command"; then
623250806d53Smrg	    if test "$finalize" = yes && test -z "$run"; then
623350806d53Smrg	      tmpdir=`func_mktempdir`
623450806d53Smrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
623550806d53Smrg	      outputname="$tmpdir/$file"
623650806d53Smrg	      # Replace the output file specification.
623750806d53Smrg	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
623850806d53Smrg
623950806d53Smrg	      $show "$relink_command"
624050806d53Smrg	      if $run eval "$relink_command"; then :
624150806d53Smrg	      else
624250806d53Smrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
624350806d53Smrg		${rm}r "$tmpdir"
624450806d53Smrg		continue
624550806d53Smrg	      fi
624650806d53Smrg	      file="$outputname"
624750806d53Smrg	    else
624850806d53Smrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
624950806d53Smrg	    fi
625050806d53Smrg	  else
625150806d53Smrg	    # Install the binary that we compiled earlier.
625250806d53Smrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
625350806d53Smrg	  fi
625450806d53Smrg	fi
625550806d53Smrg
625650806d53Smrg	# remove .exe since cygwin /usr/bin/install will append another
625750806d53Smrg	# one anyway 
625850806d53Smrg	case $install_prog,$host in
625950806d53Smrg	*/usr/bin/install*,*cygwin*)
626050806d53Smrg	  case $file:$destfile in
626150806d53Smrg	  *.exe:*.exe)
626250806d53Smrg	    # this is ok
626350806d53Smrg	    ;;
626450806d53Smrg	  *.exe:*)
626550806d53Smrg	    destfile=$destfile.exe
626650806d53Smrg	    ;;
626750806d53Smrg	  *:*.exe)
626850806d53Smrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
626950806d53Smrg	    ;;
627050806d53Smrg	  esac
627150806d53Smrg	  ;;
627250806d53Smrg	esac
627350806d53Smrg	$show "$install_prog$stripme $file $destfile"
627450806d53Smrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
627550806d53Smrg	test -n "$outputname" && ${rm}r "$tmpdir"
627650806d53Smrg	;;
627750806d53Smrg      esac
627850806d53Smrg    done
627950806d53Smrg
628050806d53Smrg    for file in $staticlibs; do
628150806d53Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
628250806d53Smrg
628350806d53Smrg      # Set up the ranlib parameters.
628450806d53Smrg      oldlib="$destdir/$name"
628550806d53Smrg
628650806d53Smrg      $show "$install_prog $file $oldlib"
628750806d53Smrg      $run eval "$install_prog \$file \$oldlib" || exit $?
628850806d53Smrg
628950806d53Smrg      if test -n "$stripme" && test -n "$old_striplib"; then
629050806d53Smrg	$show "$old_striplib $oldlib"
629150806d53Smrg	$run eval "$old_striplib $oldlib" || exit $?
629250806d53Smrg      fi
629350806d53Smrg
629450806d53Smrg      # Do each command in the postinstall commands.
629550806d53Smrg      cmds=$old_postinstall_cmds
629650806d53Smrg      save_ifs="$IFS"; IFS='~'
629750806d53Smrg      for cmd in $cmds; do
629850806d53Smrg	IFS="$save_ifs"
629950806d53Smrg	eval cmd=\"$cmd\"
630050806d53Smrg	$show "$cmd"
630150806d53Smrg	$run eval "$cmd" || exit $?
630250806d53Smrg      done
630350806d53Smrg      IFS="$save_ifs"
630450806d53Smrg    done
630550806d53Smrg
630650806d53Smrg    if test -n "$future_libdirs"; then
630750806d53Smrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
630850806d53Smrg    fi
630950806d53Smrg
631050806d53Smrg    if test -n "$current_libdirs"; then
631150806d53Smrg      # Maybe just do a dry run.
631250806d53Smrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
631350806d53Smrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
631450806d53Smrg    else
631550806d53Smrg      exit $EXIT_SUCCESS
631650806d53Smrg    fi
631750806d53Smrg    ;;
631850806d53Smrg
631950806d53Smrg  # libtool finish mode
632050806d53Smrg  finish)
632150806d53Smrg    modename="$modename: finish"
632250806d53Smrg    libdirs="$nonopt"
632350806d53Smrg    admincmds=
632450806d53Smrg
632550806d53Smrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
632650806d53Smrg      for dir
632750806d53Smrg      do
632850806d53Smrg	libdirs="$libdirs $dir"
632950806d53Smrg      done
633050806d53Smrg
633150806d53Smrg      for libdir in $libdirs; do
633250806d53Smrg	if test -n "$finish_cmds"; then
633350806d53Smrg	  # Do each command in the finish commands.
633450806d53Smrg	  cmds=$finish_cmds
633550806d53Smrg	  save_ifs="$IFS"; IFS='~'
633650806d53Smrg	  for cmd in $cmds; do
633750806d53Smrg	    IFS="$save_ifs"
633850806d53Smrg	    eval cmd=\"$cmd\"
633950806d53Smrg	    $show "$cmd"
634050806d53Smrg	    $run eval "$cmd" || admincmds="$admincmds
634150806d53Smrg       $cmd"
634250806d53Smrg	  done
634350806d53Smrg	  IFS="$save_ifs"
634450806d53Smrg	fi
634550806d53Smrg	if test -n "$finish_eval"; then
634650806d53Smrg	  # Do the single finish_eval.
634750806d53Smrg	  eval cmds=\"$finish_eval\"
634850806d53Smrg	  $run eval "$cmds" || admincmds="$admincmds
634950806d53Smrg       $cmds"
635050806d53Smrg	fi
635150806d53Smrg      done
635250806d53Smrg    fi
635350806d53Smrg
635450806d53Smrg    # Exit here if they wanted silent mode.
635550806d53Smrg    test "$show" = : && exit $EXIT_SUCCESS
635650806d53Smrg
635750806d53Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
635850806d53Smrg    $echo "Libraries have been installed in:"
635950806d53Smrg    for libdir in $libdirs; do
636050806d53Smrg      $echo "   $libdir"
636150806d53Smrg    done
636250806d53Smrg    $echo
636350806d53Smrg    $echo "If you ever happen to want to link against installed libraries"
636450806d53Smrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
636550806d53Smrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
636650806d53Smrg    $echo "flag during linking and do at least one of the following:"
636750806d53Smrg    if test -n "$shlibpath_var"; then
636850806d53Smrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
636950806d53Smrg      $echo "     during execution"
637050806d53Smrg    fi
637150806d53Smrg    if test -n "$runpath_var"; then
637250806d53Smrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
637350806d53Smrg      $echo "     during linking"
637450806d53Smrg    fi
637550806d53Smrg    if test -n "$hardcode_libdir_flag_spec"; then
637650806d53Smrg      libdir=LIBDIR
637750806d53Smrg      eval flag=\"$hardcode_libdir_flag_spec\"
637850806d53Smrg
637950806d53Smrg      $echo "   - use the \`$flag' linker flag"
638050806d53Smrg    fi
638150806d53Smrg    if test -n "$admincmds"; then
638250806d53Smrg      $echo "   - have your system administrator run these commands:$admincmds"
638350806d53Smrg    fi
638450806d53Smrg    if test -f /etc/ld.so.conf; then
638550806d53Smrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
638650806d53Smrg    fi
638750806d53Smrg    $echo
638850806d53Smrg    $echo "See any operating system documentation about shared libraries for"
638950806d53Smrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
639050806d53Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
639150806d53Smrg    exit $EXIT_SUCCESS
639250806d53Smrg    ;;
639350806d53Smrg
639450806d53Smrg  # libtool execute mode
639550806d53Smrg  execute)
639650806d53Smrg    modename="$modename: execute"
639750806d53Smrg
639850806d53Smrg    # The first argument is the command name.
639950806d53Smrg    cmd="$nonopt"
640050806d53Smrg    if test -z "$cmd"; then
640150806d53Smrg      $echo "$modename: you must specify a COMMAND" 1>&2
640250806d53Smrg      $echo "$help"
640350806d53Smrg      exit $EXIT_FAILURE
640450806d53Smrg    fi
640550806d53Smrg
640650806d53Smrg    # Handle -dlopen flags immediately.
640750806d53Smrg    for file in $execute_dlfiles; do
640850806d53Smrg      if test ! -f "$file"; then
640950806d53Smrg	$echo "$modename: \`$file' is not a file" 1>&2
641050806d53Smrg	$echo "$help" 1>&2
641150806d53Smrg	exit $EXIT_FAILURE
641250806d53Smrg      fi
641350806d53Smrg
641450806d53Smrg      dir=
641550806d53Smrg      case $file in
641650806d53Smrg      *.la)
641750806d53Smrg	# Check to see that this really is a libtool archive.
641850806d53Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
641950806d53Smrg	else
642050806d53Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
642150806d53Smrg	  $echo "$help" 1>&2
642250806d53Smrg	  exit $EXIT_FAILURE
642350806d53Smrg	fi
642450806d53Smrg
642550806d53Smrg	# Read the libtool library.
642650806d53Smrg	dlname=
642750806d53Smrg	library_names=
642850806d53Smrg
642950806d53Smrg	# If there is no directory component, then add one.
643050806d53Smrg	case $file in
643150806d53Smrg	*/* | *\\*) . $file ;;
643250806d53Smrg	*) . ./$file ;;
643350806d53Smrg	esac
643450806d53Smrg
643550806d53Smrg	# Skip this library if it cannot be dlopened.
643650806d53Smrg	if test -z "$dlname"; then
643750806d53Smrg	  # Warn if it was a shared library.
643850806d53Smrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
643950806d53Smrg	  continue
644050806d53Smrg	fi
644150806d53Smrg
644250806d53Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
644350806d53Smrg	test "X$dir" = "X$file" && dir=.
644450806d53Smrg
644550806d53Smrg	if test -f "$dir/$objdir/$dlname"; then
644650806d53Smrg	  dir="$dir/$objdir"
644750806d53Smrg	else
64487965d9acSmrg	  if test ! -f "$dir/$dlname"; then
64497965d9acSmrg	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
64507965d9acSmrg	    exit $EXIT_FAILURE
64517965d9acSmrg	  fi
645250806d53Smrg	fi
645350806d53Smrg	;;
645450806d53Smrg
645550806d53Smrg      *.lo)
645650806d53Smrg	# Just add the directory containing the .lo file.
645750806d53Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
645850806d53Smrg	test "X$dir" = "X$file" && dir=.
645950806d53Smrg	;;
646050806d53Smrg
646150806d53Smrg      *)
646250806d53Smrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
646350806d53Smrg	continue
646450806d53Smrg	;;
646550806d53Smrg      esac
646650806d53Smrg
646750806d53Smrg      # Get the absolute pathname.
646850806d53Smrg      absdir=`cd "$dir" && pwd`
646950806d53Smrg      test -n "$absdir" && dir="$absdir"
647050806d53Smrg
647150806d53Smrg      # Now add the directory to shlibpath_var.
647250806d53Smrg      if eval "test -z \"\$$shlibpath_var\""; then
647350806d53Smrg	eval "$shlibpath_var=\"\$dir\""
647450806d53Smrg      else
647550806d53Smrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
647650806d53Smrg      fi
647750806d53Smrg    done
647850806d53Smrg
647950806d53Smrg    # This variable tells wrapper scripts just to set shlibpath_var
648050806d53Smrg    # rather than running their programs.
648150806d53Smrg    libtool_execute_magic="$magic"
648250806d53Smrg
648350806d53Smrg    # Check if any of the arguments is a wrapper script.
648450806d53Smrg    args=
648550806d53Smrg    for file
648650806d53Smrg    do
648750806d53Smrg      case $file in
648850806d53Smrg      -*) ;;
648950806d53Smrg      *)
649050806d53Smrg	# Do a test to see if this is really a libtool program.
649150806d53Smrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
649250806d53Smrg	  # If there is no directory component, then add one.
649350806d53Smrg	  case $file in
649450806d53Smrg	  */* | *\\*) . $file ;;
649550806d53Smrg	  *) . ./$file ;;
649650806d53Smrg	  esac
649750806d53Smrg
649850806d53Smrg	  # Transform arg to wrapped name.
649950806d53Smrg	  file="$progdir/$program"
650050806d53Smrg	fi
650150806d53Smrg	;;
650250806d53Smrg      esac
650350806d53Smrg      # Quote arguments (to preserve shell metacharacters).
650450806d53Smrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
650550806d53Smrg      args="$args \"$file\""
650650806d53Smrg    done
650750806d53Smrg
650850806d53Smrg    if test -z "$run"; then
650950806d53Smrg      if test -n "$shlibpath_var"; then
651050806d53Smrg	# Export the shlibpath_var.
651150806d53Smrg	eval "export $shlibpath_var"
651250806d53Smrg      fi
651350806d53Smrg
651450806d53Smrg      # Restore saved environment variables
65157965d9acSmrg      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
651650806d53Smrg      do
65177965d9acSmrg	eval "if test \"\${save_$lt_var+set}\" = set; then
65187965d9acSmrg		$lt_var=\$save_$lt_var; export $lt_var
65197965d9acSmrg	      fi"
652050806d53Smrg      done
652150806d53Smrg
652250806d53Smrg      # Now prepare to actually exec the command.
652350806d53Smrg      exec_cmd="\$cmd$args"
652450806d53Smrg    else
652550806d53Smrg      # Display what would be done.
652650806d53Smrg      if test -n "$shlibpath_var"; then
652750806d53Smrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
652850806d53Smrg	$echo "export $shlibpath_var"
652950806d53Smrg      fi
653050806d53Smrg      $echo "$cmd$args"
653150806d53Smrg      exit $EXIT_SUCCESS
653250806d53Smrg    fi
653350806d53Smrg    ;;
653450806d53Smrg
653550806d53Smrg  # libtool clean and uninstall mode
653650806d53Smrg  clean | uninstall)
653750806d53Smrg    modename="$modename: $mode"
653850806d53Smrg    rm="$nonopt"
653950806d53Smrg    files=
654050806d53Smrg    rmforce=
654150806d53Smrg    exit_status=0
654250806d53Smrg
654350806d53Smrg    # This variable tells wrapper scripts just to set variables rather
654450806d53Smrg    # than running their programs.
654550806d53Smrg    libtool_install_magic="$magic"
654650806d53Smrg
654750806d53Smrg    for arg
654850806d53Smrg    do
654950806d53Smrg      case $arg in
655050806d53Smrg      -f) rm="$rm $arg"; rmforce=yes ;;
655150806d53Smrg      -*) rm="$rm $arg" ;;
655250806d53Smrg      *) files="$files $arg" ;;
655350806d53Smrg      esac
655450806d53Smrg    done
655550806d53Smrg
655650806d53Smrg    if test -z "$rm"; then
655750806d53Smrg      $echo "$modename: you must specify an RM program" 1>&2
655850806d53Smrg      $echo "$help" 1>&2
655950806d53Smrg      exit $EXIT_FAILURE
656050806d53Smrg    fi
656150806d53Smrg
656250806d53Smrg    rmdirs=
656350806d53Smrg
656450806d53Smrg    origobjdir="$objdir"
656550806d53Smrg    for file in $files; do
656650806d53Smrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
656750806d53Smrg      if test "X$dir" = "X$file"; then
656850806d53Smrg	dir=.
656950806d53Smrg	objdir="$origobjdir"
657050806d53Smrg      else
657150806d53Smrg	objdir="$dir/$origobjdir"
657250806d53Smrg      fi
657350806d53Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
657450806d53Smrg      test "$mode" = uninstall && objdir="$dir"
657550806d53Smrg
657650806d53Smrg      # Remember objdir for removal later, being careful to avoid duplicates
657750806d53Smrg      if test "$mode" = clean; then
657850806d53Smrg	case " $rmdirs " in
657950806d53Smrg	  *" $objdir "*) ;;
658050806d53Smrg	  *) rmdirs="$rmdirs $objdir" ;;
658150806d53Smrg	esac
658250806d53Smrg      fi
658350806d53Smrg
658450806d53Smrg      # Don't error if the file doesn't exist and rm -f was used.
658550806d53Smrg      if (test -L "$file") >/dev/null 2>&1 \
658650806d53Smrg	|| (test -h "$file") >/dev/null 2>&1 \
658750806d53Smrg	|| test -f "$file"; then
658850806d53Smrg	:
658950806d53Smrg      elif test -d "$file"; then
659050806d53Smrg	exit_status=1
659150806d53Smrg	continue
659250806d53Smrg      elif test "$rmforce" = yes; then
659350806d53Smrg	continue
659450806d53Smrg      fi
659550806d53Smrg
659650806d53Smrg      rmfiles="$file"
659750806d53Smrg
659850806d53Smrg      case $name in
659950806d53Smrg      *.la)
660050806d53Smrg	# Possibly a libtool archive, so verify it.
660150806d53Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
660250806d53Smrg	  . $dir/$name
660350806d53Smrg
660450806d53Smrg	  # Delete the libtool libraries and symlinks.
660550806d53Smrg	  for n in $library_names; do
660650806d53Smrg	    rmfiles="$rmfiles $objdir/$n"
660750806d53Smrg	  done
660850806d53Smrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
660950806d53Smrg
661050806d53Smrg	  case "$mode" in
661150806d53Smrg	  clean)
661250806d53Smrg	    case "  $library_names " in
661350806d53Smrg	    # "  " in the beginning catches empty $dlname
661450806d53Smrg	    *" $dlname "*) ;;
661550806d53Smrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
661650806d53Smrg	    esac
661750806d53Smrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
661850806d53Smrg	    ;;
661950806d53Smrg	  uninstall)
662050806d53Smrg	    if test -n "$library_names"; then
662150806d53Smrg	      # Do each command in the postuninstall commands.
662250806d53Smrg	      cmds=$postuninstall_cmds
662350806d53Smrg	      save_ifs="$IFS"; IFS='~'
662450806d53Smrg	      for cmd in $cmds; do
662550806d53Smrg		IFS="$save_ifs"
662650806d53Smrg		eval cmd=\"$cmd\"
662750806d53Smrg		$show "$cmd"
662850806d53Smrg		$run eval "$cmd"
662950806d53Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
663050806d53Smrg		  exit_status=1
663150806d53Smrg		fi
663250806d53Smrg	      done
663350806d53Smrg	      IFS="$save_ifs"
663450806d53Smrg	    fi
663550806d53Smrg
663650806d53Smrg	    if test -n "$old_library"; then
663750806d53Smrg	      # Do each command in the old_postuninstall commands.
663850806d53Smrg	      cmds=$old_postuninstall_cmds
663950806d53Smrg	      save_ifs="$IFS"; IFS='~'
664050806d53Smrg	      for cmd in $cmds; do
664150806d53Smrg		IFS="$save_ifs"
664250806d53Smrg		eval cmd=\"$cmd\"
664350806d53Smrg		$show "$cmd"
664450806d53Smrg		$run eval "$cmd"
664550806d53Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
664650806d53Smrg		  exit_status=1
664750806d53Smrg		fi
664850806d53Smrg	      done
664950806d53Smrg	      IFS="$save_ifs"
665050806d53Smrg	    fi
665150806d53Smrg	    # FIXME: should reinstall the best remaining shared library.
665250806d53Smrg	    ;;
665350806d53Smrg	  esac
665450806d53Smrg	fi
665550806d53Smrg	;;
665650806d53Smrg
665750806d53Smrg      *.lo)
665850806d53Smrg	# Possibly a libtool object, so verify it.
665950806d53Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
666050806d53Smrg
666150806d53Smrg	  # Read the .lo file
666250806d53Smrg	  . $dir/$name
666350806d53Smrg
666450806d53Smrg	  # Add PIC object to the list of files to remove.
666550806d53Smrg	  if test -n "$pic_object" \
666650806d53Smrg	     && test "$pic_object" != none; then
666750806d53Smrg	    rmfiles="$rmfiles $dir/$pic_object"
666850806d53Smrg	  fi
666950806d53Smrg
667050806d53Smrg	  # Add non-PIC object to the list of files to remove.
667150806d53Smrg	  if test -n "$non_pic_object" \
667250806d53Smrg	     && test "$non_pic_object" != none; then
667350806d53Smrg	    rmfiles="$rmfiles $dir/$non_pic_object"
667450806d53Smrg	  fi
667550806d53Smrg	fi
667650806d53Smrg	;;
667750806d53Smrg
667850806d53Smrg      *)
667950806d53Smrg	if test "$mode" = clean ; then
668050806d53Smrg	  noexename=$name
668150806d53Smrg	  case $file in
668250806d53Smrg	  *.exe)
668350806d53Smrg	    file=`$echo $file|${SED} 's,.exe$,,'`
668450806d53Smrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
668550806d53Smrg	    # $file with .exe has already been added to rmfiles,
668650806d53Smrg	    # add $file without .exe
668750806d53Smrg	    rmfiles="$rmfiles $file"
668850806d53Smrg	    ;;
668950806d53Smrg	  esac
669050806d53Smrg	  # Do a test to see if this is a libtool program.
669150806d53Smrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
669250806d53Smrg	    relink_command=
669350806d53Smrg	    . $dir/$noexename
669450806d53Smrg
669550806d53Smrg	    # note $name still contains .exe if it was in $file originally
669650806d53Smrg	    # as does the version of $file that was added into $rmfiles
669750806d53Smrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
669850806d53Smrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
669950806d53Smrg	      rmfiles="$rmfiles $objdir/lt-$name"
670050806d53Smrg	    fi
670150806d53Smrg	    if test "X$noexename" != "X$name" ; then
670250806d53Smrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
670350806d53Smrg	    fi
670450806d53Smrg	  fi
670550806d53Smrg	fi
670650806d53Smrg	;;
670750806d53Smrg      esac
670850806d53Smrg      $show "$rm $rmfiles"
670950806d53Smrg      $run $rm $rmfiles || exit_status=1
671050806d53Smrg    done
671150806d53Smrg    objdir="$origobjdir"
671250806d53Smrg
671350806d53Smrg    # Try to remove the ${objdir}s in the directories where we deleted files
671450806d53Smrg    for dir in $rmdirs; do
671550806d53Smrg      if test -d "$dir"; then
671650806d53Smrg	$show "rmdir $dir"
671750806d53Smrg	$run rmdir $dir >/dev/null 2>&1
671850806d53Smrg      fi
671950806d53Smrg    done
672050806d53Smrg
672150806d53Smrg    exit $exit_status
672250806d53Smrg    ;;
672350806d53Smrg
672450806d53Smrg  "")
672550806d53Smrg    $echo "$modename: you must specify a MODE" 1>&2
672650806d53Smrg    $echo "$generic_help" 1>&2
672750806d53Smrg    exit $EXIT_FAILURE
672850806d53Smrg    ;;
672950806d53Smrg  esac
673050806d53Smrg
673150806d53Smrg  if test -z "$exec_cmd"; then
673250806d53Smrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
673350806d53Smrg    $echo "$generic_help" 1>&2
673450806d53Smrg    exit $EXIT_FAILURE
673550806d53Smrg  fi
673650806d53Smrgfi # test -z "$show_help"
673750806d53Smrg
673850806d53Smrgif test -n "$exec_cmd"; then
673950806d53Smrg  eval exec $exec_cmd
674050806d53Smrg  exit $EXIT_FAILURE
674150806d53Smrgfi
674250806d53Smrg
674350806d53Smrg# We need to display help for each of the modes.
674450806d53Smrgcase $mode in
674550806d53Smrg"") $echo \
674650806d53Smrg"Usage: $modename [OPTION]... [MODE-ARG]...
674750806d53Smrg
674850806d53SmrgProvide generalized library-building support services.
674950806d53Smrg
675050806d53Smrg    --config          show all configuration variables
675150806d53Smrg    --debug           enable verbose shell tracing
675250806d53Smrg-n, --dry-run         display commands without modifying any files
675350806d53Smrg    --features        display basic configuration information and exit
675450806d53Smrg    --finish          same as \`--mode=finish'
675550806d53Smrg    --help            display this help message and exit
675650806d53Smrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
675750806d53Smrg    --quiet           same as \`--silent'
675850806d53Smrg    --silent          don't print informational messages
675950806d53Smrg    --tag=TAG         use configuration variables from tag TAG
676050806d53Smrg    --version         print version information
676150806d53Smrg
676250806d53SmrgMODE must be one of the following:
676350806d53Smrg
676450806d53Smrg      clean           remove files from the build directory
676550806d53Smrg      compile         compile a source file into a libtool object
676650806d53Smrg      execute         automatically set library path, then run a program
676750806d53Smrg      finish          complete the installation of libtool libraries
676850806d53Smrg      install         install libraries or executables
676950806d53Smrg      link            create a library or an executable
677050806d53Smrg      uninstall       remove libraries from an installed directory
677150806d53Smrg
677250806d53SmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
677350806d53Smrga more detailed description of MODE.
677450806d53Smrg
677550806d53SmrgReport bugs to <bug-libtool@gnu.org>."
677650806d53Smrg  exit $EXIT_SUCCESS
677750806d53Smrg  ;;
677850806d53Smrg
677950806d53Smrgclean)
678050806d53Smrg  $echo \
678150806d53Smrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
678250806d53Smrg
678350806d53SmrgRemove files from the build directory.
678450806d53Smrg
678550806d53SmrgRM is the name of the program to use to delete files associated with each FILE
678650806d53Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
678750806d53Smrgto RM.
678850806d53Smrg
678950806d53SmrgIf FILE is a libtool library, object or program, all the files associated
679050806d53Smrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
679150806d53Smrg  ;;
679250806d53Smrg
679350806d53Smrgcompile)
679450806d53Smrg  $echo \
679550806d53Smrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
679650806d53Smrg
679750806d53SmrgCompile a source file into a libtool library object.
679850806d53Smrg
679950806d53SmrgThis mode accepts the following additional options:
680050806d53Smrg
680150806d53Smrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
680250806d53Smrg  -prefer-pic       try to building PIC objects only
680350806d53Smrg  -prefer-non-pic   try to building non-PIC objects only
680450806d53Smrg  -static           always build a \`.o' file suitable for static linking
680550806d53Smrg
680650806d53SmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
680750806d53Smrgfrom the given SOURCEFILE.
680850806d53Smrg
680950806d53SmrgThe output file name is determined by removing the directory component from
681050806d53SmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
681150806d53Smrglibrary object suffix, \`.lo'."
681250806d53Smrg  ;;
681350806d53Smrg
681450806d53Smrgexecute)
681550806d53Smrg  $echo \
681650806d53Smrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
681750806d53Smrg
681850806d53SmrgAutomatically set library path, then run a program.
681950806d53Smrg
682050806d53SmrgThis mode accepts the following additional options:
682150806d53Smrg
682250806d53Smrg  -dlopen FILE      add the directory containing FILE to the library path
682350806d53Smrg
682450806d53SmrgThis mode sets the library path environment variable according to \`-dlopen'
682550806d53Smrgflags.
682650806d53Smrg
682750806d53SmrgIf any of the ARGS are libtool executable wrappers, then they are translated
682850806d53Smrginto their corresponding uninstalled binary, and any of their required library
682950806d53Smrgdirectories are added to the library path.
683050806d53Smrg
683150806d53SmrgThen, COMMAND is executed, with ARGS as arguments."
683250806d53Smrg  ;;
683350806d53Smrg
683450806d53Smrgfinish)
683550806d53Smrg  $echo \
683650806d53Smrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
683750806d53Smrg
683850806d53SmrgComplete the installation of libtool libraries.
683950806d53Smrg
684050806d53SmrgEach LIBDIR is a directory that contains libtool libraries.
684150806d53Smrg
684250806d53SmrgThe commands that this mode executes may require superuser privileges.  Use
684350806d53Smrgthe \`--dry-run' option if you just want to see what would be executed."
684450806d53Smrg  ;;
684550806d53Smrg
684650806d53Smrginstall)
684750806d53Smrg  $echo \
684850806d53Smrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
684950806d53Smrg
685050806d53SmrgInstall executables or libraries.
685150806d53Smrg
685250806d53SmrgINSTALL-COMMAND is the installation command.  The first component should be
685350806d53Smrgeither the \`install' or \`cp' program.
685450806d53Smrg
685550806d53SmrgThe rest of the components are interpreted as arguments to that command (only
685650806d53SmrgBSD-compatible install options are recognized)."
685750806d53Smrg  ;;
685850806d53Smrg
685950806d53Smrglink)
686050806d53Smrg  $echo \
686150806d53Smrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
686250806d53Smrg
686350806d53SmrgLink object files or libraries together to form another library, or to
686450806d53Smrgcreate an executable program.
686550806d53Smrg
686650806d53SmrgLINK-COMMAND is a command using the C compiler that you would use to create
686750806d53Smrga program from several object files.
686850806d53Smrg
686950806d53SmrgThe following components of LINK-COMMAND are treated specially:
687050806d53Smrg
687150806d53Smrg  -all-static       do not do any dynamic linking at all
687250806d53Smrg  -avoid-version    do not add a version suffix if possible
687350806d53Smrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
687450806d53Smrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
687550806d53Smrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
687650806d53Smrg  -export-symbols SYMFILE
687750806d53Smrg                    try to export only the symbols listed in SYMFILE
687850806d53Smrg  -export-symbols-regex REGEX
687950806d53Smrg                    try to export only the symbols matching REGEX
688050806d53Smrg  -LLIBDIR          search LIBDIR for required installed libraries
688150806d53Smrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
688250806d53Smrg  -module           build a library that can dlopened
688350806d53Smrg  -no-fast-install  disable the fast-install mode
688450806d53Smrg  -no-install       link a not-installable executable
688550806d53Smrg  -no-undefined     declare that a library does not refer to external symbols
688650806d53Smrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
688750806d53Smrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
688850806d53Smrg  -precious-files-regex REGEX
688950806d53Smrg                    don't remove output files matching REGEX
689050806d53Smrg  -release RELEASE  specify package release information
689150806d53Smrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
689250806d53Smrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
689350806d53Smrg  -static           do not do any dynamic linking of uninstalled libtool libraries
689450806d53Smrg  -static-libtool-libs
689550806d53Smrg                    do not do any dynamic linking of libtool libraries
689650806d53Smrg  -version-info CURRENT[:REVISION[:AGE]]
689750806d53Smrg                    specify library version info [each variable defaults to 0]
689850806d53Smrg
689950806d53SmrgAll other options (arguments beginning with \`-') are ignored.
690050806d53Smrg
690150806d53SmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
690250806d53Smrgtreated as uninstalled libtool libraries, other files are standard or library
690350806d53Smrgobject files.
690450806d53Smrg
690550806d53SmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
690650806d53Smrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
690750806d53Smrgrequired, except when creating a convenience library.
690850806d53Smrg
690950806d53SmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
691050806d53Smrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
691150806d53Smrg
691250806d53SmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
691350806d53Smrgis created, otherwise an executable program is created."
691450806d53Smrg  ;;
691550806d53Smrg
691650806d53Smrguninstall)
691750806d53Smrg  $echo \
691850806d53Smrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
691950806d53Smrg
692050806d53SmrgRemove libraries from an installation directory.
692150806d53Smrg
692250806d53SmrgRM is the name of the program to use to delete files associated with each FILE
692350806d53Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
692450806d53Smrgto RM.
692550806d53Smrg
692650806d53SmrgIf FILE is a libtool library, all the files associated with it are deleted.
692750806d53SmrgOtherwise, only FILE itself is deleted using RM."
692850806d53Smrg  ;;
692950806d53Smrg
693050806d53Smrg*)
693150806d53Smrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
693250806d53Smrg  $echo "$help" 1>&2
693350806d53Smrg  exit $EXIT_FAILURE
693450806d53Smrg  ;;
693550806d53Smrgesac
693650806d53Smrg
693750806d53Smrg$echo
693850806d53Smrg$echo "Try \`$modename --help' for more information about other modes."
693950806d53Smrg
694050806d53Smrgexit $?
694150806d53Smrg
694250806d53Smrg# The TAGs below are defined such that we never get into a situation
694350806d53Smrg# in which we disable both kinds of libraries.  Given conflicting
694450806d53Smrg# choices, we go for a static library, that is the most portable,
694550806d53Smrg# since we can't tell whether shared libraries were disabled because
694650806d53Smrg# the user asked for that or because the platform doesn't support
694750806d53Smrg# them.  This is particularly important on AIX, because we don't
694850806d53Smrg# support having both static and shared libraries enabled at the same
694950806d53Smrg# time on that platform, so we default to a shared-only configuration.
695050806d53Smrg# If a disable-shared tag is given, we'll fallback to a static-only
695150806d53Smrg# configuration.  But we'll never go from static-only to shared-only.
695250806d53Smrg
695350806d53Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
695450806d53Smrgdisable_libs=shared
695550806d53Smrg# ### END LIBTOOL TAG CONFIG: disable-shared
695650806d53Smrg
695750806d53Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
695850806d53Smrgdisable_libs=static
695950806d53Smrg# ### END LIBTOOL TAG CONFIG: disable-static
696050806d53Smrg
696150806d53Smrg# Local Variables:
696250806d53Smrg# mode:shell-script
696350806d53Smrg# sh-indentation:2
696450806d53Smrg# End:
6965