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