ltmain.sh revision e5410a46
11f0ac6a5Smrg# ltmain.sh - Provide generalized library-building support services.
21f0ac6a5Smrg# NOTE: Changing this file will not affect anything until you rerun configure.
31f0ac6a5Smrg#
4e5410a46Smrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5e5410a46Smrg# 2007, 2008  Free Software Foundation, Inc.
61f0ac6a5Smrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
71f0ac6a5Smrg#
81f0ac6a5Smrg# This program is free software; you can redistribute it and/or modify
91f0ac6a5Smrg# it under the terms of the GNU General Public License as published by
101f0ac6a5Smrg# the Free Software Foundation; either version 2 of the License, or
111f0ac6a5Smrg# (at your option) any later version.
121f0ac6a5Smrg#
131f0ac6a5Smrg# This program is distributed in the hope that it will be useful, but
141f0ac6a5Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
151f0ac6a5Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
161f0ac6a5Smrg# General Public License for more details.
171f0ac6a5Smrg#
181f0ac6a5Smrg# You should have received a copy of the GNU General Public License
191f0ac6a5Smrg# along with this program; if not, write to the Free Software
201f0ac6a5Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
211f0ac6a5Smrg#
221f0ac6a5Smrg# As a special exception to the GNU General Public License, if you
231f0ac6a5Smrg# distribute this file as part of a program that contains a
241f0ac6a5Smrg# configuration script generated by Autoconf, you may include it under
251f0ac6a5Smrg# the same distribution terms that you use for the rest of that program.
261f0ac6a5Smrg
271f0ac6a5Smrgbasename="s,^.*/,,g"
281f0ac6a5Smrg
291f0ac6a5Smrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
301f0ac6a5Smrg# is ksh but when the shell is invoked as "sh" and the current value of
311f0ac6a5Smrg# the _XPG environment variable is not equal to 1 (one), the special
321f0ac6a5Smrg# positional parameter $0, within a function call, is the name of the
331f0ac6a5Smrg# function.
341f0ac6a5Smrgprogpath="$0"
351f0ac6a5Smrg
361f0ac6a5Smrg# The name of this program:
371f0ac6a5Smrgprogname=`echo "$progpath" | $SED $basename`
381f0ac6a5Smrgmodename="$progname"
391f0ac6a5Smrg
401f0ac6a5Smrg# Global variables:
411f0ac6a5SmrgEXIT_SUCCESS=0
421f0ac6a5SmrgEXIT_FAILURE=1
431f0ac6a5Smrg
441f0ac6a5SmrgPROGRAM=ltmain.sh
451f0ac6a5SmrgPACKAGE=libtool
46e5410a46SmrgVERSION=1.5.26
47e5410a46SmrgTIMESTAMP=" (1.1220.2.492 2008/01/30 06:40:56)"
48e5410a46Smrg
49e5410a46Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
50e5410a46Smrgif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
51e5410a46Smrg  emulate sh
52e5410a46Smrg  NULLCMD=:
53e5410a46Smrg  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
54e5410a46Smrg  # is contrary to our usage.  Disable this feature.
55e5410a46Smrg  alias -g '${1+"$@"}'='"$@"'
561f0ac6a5Smrg  setopt NO_GLOB_SUBST
57e5410a46Smrgelse
58e5410a46Smrg  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
591f0ac6a5Smrgfi
60e5410a46SmrgBIN_SH=xpg4; export BIN_SH # for Tru64
61e5410a46SmrgDUALCASE=1; export DUALCASE # for MKS sh
621f0ac6a5Smrg
631f0ac6a5Smrg# Check that we have a working $echo.
641f0ac6a5Smrgif test "X$1" = X--no-reexec; then
651f0ac6a5Smrg  # Discard the --no-reexec flag, and continue.
661f0ac6a5Smrg  shift
671f0ac6a5Smrgelif test "X$1" = X--fallback-echo; then
681f0ac6a5Smrg  # Avoid inline document here, it may be left over
691f0ac6a5Smrg  :
701f0ac6a5Smrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
711f0ac6a5Smrg  # Yippee, $echo works!
721f0ac6a5Smrg  :
731f0ac6a5Smrgelse
741f0ac6a5Smrg  # Restart under the correct shell, and then maybe $echo will work.
751f0ac6a5Smrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
761f0ac6a5Smrgfi
771f0ac6a5Smrg
781f0ac6a5Smrgif test "X$1" = X--fallback-echo; then
791f0ac6a5Smrg  # used as fallback echo
801f0ac6a5Smrg  shift
811f0ac6a5Smrg  cat <<EOF
821f0ac6a5Smrg$*
831f0ac6a5SmrgEOF
841f0ac6a5Smrg  exit $EXIT_SUCCESS
851f0ac6a5Smrgfi
861f0ac6a5Smrg
871f0ac6a5Smrgdefault_mode=
881f0ac6a5Smrghelp="Try \`$progname --help' for more information."
891f0ac6a5Smrgmagic="%%%MAGIC variable%%%"
901f0ac6a5Smrgmkdir="mkdir"
911f0ac6a5Smrgmv="mv -f"
921f0ac6a5Smrgrm="rm -f"
931f0ac6a5Smrg
941f0ac6a5Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
951f0ac6a5Smrg# metacharacters that are still active within double-quoted strings.
961f0ac6a5SmrgXsed="${SED}"' -e 1s/^X//'
971f0ac6a5Smrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
981f0ac6a5Smrg# test EBCDIC or ASCII
991f0ac6a5Smrgcase `echo X|tr X '\101'` in
1001f0ac6a5Smrg A) # ASCII based system
1011f0ac6a5Smrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
1021f0ac6a5Smrg  SP2NL='tr \040 \012'
1031f0ac6a5Smrg  NL2SP='tr \015\012 \040\040'
1041f0ac6a5Smrg  ;;
1051f0ac6a5Smrg *) # EBCDIC based system
1061f0ac6a5Smrg  SP2NL='tr \100 \n'
1071f0ac6a5Smrg  NL2SP='tr \r\n \100\100'
1081f0ac6a5Smrg  ;;
1091f0ac6a5Smrgesac
1101f0ac6a5Smrg
1111f0ac6a5Smrg# NLS nuisances.
1121f0ac6a5Smrg# Only set LANG and LC_ALL to C if already set.
1131f0ac6a5Smrg# These must not be set unconditionally because not all systems understand
1141f0ac6a5Smrg# e.g. LANG=C (notably SCO).
1151f0ac6a5Smrg# We save the old values to restore during execute mode.
116e5410a46Smrglt_env=
117e5410a46Smrgfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
118e5410a46Smrgdo
119e5410a46Smrg  eval "if test \"\${$lt_var+set}\" = set; then
120e5410a46Smrg	  save_$lt_var=\$$lt_var
121e5410a46Smrg	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
122e5410a46Smrg	  $lt_var=C
123e5410a46Smrg	  export $lt_var
124e5410a46Smrg	fi"
125e5410a46Smrgdone
126e5410a46Smrg
127e5410a46Smrgif test -n "$lt_env"; then
128e5410a46Smrg  lt_env="env $lt_env"
1291f0ac6a5Smrgfi
1301f0ac6a5Smrg
1311f0ac6a5Smrg# Make sure IFS has a sensible default
1321f0ac6a5Smrglt_nl='
1331f0ac6a5Smrg'
1341f0ac6a5SmrgIFS=" 	$lt_nl"
1351f0ac6a5Smrg
1361f0ac6a5Smrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1371f0ac6a5Smrg  $echo "$modename: not configured to build any kind of library" 1>&2
1381f0ac6a5Smrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1391f0ac6a5Smrg  exit $EXIT_FAILURE
1401f0ac6a5Smrgfi
1411f0ac6a5Smrg
1421f0ac6a5Smrg# Global variables.
1431f0ac6a5Smrgmode=$default_mode
1441f0ac6a5Smrgnonopt=
1451f0ac6a5Smrgprev=
1461f0ac6a5Smrgprevopt=
1471f0ac6a5Smrgrun=
1481f0ac6a5Smrgshow="$echo"
1491f0ac6a5Smrgshow_help=
1501f0ac6a5Smrgexecute_dlfiles=
1511f0ac6a5Smrgduplicate_deps=no
1521f0ac6a5Smrgpreserve_args=
1531f0ac6a5Smrglo2o="s/\\.lo\$/.${objext}/"
1541f0ac6a5Smrgo2lo="s/\\.${objext}\$/.lo/"
155e5410a46Smrgextracted_archives=
156e5410a46Smrgextracted_serial=0
1571f0ac6a5Smrg
1581f0ac6a5Smrg#####################################
1591f0ac6a5Smrg# Shell function definitions:
1601f0ac6a5Smrg# This seems to be the best place for them
1611f0ac6a5Smrg
1621f0ac6a5Smrg# func_mktempdir [string]
1631f0ac6a5Smrg# Make a temporary directory that won't clash with other running
1641f0ac6a5Smrg# libtool processes, and avoids race conditions if possible.  If
1651f0ac6a5Smrg# given, STRING is the basename for that directory.
1661f0ac6a5Smrgfunc_mktempdir ()
1671f0ac6a5Smrg{
1681f0ac6a5Smrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
1691f0ac6a5Smrg
1701f0ac6a5Smrg    if test "$run" = ":"; then
1711f0ac6a5Smrg      # Return a directory name, but don't create it in dry-run mode
1721f0ac6a5Smrg      my_tmpdir="${my_template}-$$"
1731f0ac6a5Smrg    else
1741f0ac6a5Smrg
1751f0ac6a5Smrg      # If mktemp works, use that first and foremost
1761f0ac6a5Smrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
1771f0ac6a5Smrg
1781f0ac6a5Smrg      if test ! -d "$my_tmpdir"; then
1791f0ac6a5Smrg	# Failing that, at least try and use $RANDOM to avoid a race
1801f0ac6a5Smrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
1811f0ac6a5Smrg
1821f0ac6a5Smrg	save_mktempdir_umask=`umask`
1831f0ac6a5Smrg	umask 0077
1841f0ac6a5Smrg	$mkdir "$my_tmpdir"
1851f0ac6a5Smrg	umask $save_mktempdir_umask
1861f0ac6a5Smrg      fi
1871f0ac6a5Smrg
1881f0ac6a5Smrg      # If we're not in dry-run mode, bomb out on failure
1891f0ac6a5Smrg      test -d "$my_tmpdir" || {
1901f0ac6a5Smrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
1911f0ac6a5Smrg	exit $EXIT_FAILURE
1921f0ac6a5Smrg      }
1931f0ac6a5Smrg    fi
1941f0ac6a5Smrg
1951f0ac6a5Smrg    $echo "X$my_tmpdir" | $Xsed
1961f0ac6a5Smrg}
1971f0ac6a5Smrg
1981f0ac6a5Smrg
1991f0ac6a5Smrg# func_win32_libid arg
2001f0ac6a5Smrg# return the library type of file 'arg'
2011f0ac6a5Smrg#
2021f0ac6a5Smrg# Need a lot of goo to handle *both* DLLs and import libs
2031f0ac6a5Smrg# Has to be a shell function in order to 'eat' the argument
2041f0ac6a5Smrg# that is supplied when $file_magic_command is called.
2051f0ac6a5Smrgfunc_win32_libid ()
2061f0ac6a5Smrg{
2071f0ac6a5Smrg  win32_libid_type="unknown"
2081f0ac6a5Smrg  win32_fileres=`file -L $1 2>/dev/null`
2091f0ac6a5Smrg  case $win32_fileres in
2101f0ac6a5Smrg  *ar\ archive\ import\ library*) # definitely import
2111f0ac6a5Smrg    win32_libid_type="x86 archive import"
2121f0ac6a5Smrg    ;;
2131f0ac6a5Smrg  *ar\ archive*) # could be an import, or static
2141f0ac6a5Smrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
2151f0ac6a5Smrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2161f0ac6a5Smrg      win32_nmres=`eval $NM -f posix -A $1 | \
217e5410a46Smrg	$SED -n -e '1,100{
218e5410a46Smrg		/ I /{
219e5410a46Smrg			s,.*,import,
220e5410a46Smrg			p
221e5410a46Smrg			q
222e5410a46Smrg			}
223e5410a46Smrg		}'`
2241f0ac6a5Smrg      case $win32_nmres in
2251f0ac6a5Smrg      import*)  win32_libid_type="x86 archive import";;
2261f0ac6a5Smrg      *)        win32_libid_type="x86 archive static";;
2271f0ac6a5Smrg      esac
2281f0ac6a5Smrg    fi
2291f0ac6a5Smrg    ;;
2301f0ac6a5Smrg  *DLL*)
2311f0ac6a5Smrg    win32_libid_type="x86 DLL"
2321f0ac6a5Smrg    ;;
2331f0ac6a5Smrg  *executable*) # but shell scripts are "executable" too...
2341f0ac6a5Smrg    case $win32_fileres in
2351f0ac6a5Smrg    *MS\ Windows\ PE\ Intel*)
2361f0ac6a5Smrg      win32_libid_type="x86 DLL"
2371f0ac6a5Smrg      ;;
2381f0ac6a5Smrg    esac
2391f0ac6a5Smrg    ;;
2401f0ac6a5Smrg  esac
2411f0ac6a5Smrg  $echo $win32_libid_type
2421f0ac6a5Smrg}
2431f0ac6a5Smrg
2441f0ac6a5Smrg
2451f0ac6a5Smrg# func_infer_tag arg
2461f0ac6a5Smrg# Infer tagged configuration to use if any are available and
2471f0ac6a5Smrg# if one wasn't chosen via the "--tag" command line option.
2481f0ac6a5Smrg# Only attempt this if the compiler in the base compile
2491f0ac6a5Smrg# command doesn't match the default compiler.
2501f0ac6a5Smrg# arg is usually of the form 'gcc ...'
2511f0ac6a5Smrgfunc_infer_tag ()
2521f0ac6a5Smrg{
2531f0ac6a5Smrg    if test -n "$available_tags" && test -z "$tagname"; then
2541f0ac6a5Smrg      CC_quoted=
2551f0ac6a5Smrg      for arg in $CC; do
2561f0ac6a5Smrg	case $arg in
2571f0ac6a5Smrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2581f0ac6a5Smrg	  arg="\"$arg\""
2591f0ac6a5Smrg	  ;;
2601f0ac6a5Smrg	esac
2611f0ac6a5Smrg	CC_quoted="$CC_quoted $arg"
2621f0ac6a5Smrg      done
2631f0ac6a5Smrg      case $@ in
2641f0ac6a5Smrg      # Blanks in the command may have been stripped by the calling shell,
2651f0ac6a5Smrg      # but not from the CC environment variable when configure was run.
2661f0ac6a5Smrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
2671f0ac6a5Smrg      # Blanks at the start of $base_compile will cause this to fail
2681f0ac6a5Smrg      # if we don't check for them as well.
2691f0ac6a5Smrg      *)
2701f0ac6a5Smrg	for z in $available_tags; do
2711f0ac6a5Smrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
2721f0ac6a5Smrg	    # Evaluate the configuration.
2731f0ac6a5Smrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
2741f0ac6a5Smrg	    CC_quoted=
2751f0ac6a5Smrg	    for arg in $CC; do
2761f0ac6a5Smrg	    # Double-quote args containing other shell metacharacters.
2771f0ac6a5Smrg	    case $arg in
2781f0ac6a5Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2791f0ac6a5Smrg	      arg="\"$arg\""
2801f0ac6a5Smrg	      ;;
2811f0ac6a5Smrg	    esac
2821f0ac6a5Smrg	    CC_quoted="$CC_quoted $arg"
2831f0ac6a5Smrg	  done
2841f0ac6a5Smrg	    case "$@ " in
2851f0ac6a5Smrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
2861f0ac6a5Smrg	      # The compiler in the base compile command matches
2871f0ac6a5Smrg	      # the one in the tagged configuration.
2881f0ac6a5Smrg	      # Assume this is the tagged configuration we want.
2891f0ac6a5Smrg	      tagname=$z
2901f0ac6a5Smrg	      break
2911f0ac6a5Smrg	      ;;
2921f0ac6a5Smrg	    esac
293e5410a46Smrg	  fi
2941f0ac6a5Smrg	done
2951f0ac6a5Smrg	# If $tagname still isn't set, then no tagged configuration
2961f0ac6a5Smrg	# was found and let the user know that the "--tag" command
2971f0ac6a5Smrg	# line option must be used.
2981f0ac6a5Smrg	if test -z "$tagname"; then
2991f0ac6a5Smrg	  $echo "$modename: unable to infer tagged configuration"
3001f0ac6a5Smrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
3011f0ac6a5Smrg	  exit $EXIT_FAILURE
3021f0ac6a5Smrg#        else
3031f0ac6a5Smrg#          $echo "$modename: using $tagname tagged configuration"
3041f0ac6a5Smrg	fi
3051f0ac6a5Smrg	;;
3061f0ac6a5Smrg      esac
3071f0ac6a5Smrg    fi
3081f0ac6a5Smrg}
3091f0ac6a5Smrg
3101f0ac6a5Smrg
3111f0ac6a5Smrg# func_extract_an_archive dir oldlib
3121f0ac6a5Smrgfunc_extract_an_archive ()
3131f0ac6a5Smrg{
3141f0ac6a5Smrg    f_ex_an_ar_dir="$1"; shift
3151f0ac6a5Smrg    f_ex_an_ar_oldlib="$1"
3161f0ac6a5Smrg
3171f0ac6a5Smrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
3181f0ac6a5Smrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
3191f0ac6a5Smrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3201f0ac6a5Smrg     :
3211f0ac6a5Smrg    else
3221f0ac6a5Smrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
3231f0ac6a5Smrg      exit $EXIT_FAILURE
3241f0ac6a5Smrg    fi
3251f0ac6a5Smrg}
3261f0ac6a5Smrg
3271f0ac6a5Smrg# func_extract_archives gentop oldlib ...
3281f0ac6a5Smrgfunc_extract_archives ()
3291f0ac6a5Smrg{
3301f0ac6a5Smrg    my_gentop="$1"; shift
3311f0ac6a5Smrg    my_oldlibs=${1+"$@"}
3321f0ac6a5Smrg    my_oldobjs=""
3331f0ac6a5Smrg    my_xlib=""
3341f0ac6a5Smrg    my_xabs=""
3351f0ac6a5Smrg    my_xdir=""
3361f0ac6a5Smrg    my_status=""
3371f0ac6a5Smrg
3381f0ac6a5Smrg    $show "${rm}r $my_gentop"
3391f0ac6a5Smrg    $run ${rm}r "$my_gentop"
3401f0ac6a5Smrg    $show "$mkdir $my_gentop"
3411f0ac6a5Smrg    $run $mkdir "$my_gentop"
3421f0ac6a5Smrg    my_status=$?
3431f0ac6a5Smrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
3441f0ac6a5Smrg      exit $my_status
3451f0ac6a5Smrg    fi
3461f0ac6a5Smrg
3471f0ac6a5Smrg    for my_xlib in $my_oldlibs; do
3481f0ac6a5Smrg      # Extract the objects.
3491f0ac6a5Smrg      case $my_xlib in
3501f0ac6a5Smrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3511f0ac6a5Smrg	*) my_xabs=`pwd`"/$my_xlib" ;;
3521f0ac6a5Smrg      esac
3531f0ac6a5Smrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
354e5410a46Smrg      my_xlib_u=$my_xlib
355e5410a46Smrg      while :; do
356e5410a46Smrg        case " $extracted_archives " in
357e5410a46Smrg	*" $my_xlib_u "*)
358e5410a46Smrg	  extracted_serial=`expr $extracted_serial + 1`
359e5410a46Smrg	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
360e5410a46Smrg	*) break ;;
361e5410a46Smrg	esac
362e5410a46Smrg      done
363e5410a46Smrg      extracted_archives="$extracted_archives $my_xlib_u"
364e5410a46Smrg      my_xdir="$my_gentop/$my_xlib_u"
3651f0ac6a5Smrg
3661f0ac6a5Smrg      $show "${rm}r $my_xdir"
3671f0ac6a5Smrg      $run ${rm}r "$my_xdir"
3681f0ac6a5Smrg      $show "$mkdir $my_xdir"
3691f0ac6a5Smrg      $run $mkdir "$my_xdir"
3701f0ac6a5Smrg      exit_status=$?
3711f0ac6a5Smrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
3721f0ac6a5Smrg	exit $exit_status
3731f0ac6a5Smrg      fi
3741f0ac6a5Smrg      case $host in
3751f0ac6a5Smrg      *-darwin*)
3761f0ac6a5Smrg	$show "Extracting $my_xabs"
3771f0ac6a5Smrg	# Do not bother doing anything if just a dry run
3781f0ac6a5Smrg	if test -z "$run"; then
3791f0ac6a5Smrg	  darwin_orig_dir=`pwd`
3801f0ac6a5Smrg	  cd $my_xdir || exit $?
3811f0ac6a5Smrg	  darwin_archive=$my_xabs
3821f0ac6a5Smrg	  darwin_curdir=`pwd`
3831f0ac6a5Smrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
3841f0ac6a5Smrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
3851f0ac6a5Smrg	  if test -n "$darwin_arches"; then 
3861f0ac6a5Smrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
3871f0ac6a5Smrg	    darwin_arch=
3881f0ac6a5Smrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
3891f0ac6a5Smrg	    for darwin_arch in  $darwin_arches ; do
3901f0ac6a5Smrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3911f0ac6a5Smrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3921f0ac6a5Smrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3931f0ac6a5Smrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3941f0ac6a5Smrg	      cd "$darwin_curdir"
3951f0ac6a5Smrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3961f0ac6a5Smrg	    done # $darwin_arches
3971f0ac6a5Smrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
3981f0ac6a5Smrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
3991f0ac6a5Smrg	    darwin_file=
4001f0ac6a5Smrg	    darwin_files=
4011f0ac6a5Smrg	    for darwin_file in $darwin_filelist; do
4021f0ac6a5Smrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
4031f0ac6a5Smrg	      lipo -create -output "$darwin_file" $darwin_files
4041f0ac6a5Smrg	    done # $darwin_filelist
4051f0ac6a5Smrg	    ${rm}r unfat-$$
4061f0ac6a5Smrg	    cd "$darwin_orig_dir"
4071f0ac6a5Smrg	  else
4081f0ac6a5Smrg	    cd "$darwin_orig_dir"
4091f0ac6a5Smrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
4101f0ac6a5Smrg	  fi # $darwin_arches
4111f0ac6a5Smrg	fi # $run
4121f0ac6a5Smrg	;;
4131f0ac6a5Smrg      *)
4141f0ac6a5Smrg        func_extract_an_archive "$my_xdir" "$my_xabs"
4151f0ac6a5Smrg        ;;
4161f0ac6a5Smrg      esac
4171f0ac6a5Smrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
4181f0ac6a5Smrg    done
4191f0ac6a5Smrg    func_extract_archives_result="$my_oldobjs"
4201f0ac6a5Smrg}
4211f0ac6a5Smrg# End of Shell function definitions
4221f0ac6a5Smrg#####################################
4231f0ac6a5Smrg
4241f0ac6a5Smrg# Darwin sucks
4251f0ac6a5Smrgeval std_shrext=\"$shrext_cmds\"
4261f0ac6a5Smrg
4271f0ac6a5Smrgdisable_libs=no
4281f0ac6a5Smrg
4291f0ac6a5Smrg# Parse our command line options once, thoroughly.
4301f0ac6a5Smrgwhile test "$#" -gt 0
4311f0ac6a5Smrgdo
4321f0ac6a5Smrg  arg="$1"
4331f0ac6a5Smrg  shift
4341f0ac6a5Smrg
4351f0ac6a5Smrg  case $arg in
4361f0ac6a5Smrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
4371f0ac6a5Smrg  *) optarg= ;;
4381f0ac6a5Smrg  esac
4391f0ac6a5Smrg
4401f0ac6a5Smrg  # If the previous option needs an argument, assign it.
4411f0ac6a5Smrg  if test -n "$prev"; then
4421f0ac6a5Smrg    case $prev in
4431f0ac6a5Smrg    execute_dlfiles)
4441f0ac6a5Smrg      execute_dlfiles="$execute_dlfiles $arg"
4451f0ac6a5Smrg      ;;
4461f0ac6a5Smrg    tag)
4471f0ac6a5Smrg      tagname="$arg"
4481f0ac6a5Smrg      preserve_args="${preserve_args}=$arg"
4491f0ac6a5Smrg
4501f0ac6a5Smrg      # Check whether tagname contains only valid characters
4511f0ac6a5Smrg      case $tagname in
4521f0ac6a5Smrg      *[!-_A-Za-z0-9,/]*)
4531f0ac6a5Smrg	$echo "$progname: invalid tag name: $tagname" 1>&2
4541f0ac6a5Smrg	exit $EXIT_FAILURE
4551f0ac6a5Smrg	;;
4561f0ac6a5Smrg      esac
4571f0ac6a5Smrg
4581f0ac6a5Smrg      case $tagname in
4591f0ac6a5Smrg      CC)
4601f0ac6a5Smrg	# Don't test for the "default" C tag, as we know, it's there, but
4611f0ac6a5Smrg	# not specially marked.
4621f0ac6a5Smrg	;;
4631f0ac6a5Smrg      *)
4641f0ac6a5Smrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
4651f0ac6a5Smrg	  taglist="$taglist $tagname"
4661f0ac6a5Smrg	  # Evaluate the configuration.
4671f0ac6a5Smrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
4681f0ac6a5Smrg	else
4691f0ac6a5Smrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
4701f0ac6a5Smrg	fi
4711f0ac6a5Smrg	;;
4721f0ac6a5Smrg      esac
4731f0ac6a5Smrg      ;;
4741f0ac6a5Smrg    *)
4751f0ac6a5Smrg      eval "$prev=\$arg"
4761f0ac6a5Smrg      ;;
4771f0ac6a5Smrg    esac
4781f0ac6a5Smrg
4791f0ac6a5Smrg    prev=
4801f0ac6a5Smrg    prevopt=
4811f0ac6a5Smrg    continue
4821f0ac6a5Smrg  fi
4831f0ac6a5Smrg
4841f0ac6a5Smrg  # Have we seen a non-optional argument yet?
4851f0ac6a5Smrg  case $arg in
4861f0ac6a5Smrg  --help)
4871f0ac6a5Smrg    show_help=yes
4881f0ac6a5Smrg    ;;
4891f0ac6a5Smrg
4901f0ac6a5Smrg  --version)
491e5410a46Smrg    echo "\
492e5410a46Smrg$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
493e5410a46Smrg
494e5410a46SmrgCopyright (C) 2008  Free Software Foundation, Inc.
495e5410a46SmrgThis is free software; see the source for copying conditions.  There is NO
496e5410a46Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
4971f0ac6a5Smrg    exit $?
4981f0ac6a5Smrg    ;;
4991f0ac6a5Smrg
5001f0ac6a5Smrg  --config)
5011f0ac6a5Smrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
5021f0ac6a5Smrg    # Now print the configurations for the tags.
5031f0ac6a5Smrg    for tagname in $taglist; do
5041f0ac6a5Smrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
5051f0ac6a5Smrg    done
5061f0ac6a5Smrg    exit $?
5071f0ac6a5Smrg    ;;
5081f0ac6a5Smrg
5091f0ac6a5Smrg  --debug)
5101f0ac6a5Smrg    $echo "$progname: enabling shell trace mode"
5111f0ac6a5Smrg    set -x
5121f0ac6a5Smrg    preserve_args="$preserve_args $arg"
5131f0ac6a5Smrg    ;;
5141f0ac6a5Smrg
5151f0ac6a5Smrg  --dry-run | -n)
5161f0ac6a5Smrg    run=:
5171f0ac6a5Smrg    ;;
5181f0ac6a5Smrg
5191f0ac6a5Smrg  --features)
5201f0ac6a5Smrg    $echo "host: $host"
5211f0ac6a5Smrg    if test "$build_libtool_libs" = yes; then
5221f0ac6a5Smrg      $echo "enable shared libraries"
5231f0ac6a5Smrg    else
5241f0ac6a5Smrg      $echo "disable shared libraries"
5251f0ac6a5Smrg    fi
5261f0ac6a5Smrg    if test "$build_old_libs" = yes; then
5271f0ac6a5Smrg      $echo "enable static libraries"
5281f0ac6a5Smrg    else
5291f0ac6a5Smrg      $echo "disable static libraries"
5301f0ac6a5Smrg    fi
5311f0ac6a5Smrg    exit $?
5321f0ac6a5Smrg    ;;
5331f0ac6a5Smrg
5341f0ac6a5Smrg  --finish) mode="finish" ;;
5351f0ac6a5Smrg
5361f0ac6a5Smrg  --mode) prevopt="--mode" prev=mode ;;
5371f0ac6a5Smrg  --mode=*) mode="$optarg" ;;
5381f0ac6a5Smrg
5391f0ac6a5Smrg  --preserve-dup-deps) duplicate_deps="yes" ;;
5401f0ac6a5Smrg
5411f0ac6a5Smrg  --quiet | --silent)
5421f0ac6a5Smrg    show=:
5431f0ac6a5Smrg    preserve_args="$preserve_args $arg"
5441f0ac6a5Smrg    ;;
5451f0ac6a5Smrg
5461f0ac6a5Smrg  --tag)
5471f0ac6a5Smrg    prevopt="--tag"
5481f0ac6a5Smrg    prev=tag
5491f0ac6a5Smrg    preserve_args="$preserve_args --tag"
5501f0ac6a5Smrg    ;;
5511f0ac6a5Smrg  --tag=*)
5521f0ac6a5Smrg    set tag "$optarg" ${1+"$@"}
5531f0ac6a5Smrg    shift
5541f0ac6a5Smrg    prev=tag
5551f0ac6a5Smrg    preserve_args="$preserve_args --tag"
5561f0ac6a5Smrg    ;;
5571f0ac6a5Smrg
5581f0ac6a5Smrg  -dlopen)
5591f0ac6a5Smrg    prevopt="-dlopen"
5601f0ac6a5Smrg    prev=execute_dlfiles
5611f0ac6a5Smrg    ;;
5621f0ac6a5Smrg
5631f0ac6a5Smrg  -*)
5641f0ac6a5Smrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
5651f0ac6a5Smrg    $echo "$help" 1>&2
5661f0ac6a5Smrg    exit $EXIT_FAILURE
5671f0ac6a5Smrg    ;;
5681f0ac6a5Smrg
5691f0ac6a5Smrg  *)
5701f0ac6a5Smrg    nonopt="$arg"
5711f0ac6a5Smrg    break
5721f0ac6a5Smrg    ;;
5731f0ac6a5Smrg  esac
5741f0ac6a5Smrgdone
5751f0ac6a5Smrg
5761f0ac6a5Smrgif test -n "$prevopt"; then
5771f0ac6a5Smrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
5781f0ac6a5Smrg  $echo "$help" 1>&2
5791f0ac6a5Smrg  exit $EXIT_FAILURE
5801f0ac6a5Smrgfi
5811f0ac6a5Smrg
5821f0ac6a5Smrgcase $disable_libs in
5831f0ac6a5Smrgno) 
5841f0ac6a5Smrg  ;;
5851f0ac6a5Smrgshared)
5861f0ac6a5Smrg  build_libtool_libs=no
5871f0ac6a5Smrg  build_old_libs=yes
5881f0ac6a5Smrg  ;;
5891f0ac6a5Smrgstatic)
5901f0ac6a5Smrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5911f0ac6a5Smrg  ;;
5921f0ac6a5Smrgesac
5931f0ac6a5Smrg
5941f0ac6a5Smrg# If this variable is set in any of the actions, the command in it
5951f0ac6a5Smrg# will be execed at the end.  This prevents here-documents from being
5961f0ac6a5Smrg# left over by shells.
5971f0ac6a5Smrgexec_cmd=
5981f0ac6a5Smrg
5991f0ac6a5Smrgif test -z "$show_help"; then
6001f0ac6a5Smrg
6011f0ac6a5Smrg  # Infer the operation mode.
6021f0ac6a5Smrg  if test -z "$mode"; then
6031f0ac6a5Smrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
6041f0ac6a5Smrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
6051f0ac6a5Smrg    case $nonopt in
6061f0ac6a5Smrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
6071f0ac6a5Smrg      mode=link
6081f0ac6a5Smrg      for arg
6091f0ac6a5Smrg      do
6101f0ac6a5Smrg	case $arg in
6111f0ac6a5Smrg	-c)
6121f0ac6a5Smrg	   mode=compile
6131f0ac6a5Smrg	   break
6141f0ac6a5Smrg	   ;;
6151f0ac6a5Smrg	esac
6161f0ac6a5Smrg      done
6171f0ac6a5Smrg      ;;
6181f0ac6a5Smrg    *db | *dbx | *strace | *truss)
6191f0ac6a5Smrg      mode=execute
6201f0ac6a5Smrg      ;;
6211f0ac6a5Smrg    *install*|cp|mv)
6221f0ac6a5Smrg      mode=install
6231f0ac6a5Smrg      ;;
6241f0ac6a5Smrg    *rm)
6251f0ac6a5Smrg      mode=uninstall
6261f0ac6a5Smrg      ;;
6271f0ac6a5Smrg    *)
6281f0ac6a5Smrg      # If we have no mode, but dlfiles were specified, then do execute mode.
6291f0ac6a5Smrg      test -n "$execute_dlfiles" && mode=execute
6301f0ac6a5Smrg
6311f0ac6a5Smrg      # Just use the default operation mode.
6321f0ac6a5Smrg      if test -z "$mode"; then
6331f0ac6a5Smrg	if test -n "$nonopt"; then
6341f0ac6a5Smrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
6351f0ac6a5Smrg	else
6361f0ac6a5Smrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
6371f0ac6a5Smrg	fi
6381f0ac6a5Smrg      fi
6391f0ac6a5Smrg      ;;
6401f0ac6a5Smrg    esac
6411f0ac6a5Smrg  fi
6421f0ac6a5Smrg
6431f0ac6a5Smrg  # Only execute mode is allowed to have -dlopen flags.
6441f0ac6a5Smrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
6451f0ac6a5Smrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
6461f0ac6a5Smrg    $echo "$help" 1>&2
6471f0ac6a5Smrg    exit $EXIT_FAILURE
6481f0ac6a5Smrg  fi
6491f0ac6a5Smrg
6501f0ac6a5Smrg  # Change the help message to a mode-specific one.
6511f0ac6a5Smrg  generic_help="$help"
6521f0ac6a5Smrg  help="Try \`$modename --help --mode=$mode' for more information."
6531f0ac6a5Smrg
6541f0ac6a5Smrg  # These modes are in order of execution frequency so that they run quickly.
6551f0ac6a5Smrg  case $mode in
6561f0ac6a5Smrg  # libtool compile mode
6571f0ac6a5Smrg  compile)
6581f0ac6a5Smrg    modename="$modename: compile"
6591f0ac6a5Smrg    # Get the compilation command and the source file.
6601f0ac6a5Smrg    base_compile=
6611f0ac6a5Smrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
6621f0ac6a5Smrg    suppress_opt=yes
6631f0ac6a5Smrg    suppress_output=
6641f0ac6a5Smrg    arg_mode=normal
6651f0ac6a5Smrg    libobj=
6661f0ac6a5Smrg    later=
6671f0ac6a5Smrg
6681f0ac6a5Smrg    for arg
6691f0ac6a5Smrg    do
6701f0ac6a5Smrg      case $arg_mode in
6711f0ac6a5Smrg      arg  )
6721f0ac6a5Smrg	# do not "continue".  Instead, add this to base_compile
6731f0ac6a5Smrg	lastarg="$arg"
6741f0ac6a5Smrg	arg_mode=normal
6751f0ac6a5Smrg	;;
6761f0ac6a5Smrg
6771f0ac6a5Smrg      target )
6781f0ac6a5Smrg	libobj="$arg"
6791f0ac6a5Smrg	arg_mode=normal
6801f0ac6a5Smrg	continue
6811f0ac6a5Smrg	;;
6821f0ac6a5Smrg
6831f0ac6a5Smrg      normal )
6841f0ac6a5Smrg	# Accept any command-line options.
6851f0ac6a5Smrg	case $arg in
6861f0ac6a5Smrg	-o)
6871f0ac6a5Smrg	  if test -n "$libobj" ; then
6881f0ac6a5Smrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
6891f0ac6a5Smrg	    exit $EXIT_FAILURE
6901f0ac6a5Smrg	  fi
6911f0ac6a5Smrg	  arg_mode=target
6921f0ac6a5Smrg	  continue
6931f0ac6a5Smrg	  ;;
6941f0ac6a5Smrg
6951f0ac6a5Smrg	-static | -prefer-pic | -prefer-non-pic)
6961f0ac6a5Smrg	  later="$later $arg"
6971f0ac6a5Smrg	  continue
6981f0ac6a5Smrg	  ;;
6991f0ac6a5Smrg
7001f0ac6a5Smrg	-no-suppress)
7011f0ac6a5Smrg	  suppress_opt=no
7021f0ac6a5Smrg	  continue
7031f0ac6a5Smrg	  ;;
7041f0ac6a5Smrg
7051f0ac6a5Smrg	-Xcompiler)
7061f0ac6a5Smrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
7071f0ac6a5Smrg	  continue      #  The current "srcfile" will either be retained or
7081f0ac6a5Smrg	  ;;            #  replaced later.  I would guess that would be a bug.
7091f0ac6a5Smrg
7101f0ac6a5Smrg	-Wc,*)
7111f0ac6a5Smrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
7121f0ac6a5Smrg	  lastarg=
7131f0ac6a5Smrg	  save_ifs="$IFS"; IFS=','
7141f0ac6a5Smrg 	  for arg in $args; do
7151f0ac6a5Smrg	    IFS="$save_ifs"
7161f0ac6a5Smrg
7171f0ac6a5Smrg	    # Double-quote args containing other shell metacharacters.
7181f0ac6a5Smrg	    # Many Bourne shells cannot handle close brackets correctly
7191f0ac6a5Smrg	    # in scan sets, so we specify it separately.
7201f0ac6a5Smrg	    case $arg in
7211f0ac6a5Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7221f0ac6a5Smrg	      arg="\"$arg\""
7231f0ac6a5Smrg	      ;;
7241f0ac6a5Smrg	    esac
7251f0ac6a5Smrg	    lastarg="$lastarg $arg"
7261f0ac6a5Smrg	  done
7271f0ac6a5Smrg	  IFS="$save_ifs"
7281f0ac6a5Smrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
7291f0ac6a5Smrg
7301f0ac6a5Smrg	  # Add the arguments to base_compile.
7311f0ac6a5Smrg	  base_compile="$base_compile $lastarg"
7321f0ac6a5Smrg	  continue
7331f0ac6a5Smrg	  ;;
7341f0ac6a5Smrg
7351f0ac6a5Smrg	* )
7361f0ac6a5Smrg	  # Accept the current argument as the source file.
7371f0ac6a5Smrg	  # The previous "srcfile" becomes the current argument.
7381f0ac6a5Smrg	  #
7391f0ac6a5Smrg	  lastarg="$srcfile"
7401f0ac6a5Smrg	  srcfile="$arg"
7411f0ac6a5Smrg	  ;;
7421f0ac6a5Smrg	esac  #  case $arg
7431f0ac6a5Smrg	;;
7441f0ac6a5Smrg      esac    #  case $arg_mode
7451f0ac6a5Smrg
7461f0ac6a5Smrg      # Aesthetically quote the previous argument.
7471f0ac6a5Smrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
7481f0ac6a5Smrg
7491f0ac6a5Smrg      case $lastarg in
7501f0ac6a5Smrg      # Double-quote args containing other shell metacharacters.
7511f0ac6a5Smrg      # Many Bourne shells cannot handle close brackets correctly
7521f0ac6a5Smrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
7531f0ac6a5Smrg      # in scan sets (worked around with variable expansion),
7541f0ac6a5Smrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
7551f0ac6a5Smrg      # at all, so we specify them separately.
7561f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7571f0ac6a5Smrg	lastarg="\"$lastarg\""
7581f0ac6a5Smrg	;;
7591f0ac6a5Smrg      esac
7601f0ac6a5Smrg
7611f0ac6a5Smrg      base_compile="$base_compile $lastarg"
7621f0ac6a5Smrg    done # for arg
7631f0ac6a5Smrg
7641f0ac6a5Smrg    case $arg_mode in
7651f0ac6a5Smrg    arg)
7661f0ac6a5Smrg      $echo "$modename: you must specify an argument for -Xcompile"
7671f0ac6a5Smrg      exit $EXIT_FAILURE
7681f0ac6a5Smrg      ;;
7691f0ac6a5Smrg    target)
7701f0ac6a5Smrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
7711f0ac6a5Smrg      exit $EXIT_FAILURE
7721f0ac6a5Smrg      ;;
7731f0ac6a5Smrg    *)
7741f0ac6a5Smrg      # Get the name of the library object.
7751f0ac6a5Smrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
7761f0ac6a5Smrg      ;;
7771f0ac6a5Smrg    esac
7781f0ac6a5Smrg
7791f0ac6a5Smrg    # Recognize several different file suffixes.
7801f0ac6a5Smrg    # If the user specifies -o file.o, it is replaced with file.lo
7811f0ac6a5Smrg    xform='[cCFSifmso]'
7821f0ac6a5Smrg    case $libobj in
7831f0ac6a5Smrg    *.ada) xform=ada ;;
7841f0ac6a5Smrg    *.adb) xform=adb ;;
7851f0ac6a5Smrg    *.ads) xform=ads ;;
7861f0ac6a5Smrg    *.asm) xform=asm ;;
7871f0ac6a5Smrg    *.c++) xform=c++ ;;
7881f0ac6a5Smrg    *.cc) xform=cc ;;
7891f0ac6a5Smrg    *.ii) xform=ii ;;
7901f0ac6a5Smrg    *.class) xform=class ;;
7911f0ac6a5Smrg    *.cpp) xform=cpp ;;
7921f0ac6a5Smrg    *.cxx) xform=cxx ;;
793e5410a46Smrg    *.[fF][09]?) xform=[fF][09]. ;;
7941f0ac6a5Smrg    *.for) xform=for ;;
7951f0ac6a5Smrg    *.java) xform=java ;;
796e5410a46Smrg    *.obj) xform=obj ;;
797e5410a46Smrg    *.sx) xform=sx ;;
7981f0ac6a5Smrg    esac
7991f0ac6a5Smrg
8001f0ac6a5Smrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
8011f0ac6a5Smrg
8021f0ac6a5Smrg    case $libobj in
8031f0ac6a5Smrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
8041f0ac6a5Smrg    *)
8051f0ac6a5Smrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
8061f0ac6a5Smrg      exit $EXIT_FAILURE
8071f0ac6a5Smrg      ;;
8081f0ac6a5Smrg    esac
8091f0ac6a5Smrg
8101f0ac6a5Smrg    func_infer_tag $base_compile
8111f0ac6a5Smrg
8121f0ac6a5Smrg    for arg in $later; do
8131f0ac6a5Smrg      case $arg in
8141f0ac6a5Smrg      -static)
8151f0ac6a5Smrg	build_old_libs=yes
8161f0ac6a5Smrg	continue
8171f0ac6a5Smrg	;;
8181f0ac6a5Smrg
8191f0ac6a5Smrg      -prefer-pic)
8201f0ac6a5Smrg	pic_mode=yes
8211f0ac6a5Smrg	continue
8221f0ac6a5Smrg	;;
8231f0ac6a5Smrg
8241f0ac6a5Smrg      -prefer-non-pic)
8251f0ac6a5Smrg	pic_mode=no
8261f0ac6a5Smrg	continue
8271f0ac6a5Smrg	;;
8281f0ac6a5Smrg      esac
8291f0ac6a5Smrg    done
8301f0ac6a5Smrg
8311f0ac6a5Smrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
8321f0ac6a5Smrg    case $qlibobj in
8331f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
8341f0ac6a5Smrg	qlibobj="\"$qlibobj\"" ;;
8351f0ac6a5Smrg    esac
8361f0ac6a5Smrg    test "X$libobj" != "X$qlibobj" \
8371f0ac6a5Smrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
8381f0ac6a5Smrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
8391f0ac6a5Smrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
8401f0ac6a5Smrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
8411f0ac6a5Smrg    if test "X$xdir" = "X$obj"; then
8421f0ac6a5Smrg      xdir=
8431f0ac6a5Smrg    else
8441f0ac6a5Smrg      xdir=$xdir/
8451f0ac6a5Smrg    fi
8461f0ac6a5Smrg    lobj=${xdir}$objdir/$objname
8471f0ac6a5Smrg
8481f0ac6a5Smrg    if test -z "$base_compile"; then
8491f0ac6a5Smrg      $echo "$modename: you must specify a compilation command" 1>&2
8501f0ac6a5Smrg      $echo "$help" 1>&2
8511f0ac6a5Smrg      exit $EXIT_FAILURE
8521f0ac6a5Smrg    fi
8531f0ac6a5Smrg
8541f0ac6a5Smrg    # Delete any leftover library objects.
8551f0ac6a5Smrg    if test "$build_old_libs" = yes; then
8561f0ac6a5Smrg      removelist="$obj $lobj $libobj ${libobj}T"
8571f0ac6a5Smrg    else
8581f0ac6a5Smrg      removelist="$lobj $libobj ${libobj}T"
8591f0ac6a5Smrg    fi
8601f0ac6a5Smrg
8611f0ac6a5Smrg    $run $rm $removelist
8621f0ac6a5Smrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8631f0ac6a5Smrg
8641f0ac6a5Smrg    # On Cygwin there's no "real" PIC flag so we must build both object types
8651f0ac6a5Smrg    case $host_os in
8661f0ac6a5Smrg    cygwin* | mingw* | pw32* | os2*)
8671f0ac6a5Smrg      pic_mode=default
8681f0ac6a5Smrg      ;;
8691f0ac6a5Smrg    esac
8701f0ac6a5Smrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
8711f0ac6a5Smrg      # non-PIC code in shared libraries is not supported
8721f0ac6a5Smrg      pic_mode=default
8731f0ac6a5Smrg    fi
8741f0ac6a5Smrg
8751f0ac6a5Smrg    # Calculate the filename of the output object if compiler does
8761f0ac6a5Smrg    # not support -o with -c
8771f0ac6a5Smrg    if test "$compiler_c_o" = no; then
8781f0ac6a5Smrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
8791f0ac6a5Smrg      lockfile="$output_obj.lock"
8801f0ac6a5Smrg      removelist="$removelist $output_obj $lockfile"
8811f0ac6a5Smrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8821f0ac6a5Smrg    else
8831f0ac6a5Smrg      output_obj=
8841f0ac6a5Smrg      need_locks=no
8851f0ac6a5Smrg      lockfile=
8861f0ac6a5Smrg    fi
8871f0ac6a5Smrg
8881f0ac6a5Smrg    # Lock this critical section if it is needed
8891f0ac6a5Smrg    # We use this script file to make the link, it avoids creating a new file
8901f0ac6a5Smrg    if test "$need_locks" = yes; then
8911f0ac6a5Smrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
8921f0ac6a5Smrg	$show "Waiting for $lockfile to be removed"
8931f0ac6a5Smrg	sleep 2
8941f0ac6a5Smrg      done
8951f0ac6a5Smrg    elif test "$need_locks" = warn; then
8961f0ac6a5Smrg      if test -f "$lockfile"; then
8971f0ac6a5Smrg	$echo "\
8981f0ac6a5Smrg*** ERROR, $lockfile exists and contains:
8991f0ac6a5Smrg`cat $lockfile 2>/dev/null`
9001f0ac6a5Smrg
9011f0ac6a5SmrgThis indicates that another process is trying to use the same
9021f0ac6a5Smrgtemporary object file, and libtool could not work around it because
9031f0ac6a5Smrgyour compiler does not support \`-c' and \`-o' together.  If you
9041f0ac6a5Smrgrepeat this compilation, it may succeed, by chance, but you had better
9051f0ac6a5Smrgavoid parallel builds (make -j) in this platform, or get a better
9061f0ac6a5Smrgcompiler."
9071f0ac6a5Smrg
9081f0ac6a5Smrg	$run $rm $removelist
9091f0ac6a5Smrg	exit $EXIT_FAILURE
9101f0ac6a5Smrg      fi
9111f0ac6a5Smrg      $echo "$srcfile" > "$lockfile"
9121f0ac6a5Smrg    fi
9131f0ac6a5Smrg
9141f0ac6a5Smrg    if test -n "$fix_srcfile_path"; then
9151f0ac6a5Smrg      eval srcfile=\"$fix_srcfile_path\"
9161f0ac6a5Smrg    fi
9171f0ac6a5Smrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
9181f0ac6a5Smrg    case $qsrcfile in
9191f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
9201f0ac6a5Smrg      qsrcfile="\"$qsrcfile\"" ;;
9211f0ac6a5Smrg    esac
9221f0ac6a5Smrg
9231f0ac6a5Smrg    $run $rm "$libobj" "${libobj}T"
9241f0ac6a5Smrg
9251f0ac6a5Smrg    # Create a libtool object file (analogous to a ".la" file),
9261f0ac6a5Smrg    # but don't create it if we're doing a dry run.
9271f0ac6a5Smrg    test -z "$run" && cat > ${libobj}T <<EOF
9281f0ac6a5Smrg# $libobj - a libtool object file
9291f0ac6a5Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
9301f0ac6a5Smrg#
9311f0ac6a5Smrg# Please DO NOT delete this file!
9321f0ac6a5Smrg# It is necessary for linking the library.
9331f0ac6a5Smrg
9341f0ac6a5Smrg# Name of the PIC object.
9351f0ac6a5SmrgEOF
9361f0ac6a5Smrg
9371f0ac6a5Smrg    # Only build a PIC object if we are building libtool libraries.
9381f0ac6a5Smrg    if test "$build_libtool_libs" = yes; then
9391f0ac6a5Smrg      # Without this assignment, base_compile gets emptied.
9401f0ac6a5Smrg      fbsd_hideous_sh_bug=$base_compile
9411f0ac6a5Smrg
9421f0ac6a5Smrg      if test "$pic_mode" != no; then
9431f0ac6a5Smrg	command="$base_compile $qsrcfile $pic_flag"
9441f0ac6a5Smrg      else
9451f0ac6a5Smrg	# Don't build PIC code
9461f0ac6a5Smrg	command="$base_compile $qsrcfile"
9471f0ac6a5Smrg      fi
9481f0ac6a5Smrg
9491f0ac6a5Smrg      if test ! -d "${xdir}$objdir"; then
9501f0ac6a5Smrg	$show "$mkdir ${xdir}$objdir"
9511f0ac6a5Smrg	$run $mkdir ${xdir}$objdir
9521f0ac6a5Smrg	exit_status=$?
9531f0ac6a5Smrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
9541f0ac6a5Smrg	  exit $exit_status
9551f0ac6a5Smrg	fi
9561f0ac6a5Smrg      fi
9571f0ac6a5Smrg
9581f0ac6a5Smrg      if test -z "$output_obj"; then
9591f0ac6a5Smrg	# Place PIC objects in $objdir
9601f0ac6a5Smrg	command="$command -o $lobj"
9611f0ac6a5Smrg      fi
9621f0ac6a5Smrg
9631f0ac6a5Smrg      $run $rm "$lobj" "$output_obj"
9641f0ac6a5Smrg
9651f0ac6a5Smrg      $show "$command"
966e5410a46Smrg      if $run eval $lt_env "$command"; then :
9671f0ac6a5Smrg      else
9681f0ac6a5Smrg	test -n "$output_obj" && $run $rm $removelist
9691f0ac6a5Smrg	exit $EXIT_FAILURE
9701f0ac6a5Smrg      fi
9711f0ac6a5Smrg
9721f0ac6a5Smrg      if test "$need_locks" = warn &&
9731f0ac6a5Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
9741f0ac6a5Smrg	$echo "\
9751f0ac6a5Smrg*** ERROR, $lockfile contains:
9761f0ac6a5Smrg`cat $lockfile 2>/dev/null`
9771f0ac6a5Smrg
9781f0ac6a5Smrgbut it should contain:
9791f0ac6a5Smrg$srcfile
9801f0ac6a5Smrg
9811f0ac6a5SmrgThis indicates that another process is trying to use the same
9821f0ac6a5Smrgtemporary object file, and libtool could not work around it because
9831f0ac6a5Smrgyour compiler does not support \`-c' and \`-o' together.  If you
9841f0ac6a5Smrgrepeat this compilation, it may succeed, by chance, but you had better
9851f0ac6a5Smrgavoid parallel builds (make -j) in this platform, or get a better
9861f0ac6a5Smrgcompiler."
9871f0ac6a5Smrg
9881f0ac6a5Smrg	$run $rm $removelist
9891f0ac6a5Smrg	exit $EXIT_FAILURE
9901f0ac6a5Smrg      fi
9911f0ac6a5Smrg
9921f0ac6a5Smrg      # Just move the object if needed, then go on to compile the next one
9931f0ac6a5Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
9941f0ac6a5Smrg	$show "$mv $output_obj $lobj"
9951f0ac6a5Smrg	if $run $mv $output_obj $lobj; then :
9961f0ac6a5Smrg	else
9971f0ac6a5Smrg	  error=$?
9981f0ac6a5Smrg	  $run $rm $removelist
9991f0ac6a5Smrg	  exit $error
10001f0ac6a5Smrg	fi
10011f0ac6a5Smrg      fi
10021f0ac6a5Smrg
10031f0ac6a5Smrg      # Append the name of the PIC object to the libtool object file.
10041f0ac6a5Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
10051f0ac6a5Smrgpic_object='$objdir/$objname'
10061f0ac6a5Smrg
10071f0ac6a5SmrgEOF
10081f0ac6a5Smrg
10091f0ac6a5Smrg      # Allow error messages only from the first compilation.
10101f0ac6a5Smrg      if test "$suppress_opt" = yes; then
10111f0ac6a5Smrg        suppress_output=' >/dev/null 2>&1'
10121f0ac6a5Smrg      fi
10131f0ac6a5Smrg    else
10141f0ac6a5Smrg      # No PIC object so indicate it doesn't exist in the libtool
10151f0ac6a5Smrg      # object file.
10161f0ac6a5Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
10171f0ac6a5Smrgpic_object=none
10181f0ac6a5Smrg
10191f0ac6a5SmrgEOF
10201f0ac6a5Smrg    fi
10211f0ac6a5Smrg
10221f0ac6a5Smrg    # Only build a position-dependent object if we build old libraries.
10231f0ac6a5Smrg    if test "$build_old_libs" = yes; then
10241f0ac6a5Smrg      if test "$pic_mode" != yes; then
10251f0ac6a5Smrg	# Don't build PIC code
10261f0ac6a5Smrg	command="$base_compile $qsrcfile"
10271f0ac6a5Smrg      else
10281f0ac6a5Smrg	command="$base_compile $qsrcfile $pic_flag"
10291f0ac6a5Smrg      fi
10301f0ac6a5Smrg      if test "$compiler_c_o" = yes; then
10311f0ac6a5Smrg	command="$command -o $obj"
10321f0ac6a5Smrg      fi
10331f0ac6a5Smrg
10341f0ac6a5Smrg      # Suppress compiler output if we already did a PIC compilation.
10351f0ac6a5Smrg      command="$command$suppress_output"
10361f0ac6a5Smrg      $run $rm "$obj" "$output_obj"
10371f0ac6a5Smrg      $show "$command"
1038e5410a46Smrg      if $run eval $lt_env "$command"; then :
10391f0ac6a5Smrg      else
10401f0ac6a5Smrg	$run $rm $removelist
10411f0ac6a5Smrg	exit $EXIT_FAILURE
10421f0ac6a5Smrg      fi
10431f0ac6a5Smrg
10441f0ac6a5Smrg      if test "$need_locks" = warn &&
10451f0ac6a5Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
10461f0ac6a5Smrg	$echo "\
10471f0ac6a5Smrg*** ERROR, $lockfile contains:
10481f0ac6a5Smrg`cat $lockfile 2>/dev/null`
10491f0ac6a5Smrg
10501f0ac6a5Smrgbut it should contain:
10511f0ac6a5Smrg$srcfile
10521f0ac6a5Smrg
10531f0ac6a5SmrgThis indicates that another process is trying to use the same
10541f0ac6a5Smrgtemporary object file, and libtool could not work around it because
10551f0ac6a5Smrgyour compiler does not support \`-c' and \`-o' together.  If you
10561f0ac6a5Smrgrepeat this compilation, it may succeed, by chance, but you had better
10571f0ac6a5Smrgavoid parallel builds (make -j) in this platform, or get a better
10581f0ac6a5Smrgcompiler."
10591f0ac6a5Smrg
10601f0ac6a5Smrg	$run $rm $removelist
10611f0ac6a5Smrg	exit $EXIT_FAILURE
10621f0ac6a5Smrg      fi
10631f0ac6a5Smrg
10641f0ac6a5Smrg      # Just move the object if needed
10651f0ac6a5Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
10661f0ac6a5Smrg	$show "$mv $output_obj $obj"
10671f0ac6a5Smrg	if $run $mv $output_obj $obj; then :
10681f0ac6a5Smrg	else
10691f0ac6a5Smrg	  error=$?
10701f0ac6a5Smrg	  $run $rm $removelist
10711f0ac6a5Smrg	  exit $error
10721f0ac6a5Smrg	fi
10731f0ac6a5Smrg      fi
10741f0ac6a5Smrg
10751f0ac6a5Smrg      # Append the name of the non-PIC object the libtool object file.
10761f0ac6a5Smrg      # Only append if the libtool object file exists.
10771f0ac6a5Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
10781f0ac6a5Smrg# Name of the non-PIC object.
10791f0ac6a5Smrgnon_pic_object='$objname'
10801f0ac6a5Smrg
10811f0ac6a5SmrgEOF
10821f0ac6a5Smrg    else
10831f0ac6a5Smrg      # Append the name of the non-PIC object the libtool object file.
10841f0ac6a5Smrg      # Only append if the libtool object file exists.
10851f0ac6a5Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
10861f0ac6a5Smrg# Name of the non-PIC object.
10871f0ac6a5Smrgnon_pic_object=none
10881f0ac6a5Smrg
10891f0ac6a5SmrgEOF
10901f0ac6a5Smrg    fi
10911f0ac6a5Smrg
10921f0ac6a5Smrg    $run $mv "${libobj}T" "${libobj}"
10931f0ac6a5Smrg
10941f0ac6a5Smrg    # Unlock the critical section if it was locked
10951f0ac6a5Smrg    if test "$need_locks" != no; then
10961f0ac6a5Smrg      $run $rm "$lockfile"
10971f0ac6a5Smrg    fi
10981f0ac6a5Smrg
10991f0ac6a5Smrg    exit $EXIT_SUCCESS
11001f0ac6a5Smrg    ;;
11011f0ac6a5Smrg
11021f0ac6a5Smrg  # libtool link mode
11031f0ac6a5Smrg  link | relink)
11041f0ac6a5Smrg    modename="$modename: link"
11051f0ac6a5Smrg    case $host in
11061f0ac6a5Smrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
11071f0ac6a5Smrg      # It is impossible to link a dll without this setting, and
11081f0ac6a5Smrg      # we shouldn't force the makefile maintainer to figure out
11091f0ac6a5Smrg      # which system we are compiling for in order to pass an extra
11101f0ac6a5Smrg      # flag for every libtool invocation.
11111f0ac6a5Smrg      # allow_undefined=no
11121f0ac6a5Smrg
11131f0ac6a5Smrg      # FIXME: Unfortunately, there are problems with the above when trying
11141f0ac6a5Smrg      # to make a dll which has undefined symbols, in which case not
11151f0ac6a5Smrg      # even a static library is built.  For now, we need to specify
11161f0ac6a5Smrg      # -no-undefined on the libtool link line when we can be certain
11171f0ac6a5Smrg      # that all symbols are satisfied, otherwise we get a static library.
11181f0ac6a5Smrg      allow_undefined=yes
11191f0ac6a5Smrg      ;;
11201f0ac6a5Smrg    *)
11211f0ac6a5Smrg      allow_undefined=yes
11221f0ac6a5Smrg      ;;
11231f0ac6a5Smrg    esac
11241f0ac6a5Smrg    libtool_args="$nonopt"
11251f0ac6a5Smrg    base_compile="$nonopt $@"
11261f0ac6a5Smrg    compile_command="$nonopt"
11271f0ac6a5Smrg    finalize_command="$nonopt"
11281f0ac6a5Smrg
11291f0ac6a5Smrg    compile_rpath=
11301f0ac6a5Smrg    finalize_rpath=
11311f0ac6a5Smrg    compile_shlibpath=
11321f0ac6a5Smrg    finalize_shlibpath=
11331f0ac6a5Smrg    convenience=
11341f0ac6a5Smrg    old_convenience=
11351f0ac6a5Smrg    deplibs=
11361f0ac6a5Smrg    old_deplibs=
11371f0ac6a5Smrg    compiler_flags=
11381f0ac6a5Smrg    linker_flags=
11391f0ac6a5Smrg    dllsearchpath=
11401f0ac6a5Smrg    lib_search_path=`pwd`
11411f0ac6a5Smrg    inst_prefix_dir=
11421f0ac6a5Smrg
11431f0ac6a5Smrg    avoid_version=no
11441f0ac6a5Smrg    dlfiles=
11451f0ac6a5Smrg    dlprefiles=
11461f0ac6a5Smrg    dlself=no
11471f0ac6a5Smrg    export_dynamic=no
11481f0ac6a5Smrg    export_symbols=
11491f0ac6a5Smrg    export_symbols_regex=
11501f0ac6a5Smrg    generated=
11511f0ac6a5Smrg    libobjs=
11521f0ac6a5Smrg    ltlibs=
11531f0ac6a5Smrg    module=no
11541f0ac6a5Smrg    no_install=no
11551f0ac6a5Smrg    objs=
11561f0ac6a5Smrg    non_pic_objects=
11571f0ac6a5Smrg    notinst_path= # paths that contain not-installed libtool libraries
11581f0ac6a5Smrg    precious_files_regex=
11591f0ac6a5Smrg    prefer_static_libs=no
11601f0ac6a5Smrg    preload=no
11611f0ac6a5Smrg    prev=
11621f0ac6a5Smrg    prevarg=
11631f0ac6a5Smrg    release=
11641f0ac6a5Smrg    rpath=
11651f0ac6a5Smrg    xrpath=
11661f0ac6a5Smrg    perm_rpath=
11671f0ac6a5Smrg    temp_rpath=
11681f0ac6a5Smrg    thread_safe=no
11691f0ac6a5Smrg    vinfo=
11701f0ac6a5Smrg    vinfo_number=no
1171e5410a46Smrg    single_module="${wl}-single_module"
11721f0ac6a5Smrg
11731f0ac6a5Smrg    func_infer_tag $base_compile
11741f0ac6a5Smrg
11751f0ac6a5Smrg    # We need to know -static, to get the right output filenames.
11761f0ac6a5Smrg    for arg
11771f0ac6a5Smrg    do
11781f0ac6a5Smrg      case $arg in
1179e5410a46Smrg      -all-static | -static | -static-libtool-libs)
1180e5410a46Smrg	case $arg in
1181e5410a46Smrg	-all-static)
11821f0ac6a5Smrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
11831f0ac6a5Smrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
11841f0ac6a5Smrg	  fi
11851f0ac6a5Smrg	  if test -n "$link_static_flag"; then
11861f0ac6a5Smrg	    dlopen_self=$dlopen_self_static
11871f0ac6a5Smrg	  fi
11881f0ac6a5Smrg	  prefer_static_libs=yes
1189e5410a46Smrg	  ;;
1190e5410a46Smrg	-static)
11911f0ac6a5Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11921f0ac6a5Smrg	    dlopen_self=$dlopen_self_static
11931f0ac6a5Smrg	  fi
11941f0ac6a5Smrg	  prefer_static_libs=built
1195e5410a46Smrg	  ;;
1196e5410a46Smrg	-static-libtool-libs)
1197e5410a46Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1198e5410a46Smrg	    dlopen_self=$dlopen_self_static
1199e5410a46Smrg	  fi
1200e5410a46Smrg	  prefer_static_libs=yes
1201e5410a46Smrg	  ;;
1202e5410a46Smrg	esac
12031f0ac6a5Smrg	build_libtool_libs=no
12041f0ac6a5Smrg	build_old_libs=yes
12051f0ac6a5Smrg	break
12061f0ac6a5Smrg	;;
12071f0ac6a5Smrg      esac
12081f0ac6a5Smrg    done
12091f0ac6a5Smrg
12101f0ac6a5Smrg    # See if our shared archives depend on static archives.
12111f0ac6a5Smrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
12121f0ac6a5Smrg
12131f0ac6a5Smrg    # Go through the arguments, transforming them on the way.
12141f0ac6a5Smrg    while test "$#" -gt 0; do
12151f0ac6a5Smrg      arg="$1"
12161f0ac6a5Smrg      shift
12171f0ac6a5Smrg      case $arg in
12181f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
12191f0ac6a5Smrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
12201f0ac6a5Smrg	;;
12211f0ac6a5Smrg      *) qarg=$arg ;;
12221f0ac6a5Smrg      esac
12231f0ac6a5Smrg      libtool_args="$libtool_args $qarg"
12241f0ac6a5Smrg
12251f0ac6a5Smrg      # If the previous option needs an argument, assign it.
12261f0ac6a5Smrg      if test -n "$prev"; then
12271f0ac6a5Smrg	case $prev in
12281f0ac6a5Smrg	output)
12291f0ac6a5Smrg	  compile_command="$compile_command @OUTPUT@"
12301f0ac6a5Smrg	  finalize_command="$finalize_command @OUTPUT@"
12311f0ac6a5Smrg	  ;;
12321f0ac6a5Smrg	esac
12331f0ac6a5Smrg
12341f0ac6a5Smrg	case $prev in
12351f0ac6a5Smrg	dlfiles|dlprefiles)
12361f0ac6a5Smrg	  if test "$preload" = no; then
12371f0ac6a5Smrg	    # Add the symbol object into the linking commands.
12381f0ac6a5Smrg	    compile_command="$compile_command @SYMFILE@"
12391f0ac6a5Smrg	    finalize_command="$finalize_command @SYMFILE@"
12401f0ac6a5Smrg	    preload=yes
12411f0ac6a5Smrg	  fi
12421f0ac6a5Smrg	  case $arg in
12431f0ac6a5Smrg	  *.la | *.lo) ;;  # We handle these cases below.
12441f0ac6a5Smrg	  force)
12451f0ac6a5Smrg	    if test "$dlself" = no; then
12461f0ac6a5Smrg	      dlself=needless
12471f0ac6a5Smrg	      export_dynamic=yes
12481f0ac6a5Smrg	    fi
12491f0ac6a5Smrg	    prev=
12501f0ac6a5Smrg	    continue
12511f0ac6a5Smrg	    ;;
12521f0ac6a5Smrg	  self)
12531f0ac6a5Smrg	    if test "$prev" = dlprefiles; then
12541f0ac6a5Smrg	      dlself=yes
12551f0ac6a5Smrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
12561f0ac6a5Smrg	      dlself=yes
12571f0ac6a5Smrg	    else
12581f0ac6a5Smrg	      dlself=needless
12591f0ac6a5Smrg	      export_dynamic=yes
12601f0ac6a5Smrg	    fi
12611f0ac6a5Smrg	    prev=
12621f0ac6a5Smrg	    continue
12631f0ac6a5Smrg	    ;;
12641f0ac6a5Smrg	  *)
12651f0ac6a5Smrg	    if test "$prev" = dlfiles; then
12661f0ac6a5Smrg	      dlfiles="$dlfiles $arg"
12671f0ac6a5Smrg	    else
12681f0ac6a5Smrg	      dlprefiles="$dlprefiles $arg"
12691f0ac6a5Smrg	    fi
12701f0ac6a5Smrg	    prev=
12711f0ac6a5Smrg	    continue
12721f0ac6a5Smrg	    ;;
12731f0ac6a5Smrg	  esac
12741f0ac6a5Smrg	  ;;
12751f0ac6a5Smrg	expsyms)
12761f0ac6a5Smrg	  export_symbols="$arg"
12771f0ac6a5Smrg	  if test ! -f "$arg"; then
12781f0ac6a5Smrg	    $echo "$modename: symbol file \`$arg' does not exist"
12791f0ac6a5Smrg	    exit $EXIT_FAILURE
12801f0ac6a5Smrg	  fi
12811f0ac6a5Smrg	  prev=
12821f0ac6a5Smrg	  continue
12831f0ac6a5Smrg	  ;;
12841f0ac6a5Smrg	expsyms_regex)
12851f0ac6a5Smrg	  export_symbols_regex="$arg"
12861f0ac6a5Smrg	  prev=
12871f0ac6a5Smrg	  continue
12881f0ac6a5Smrg	  ;;
12891f0ac6a5Smrg	inst_prefix)
12901f0ac6a5Smrg	  inst_prefix_dir="$arg"
12911f0ac6a5Smrg	  prev=
12921f0ac6a5Smrg	  continue
12931f0ac6a5Smrg	  ;;
12941f0ac6a5Smrg	precious_regex)
12951f0ac6a5Smrg	  precious_files_regex="$arg"
12961f0ac6a5Smrg	  prev=
12971f0ac6a5Smrg	  continue
12981f0ac6a5Smrg	  ;;
12991f0ac6a5Smrg	release)
13001f0ac6a5Smrg	  release="-$arg"
13011f0ac6a5Smrg	  prev=
13021f0ac6a5Smrg	  continue
13031f0ac6a5Smrg	  ;;
13041f0ac6a5Smrg	objectlist)
13051f0ac6a5Smrg	  if test -f "$arg"; then
13061f0ac6a5Smrg	    save_arg=$arg
13071f0ac6a5Smrg	    moreargs=
13081f0ac6a5Smrg	    for fil in `cat $save_arg`
13091f0ac6a5Smrg	    do
13101f0ac6a5Smrg#	      moreargs="$moreargs $fil"
13111f0ac6a5Smrg	      arg=$fil
13121f0ac6a5Smrg	      # A libtool-controlled object.
13131f0ac6a5Smrg
13141f0ac6a5Smrg	      # Check to see that this really is a libtool object.
13151f0ac6a5Smrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
13161f0ac6a5Smrg		pic_object=
13171f0ac6a5Smrg		non_pic_object=
13181f0ac6a5Smrg
13191f0ac6a5Smrg		# Read the .lo file
13201f0ac6a5Smrg		# If there is no directory component, then add one.
13211f0ac6a5Smrg		case $arg in
13221f0ac6a5Smrg		*/* | *\\*) . $arg ;;
13231f0ac6a5Smrg		*) . ./$arg ;;
13241f0ac6a5Smrg		esac
13251f0ac6a5Smrg
13261f0ac6a5Smrg		if test -z "$pic_object" || \
13271f0ac6a5Smrg		   test -z "$non_pic_object" ||
13281f0ac6a5Smrg		   test "$pic_object" = none && \
13291f0ac6a5Smrg		   test "$non_pic_object" = none; then
13301f0ac6a5Smrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
13311f0ac6a5Smrg		  exit $EXIT_FAILURE
13321f0ac6a5Smrg		fi
13331f0ac6a5Smrg
13341f0ac6a5Smrg		# Extract subdirectory from the argument.
13351f0ac6a5Smrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13361f0ac6a5Smrg		if test "X$xdir" = "X$arg"; then
13371f0ac6a5Smrg		  xdir=
13381f0ac6a5Smrg		else
13391f0ac6a5Smrg		  xdir="$xdir/"
13401f0ac6a5Smrg		fi
13411f0ac6a5Smrg
13421f0ac6a5Smrg		if test "$pic_object" != none; then
13431f0ac6a5Smrg		  # Prepend the subdirectory the object is found in.
13441f0ac6a5Smrg		  pic_object="$xdir$pic_object"
13451f0ac6a5Smrg
13461f0ac6a5Smrg		  if test "$prev" = dlfiles; then
13471f0ac6a5Smrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
13481f0ac6a5Smrg		      dlfiles="$dlfiles $pic_object"
13491f0ac6a5Smrg		      prev=
13501f0ac6a5Smrg		      continue
13511f0ac6a5Smrg		    else
13521f0ac6a5Smrg		      # If libtool objects are unsupported, then we need to preload.
13531f0ac6a5Smrg		      prev=dlprefiles
13541f0ac6a5Smrg		    fi
13551f0ac6a5Smrg		  fi
13561f0ac6a5Smrg
13571f0ac6a5Smrg		  # CHECK ME:  I think I busted this.  -Ossama
13581f0ac6a5Smrg		  if test "$prev" = dlprefiles; then
13591f0ac6a5Smrg		    # Preload the old-style object.
13601f0ac6a5Smrg		    dlprefiles="$dlprefiles $pic_object"
13611f0ac6a5Smrg		    prev=
13621f0ac6a5Smrg		  fi
13631f0ac6a5Smrg
13641f0ac6a5Smrg		  # A PIC object.
13651f0ac6a5Smrg		  libobjs="$libobjs $pic_object"
13661f0ac6a5Smrg		  arg="$pic_object"
13671f0ac6a5Smrg		fi
13681f0ac6a5Smrg
13691f0ac6a5Smrg		# Non-PIC object.
13701f0ac6a5Smrg		if test "$non_pic_object" != none; then
13711f0ac6a5Smrg		  # Prepend the subdirectory the object is found in.
13721f0ac6a5Smrg		  non_pic_object="$xdir$non_pic_object"
13731f0ac6a5Smrg
13741f0ac6a5Smrg		  # A standard non-PIC object
13751f0ac6a5Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
13761f0ac6a5Smrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
13771f0ac6a5Smrg		    arg="$non_pic_object"
13781f0ac6a5Smrg		  fi
13791f0ac6a5Smrg		else
13801f0ac6a5Smrg		  # If the PIC object exists, use it instead.
13811f0ac6a5Smrg		  # $xdir was prepended to $pic_object above.
13821f0ac6a5Smrg		  non_pic_object="$pic_object"
13831f0ac6a5Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
13841f0ac6a5Smrg		fi
13851f0ac6a5Smrg	      else
13861f0ac6a5Smrg		# Only an error if not doing a dry-run.
13871f0ac6a5Smrg		if test -z "$run"; then
13881f0ac6a5Smrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
13891f0ac6a5Smrg		  exit $EXIT_FAILURE
13901f0ac6a5Smrg		else
13911f0ac6a5Smrg		  # Dry-run case.
13921f0ac6a5Smrg
13931f0ac6a5Smrg		  # Extract subdirectory from the argument.
13941f0ac6a5Smrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13951f0ac6a5Smrg		  if test "X$xdir" = "X$arg"; then
13961f0ac6a5Smrg		    xdir=
13971f0ac6a5Smrg		  else
13981f0ac6a5Smrg		    xdir="$xdir/"
13991f0ac6a5Smrg		  fi
14001f0ac6a5Smrg
14011f0ac6a5Smrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
14021f0ac6a5Smrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
14031f0ac6a5Smrg		  libobjs="$libobjs $pic_object"
14041f0ac6a5Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
14051f0ac6a5Smrg		fi
14061f0ac6a5Smrg	      fi
14071f0ac6a5Smrg	    done
14081f0ac6a5Smrg	  else
14091f0ac6a5Smrg	    $echo "$modename: link input file \`$save_arg' does not exist"
14101f0ac6a5Smrg	    exit $EXIT_FAILURE
14111f0ac6a5Smrg	  fi
14121f0ac6a5Smrg	  arg=$save_arg
14131f0ac6a5Smrg	  prev=
14141f0ac6a5Smrg	  continue
14151f0ac6a5Smrg	  ;;
14161f0ac6a5Smrg	rpath | xrpath)
14171f0ac6a5Smrg	  # We need an absolute path.
14181f0ac6a5Smrg	  case $arg in
14191f0ac6a5Smrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
14201f0ac6a5Smrg	  *)
14211f0ac6a5Smrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
14221f0ac6a5Smrg	    exit $EXIT_FAILURE
14231f0ac6a5Smrg	    ;;
14241f0ac6a5Smrg	  esac
14251f0ac6a5Smrg	  if test "$prev" = rpath; then
14261f0ac6a5Smrg	    case "$rpath " in
14271f0ac6a5Smrg	    *" $arg "*) ;;
14281f0ac6a5Smrg	    *) rpath="$rpath $arg" ;;
14291f0ac6a5Smrg	    esac
14301f0ac6a5Smrg	  else
14311f0ac6a5Smrg	    case "$xrpath " in
14321f0ac6a5Smrg	    *" $arg "*) ;;
14331f0ac6a5Smrg	    *) xrpath="$xrpath $arg" ;;
14341f0ac6a5Smrg	    esac
14351f0ac6a5Smrg	  fi
14361f0ac6a5Smrg	  prev=
14371f0ac6a5Smrg	  continue
14381f0ac6a5Smrg	  ;;
14391f0ac6a5Smrg	xcompiler)
14401f0ac6a5Smrg	  compiler_flags="$compiler_flags $qarg"
14411f0ac6a5Smrg	  prev=
14421f0ac6a5Smrg	  compile_command="$compile_command $qarg"
14431f0ac6a5Smrg	  finalize_command="$finalize_command $qarg"
14441f0ac6a5Smrg	  continue
14451f0ac6a5Smrg	  ;;
14461f0ac6a5Smrg	xlinker)
14471f0ac6a5Smrg	  linker_flags="$linker_flags $qarg"
14481f0ac6a5Smrg	  compiler_flags="$compiler_flags $wl$qarg"
14491f0ac6a5Smrg	  prev=
14501f0ac6a5Smrg	  compile_command="$compile_command $wl$qarg"
14511f0ac6a5Smrg	  finalize_command="$finalize_command $wl$qarg"
14521f0ac6a5Smrg	  continue
14531f0ac6a5Smrg	  ;;
14541f0ac6a5Smrg	xcclinker)
14551f0ac6a5Smrg	  linker_flags="$linker_flags $qarg"
14561f0ac6a5Smrg	  compiler_flags="$compiler_flags $qarg"
14571f0ac6a5Smrg	  prev=
14581f0ac6a5Smrg	  compile_command="$compile_command $qarg"
14591f0ac6a5Smrg	  finalize_command="$finalize_command $qarg"
14601f0ac6a5Smrg	  continue
14611f0ac6a5Smrg	  ;;
14621f0ac6a5Smrg	shrext)
14631f0ac6a5Smrg  	  shrext_cmds="$arg"
14641f0ac6a5Smrg	  prev=
14651f0ac6a5Smrg	  continue
14661f0ac6a5Smrg	  ;;
14671f0ac6a5Smrg	darwin_framework|darwin_framework_skip)
14681f0ac6a5Smrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
14691f0ac6a5Smrg	  compile_command="$compile_command $arg"
14701f0ac6a5Smrg	  finalize_command="$finalize_command $arg"
14711f0ac6a5Smrg	  prev=
14721f0ac6a5Smrg	  continue
14731f0ac6a5Smrg	  ;;
14741f0ac6a5Smrg	*)
14751f0ac6a5Smrg	  eval "$prev=\"\$arg\""
14761f0ac6a5Smrg	  prev=
14771f0ac6a5Smrg	  continue
14781f0ac6a5Smrg	  ;;
14791f0ac6a5Smrg	esac
14801f0ac6a5Smrg      fi # test -n "$prev"
14811f0ac6a5Smrg
14821f0ac6a5Smrg      prevarg="$arg"
14831f0ac6a5Smrg
14841f0ac6a5Smrg      case $arg in
14851f0ac6a5Smrg      -all-static)
14861f0ac6a5Smrg	if test -n "$link_static_flag"; then
14871f0ac6a5Smrg	  compile_command="$compile_command $link_static_flag"
14881f0ac6a5Smrg	  finalize_command="$finalize_command $link_static_flag"
14891f0ac6a5Smrg	fi
14901f0ac6a5Smrg	continue
14911f0ac6a5Smrg	;;
14921f0ac6a5Smrg
14931f0ac6a5Smrg      -allow-undefined)
14941f0ac6a5Smrg	# FIXME: remove this flag sometime in the future.
14951f0ac6a5Smrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
14961f0ac6a5Smrg	continue
14971f0ac6a5Smrg	;;
14981f0ac6a5Smrg
14991f0ac6a5Smrg      -avoid-version)
15001f0ac6a5Smrg	avoid_version=yes
15011f0ac6a5Smrg	continue
15021f0ac6a5Smrg	;;
15031f0ac6a5Smrg
15041f0ac6a5Smrg      -dlopen)
15051f0ac6a5Smrg	prev=dlfiles
15061f0ac6a5Smrg	continue
15071f0ac6a5Smrg	;;
15081f0ac6a5Smrg
15091f0ac6a5Smrg      -dlpreopen)
15101f0ac6a5Smrg	prev=dlprefiles
15111f0ac6a5Smrg	continue
15121f0ac6a5Smrg	;;
15131f0ac6a5Smrg
15141f0ac6a5Smrg      -export-dynamic)
15151f0ac6a5Smrg	export_dynamic=yes
15161f0ac6a5Smrg	continue
15171f0ac6a5Smrg	;;
15181f0ac6a5Smrg
15191f0ac6a5Smrg      -export-symbols | -export-symbols-regex)
15201f0ac6a5Smrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
15211f0ac6a5Smrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
15221f0ac6a5Smrg	  exit $EXIT_FAILURE
15231f0ac6a5Smrg	fi
15241f0ac6a5Smrg	if test "X$arg" = "X-export-symbols"; then
15251f0ac6a5Smrg	  prev=expsyms
15261f0ac6a5Smrg	else
15271f0ac6a5Smrg	  prev=expsyms_regex
15281f0ac6a5Smrg	fi
15291f0ac6a5Smrg	continue
15301f0ac6a5Smrg	;;
15311f0ac6a5Smrg
15321f0ac6a5Smrg      -framework|-arch|-isysroot)
15331f0ac6a5Smrg	case " $CC " in
15341f0ac6a5Smrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
15351f0ac6a5Smrg		prev=darwin_framework_skip ;;
15361f0ac6a5Smrg	  *) compiler_flags="$compiler_flags $arg"
15371f0ac6a5Smrg	     prev=darwin_framework ;;
15381f0ac6a5Smrg	esac
15391f0ac6a5Smrg	compile_command="$compile_command $arg"
15401f0ac6a5Smrg	finalize_command="$finalize_command $arg"
15411f0ac6a5Smrg	continue
15421f0ac6a5Smrg	;;
15431f0ac6a5Smrg
15441f0ac6a5Smrg      -inst-prefix-dir)
15451f0ac6a5Smrg	prev=inst_prefix
15461f0ac6a5Smrg	continue
15471f0ac6a5Smrg	;;
15481f0ac6a5Smrg
15491f0ac6a5Smrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
15501f0ac6a5Smrg      # so, if we see these flags be careful not to treat them like -L
15511f0ac6a5Smrg      -L[A-Z][A-Z]*:*)
15521f0ac6a5Smrg	case $with_gcc/$host in
15531f0ac6a5Smrg	no/*-*-irix* | /*-*-irix*)
15541f0ac6a5Smrg	  compile_command="$compile_command $arg"
15551f0ac6a5Smrg	  finalize_command="$finalize_command $arg"
15561f0ac6a5Smrg	  ;;
15571f0ac6a5Smrg	esac
15581f0ac6a5Smrg	continue
15591f0ac6a5Smrg	;;
15601f0ac6a5Smrg
15611f0ac6a5Smrg      -L*)
15621f0ac6a5Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
15631f0ac6a5Smrg	# We need an absolute path.
15641f0ac6a5Smrg	case $dir in
15651f0ac6a5Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
15661f0ac6a5Smrg	*)
15671f0ac6a5Smrg	  absdir=`cd "$dir" && pwd`
15681f0ac6a5Smrg	  if test -z "$absdir"; then
15691f0ac6a5Smrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
15701f0ac6a5Smrg	    absdir="$dir"
15711f0ac6a5Smrg	    notinst_path="$notinst_path $dir"
15721f0ac6a5Smrg	  fi
15731f0ac6a5Smrg	  dir="$absdir"
15741f0ac6a5Smrg	  ;;
15751f0ac6a5Smrg	esac
15761f0ac6a5Smrg	case "$deplibs " in
15771f0ac6a5Smrg	*" -L$dir "*) ;;
15781f0ac6a5Smrg	*)
15791f0ac6a5Smrg	  deplibs="$deplibs -L$dir"
15801f0ac6a5Smrg	  lib_search_path="$lib_search_path $dir"
15811f0ac6a5Smrg	  ;;
15821f0ac6a5Smrg	esac
15831f0ac6a5Smrg	case $host in
15841f0ac6a5Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
15851f0ac6a5Smrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
15861f0ac6a5Smrg	  case :$dllsearchpath: in
15871f0ac6a5Smrg	  *":$dir:"*) ;;
15881f0ac6a5Smrg	  *) dllsearchpath="$dllsearchpath:$dir";;
15891f0ac6a5Smrg	  esac
15901f0ac6a5Smrg	  case :$dllsearchpath: in
15911f0ac6a5Smrg	  *":$testbindir:"*) ;;
15921f0ac6a5Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
15931f0ac6a5Smrg	  esac
15941f0ac6a5Smrg	  ;;
15951f0ac6a5Smrg	esac
15961f0ac6a5Smrg	continue
15971f0ac6a5Smrg	;;
15981f0ac6a5Smrg
15991f0ac6a5Smrg      -l*)
16001f0ac6a5Smrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
16011f0ac6a5Smrg	  case $host in
16021f0ac6a5Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
16031f0ac6a5Smrg	    # These systems don't actually have a C or math library (as such)
16041f0ac6a5Smrg	    continue
16051f0ac6a5Smrg	    ;;
16061f0ac6a5Smrg	  *-*-os2*)
16071f0ac6a5Smrg	    # These systems don't actually have a C library (as such)
16081f0ac6a5Smrg	    test "X$arg" = "X-lc" && continue
16091f0ac6a5Smrg	    ;;
16101f0ac6a5Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16111f0ac6a5Smrg	    # Do not include libc due to us having libc/libc_r.
16121f0ac6a5Smrg	    test "X$arg" = "X-lc" && continue
16131f0ac6a5Smrg	    ;;
16141f0ac6a5Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
16151f0ac6a5Smrg	    # Rhapsody C and math libraries are in the System framework
16161f0ac6a5Smrg	    deplibs="$deplibs -framework System"
16171f0ac6a5Smrg	    continue
16181f0ac6a5Smrg	    ;;
16191f0ac6a5Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
16201f0ac6a5Smrg	    # Causes problems with __ctype
16211f0ac6a5Smrg	    test "X$arg" = "X-lc" && continue
16221f0ac6a5Smrg	    ;;
16231f0ac6a5Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
16241f0ac6a5Smrg	    # Compiler inserts libc in the correct place for threads to work
16251f0ac6a5Smrg	    test "X$arg" = "X-lc" && continue
16261f0ac6a5Smrg	    ;;
16271f0ac6a5Smrg	  esac
16281f0ac6a5Smrg	elif test "X$arg" = "X-lc_r"; then
16291f0ac6a5Smrg	 case $host in
16301f0ac6a5Smrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16311f0ac6a5Smrg	   # Do not include libc_r directly, use -pthread flag.
16321f0ac6a5Smrg	   continue
16331f0ac6a5Smrg	   ;;
16341f0ac6a5Smrg	 esac
16351f0ac6a5Smrg	fi
16361f0ac6a5Smrg	deplibs="$deplibs $arg"
16371f0ac6a5Smrg	continue
16381f0ac6a5Smrg	;;
16391f0ac6a5Smrg
16401f0ac6a5Smrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
16411f0ac6a5Smrg      # classes, name mangling, and exception handling.
16421f0ac6a5Smrg      -model)
16431f0ac6a5Smrg	compile_command="$compile_command $arg"
16441f0ac6a5Smrg	compiler_flags="$compiler_flags $arg"
16451f0ac6a5Smrg	finalize_command="$finalize_command $arg"
16461f0ac6a5Smrg	prev=xcompiler
16471f0ac6a5Smrg	continue
16481f0ac6a5Smrg	;;
16491f0ac6a5Smrg
1650e5410a46Smrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
16511f0ac6a5Smrg	compiler_flags="$compiler_flags $arg"
16521f0ac6a5Smrg	compile_command="$compile_command $arg"
16531f0ac6a5Smrg	finalize_command="$finalize_command $arg"
1654e5410a46Smrg	continue
1655e5410a46Smrg	;;
1656e5410a46Smrg
1657e5410a46Smrg      -multi_module)
1658e5410a46Smrg	single_module="${wl}-multi_module"
16591f0ac6a5Smrg	continue
16601f0ac6a5Smrg	;;
16611f0ac6a5Smrg
16621f0ac6a5Smrg      -module)
16631f0ac6a5Smrg	module=yes
16641f0ac6a5Smrg	continue
16651f0ac6a5Smrg	;;
16661f0ac6a5Smrg
16671f0ac6a5Smrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
16681f0ac6a5Smrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
16691f0ac6a5Smrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
16701f0ac6a5Smrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
16711f0ac6a5Smrg      # -q* pass through compiler args for the IBM compiler
16721f0ac6a5Smrg      # -m* pass through architecture-specific compiler args for GCC
16731f0ac6a5Smrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
16741f0ac6a5Smrg      # compiler args for GCC
1675e5410a46Smrg      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1676e5410a46Smrg      # -F/path gives path to uninstalled frameworks, gcc on darwin
16771f0ac6a5Smrg      # @file GCC response files
1678e5410a46Smrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1679e5410a46Smrg      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
16801f0ac6a5Smrg
16811f0ac6a5Smrg	# Unknown arguments in both finalize_command and compile_command need
16821f0ac6a5Smrg	# to be aesthetically quoted because they are evaled later.
16831f0ac6a5Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
16841f0ac6a5Smrg	case $arg in
16851f0ac6a5Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
16861f0ac6a5Smrg	  arg="\"$arg\""
16871f0ac6a5Smrg	  ;;
16881f0ac6a5Smrg	esac
16891f0ac6a5Smrg        compile_command="$compile_command $arg"
16901f0ac6a5Smrg        finalize_command="$finalize_command $arg"
16911f0ac6a5Smrg        compiler_flags="$compiler_flags $arg"
16921f0ac6a5Smrg        continue
16931f0ac6a5Smrg        ;;
16941f0ac6a5Smrg
16951f0ac6a5Smrg      -shrext)
16961f0ac6a5Smrg	prev=shrext
16971f0ac6a5Smrg	continue
16981f0ac6a5Smrg	;;
16991f0ac6a5Smrg
17001f0ac6a5Smrg      -no-fast-install)
17011f0ac6a5Smrg	fast_install=no
17021f0ac6a5Smrg	continue
17031f0ac6a5Smrg	;;
17041f0ac6a5Smrg
17051f0ac6a5Smrg      -no-install)
17061f0ac6a5Smrg	case $host in
1707e5410a46Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
17081f0ac6a5Smrg	  # The PATH hackery in wrapper scripts is required on Windows
1709e5410a46Smrg	  # and Darwin in order for the loader to find any dlls it needs.
17101f0ac6a5Smrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
17111f0ac6a5Smrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
17121f0ac6a5Smrg	  fast_install=no
17131f0ac6a5Smrg	  ;;
17141f0ac6a5Smrg	*) no_install=yes ;;
17151f0ac6a5Smrg	esac
17161f0ac6a5Smrg	continue
17171f0ac6a5Smrg	;;
17181f0ac6a5Smrg
17191f0ac6a5Smrg      -no-undefined)
17201f0ac6a5Smrg	allow_undefined=no
17211f0ac6a5Smrg	continue
17221f0ac6a5Smrg	;;
17231f0ac6a5Smrg
17241f0ac6a5Smrg      -objectlist)
17251f0ac6a5Smrg	prev=objectlist
17261f0ac6a5Smrg	continue
17271f0ac6a5Smrg	;;
17281f0ac6a5Smrg
17291f0ac6a5Smrg      -o) prev=output ;;
17301f0ac6a5Smrg
17311f0ac6a5Smrg      -precious-files-regex)
17321f0ac6a5Smrg	prev=precious_regex
17331f0ac6a5Smrg	continue
17341f0ac6a5Smrg	;;
17351f0ac6a5Smrg
17361f0ac6a5Smrg      -release)
17371f0ac6a5Smrg	prev=release
17381f0ac6a5Smrg	continue
17391f0ac6a5Smrg	;;
17401f0ac6a5Smrg
17411f0ac6a5Smrg      -rpath)
17421f0ac6a5Smrg	prev=rpath
17431f0ac6a5Smrg	continue
17441f0ac6a5Smrg	;;
17451f0ac6a5Smrg
17461f0ac6a5Smrg      -R)
17471f0ac6a5Smrg	prev=xrpath
17481f0ac6a5Smrg	continue
17491f0ac6a5Smrg	;;
17501f0ac6a5Smrg
17511f0ac6a5Smrg      -R*)
17521f0ac6a5Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
17531f0ac6a5Smrg	# We need an absolute path.
17541f0ac6a5Smrg	case $dir in
17551f0ac6a5Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
17561f0ac6a5Smrg	*)
17571f0ac6a5Smrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
17581f0ac6a5Smrg	  exit $EXIT_FAILURE
17591f0ac6a5Smrg	  ;;
17601f0ac6a5Smrg	esac
17611f0ac6a5Smrg	case "$xrpath " in
17621f0ac6a5Smrg	*" $dir "*) ;;
17631f0ac6a5Smrg	*) xrpath="$xrpath $dir" ;;
17641f0ac6a5Smrg	esac
17651f0ac6a5Smrg	continue
17661f0ac6a5Smrg	;;
17671f0ac6a5Smrg
1768e5410a46Smrg      -static | -static-libtool-libs)
17691f0ac6a5Smrg	# The effects of -static are defined in a previous loop.
17701f0ac6a5Smrg	# We used to do the same as -all-static on platforms that
17711f0ac6a5Smrg	# didn't have a PIC flag, but the assumption that the effects
17721f0ac6a5Smrg	# would be equivalent was wrong.  It would break on at least
17731f0ac6a5Smrg	# Digital Unix and AIX.
17741f0ac6a5Smrg	continue
17751f0ac6a5Smrg	;;
17761f0ac6a5Smrg
17771f0ac6a5Smrg      -thread-safe)
17781f0ac6a5Smrg	thread_safe=yes
17791f0ac6a5Smrg	continue
17801f0ac6a5Smrg	;;
17811f0ac6a5Smrg
17821f0ac6a5Smrg      -version-info)
17831f0ac6a5Smrg	prev=vinfo
17841f0ac6a5Smrg	continue
17851f0ac6a5Smrg	;;
17861f0ac6a5Smrg      -version-number)
17871f0ac6a5Smrg	prev=vinfo
17881f0ac6a5Smrg	vinfo_number=yes
17891f0ac6a5Smrg	continue
17901f0ac6a5Smrg	;;
17911f0ac6a5Smrg
17921f0ac6a5Smrg      -Wc,*)
17931f0ac6a5Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
17941f0ac6a5Smrg	arg=
17951f0ac6a5Smrg	save_ifs="$IFS"; IFS=','
17961f0ac6a5Smrg	for flag in $args; do
17971f0ac6a5Smrg	  IFS="$save_ifs"
17981f0ac6a5Smrg	  case $flag in
17991f0ac6a5Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18001f0ac6a5Smrg	    flag="\"$flag\""
18011f0ac6a5Smrg	    ;;
18021f0ac6a5Smrg	  esac
18031f0ac6a5Smrg	  arg="$arg $wl$flag"
18041f0ac6a5Smrg	  compiler_flags="$compiler_flags $flag"
18051f0ac6a5Smrg	done
18061f0ac6a5Smrg	IFS="$save_ifs"
18071f0ac6a5Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18081f0ac6a5Smrg	;;
18091f0ac6a5Smrg
18101f0ac6a5Smrg      -Wl,*)
18111f0ac6a5Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
18121f0ac6a5Smrg	arg=
18131f0ac6a5Smrg	save_ifs="$IFS"; IFS=','
18141f0ac6a5Smrg	for flag in $args; do
18151f0ac6a5Smrg	  IFS="$save_ifs"
18161f0ac6a5Smrg	  case $flag in
18171f0ac6a5Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18181f0ac6a5Smrg	    flag="\"$flag\""
18191f0ac6a5Smrg	    ;;
18201f0ac6a5Smrg	  esac
18211f0ac6a5Smrg	  arg="$arg $wl$flag"
18221f0ac6a5Smrg	  compiler_flags="$compiler_flags $wl$flag"
18231f0ac6a5Smrg	  linker_flags="$linker_flags $flag"
18241f0ac6a5Smrg	done
18251f0ac6a5Smrg	IFS="$save_ifs"
18261f0ac6a5Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18271f0ac6a5Smrg	;;
18281f0ac6a5Smrg
18291f0ac6a5Smrg      -Xcompiler)
18301f0ac6a5Smrg	prev=xcompiler
18311f0ac6a5Smrg	continue
18321f0ac6a5Smrg	;;
18331f0ac6a5Smrg
18341f0ac6a5Smrg      -Xlinker)
18351f0ac6a5Smrg	prev=xlinker
18361f0ac6a5Smrg	continue
18371f0ac6a5Smrg	;;
18381f0ac6a5Smrg
18391f0ac6a5Smrg      -XCClinker)
18401f0ac6a5Smrg	prev=xcclinker
18411f0ac6a5Smrg	continue
18421f0ac6a5Smrg	;;
18431f0ac6a5Smrg
18441f0ac6a5Smrg      # Some other compiler flag.
18451f0ac6a5Smrg      -* | +*)
18461f0ac6a5Smrg	# Unknown arguments in both finalize_command and compile_command need
18471f0ac6a5Smrg	# to be aesthetically quoted because they are evaled later.
18481f0ac6a5Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
18491f0ac6a5Smrg	case $arg in
18501f0ac6a5Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18511f0ac6a5Smrg	  arg="\"$arg\""
18521f0ac6a5Smrg	  ;;
18531f0ac6a5Smrg	esac
18541f0ac6a5Smrg	;;
18551f0ac6a5Smrg
18561f0ac6a5Smrg      *.$objext)
18571f0ac6a5Smrg	# A standard object.
18581f0ac6a5Smrg	objs="$objs $arg"
18591f0ac6a5Smrg	;;
18601f0ac6a5Smrg
18611f0ac6a5Smrg      *.lo)
18621f0ac6a5Smrg	# A libtool-controlled object.
18631f0ac6a5Smrg
18641f0ac6a5Smrg	# Check to see that this really is a libtool object.
18651f0ac6a5Smrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
18661f0ac6a5Smrg	  pic_object=
18671f0ac6a5Smrg	  non_pic_object=
18681f0ac6a5Smrg
18691f0ac6a5Smrg	  # Read the .lo file
18701f0ac6a5Smrg	  # If there is no directory component, then add one.
18711f0ac6a5Smrg	  case $arg in
18721f0ac6a5Smrg	  */* | *\\*) . $arg ;;
18731f0ac6a5Smrg	  *) . ./$arg ;;
18741f0ac6a5Smrg	  esac
18751f0ac6a5Smrg
18761f0ac6a5Smrg	  if test -z "$pic_object" || \
18771f0ac6a5Smrg	     test -z "$non_pic_object" ||
18781f0ac6a5Smrg	     test "$pic_object" = none && \
18791f0ac6a5Smrg	     test "$non_pic_object" = none; then
18801f0ac6a5Smrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
18811f0ac6a5Smrg	    exit $EXIT_FAILURE
18821f0ac6a5Smrg	  fi
18831f0ac6a5Smrg
18841f0ac6a5Smrg	  # Extract subdirectory from the argument.
18851f0ac6a5Smrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
18861f0ac6a5Smrg	  if test "X$xdir" = "X$arg"; then
18871f0ac6a5Smrg	    xdir=
18881f0ac6a5Smrg 	  else
18891f0ac6a5Smrg	    xdir="$xdir/"
18901f0ac6a5Smrg	  fi
18911f0ac6a5Smrg
18921f0ac6a5Smrg	  if test "$pic_object" != none; then
18931f0ac6a5Smrg	    # Prepend the subdirectory the object is found in.
18941f0ac6a5Smrg	    pic_object="$xdir$pic_object"
18951f0ac6a5Smrg
18961f0ac6a5Smrg	    if test "$prev" = dlfiles; then
18971f0ac6a5Smrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
18981f0ac6a5Smrg		dlfiles="$dlfiles $pic_object"
18991f0ac6a5Smrg		prev=
19001f0ac6a5Smrg		continue
19011f0ac6a5Smrg	      else
19021f0ac6a5Smrg		# If libtool objects are unsupported, then we need to preload.
19031f0ac6a5Smrg		prev=dlprefiles
19041f0ac6a5Smrg	      fi
19051f0ac6a5Smrg	    fi
19061f0ac6a5Smrg
19071f0ac6a5Smrg	    # CHECK ME:  I think I busted this.  -Ossama
19081f0ac6a5Smrg	    if test "$prev" = dlprefiles; then
19091f0ac6a5Smrg	      # Preload the old-style object.
19101f0ac6a5Smrg	      dlprefiles="$dlprefiles $pic_object"
19111f0ac6a5Smrg	      prev=
19121f0ac6a5Smrg	    fi
19131f0ac6a5Smrg
19141f0ac6a5Smrg	    # A PIC object.
19151f0ac6a5Smrg	    libobjs="$libobjs $pic_object"
19161f0ac6a5Smrg	    arg="$pic_object"
19171f0ac6a5Smrg	  fi
19181f0ac6a5Smrg
19191f0ac6a5Smrg	  # Non-PIC object.
19201f0ac6a5Smrg	  if test "$non_pic_object" != none; then
19211f0ac6a5Smrg	    # Prepend the subdirectory the object is found in.
19221f0ac6a5Smrg	    non_pic_object="$xdir$non_pic_object"
19231f0ac6a5Smrg
19241f0ac6a5Smrg	    # A standard non-PIC object
19251f0ac6a5Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
19261f0ac6a5Smrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
19271f0ac6a5Smrg	      arg="$non_pic_object"
19281f0ac6a5Smrg	    fi
19291f0ac6a5Smrg	  else
19301f0ac6a5Smrg	    # If the PIC object exists, use it instead.
19311f0ac6a5Smrg	    # $xdir was prepended to $pic_object above.
19321f0ac6a5Smrg	    non_pic_object="$pic_object"
19331f0ac6a5Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
19341f0ac6a5Smrg	  fi
19351f0ac6a5Smrg	else
19361f0ac6a5Smrg	  # Only an error if not doing a dry-run.
19371f0ac6a5Smrg	  if test -z "$run"; then
19381f0ac6a5Smrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
19391f0ac6a5Smrg	    exit $EXIT_FAILURE
19401f0ac6a5Smrg	  else
19411f0ac6a5Smrg	    # Dry-run case.
19421f0ac6a5Smrg
19431f0ac6a5Smrg	    # Extract subdirectory from the argument.
19441f0ac6a5Smrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
19451f0ac6a5Smrg	    if test "X$xdir" = "X$arg"; then
19461f0ac6a5Smrg	      xdir=
19471f0ac6a5Smrg	    else
19481f0ac6a5Smrg	      xdir="$xdir/"
19491f0ac6a5Smrg	    fi
19501f0ac6a5Smrg
19511f0ac6a5Smrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
19521f0ac6a5Smrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
19531f0ac6a5Smrg	    libobjs="$libobjs $pic_object"
19541f0ac6a5Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
19551f0ac6a5Smrg	  fi
19561f0ac6a5Smrg	fi
19571f0ac6a5Smrg	;;
19581f0ac6a5Smrg
19591f0ac6a5Smrg      *.$libext)
19601f0ac6a5Smrg	# An archive.
19611f0ac6a5Smrg	deplibs="$deplibs $arg"
19621f0ac6a5Smrg	old_deplibs="$old_deplibs $arg"
19631f0ac6a5Smrg	continue
19641f0ac6a5Smrg	;;
19651f0ac6a5Smrg
19661f0ac6a5Smrg      *.la)
19671f0ac6a5Smrg	# A libtool-controlled library.
19681f0ac6a5Smrg
19691f0ac6a5Smrg	if test "$prev" = dlfiles; then
19701f0ac6a5Smrg	  # This library was specified with -dlopen.
19711f0ac6a5Smrg	  dlfiles="$dlfiles $arg"
19721f0ac6a5Smrg	  prev=
19731f0ac6a5Smrg	elif test "$prev" = dlprefiles; then
19741f0ac6a5Smrg	  # The library was specified with -dlpreopen.
19751f0ac6a5Smrg	  dlprefiles="$dlprefiles $arg"
19761f0ac6a5Smrg	  prev=
19771f0ac6a5Smrg	else
19781f0ac6a5Smrg	  deplibs="$deplibs $arg"
19791f0ac6a5Smrg	fi
19801f0ac6a5Smrg	continue
19811f0ac6a5Smrg	;;
19821f0ac6a5Smrg
19831f0ac6a5Smrg      # Some other compiler argument.
19841f0ac6a5Smrg      *)
19851f0ac6a5Smrg	# Unknown arguments in both finalize_command and compile_command need
19861f0ac6a5Smrg	# to be aesthetically quoted because they are evaled later.
19871f0ac6a5Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
19881f0ac6a5Smrg	case $arg in
19891f0ac6a5Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
19901f0ac6a5Smrg	  arg="\"$arg\""
19911f0ac6a5Smrg	  ;;
19921f0ac6a5Smrg	esac
19931f0ac6a5Smrg	;;
19941f0ac6a5Smrg      esac # arg
19951f0ac6a5Smrg
19961f0ac6a5Smrg      # Now actually substitute the argument into the commands.
19971f0ac6a5Smrg      if test -n "$arg"; then
19981f0ac6a5Smrg	compile_command="$compile_command $arg"
19991f0ac6a5Smrg	finalize_command="$finalize_command $arg"
20001f0ac6a5Smrg      fi
20011f0ac6a5Smrg    done # argument parsing loop
20021f0ac6a5Smrg
20031f0ac6a5Smrg    if test -n "$prev"; then
20041f0ac6a5Smrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
20051f0ac6a5Smrg      $echo "$help" 1>&2
20061f0ac6a5Smrg      exit $EXIT_FAILURE
20071f0ac6a5Smrg    fi
20081f0ac6a5Smrg
20091f0ac6a5Smrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
20101f0ac6a5Smrg      eval arg=\"$export_dynamic_flag_spec\"
20111f0ac6a5Smrg      compile_command="$compile_command $arg"
20121f0ac6a5Smrg      finalize_command="$finalize_command $arg"
20131f0ac6a5Smrg    fi
20141f0ac6a5Smrg
20151f0ac6a5Smrg    oldlibs=
20161f0ac6a5Smrg    # calculate the name of the file, without its directory
20171f0ac6a5Smrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
20181f0ac6a5Smrg    libobjs_save="$libobjs"
20191f0ac6a5Smrg
20201f0ac6a5Smrg    if test -n "$shlibpath_var"; then
20211f0ac6a5Smrg      # get the directories listed in $shlibpath_var
20221f0ac6a5Smrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
20231f0ac6a5Smrg    else
20241f0ac6a5Smrg      shlib_search_path=
20251f0ac6a5Smrg    fi
20261f0ac6a5Smrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
20271f0ac6a5Smrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
20281f0ac6a5Smrg
20291f0ac6a5Smrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
20301f0ac6a5Smrg    if test "X$output_objdir" = "X$output"; then
20311f0ac6a5Smrg      output_objdir="$objdir"
20321f0ac6a5Smrg    else
20331f0ac6a5Smrg      output_objdir="$output_objdir/$objdir"
20341f0ac6a5Smrg    fi
20351f0ac6a5Smrg    # Create the object directory.
20361f0ac6a5Smrg    if test ! -d "$output_objdir"; then
20371f0ac6a5Smrg      $show "$mkdir $output_objdir"
20381f0ac6a5Smrg      $run $mkdir $output_objdir
20391f0ac6a5Smrg      exit_status=$?
20401f0ac6a5Smrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
20411f0ac6a5Smrg	exit $exit_status
20421f0ac6a5Smrg      fi
20431f0ac6a5Smrg    fi
20441f0ac6a5Smrg
20451f0ac6a5Smrg    # Determine the type of output
20461f0ac6a5Smrg    case $output in
20471f0ac6a5Smrg    "")
20481f0ac6a5Smrg      $echo "$modename: you must specify an output file" 1>&2
20491f0ac6a5Smrg      $echo "$help" 1>&2
20501f0ac6a5Smrg      exit $EXIT_FAILURE
20511f0ac6a5Smrg      ;;
20521f0ac6a5Smrg    *.$libext) linkmode=oldlib ;;
20531f0ac6a5Smrg    *.lo | *.$objext) linkmode=obj ;;
20541f0ac6a5Smrg    *.la) linkmode=lib ;;
20551f0ac6a5Smrg    *) linkmode=prog ;; # Anything else should be a program.
20561f0ac6a5Smrg    esac
20571f0ac6a5Smrg
20581f0ac6a5Smrg    case $host in
20591f0ac6a5Smrg    *cygwin* | *mingw* | *pw32*)
20601f0ac6a5Smrg      # don't eliminate duplications in $postdeps and $predeps
20611f0ac6a5Smrg      duplicate_compiler_generated_deps=yes
20621f0ac6a5Smrg      ;;
20631f0ac6a5Smrg    *)
20641f0ac6a5Smrg      duplicate_compiler_generated_deps=$duplicate_deps
20651f0ac6a5Smrg      ;;
20661f0ac6a5Smrg    esac
20671f0ac6a5Smrg    specialdeplibs=
20681f0ac6a5Smrg
20691f0ac6a5Smrg    libs=
20701f0ac6a5Smrg    # Find all interdependent deplibs by searching for libraries
20711f0ac6a5Smrg    # that are linked more than once (e.g. -la -lb -la)
20721f0ac6a5Smrg    for deplib in $deplibs; do
20731f0ac6a5Smrg      if test "X$duplicate_deps" = "Xyes" ; then
20741f0ac6a5Smrg	case "$libs " in
20751f0ac6a5Smrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
20761f0ac6a5Smrg	esac
20771f0ac6a5Smrg      fi
20781f0ac6a5Smrg      libs="$libs $deplib"
20791f0ac6a5Smrg    done
20801f0ac6a5Smrg
20811f0ac6a5Smrg    if test "$linkmode" = lib; then
20821f0ac6a5Smrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
20831f0ac6a5Smrg
20841f0ac6a5Smrg      # Compute libraries that are listed more than once in $predeps
20851f0ac6a5Smrg      # $postdeps and mark them as special (i.e., whose duplicates are
20861f0ac6a5Smrg      # not to be eliminated).
20871f0ac6a5Smrg      pre_post_deps=
20881f0ac6a5Smrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
20891f0ac6a5Smrg	for pre_post_dep in $predeps $postdeps; do
20901f0ac6a5Smrg	  case "$pre_post_deps " in
20911f0ac6a5Smrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
20921f0ac6a5Smrg	  esac
20931f0ac6a5Smrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
20941f0ac6a5Smrg	done
20951f0ac6a5Smrg      fi
20961f0ac6a5Smrg      pre_post_deps=
20971f0ac6a5Smrg    fi
20981f0ac6a5Smrg
20991f0ac6a5Smrg    deplibs=
21001f0ac6a5Smrg    newdependency_libs=
21011f0ac6a5Smrg    newlib_search_path=
21021f0ac6a5Smrg    need_relink=no # whether we're linking any uninstalled libtool libraries
21031f0ac6a5Smrg    notinst_deplibs= # not-installed libtool libraries
21041f0ac6a5Smrg    case $linkmode in
21051f0ac6a5Smrg    lib)
21061f0ac6a5Smrg	passes="conv link"
21071f0ac6a5Smrg	for file in $dlfiles $dlprefiles; do
21081f0ac6a5Smrg	  case $file in
21091f0ac6a5Smrg	  *.la) ;;
21101f0ac6a5Smrg	  *)
21111f0ac6a5Smrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
21121f0ac6a5Smrg	    exit $EXIT_FAILURE
21131f0ac6a5Smrg	    ;;
21141f0ac6a5Smrg	  esac
21151f0ac6a5Smrg	done
21161f0ac6a5Smrg	;;
21171f0ac6a5Smrg    prog)
21181f0ac6a5Smrg	compile_deplibs=
21191f0ac6a5Smrg	finalize_deplibs=
21201f0ac6a5Smrg	alldeplibs=no
21211f0ac6a5Smrg	newdlfiles=
21221f0ac6a5Smrg	newdlprefiles=
21231f0ac6a5Smrg	passes="conv scan dlopen dlpreopen link"
21241f0ac6a5Smrg	;;
21251f0ac6a5Smrg    *)  passes="conv"
21261f0ac6a5Smrg	;;
21271f0ac6a5Smrg    esac
21281f0ac6a5Smrg    for pass in $passes; do
21291f0ac6a5Smrg      if test "$linkmode,$pass" = "lib,link" ||
21301f0ac6a5Smrg	 test "$linkmode,$pass" = "prog,scan"; then
21311f0ac6a5Smrg	libs="$deplibs"
21321f0ac6a5Smrg	deplibs=
21331f0ac6a5Smrg      fi
21341f0ac6a5Smrg      if test "$linkmode" = prog; then
21351f0ac6a5Smrg	case $pass in
21361f0ac6a5Smrg	dlopen) libs="$dlfiles" ;;
21371f0ac6a5Smrg	dlpreopen) libs="$dlprefiles" ;;
21381f0ac6a5Smrg	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
21391f0ac6a5Smrg	esac
21401f0ac6a5Smrg      fi
21411f0ac6a5Smrg      if test "$pass" = dlopen; then
21421f0ac6a5Smrg	# Collect dlpreopened libraries
21431f0ac6a5Smrg	save_deplibs="$deplibs"
21441f0ac6a5Smrg	deplibs=
21451f0ac6a5Smrg      fi
21461f0ac6a5Smrg      for deplib in $libs; do
21471f0ac6a5Smrg	lib=
21481f0ac6a5Smrg	found=no
21491f0ac6a5Smrg	case $deplib in
2150e5410a46Smrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
21511f0ac6a5Smrg	  if test "$linkmode,$pass" = "prog,link"; then
21521f0ac6a5Smrg	    compile_deplibs="$deplib $compile_deplibs"
21531f0ac6a5Smrg	    finalize_deplibs="$deplib $finalize_deplibs"
21541f0ac6a5Smrg	  else
21551f0ac6a5Smrg	    compiler_flags="$compiler_flags $deplib"
21561f0ac6a5Smrg	  fi
21571f0ac6a5Smrg	  continue
21581f0ac6a5Smrg	  ;;
21591f0ac6a5Smrg	-l*)
21601f0ac6a5Smrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
21611f0ac6a5Smrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
21621f0ac6a5Smrg	    continue
21631f0ac6a5Smrg	  fi
21641f0ac6a5Smrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2165e5410a46Smrg	  if test "$linkmode" = lib; then
2166e5410a46Smrg	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
2167e5410a46Smrg	  else
2168e5410a46Smrg	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
2169e5410a46Smrg	  fi
2170e5410a46Smrg	  for searchdir in $searchdirs; do
21711f0ac6a5Smrg	    for search_ext in .la $std_shrext .so .a; do
21721f0ac6a5Smrg	      # Search the libtool library
21731f0ac6a5Smrg	      lib="$searchdir/lib${name}${search_ext}"
21741f0ac6a5Smrg	      if test -f "$lib"; then
21751f0ac6a5Smrg		if test "$search_ext" = ".la"; then
21761f0ac6a5Smrg		  found=yes
21771f0ac6a5Smrg		else
21781f0ac6a5Smrg		  found=no
21791f0ac6a5Smrg		fi
21801f0ac6a5Smrg		break 2
21811f0ac6a5Smrg	      fi
21821f0ac6a5Smrg	    done
21831f0ac6a5Smrg	  done
21841f0ac6a5Smrg	  if test "$found" != yes; then
21851f0ac6a5Smrg	    # deplib doesn't seem to be a libtool library
21861f0ac6a5Smrg	    if test "$linkmode,$pass" = "prog,link"; then
21871f0ac6a5Smrg	      compile_deplibs="$deplib $compile_deplibs"
21881f0ac6a5Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
21891f0ac6a5Smrg	    else
21901f0ac6a5Smrg	      deplibs="$deplib $deplibs"
21911f0ac6a5Smrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
21921f0ac6a5Smrg	    fi
21931f0ac6a5Smrg	    continue
21941f0ac6a5Smrg	  else # deplib is a libtool library
21951f0ac6a5Smrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
21961f0ac6a5Smrg	    # We need to do some special things here, and not later.
21971f0ac6a5Smrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
21981f0ac6a5Smrg	      case " $predeps $postdeps " in
21991f0ac6a5Smrg	      *" $deplib "*)
22001f0ac6a5Smrg		if (${SED} -e '2q' $lib |
22011f0ac6a5Smrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
22021f0ac6a5Smrg		  library_names=
22031f0ac6a5Smrg		  old_library=
22041f0ac6a5Smrg		  case $lib in
22051f0ac6a5Smrg		  */* | *\\*) . $lib ;;
22061f0ac6a5Smrg		  *) . ./$lib ;;
22071f0ac6a5Smrg		  esac
22081f0ac6a5Smrg		  for l in $old_library $library_names; do
22091f0ac6a5Smrg		    ll="$l"
22101f0ac6a5Smrg		  done
22111f0ac6a5Smrg		  if test "X$ll" = "X$old_library" ; then # only static version available
22121f0ac6a5Smrg		    found=no
22131f0ac6a5Smrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
22141f0ac6a5Smrg		    test "X$ladir" = "X$lib" && ladir="."
22151f0ac6a5Smrg		    lib=$ladir/$old_library
22161f0ac6a5Smrg		    if test "$linkmode,$pass" = "prog,link"; then
22171f0ac6a5Smrg		      compile_deplibs="$deplib $compile_deplibs"
22181f0ac6a5Smrg		      finalize_deplibs="$deplib $finalize_deplibs"
22191f0ac6a5Smrg		    else
22201f0ac6a5Smrg		      deplibs="$deplib $deplibs"
22211f0ac6a5Smrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
22221f0ac6a5Smrg		    fi
22231f0ac6a5Smrg		    continue
22241f0ac6a5Smrg		  fi
22251f0ac6a5Smrg		fi
22261f0ac6a5Smrg	        ;;
22271f0ac6a5Smrg	      *) ;;
22281f0ac6a5Smrg	      esac
22291f0ac6a5Smrg	    fi
22301f0ac6a5Smrg	  fi
22311f0ac6a5Smrg	  ;; # -l
22321f0ac6a5Smrg	-L*)
22331f0ac6a5Smrg	  case $linkmode in
22341f0ac6a5Smrg	  lib)
22351f0ac6a5Smrg	    deplibs="$deplib $deplibs"
22361f0ac6a5Smrg	    test "$pass" = conv && continue
22371f0ac6a5Smrg	    newdependency_libs="$deplib $newdependency_libs"
22381f0ac6a5Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22391f0ac6a5Smrg	    ;;
22401f0ac6a5Smrg	  prog)
22411f0ac6a5Smrg	    if test "$pass" = conv; then
22421f0ac6a5Smrg	      deplibs="$deplib $deplibs"
22431f0ac6a5Smrg	      continue
22441f0ac6a5Smrg	    fi
22451f0ac6a5Smrg	    if test "$pass" = scan; then
22461f0ac6a5Smrg	      deplibs="$deplib $deplibs"
22471f0ac6a5Smrg	    else
22481f0ac6a5Smrg	      compile_deplibs="$deplib $compile_deplibs"
22491f0ac6a5Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
22501f0ac6a5Smrg	    fi
22511f0ac6a5Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22521f0ac6a5Smrg	    ;;
22531f0ac6a5Smrg	  *)
22541f0ac6a5Smrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
22551f0ac6a5Smrg	    ;;
22561f0ac6a5Smrg	  esac # linkmode
22571f0ac6a5Smrg	  continue
22581f0ac6a5Smrg	  ;; # -L
22591f0ac6a5Smrg	-R*)
22601f0ac6a5Smrg	  if test "$pass" = link; then
22611f0ac6a5Smrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
22621f0ac6a5Smrg	    # Make sure the xrpath contains only unique directories.
22631f0ac6a5Smrg	    case "$xrpath " in
22641f0ac6a5Smrg	    *" $dir "*) ;;
22651f0ac6a5Smrg	    *) xrpath="$xrpath $dir" ;;
22661f0ac6a5Smrg	    esac
22671f0ac6a5Smrg	  fi
22681f0ac6a5Smrg	  deplibs="$deplib $deplibs"
22691f0ac6a5Smrg	  continue
22701f0ac6a5Smrg	  ;;
22711f0ac6a5Smrg	*.la) lib="$deplib" ;;
22721f0ac6a5Smrg	*.$libext)
22731f0ac6a5Smrg	  if test "$pass" = conv; then
22741f0ac6a5Smrg	    deplibs="$deplib $deplibs"
22751f0ac6a5Smrg	    continue
22761f0ac6a5Smrg	  fi
22771f0ac6a5Smrg	  case $linkmode in
22781f0ac6a5Smrg	  lib)
22791f0ac6a5Smrg	    valid_a_lib=no
22801f0ac6a5Smrg	    case $deplibs_check_method in
22811f0ac6a5Smrg	      match_pattern*)
22821f0ac6a5Smrg		set dummy $deplibs_check_method
22831f0ac6a5Smrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
22841f0ac6a5Smrg		if eval $echo \"$deplib\" 2>/dev/null \
22851f0ac6a5Smrg		    | $SED 10q \
22861f0ac6a5Smrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
22871f0ac6a5Smrg		  valid_a_lib=yes
22881f0ac6a5Smrg		fi
22891f0ac6a5Smrg		;;
22901f0ac6a5Smrg	      pass_all)
22911f0ac6a5Smrg		valid_a_lib=yes
22921f0ac6a5Smrg		;;
22931f0ac6a5Smrg            esac
22941f0ac6a5Smrg	    if test "$valid_a_lib" != yes; then
22951f0ac6a5Smrg	      $echo
22961f0ac6a5Smrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
22971f0ac6a5Smrg	      $echo "*** I have the capability to make that library automatically link in when"
22981f0ac6a5Smrg	      $echo "*** you link to this library.  But I can only do this if you have a"
22991f0ac6a5Smrg	      $echo "*** shared version of the library, which you do not appear to have"
23001f0ac6a5Smrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
23011f0ac6a5Smrg	      $echo "*** that it is just a static archive that I should not used here."
23021f0ac6a5Smrg	    else
23031f0ac6a5Smrg	      $echo
23041f0ac6a5Smrg	      $echo "*** Warning: Linking the shared library $output against the"
23051f0ac6a5Smrg	      $echo "*** static library $deplib is not portable!"
23061f0ac6a5Smrg	      deplibs="$deplib $deplibs"
23071f0ac6a5Smrg	    fi
23081f0ac6a5Smrg	    continue
23091f0ac6a5Smrg	    ;;
23101f0ac6a5Smrg	  prog)
23111f0ac6a5Smrg	    if test "$pass" != link; then
23121f0ac6a5Smrg	      deplibs="$deplib $deplibs"
23131f0ac6a5Smrg	    else
23141f0ac6a5Smrg	      compile_deplibs="$deplib $compile_deplibs"
23151f0ac6a5Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
23161f0ac6a5Smrg	    fi
23171f0ac6a5Smrg	    continue
23181f0ac6a5Smrg	    ;;
23191f0ac6a5Smrg	  esac # linkmode
23201f0ac6a5Smrg	  ;; # *.$libext
23211f0ac6a5Smrg	*.lo | *.$objext)
23221f0ac6a5Smrg	  if test "$pass" = conv; then
23231f0ac6a5Smrg	    deplibs="$deplib $deplibs"
23241f0ac6a5Smrg	  elif test "$linkmode" = prog; then
23251f0ac6a5Smrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
23261f0ac6a5Smrg	      # If there is no dlopen support or we're linking statically,
23271f0ac6a5Smrg	      # we need to preload.
23281f0ac6a5Smrg	      newdlprefiles="$newdlprefiles $deplib"
23291f0ac6a5Smrg	      compile_deplibs="$deplib $compile_deplibs"
23301f0ac6a5Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
23311f0ac6a5Smrg	    else
23321f0ac6a5Smrg	      newdlfiles="$newdlfiles $deplib"
23331f0ac6a5Smrg	    fi
23341f0ac6a5Smrg	  fi
23351f0ac6a5Smrg	  continue
23361f0ac6a5Smrg	  ;;
23371f0ac6a5Smrg	%DEPLIBS%)
23381f0ac6a5Smrg	  alldeplibs=yes
23391f0ac6a5Smrg	  continue
23401f0ac6a5Smrg	  ;;
23411f0ac6a5Smrg	esac # case $deplib
23421f0ac6a5Smrg	if test "$found" = yes || test -f "$lib"; then :
23431f0ac6a5Smrg	else
23441f0ac6a5Smrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
23451f0ac6a5Smrg	  exit $EXIT_FAILURE
23461f0ac6a5Smrg	fi
23471f0ac6a5Smrg
23481f0ac6a5Smrg	# Check to see that this really is a libtool archive.
23491f0ac6a5Smrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
23501f0ac6a5Smrg	else
23511f0ac6a5Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
23521f0ac6a5Smrg	  exit $EXIT_FAILURE
23531f0ac6a5Smrg	fi
23541f0ac6a5Smrg
23551f0ac6a5Smrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
23561f0ac6a5Smrg	test "X$ladir" = "X$lib" && ladir="."
23571f0ac6a5Smrg
23581f0ac6a5Smrg	dlname=
23591f0ac6a5Smrg	dlopen=
23601f0ac6a5Smrg	dlpreopen=
23611f0ac6a5Smrg	libdir=
23621f0ac6a5Smrg	library_names=
23631f0ac6a5Smrg	old_library=
23641f0ac6a5Smrg	# If the library was installed with an old release of libtool,
23651f0ac6a5Smrg	# it will not redefine variables installed, or shouldnotlink
23661f0ac6a5Smrg	installed=yes
23671f0ac6a5Smrg	shouldnotlink=no
23681f0ac6a5Smrg	avoidtemprpath=
23691f0ac6a5Smrg
23701f0ac6a5Smrg
23711f0ac6a5Smrg	# Read the .la file
23721f0ac6a5Smrg	case $lib in
23731f0ac6a5Smrg	*/* | *\\*) . $lib ;;
23741f0ac6a5Smrg	*) . ./$lib ;;
23751f0ac6a5Smrg	esac
23761f0ac6a5Smrg
23771f0ac6a5Smrg	if test "$linkmode,$pass" = "lib,link" ||
23781f0ac6a5Smrg	   test "$linkmode,$pass" = "prog,scan" ||
23791f0ac6a5Smrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
23801f0ac6a5Smrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
23811f0ac6a5Smrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
23821f0ac6a5Smrg	fi
23831f0ac6a5Smrg
23841f0ac6a5Smrg	if test "$pass" = conv; then
23851f0ac6a5Smrg	  # Only check for convenience libraries
23861f0ac6a5Smrg	  deplibs="$lib $deplibs"
23871f0ac6a5Smrg	  if test -z "$libdir"; then
23881f0ac6a5Smrg	    if test -z "$old_library"; then
23891f0ac6a5Smrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
23901f0ac6a5Smrg	      exit $EXIT_FAILURE
23911f0ac6a5Smrg	    fi
23921f0ac6a5Smrg	    # It is a libtool convenience library, so add in its objects.
23931f0ac6a5Smrg	    convenience="$convenience $ladir/$objdir/$old_library"
23941f0ac6a5Smrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
23951f0ac6a5Smrg	    tmp_libs=
23961f0ac6a5Smrg	    for deplib in $dependency_libs; do
23971f0ac6a5Smrg	      deplibs="$deplib $deplibs"
23981f0ac6a5Smrg              if test "X$duplicate_deps" = "Xyes" ; then
23991f0ac6a5Smrg	        case "$tmp_libs " in
24001f0ac6a5Smrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
24011f0ac6a5Smrg	        esac
24021f0ac6a5Smrg              fi
24031f0ac6a5Smrg	      tmp_libs="$tmp_libs $deplib"
24041f0ac6a5Smrg	    done
24051f0ac6a5Smrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
24061f0ac6a5Smrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
24071f0ac6a5Smrg	    exit $EXIT_FAILURE
24081f0ac6a5Smrg	  fi
24091f0ac6a5Smrg	  continue
24101f0ac6a5Smrg	fi # $pass = conv
24111f0ac6a5Smrg
24121f0ac6a5Smrg
24131f0ac6a5Smrg	# Get the name of the library we link against.
24141f0ac6a5Smrg	linklib=
24151f0ac6a5Smrg	for l in $old_library $library_names; do
24161f0ac6a5Smrg	  linklib="$l"
24171f0ac6a5Smrg	done
24181f0ac6a5Smrg	if test -z "$linklib"; then
24191f0ac6a5Smrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
24201f0ac6a5Smrg	  exit $EXIT_FAILURE
24211f0ac6a5Smrg	fi
24221f0ac6a5Smrg
24231f0ac6a5Smrg	# This library was specified with -dlopen.
24241f0ac6a5Smrg	if test "$pass" = dlopen; then
24251f0ac6a5Smrg	  if test -z "$libdir"; then
24261f0ac6a5Smrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
24271f0ac6a5Smrg	    exit $EXIT_FAILURE
24281f0ac6a5Smrg	  fi
24291f0ac6a5Smrg	  if test -z "$dlname" ||
24301f0ac6a5Smrg	     test "$dlopen_support" != yes ||
24311f0ac6a5Smrg	     test "$build_libtool_libs" = no; then
24321f0ac6a5Smrg	    # If there is no dlname, no dlopen support or we're linking
24331f0ac6a5Smrg	    # statically, we need to preload.  We also need to preload any
24341f0ac6a5Smrg	    # dependent libraries so libltdl's deplib preloader doesn't
24351f0ac6a5Smrg	    # bomb out in the load deplibs phase.
24361f0ac6a5Smrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
24371f0ac6a5Smrg	  else
24381f0ac6a5Smrg	    newdlfiles="$newdlfiles $lib"
24391f0ac6a5Smrg	  fi
24401f0ac6a5Smrg	  continue
24411f0ac6a5Smrg	fi # $pass = dlopen
24421f0ac6a5Smrg
24431f0ac6a5Smrg	# We need an absolute path.
24441f0ac6a5Smrg	case $ladir in
24451f0ac6a5Smrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
24461f0ac6a5Smrg	*)
24471f0ac6a5Smrg	  abs_ladir=`cd "$ladir" && pwd`
24481f0ac6a5Smrg	  if test -z "$abs_ladir"; then
24491f0ac6a5Smrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
24501f0ac6a5Smrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
24511f0ac6a5Smrg	    abs_ladir="$ladir"
24521f0ac6a5Smrg	  fi
24531f0ac6a5Smrg	  ;;
24541f0ac6a5Smrg	esac
24551f0ac6a5Smrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
24561f0ac6a5Smrg
24571f0ac6a5Smrg	# Find the relevant object directory and library name.
24581f0ac6a5Smrg	if test "X$installed" = Xyes; then
24591f0ac6a5Smrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24601f0ac6a5Smrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
24611f0ac6a5Smrg	    dir="$ladir"
24621f0ac6a5Smrg	    absdir="$abs_ladir"
24631f0ac6a5Smrg	    libdir="$abs_ladir"
24641f0ac6a5Smrg	  else
24651f0ac6a5Smrg	    dir="$libdir"
24661f0ac6a5Smrg	    absdir="$libdir"
24671f0ac6a5Smrg	  fi
24681f0ac6a5Smrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
24691f0ac6a5Smrg	else
24701f0ac6a5Smrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24711f0ac6a5Smrg	    dir="$ladir"
24721f0ac6a5Smrg	    absdir="$abs_ladir"
24731f0ac6a5Smrg	    # Remove this search path later
24741f0ac6a5Smrg	    notinst_path="$notinst_path $abs_ladir"
24751f0ac6a5Smrg	  else
24761f0ac6a5Smrg	    dir="$ladir/$objdir"
24771f0ac6a5Smrg	    absdir="$abs_ladir/$objdir"
24781f0ac6a5Smrg	    # Remove this search path later
24791f0ac6a5Smrg	    notinst_path="$notinst_path $abs_ladir"
24801f0ac6a5Smrg	  fi
24811f0ac6a5Smrg	fi # $installed = yes
24821f0ac6a5Smrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
24831f0ac6a5Smrg
24841f0ac6a5Smrg	# This library was specified with -dlpreopen.
24851f0ac6a5Smrg	if test "$pass" = dlpreopen; then
24861f0ac6a5Smrg	  if test -z "$libdir"; then
24871f0ac6a5Smrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
24881f0ac6a5Smrg	    exit $EXIT_FAILURE
24891f0ac6a5Smrg	  fi
24901f0ac6a5Smrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
24911f0ac6a5Smrg	  # are required to link).
24921f0ac6a5Smrg	  if test -n "$old_library"; then
24931f0ac6a5Smrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
24941f0ac6a5Smrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
24951f0ac6a5Smrg	  elif test -n "$dlname"; then
24961f0ac6a5Smrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
24971f0ac6a5Smrg	  else
24981f0ac6a5Smrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
24991f0ac6a5Smrg	  fi
25001f0ac6a5Smrg	fi # $pass = dlpreopen
25011f0ac6a5Smrg
25021f0ac6a5Smrg	if test -z "$libdir"; then
25031f0ac6a5Smrg	  # Link the convenience library
25041f0ac6a5Smrg	  if test "$linkmode" = lib; then
25051f0ac6a5Smrg	    deplibs="$dir/$old_library $deplibs"
25061f0ac6a5Smrg	  elif test "$linkmode,$pass" = "prog,link"; then
25071f0ac6a5Smrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
25081f0ac6a5Smrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
25091f0ac6a5Smrg	  else
25101f0ac6a5Smrg	    deplibs="$lib $deplibs" # used for prog,scan pass
25111f0ac6a5Smrg	  fi
25121f0ac6a5Smrg	  continue
25131f0ac6a5Smrg	fi
25141f0ac6a5Smrg
25151f0ac6a5Smrg
25161f0ac6a5Smrg	if test "$linkmode" = prog && test "$pass" != link; then
25171f0ac6a5Smrg	  newlib_search_path="$newlib_search_path $ladir"
25181f0ac6a5Smrg	  deplibs="$lib $deplibs"
25191f0ac6a5Smrg
25201f0ac6a5Smrg	  linkalldeplibs=no
25211f0ac6a5Smrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
25221f0ac6a5Smrg	     test "$build_libtool_libs" = no; then
25231f0ac6a5Smrg	    linkalldeplibs=yes
25241f0ac6a5Smrg	  fi
25251f0ac6a5Smrg
25261f0ac6a5Smrg	  tmp_libs=
25271f0ac6a5Smrg	  for deplib in $dependency_libs; do
25281f0ac6a5Smrg	    case $deplib in
25291f0ac6a5Smrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
25301f0ac6a5Smrg	    esac
25311f0ac6a5Smrg	    # Need to link against all dependency_libs?
25321f0ac6a5Smrg	    if test "$linkalldeplibs" = yes; then
25331f0ac6a5Smrg	      deplibs="$deplib $deplibs"
25341f0ac6a5Smrg	    else
25351f0ac6a5Smrg	      # Need to hardcode shared library paths
25361f0ac6a5Smrg	      # or/and link against static libraries
25371f0ac6a5Smrg	      newdependency_libs="$deplib $newdependency_libs"
25381f0ac6a5Smrg	    fi
25391f0ac6a5Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
25401f0ac6a5Smrg	      case "$tmp_libs " in
25411f0ac6a5Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
25421f0ac6a5Smrg	      esac
25431f0ac6a5Smrg	    fi
25441f0ac6a5Smrg	    tmp_libs="$tmp_libs $deplib"
25451f0ac6a5Smrg	  done # for deplib
25461f0ac6a5Smrg	  continue
25471f0ac6a5Smrg	fi # $linkmode = prog...
25481f0ac6a5Smrg
25491f0ac6a5Smrg	if test "$linkmode,$pass" = "prog,link"; then
25501f0ac6a5Smrg	  if test -n "$library_names" &&
2551e5410a46Smrg	     { { test "$prefer_static_libs" = no ||
2552e5410a46Smrg		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
2553e5410a46Smrg	       test -z "$old_library"; }; then
25541f0ac6a5Smrg	    # We need to hardcode the library path
25551f0ac6a5Smrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
25561f0ac6a5Smrg	      # Make sure the rpath contains only unique directories.
25571f0ac6a5Smrg	      case "$temp_rpath " in
25581f0ac6a5Smrg	      *" $dir "*) ;;
25591f0ac6a5Smrg	      *" $absdir "*) ;;
25601f0ac6a5Smrg	      *) temp_rpath="$temp_rpath $absdir" ;;
25611f0ac6a5Smrg	      esac
25621f0ac6a5Smrg	    fi
25631f0ac6a5Smrg
25641f0ac6a5Smrg	    # Hardcode the library path.
25651f0ac6a5Smrg	    # Skip directories that are in the system default run-time
25661f0ac6a5Smrg	    # search path.
25671f0ac6a5Smrg	    case " $sys_lib_dlsearch_path " in
25681f0ac6a5Smrg	    *" $absdir "*) ;;
25691f0ac6a5Smrg	    *)
25701f0ac6a5Smrg	      case "$compile_rpath " in
25711f0ac6a5Smrg	      *" $absdir "*) ;;
25721f0ac6a5Smrg	      *) compile_rpath="$compile_rpath $absdir"
25731f0ac6a5Smrg	      esac
25741f0ac6a5Smrg	      ;;
25751f0ac6a5Smrg	    esac
25761f0ac6a5Smrg	    case " $sys_lib_dlsearch_path " in
25771f0ac6a5Smrg	    *" $libdir "*) ;;
25781f0ac6a5Smrg	    *)
25791f0ac6a5Smrg	      case "$finalize_rpath " in
25801f0ac6a5Smrg	      *" $libdir "*) ;;
25811f0ac6a5Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
25821f0ac6a5Smrg	      esac
25831f0ac6a5Smrg	      ;;
25841f0ac6a5Smrg	    esac
25851f0ac6a5Smrg	  fi # $linkmode,$pass = prog,link...
25861f0ac6a5Smrg
25871f0ac6a5Smrg	  if test "$alldeplibs" = yes &&
25881f0ac6a5Smrg	     { test "$deplibs_check_method" = pass_all ||
25891f0ac6a5Smrg	       { test "$build_libtool_libs" = yes &&
25901f0ac6a5Smrg		 test -n "$library_names"; }; }; then
25911f0ac6a5Smrg	    # We only need to search for static libraries
25921f0ac6a5Smrg	    continue
25931f0ac6a5Smrg	  fi
25941f0ac6a5Smrg	fi
25951f0ac6a5Smrg
25961f0ac6a5Smrg	link_static=no # Whether the deplib will be linked statically
25971f0ac6a5Smrg	use_static_libs=$prefer_static_libs
25981f0ac6a5Smrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
25991f0ac6a5Smrg	  use_static_libs=no
26001f0ac6a5Smrg	fi
26011f0ac6a5Smrg	if test -n "$library_names" &&
26021f0ac6a5Smrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
26031f0ac6a5Smrg	  if test "$installed" = no; then
26041f0ac6a5Smrg	    notinst_deplibs="$notinst_deplibs $lib"
26051f0ac6a5Smrg	    need_relink=yes
26061f0ac6a5Smrg	  fi
26071f0ac6a5Smrg	  # This is a shared library
26081f0ac6a5Smrg
26091f0ac6a5Smrg	  # Warn about portability, can't link against -module's on
26101f0ac6a5Smrg	  # some systems (darwin)
26111f0ac6a5Smrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
26121f0ac6a5Smrg	    $echo
26131f0ac6a5Smrg	    if test "$linkmode" = prog; then
26141f0ac6a5Smrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
26151f0ac6a5Smrg	    else
26161f0ac6a5Smrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
26171f0ac6a5Smrg	    fi
26181f0ac6a5Smrg	    $echo "*** $linklib is not portable!"
26191f0ac6a5Smrg	  fi
26201f0ac6a5Smrg	  if test "$linkmode" = lib &&
26211f0ac6a5Smrg	     test "$hardcode_into_libs" = yes; then
26221f0ac6a5Smrg	    # Hardcode the library path.
26231f0ac6a5Smrg	    # Skip directories that are in the system default run-time
26241f0ac6a5Smrg	    # search path.
26251f0ac6a5Smrg	    case " $sys_lib_dlsearch_path " in
26261f0ac6a5Smrg	    *" $absdir "*) ;;
26271f0ac6a5Smrg	    *)
26281f0ac6a5Smrg	      case "$compile_rpath " in
26291f0ac6a5Smrg	      *" $absdir "*) ;;
26301f0ac6a5Smrg	      *) compile_rpath="$compile_rpath $absdir"
26311f0ac6a5Smrg	      esac
26321f0ac6a5Smrg	      ;;
26331f0ac6a5Smrg	    esac
26341f0ac6a5Smrg	    case " $sys_lib_dlsearch_path " in
26351f0ac6a5Smrg	    *" $libdir "*) ;;
26361f0ac6a5Smrg	    *)
26371f0ac6a5Smrg	      case "$finalize_rpath " in
26381f0ac6a5Smrg	      *" $libdir "*) ;;
26391f0ac6a5Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
26401f0ac6a5Smrg	      esac
26411f0ac6a5Smrg	      ;;
26421f0ac6a5Smrg	    esac
26431f0ac6a5Smrg	  fi
26441f0ac6a5Smrg
26451f0ac6a5Smrg	  if test -n "$old_archive_from_expsyms_cmds"; then
26461f0ac6a5Smrg	    # figure out the soname
26471f0ac6a5Smrg	    set dummy $library_names
26481f0ac6a5Smrg	    realname="$2"
26491f0ac6a5Smrg	    shift; shift
26501f0ac6a5Smrg	    libname=`eval \\$echo \"$libname_spec\"`
26511f0ac6a5Smrg	    # use dlname if we got it. it's perfectly good, no?
26521f0ac6a5Smrg	    if test -n "$dlname"; then
26531f0ac6a5Smrg	      soname="$dlname"
26541f0ac6a5Smrg	    elif test -n "$soname_spec"; then
26551f0ac6a5Smrg	      # bleh windows
26561f0ac6a5Smrg	      case $host in
26571f0ac6a5Smrg	      *cygwin* | mingw*)
26581f0ac6a5Smrg		major=`expr $current - $age`
26591f0ac6a5Smrg		versuffix="-$major"
26601f0ac6a5Smrg		;;
26611f0ac6a5Smrg	      esac
26621f0ac6a5Smrg	      eval soname=\"$soname_spec\"
26631f0ac6a5Smrg	    else
26641f0ac6a5Smrg	      soname="$realname"
26651f0ac6a5Smrg	    fi
26661f0ac6a5Smrg
26671f0ac6a5Smrg	    # Make a new name for the extract_expsyms_cmds to use
26681f0ac6a5Smrg	    soroot="$soname"
26691f0ac6a5Smrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
26701f0ac6a5Smrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
26711f0ac6a5Smrg
26721f0ac6a5Smrg	    # If the library has no export list, then create one now
26731f0ac6a5Smrg	    if test -f "$output_objdir/$soname-def"; then :
26741f0ac6a5Smrg	    else
26751f0ac6a5Smrg	      $show "extracting exported symbol list from \`$soname'"
26761f0ac6a5Smrg	      save_ifs="$IFS"; IFS='~'
26771f0ac6a5Smrg	      cmds=$extract_expsyms_cmds
26781f0ac6a5Smrg	      for cmd in $cmds; do
26791f0ac6a5Smrg		IFS="$save_ifs"
26801f0ac6a5Smrg		eval cmd=\"$cmd\"
26811f0ac6a5Smrg		$show "$cmd"
26821f0ac6a5Smrg		$run eval "$cmd" || exit $?
26831f0ac6a5Smrg	      done
26841f0ac6a5Smrg	      IFS="$save_ifs"
26851f0ac6a5Smrg	    fi
26861f0ac6a5Smrg
26871f0ac6a5Smrg	    # Create $newlib
26881f0ac6a5Smrg	    if test -f "$output_objdir/$newlib"; then :; else
26891f0ac6a5Smrg	      $show "generating import library for \`$soname'"
26901f0ac6a5Smrg	      save_ifs="$IFS"; IFS='~'
26911f0ac6a5Smrg	      cmds=$old_archive_from_expsyms_cmds
26921f0ac6a5Smrg	      for cmd in $cmds; do
26931f0ac6a5Smrg		IFS="$save_ifs"
26941f0ac6a5Smrg		eval cmd=\"$cmd\"
26951f0ac6a5Smrg		$show "$cmd"
26961f0ac6a5Smrg		$run eval "$cmd" || exit $?
26971f0ac6a5Smrg	      done
26981f0ac6a5Smrg	      IFS="$save_ifs"
26991f0ac6a5Smrg	    fi
27001f0ac6a5Smrg	    # make sure the library variables are pointing to the new library
27011f0ac6a5Smrg	    dir=$output_objdir
27021f0ac6a5Smrg	    linklib=$newlib
27031f0ac6a5Smrg	  fi # test -n "$old_archive_from_expsyms_cmds"
27041f0ac6a5Smrg
27051f0ac6a5Smrg	  if test "$linkmode" = prog || test "$mode" != relink; then
27061f0ac6a5Smrg	    add_shlibpath=
27071f0ac6a5Smrg	    add_dir=
27081f0ac6a5Smrg	    add=
27091f0ac6a5Smrg	    lib_linked=yes
27101f0ac6a5Smrg	    case $hardcode_action in
27111f0ac6a5Smrg	    immediate | unsupported)
27121f0ac6a5Smrg	      if test "$hardcode_direct" = no; then
27131f0ac6a5Smrg		add="$dir/$linklib"
27141f0ac6a5Smrg		case $host in
27151f0ac6a5Smrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
27161f0ac6a5Smrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
27171f0ac6a5Smrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
27181f0ac6a5Smrg		    *-*-unixware7*) add_dir="-L$dir" ;;
27191f0ac6a5Smrg		  *-*-darwin* )
27201f0ac6a5Smrg		    # if the lib is a module then we can not link against
27211f0ac6a5Smrg		    # it, someone is ignoring the new warnings I added
27221f0ac6a5Smrg		    if /usr/bin/file -L $add 2> /dev/null |
27231f0ac6a5Smrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
27241f0ac6a5Smrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
27251f0ac6a5Smrg		      if test -z "$old_library" ; then
27261f0ac6a5Smrg		        $echo
27271f0ac6a5Smrg		        $echo "** And there doesn't seem to be a static archive available"
27281f0ac6a5Smrg		        $echo "** The link will probably fail, sorry"
27291f0ac6a5Smrg		      else
27301f0ac6a5Smrg		        add="$dir/$old_library"
27311f0ac6a5Smrg		      fi
27321f0ac6a5Smrg		    fi
27331f0ac6a5Smrg		esac
27341f0ac6a5Smrg	      elif test "$hardcode_minus_L" = no; then
27351f0ac6a5Smrg		case $host in
27361f0ac6a5Smrg		*-*-sunos*) add_shlibpath="$dir" ;;
27371f0ac6a5Smrg		esac
27381f0ac6a5Smrg		add_dir="-L$dir"
27391f0ac6a5Smrg		add="-l$name"
27401f0ac6a5Smrg	      elif test "$hardcode_shlibpath_var" = no; then
27411f0ac6a5Smrg		add_shlibpath="$dir"
27421f0ac6a5Smrg		add="-l$name"
27431f0ac6a5Smrg	      else
27441f0ac6a5Smrg		lib_linked=no
27451f0ac6a5Smrg	      fi
27461f0ac6a5Smrg	      ;;
27471f0ac6a5Smrg	    relink)
27481f0ac6a5Smrg	      if test "$hardcode_direct" = yes; then
27491f0ac6a5Smrg		add="$dir/$linklib"
27501f0ac6a5Smrg	      elif test "$hardcode_minus_L" = yes; then
27511f0ac6a5Smrg		add_dir="-L$dir"
27521f0ac6a5Smrg		# Try looking first in the location we're being installed to.
27531f0ac6a5Smrg		if test -n "$inst_prefix_dir"; then
27541f0ac6a5Smrg		  case $libdir in
27551f0ac6a5Smrg		    [\\/]*)
27561f0ac6a5Smrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
27571f0ac6a5Smrg		      ;;
27581f0ac6a5Smrg		  esac
27591f0ac6a5Smrg		fi
27601f0ac6a5Smrg		add="-l$name"
27611f0ac6a5Smrg	      elif test "$hardcode_shlibpath_var" = yes; then
27621f0ac6a5Smrg		add_shlibpath="$dir"
27631f0ac6a5Smrg		add="-l$name"
27641f0ac6a5Smrg	      else
27651f0ac6a5Smrg		lib_linked=no
27661f0ac6a5Smrg	      fi
27671f0ac6a5Smrg	      ;;
27681f0ac6a5Smrg	    *) lib_linked=no ;;
27691f0ac6a5Smrg	    esac
27701f0ac6a5Smrg
27711f0ac6a5Smrg	    if test "$lib_linked" != yes; then
27721f0ac6a5Smrg	      $echo "$modename: configuration error: unsupported hardcode properties"
27731f0ac6a5Smrg	      exit $EXIT_FAILURE
27741f0ac6a5Smrg	    fi
27751f0ac6a5Smrg
27761f0ac6a5Smrg	    if test -n "$add_shlibpath"; then
27771f0ac6a5Smrg	      case :$compile_shlibpath: in
27781f0ac6a5Smrg	      *":$add_shlibpath:"*) ;;
27791f0ac6a5Smrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
27801f0ac6a5Smrg	      esac
27811f0ac6a5Smrg	    fi
27821f0ac6a5Smrg	    if test "$linkmode" = prog; then
27831f0ac6a5Smrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
27841f0ac6a5Smrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
27851f0ac6a5Smrg	    else
27861f0ac6a5Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
27871f0ac6a5Smrg	      test -n "$add" && deplibs="$add $deplibs"
27881f0ac6a5Smrg	      if test "$hardcode_direct" != yes && \
27891f0ac6a5Smrg		 test "$hardcode_minus_L" != yes && \
27901f0ac6a5Smrg		 test "$hardcode_shlibpath_var" = yes; then
27911f0ac6a5Smrg		case :$finalize_shlibpath: in
27921f0ac6a5Smrg		*":$libdir:"*) ;;
27931f0ac6a5Smrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
27941f0ac6a5Smrg		esac
27951f0ac6a5Smrg	      fi
27961f0ac6a5Smrg	    fi
27971f0ac6a5Smrg	  fi
27981f0ac6a5Smrg
27991f0ac6a5Smrg	  if test "$linkmode" = prog || test "$mode" = relink; then
28001f0ac6a5Smrg	    add_shlibpath=
28011f0ac6a5Smrg	    add_dir=
28021f0ac6a5Smrg	    add=
28031f0ac6a5Smrg	    # Finalize command for both is simple: just hardcode it.
28041f0ac6a5Smrg	    if test "$hardcode_direct" = yes; then
28051f0ac6a5Smrg	      add="$libdir/$linklib"
28061f0ac6a5Smrg	    elif test "$hardcode_minus_L" = yes; then
28071f0ac6a5Smrg	      add_dir="-L$libdir"
28081f0ac6a5Smrg	      add="-l$name"
28091f0ac6a5Smrg	    elif test "$hardcode_shlibpath_var" = yes; then
28101f0ac6a5Smrg	      case :$finalize_shlibpath: in
28111f0ac6a5Smrg	      *":$libdir:"*) ;;
28121f0ac6a5Smrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
28131f0ac6a5Smrg	      esac
28141f0ac6a5Smrg	      add="-l$name"
28151f0ac6a5Smrg	    elif test "$hardcode_automatic" = yes; then
28161f0ac6a5Smrg	      if test -n "$inst_prefix_dir" &&
28171f0ac6a5Smrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
28181f0ac6a5Smrg	        add="$inst_prefix_dir$libdir/$linklib"
28191f0ac6a5Smrg	      else
28201f0ac6a5Smrg	        add="$libdir/$linklib"
28211f0ac6a5Smrg	      fi
28221f0ac6a5Smrg	    else
28231f0ac6a5Smrg	      # We cannot seem to hardcode it, guess we'll fake it.
28241f0ac6a5Smrg	      add_dir="-L$libdir"
28251f0ac6a5Smrg	      # Try looking first in the location we're being installed to.
28261f0ac6a5Smrg	      if test -n "$inst_prefix_dir"; then
28271f0ac6a5Smrg		case $libdir in
28281f0ac6a5Smrg		  [\\/]*)
28291f0ac6a5Smrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
28301f0ac6a5Smrg		    ;;
28311f0ac6a5Smrg		esac
28321f0ac6a5Smrg	      fi
28331f0ac6a5Smrg	      add="-l$name"
28341f0ac6a5Smrg	    fi
28351f0ac6a5Smrg
28361f0ac6a5Smrg	    if test "$linkmode" = prog; then
28371f0ac6a5Smrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
28381f0ac6a5Smrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
28391f0ac6a5Smrg	    else
28401f0ac6a5Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
28411f0ac6a5Smrg	      test -n "$add" && deplibs="$add $deplibs"
28421f0ac6a5Smrg	    fi
28431f0ac6a5Smrg	  fi
28441f0ac6a5Smrg	elif test "$linkmode" = prog; then
28451f0ac6a5Smrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
28461f0ac6a5Smrg	  # is not unsupported.  This is valid on all known static and
28471f0ac6a5Smrg	  # shared platforms.
28481f0ac6a5Smrg	  if test "$hardcode_direct" != unsupported; then
28491f0ac6a5Smrg	    test -n "$old_library" && linklib="$old_library"
28501f0ac6a5Smrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
28511f0ac6a5Smrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
28521f0ac6a5Smrg	  else
28531f0ac6a5Smrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
28541f0ac6a5Smrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
28551f0ac6a5Smrg	  fi
28561f0ac6a5Smrg	elif test "$build_libtool_libs" = yes; then
28571f0ac6a5Smrg	  # Not a shared library
28581f0ac6a5Smrg	  if test "$deplibs_check_method" != pass_all; then
28591f0ac6a5Smrg	    # We're trying link a shared library against a static one
28601f0ac6a5Smrg	    # but the system doesn't support it.
28611f0ac6a5Smrg
28621f0ac6a5Smrg	    # Just print a warning and add the library to dependency_libs so
28631f0ac6a5Smrg	    # that the program can be linked against the static library.
28641f0ac6a5Smrg	    $echo
28651f0ac6a5Smrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
28661f0ac6a5Smrg	    $echo "*** I have the capability to make that library automatically link in when"
28671f0ac6a5Smrg	    $echo "*** you link to this library.  But I can only do this if you have a"
28681f0ac6a5Smrg	    $echo "*** shared version of the library, which you do not appear to have."
28691f0ac6a5Smrg	    if test "$module" = yes; then
28701f0ac6a5Smrg	      $echo "*** But as you try to build a module library, libtool will still create "
28711f0ac6a5Smrg	      $echo "*** a static module, that should work as long as the dlopening application"
28721f0ac6a5Smrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
28731f0ac6a5Smrg	      if test -z "$global_symbol_pipe"; then
28741f0ac6a5Smrg		$echo
28751f0ac6a5Smrg		$echo "*** However, this would only work if libtool was able to extract symbol"
28761f0ac6a5Smrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
28771f0ac6a5Smrg		$echo "*** not find such a program.  So, this module is probably useless."
28781f0ac6a5Smrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
28791f0ac6a5Smrg	      fi
28801f0ac6a5Smrg	      if test "$build_old_libs" = no; then
28811f0ac6a5Smrg		build_libtool_libs=module
28821f0ac6a5Smrg		build_old_libs=yes
28831f0ac6a5Smrg	      else
28841f0ac6a5Smrg		build_libtool_libs=no
28851f0ac6a5Smrg	      fi
28861f0ac6a5Smrg	    fi
28871f0ac6a5Smrg	  else
28881f0ac6a5Smrg	    deplibs="$dir/$old_library $deplibs"
28891f0ac6a5Smrg	    link_static=yes
28901f0ac6a5Smrg	  fi
28911f0ac6a5Smrg	fi # link shared/static library?
28921f0ac6a5Smrg
28931f0ac6a5Smrg	if test "$linkmode" = lib; then
28941f0ac6a5Smrg	  if test -n "$dependency_libs" &&
28951f0ac6a5Smrg	     { test "$hardcode_into_libs" != yes ||
28961f0ac6a5Smrg	       test "$build_old_libs" = yes ||
28971f0ac6a5Smrg	       test "$link_static" = yes; }; then
28981f0ac6a5Smrg	    # Extract -R from dependency_libs
28991f0ac6a5Smrg	    temp_deplibs=
29001f0ac6a5Smrg	    for libdir in $dependency_libs; do
29011f0ac6a5Smrg	      case $libdir in
29021f0ac6a5Smrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
29031f0ac6a5Smrg		   case " $xrpath " in
29041f0ac6a5Smrg		   *" $temp_xrpath "*) ;;
29051f0ac6a5Smrg		   *) xrpath="$xrpath $temp_xrpath";;
29061f0ac6a5Smrg		   esac;;
29071f0ac6a5Smrg	      *) temp_deplibs="$temp_deplibs $libdir";;
29081f0ac6a5Smrg	      esac
29091f0ac6a5Smrg	    done
29101f0ac6a5Smrg	    dependency_libs="$temp_deplibs"
29111f0ac6a5Smrg	  fi
29121f0ac6a5Smrg
29131f0ac6a5Smrg	  newlib_search_path="$newlib_search_path $absdir"
29141f0ac6a5Smrg	  # Link against this library
29151f0ac6a5Smrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
29161f0ac6a5Smrg	  # ... and its dependency_libs
29171f0ac6a5Smrg	  tmp_libs=
29181f0ac6a5Smrg	  for deplib in $dependency_libs; do
29191f0ac6a5Smrg	    newdependency_libs="$deplib $newdependency_libs"
29201f0ac6a5Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
29211f0ac6a5Smrg	      case "$tmp_libs " in
29221f0ac6a5Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
29231f0ac6a5Smrg	      esac
29241f0ac6a5Smrg	    fi
29251f0ac6a5Smrg	    tmp_libs="$tmp_libs $deplib"
29261f0ac6a5Smrg	  done
29271f0ac6a5Smrg
29281f0ac6a5Smrg	  if test "$link_all_deplibs" != no; then
29291f0ac6a5Smrg	    # Add the search paths of all dependency libraries
29301f0ac6a5Smrg	    for deplib in $dependency_libs; do
29311f0ac6a5Smrg	      case $deplib in
29321f0ac6a5Smrg	      -L*) path="$deplib" ;;
29331f0ac6a5Smrg	      *.la)
29341f0ac6a5Smrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
29351f0ac6a5Smrg		test "X$dir" = "X$deplib" && dir="."
29361f0ac6a5Smrg		# We need an absolute path.
29371f0ac6a5Smrg		case $dir in
29381f0ac6a5Smrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
29391f0ac6a5Smrg		*)
29401f0ac6a5Smrg		  absdir=`cd "$dir" && pwd`
29411f0ac6a5Smrg		  if test -z "$absdir"; then
29421f0ac6a5Smrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
29431f0ac6a5Smrg		    absdir="$dir"
29441f0ac6a5Smrg		  fi
29451f0ac6a5Smrg		  ;;
29461f0ac6a5Smrg		esac
29471f0ac6a5Smrg		if grep "^installed=no" $deplib > /dev/null; then
29481f0ac6a5Smrg		  path="$absdir/$objdir"
29491f0ac6a5Smrg		else
29501f0ac6a5Smrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29511f0ac6a5Smrg		  if test -z "$libdir"; then
29521f0ac6a5Smrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
29531f0ac6a5Smrg		    exit $EXIT_FAILURE
29541f0ac6a5Smrg		  fi
29551f0ac6a5Smrg		  if test "$absdir" != "$libdir"; then
29561f0ac6a5Smrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
29571f0ac6a5Smrg		  fi
29581f0ac6a5Smrg		  path="$absdir"
29591f0ac6a5Smrg		fi
29601f0ac6a5Smrg		depdepl=
29611f0ac6a5Smrg		case $host in
29621f0ac6a5Smrg		*-*-darwin*)
29631f0ac6a5Smrg		  # we do not want to link against static libs,
29641f0ac6a5Smrg		  # but need to link against shared
29651f0ac6a5Smrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2966e5410a46Smrg		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29671f0ac6a5Smrg		  if test -n "$deplibrary_names" ; then
29681f0ac6a5Smrg		    for tmp in $deplibrary_names ; do
29691f0ac6a5Smrg		      depdepl=$tmp
29701f0ac6a5Smrg		    done
2971e5410a46Smrg		    if test -f "$deplibdir/$depdepl" ; then
2972e5410a46Smrg		      depdepl="$deplibdir/$depdepl"
2973e5410a46Smrg	      	    elif test -f "$path/$depdepl" ; then
29741f0ac6a5Smrg		      depdepl="$path/$depdepl"
2975e5410a46Smrg		    else
2976e5410a46Smrg		      # Can't find it, oh well...
2977e5410a46Smrg		      depdepl=
29781f0ac6a5Smrg		    fi
29791f0ac6a5Smrg		    # do not add paths which are already there
29801f0ac6a5Smrg		    case " $newlib_search_path " in
29811f0ac6a5Smrg		    *" $path "*) ;;
29821f0ac6a5Smrg		    *) newlib_search_path="$newlib_search_path $path";;
29831f0ac6a5Smrg		    esac
29841f0ac6a5Smrg		  fi
29851f0ac6a5Smrg		  path=""
29861f0ac6a5Smrg		  ;;
29871f0ac6a5Smrg		*)
29881f0ac6a5Smrg		  path="-L$path"
29891f0ac6a5Smrg		  ;;
29901f0ac6a5Smrg		esac
29911f0ac6a5Smrg		;;
29921f0ac6a5Smrg	      -l*)
29931f0ac6a5Smrg		case $host in
29941f0ac6a5Smrg		*-*-darwin*)
29951f0ac6a5Smrg		  # Again, we only want to link against shared libraries
29961f0ac6a5Smrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
29971f0ac6a5Smrg		  for tmp in $newlib_search_path ; do
29981f0ac6a5Smrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
29991f0ac6a5Smrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
30001f0ac6a5Smrg		      break
30011f0ac6a5Smrg		    fi
30021f0ac6a5Smrg		  done
30031f0ac6a5Smrg		  path=""
30041f0ac6a5Smrg		  ;;
30051f0ac6a5Smrg		*) continue ;;
30061f0ac6a5Smrg		esac
30071f0ac6a5Smrg		;;
30081f0ac6a5Smrg	      *) continue ;;
30091f0ac6a5Smrg	      esac
30101f0ac6a5Smrg	      case " $deplibs " in
30111f0ac6a5Smrg	      *" $path "*) ;;
30121f0ac6a5Smrg	      *) deplibs="$path $deplibs" ;;
30131f0ac6a5Smrg	      esac
30141f0ac6a5Smrg	      case " $deplibs " in
30151f0ac6a5Smrg	      *" $depdepl "*) ;;
30161f0ac6a5Smrg	      *) deplibs="$depdepl $deplibs" ;;
30171f0ac6a5Smrg	      esac
30181f0ac6a5Smrg	    done
30191f0ac6a5Smrg	  fi # link_all_deplibs != no
30201f0ac6a5Smrg	fi # linkmode = lib
30211f0ac6a5Smrg      done # for deplib in $libs
30221f0ac6a5Smrg      dependency_libs="$newdependency_libs"
30231f0ac6a5Smrg      if test "$pass" = dlpreopen; then
30241f0ac6a5Smrg	# Link the dlpreopened libraries before other libraries
30251f0ac6a5Smrg	for deplib in $save_deplibs; do
30261f0ac6a5Smrg	  deplibs="$deplib $deplibs"
30271f0ac6a5Smrg	done
30281f0ac6a5Smrg      fi
30291f0ac6a5Smrg      if test "$pass" != dlopen; then
30301f0ac6a5Smrg	if test "$pass" != conv; then
30311f0ac6a5Smrg	  # Make sure lib_search_path contains only unique directories.
30321f0ac6a5Smrg	  lib_search_path=
30331f0ac6a5Smrg	  for dir in $newlib_search_path; do
30341f0ac6a5Smrg	    case "$lib_search_path " in
30351f0ac6a5Smrg	    *" $dir "*) ;;
30361f0ac6a5Smrg	    *) lib_search_path="$lib_search_path $dir" ;;
30371f0ac6a5Smrg	    esac
30381f0ac6a5Smrg	  done
30391f0ac6a5Smrg	  newlib_search_path=
30401f0ac6a5Smrg	fi
30411f0ac6a5Smrg
30421f0ac6a5Smrg	if test "$linkmode,$pass" != "prog,link"; then
30431f0ac6a5Smrg	  vars="deplibs"
30441f0ac6a5Smrg	else
30451f0ac6a5Smrg	  vars="compile_deplibs finalize_deplibs"
30461f0ac6a5Smrg	fi
30471f0ac6a5Smrg	for var in $vars dependency_libs; do
30481f0ac6a5Smrg	  # Add libraries to $var in reverse order
30491f0ac6a5Smrg	  eval tmp_libs=\"\$$var\"
30501f0ac6a5Smrg	  new_libs=
30511f0ac6a5Smrg	  for deplib in $tmp_libs; do
30521f0ac6a5Smrg	    # FIXME: Pedantically, this is the right thing to do, so
30531f0ac6a5Smrg	    #        that some nasty dependency loop isn't accidentally
30541f0ac6a5Smrg	    #        broken:
30551f0ac6a5Smrg	    #new_libs="$deplib $new_libs"
30561f0ac6a5Smrg	    # Pragmatically, this seems to cause very few problems in
30571f0ac6a5Smrg	    # practice:
30581f0ac6a5Smrg	    case $deplib in
30591f0ac6a5Smrg	    -L*) new_libs="$deplib $new_libs" ;;
30601f0ac6a5Smrg	    -R*) ;;
30611f0ac6a5Smrg	    *)
30621f0ac6a5Smrg	      # And here is the reason: when a library appears more
30631f0ac6a5Smrg	      # than once as an explicit dependence of a library, or
30641f0ac6a5Smrg	      # is implicitly linked in more than once by the
30651f0ac6a5Smrg	      # compiler, it is considered special, and multiple
30661f0ac6a5Smrg	      # occurrences thereof are not removed.  Compare this
30671f0ac6a5Smrg	      # with having the same library being listed as a
30681f0ac6a5Smrg	      # dependency of multiple other libraries: in this case,
30691f0ac6a5Smrg	      # we know (pedantically, we assume) the library does not
30701f0ac6a5Smrg	      # need to be listed more than once, so we keep only the
30711f0ac6a5Smrg	      # last copy.  This is not always right, but it is rare
30721f0ac6a5Smrg	      # enough that we require users that really mean to play
30731f0ac6a5Smrg	      # such unportable linking tricks to link the library
30741f0ac6a5Smrg	      # using -Wl,-lname, so that libtool does not consider it
30751f0ac6a5Smrg	      # for duplicate removal.
30761f0ac6a5Smrg	      case " $specialdeplibs " in
30771f0ac6a5Smrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
30781f0ac6a5Smrg	      *)
30791f0ac6a5Smrg		case " $new_libs " in
30801f0ac6a5Smrg		*" $deplib "*) ;;
30811f0ac6a5Smrg		*) new_libs="$deplib $new_libs" ;;
30821f0ac6a5Smrg		esac
30831f0ac6a5Smrg		;;
30841f0ac6a5Smrg	      esac
30851f0ac6a5Smrg	      ;;
30861f0ac6a5Smrg	    esac
30871f0ac6a5Smrg	  done
30881f0ac6a5Smrg	  tmp_libs=
30891f0ac6a5Smrg	  for deplib in $new_libs; do
30901f0ac6a5Smrg	    case $deplib in
30911f0ac6a5Smrg	    -L*)
30921f0ac6a5Smrg	      case " $tmp_libs " in
30931f0ac6a5Smrg	      *" $deplib "*) ;;
30941f0ac6a5Smrg	      *) tmp_libs="$tmp_libs $deplib" ;;
30951f0ac6a5Smrg	      esac
30961f0ac6a5Smrg	      ;;
30971f0ac6a5Smrg	    *) tmp_libs="$tmp_libs $deplib" ;;
30981f0ac6a5Smrg	    esac
30991f0ac6a5Smrg	  done
31001f0ac6a5Smrg	  eval $var=\"$tmp_libs\"
31011f0ac6a5Smrg	done # for var
31021f0ac6a5Smrg      fi
31031f0ac6a5Smrg      # Last step: remove runtime libs from dependency_libs
31041f0ac6a5Smrg      # (they stay in deplibs)
31051f0ac6a5Smrg      tmp_libs=
31061f0ac6a5Smrg      for i in $dependency_libs ; do
31071f0ac6a5Smrg	case " $predeps $postdeps $compiler_lib_search_path " in
31081f0ac6a5Smrg	*" $i "*)
31091f0ac6a5Smrg	  i=""
31101f0ac6a5Smrg	  ;;
31111f0ac6a5Smrg	esac
31121f0ac6a5Smrg	if test -n "$i" ; then
31131f0ac6a5Smrg	  tmp_libs="$tmp_libs $i"
31141f0ac6a5Smrg	fi
31151f0ac6a5Smrg      done
31161f0ac6a5Smrg      dependency_libs=$tmp_libs
31171f0ac6a5Smrg    done # for pass
31181f0ac6a5Smrg    if test "$linkmode" = prog; then
31191f0ac6a5Smrg      dlfiles="$newdlfiles"
31201f0ac6a5Smrg      dlprefiles="$newdlprefiles"
31211f0ac6a5Smrg    fi
31221f0ac6a5Smrg
31231f0ac6a5Smrg    case $linkmode in
31241f0ac6a5Smrg    oldlib)
3125e5410a46Smrg      case " $deplibs" in
3126e5410a46Smrg      *\ -l* | *\ -L*)
3127e5410a46Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
3128e5410a46Smrg      esac
31291f0ac6a5Smrg
31301f0ac6a5Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
31311f0ac6a5Smrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
31321f0ac6a5Smrg      fi
31331f0ac6a5Smrg
31341f0ac6a5Smrg      if test -n "$rpath"; then
31351f0ac6a5Smrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
31361f0ac6a5Smrg      fi
31371f0ac6a5Smrg
31381f0ac6a5Smrg      if test -n "$xrpath"; then
31391f0ac6a5Smrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
31401f0ac6a5Smrg      fi
31411f0ac6a5Smrg
31421f0ac6a5Smrg      if test -n "$vinfo"; then
31431f0ac6a5Smrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
31441f0ac6a5Smrg      fi
31451f0ac6a5Smrg
31461f0ac6a5Smrg      if test -n "$release"; then
31471f0ac6a5Smrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
31481f0ac6a5Smrg      fi
31491f0ac6a5Smrg
31501f0ac6a5Smrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
31511f0ac6a5Smrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
31521f0ac6a5Smrg      fi
31531f0ac6a5Smrg
31541f0ac6a5Smrg      # Now set the variables for building old libraries.
31551f0ac6a5Smrg      build_libtool_libs=no
31561f0ac6a5Smrg      oldlibs="$output"
31571f0ac6a5Smrg      objs="$objs$old_deplibs"
31581f0ac6a5Smrg      ;;
31591f0ac6a5Smrg
31601f0ac6a5Smrg    lib)
31611f0ac6a5Smrg      # Make sure we only generate libraries of the form `libNAME.la'.
31621f0ac6a5Smrg      case $outputname in
31631f0ac6a5Smrg      lib*)
31641f0ac6a5Smrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
31651f0ac6a5Smrg	eval shared_ext=\"$shrext_cmds\"
31661f0ac6a5Smrg	eval libname=\"$libname_spec\"
31671f0ac6a5Smrg	;;
31681f0ac6a5Smrg      *)
31691f0ac6a5Smrg	if test "$module" = no; then
31701f0ac6a5Smrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
31711f0ac6a5Smrg	  $echo "$help" 1>&2
31721f0ac6a5Smrg	  exit $EXIT_FAILURE
31731f0ac6a5Smrg	fi
31741f0ac6a5Smrg	if test "$need_lib_prefix" != no; then
31751f0ac6a5Smrg	  # Add the "lib" prefix for modules if required
31761f0ac6a5Smrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31771f0ac6a5Smrg	  eval shared_ext=\"$shrext_cmds\"
31781f0ac6a5Smrg	  eval libname=\"$libname_spec\"
31791f0ac6a5Smrg	else
31801f0ac6a5Smrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31811f0ac6a5Smrg	fi
31821f0ac6a5Smrg	;;
31831f0ac6a5Smrg      esac
31841f0ac6a5Smrg
31851f0ac6a5Smrg      if test -n "$objs"; then
31861f0ac6a5Smrg	if test "$deplibs_check_method" != pass_all; then
31871f0ac6a5Smrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
31881f0ac6a5Smrg	  exit $EXIT_FAILURE
31891f0ac6a5Smrg	else
31901f0ac6a5Smrg	  $echo
31911f0ac6a5Smrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
31921f0ac6a5Smrg	  $echo "*** objects $objs is not portable!"
31931f0ac6a5Smrg	  libobjs="$libobjs $objs"
31941f0ac6a5Smrg	fi
31951f0ac6a5Smrg      fi
31961f0ac6a5Smrg
31971f0ac6a5Smrg      if test "$dlself" != no; then
31981f0ac6a5Smrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
31991f0ac6a5Smrg      fi
32001f0ac6a5Smrg
32011f0ac6a5Smrg      set dummy $rpath
32021f0ac6a5Smrg      if test "$#" -gt 2; then
32031f0ac6a5Smrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
32041f0ac6a5Smrg      fi
32051f0ac6a5Smrg      install_libdir="$2"
32061f0ac6a5Smrg
32071f0ac6a5Smrg      oldlibs=
32081f0ac6a5Smrg      if test -z "$rpath"; then
32091f0ac6a5Smrg	if test "$build_libtool_libs" = yes; then
32101f0ac6a5Smrg	  # Building a libtool convenience library.
32111f0ac6a5Smrg	  # Some compilers have problems with a `.al' extension so
32121f0ac6a5Smrg	  # convenience libraries should have the same extension an
32131f0ac6a5Smrg	  # archive normally would.
32141f0ac6a5Smrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
32151f0ac6a5Smrg	  build_libtool_libs=convenience
32161f0ac6a5Smrg	  build_old_libs=yes
32171f0ac6a5Smrg	fi
32181f0ac6a5Smrg
32191f0ac6a5Smrg	if test -n "$vinfo"; then
32201f0ac6a5Smrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
32211f0ac6a5Smrg	fi
32221f0ac6a5Smrg
32231f0ac6a5Smrg	if test -n "$release"; then
32241f0ac6a5Smrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
32251f0ac6a5Smrg	fi
32261f0ac6a5Smrg      else
32271f0ac6a5Smrg
32281f0ac6a5Smrg	# Parse the version information argument.
32291f0ac6a5Smrg	save_ifs="$IFS"; IFS=':'
32301f0ac6a5Smrg	set dummy $vinfo 0 0 0
32311f0ac6a5Smrg	IFS="$save_ifs"
32321f0ac6a5Smrg
32331f0ac6a5Smrg	if test -n "$8"; then
32341f0ac6a5Smrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
32351f0ac6a5Smrg	  $echo "$help" 1>&2
32361f0ac6a5Smrg	  exit $EXIT_FAILURE
32371f0ac6a5Smrg	fi
32381f0ac6a5Smrg
32391f0ac6a5Smrg	# convert absolute version numbers to libtool ages
32401f0ac6a5Smrg	# this retains compatibility with .la files and attempts
32411f0ac6a5Smrg	# to make the code below a bit more comprehensible
32421f0ac6a5Smrg
32431f0ac6a5Smrg	case $vinfo_number in
32441f0ac6a5Smrg	yes)
32451f0ac6a5Smrg	  number_major="$2"
32461f0ac6a5Smrg	  number_minor="$3"
32471f0ac6a5Smrg	  number_revision="$4"
32481f0ac6a5Smrg	  #
32491f0ac6a5Smrg	  # There are really only two kinds -- those that
32501f0ac6a5Smrg	  # use the current revision as the major version
32511f0ac6a5Smrg	  # and those that subtract age and use age as
32521f0ac6a5Smrg	  # a minor version.  But, then there is irix
32531f0ac6a5Smrg	  # which has an extra 1 added just for fun
32541f0ac6a5Smrg	  #
32551f0ac6a5Smrg	  case $version_type in
3256e5410a46Smrg	  darwin|linux|osf|windows|none)
32571f0ac6a5Smrg	    current=`expr $number_major + $number_minor`
32581f0ac6a5Smrg	    age="$number_minor"
32591f0ac6a5Smrg	    revision="$number_revision"
32601f0ac6a5Smrg	    ;;
32611f0ac6a5Smrg	  freebsd-aout|freebsd-elf|sunos)
32621f0ac6a5Smrg	    current="$number_major"
32631f0ac6a5Smrg	    revision="$number_minor"
32641f0ac6a5Smrg	    age="0"
32651f0ac6a5Smrg	    ;;
32661f0ac6a5Smrg	  irix|nonstopux)
3267e5410a46Smrg	    current=`expr $number_major + $number_minor`
32681f0ac6a5Smrg	    age="$number_minor"
32691f0ac6a5Smrg	    revision="$number_minor"
3270e5410a46Smrg	    lt_irix_increment=no
32711f0ac6a5Smrg	    ;;
32721f0ac6a5Smrg	  esac
32731f0ac6a5Smrg	  ;;
32741f0ac6a5Smrg	no)
32751f0ac6a5Smrg	  current="$2"
32761f0ac6a5Smrg	  revision="$3"
32771f0ac6a5Smrg	  age="$4"
32781f0ac6a5Smrg	  ;;
32791f0ac6a5Smrg	esac
32801f0ac6a5Smrg
32811f0ac6a5Smrg	# Check that each of the things are valid numbers.
32821f0ac6a5Smrg	case $current in
32831f0ac6a5Smrg	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]) ;;
32841f0ac6a5Smrg	*)
32851f0ac6a5Smrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
32861f0ac6a5Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32871f0ac6a5Smrg	  exit $EXIT_FAILURE
32881f0ac6a5Smrg	  ;;
32891f0ac6a5Smrg	esac
32901f0ac6a5Smrg
32911f0ac6a5Smrg	case $revision in
32921f0ac6a5Smrg	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]) ;;
32931f0ac6a5Smrg	*)
32941f0ac6a5Smrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
32951f0ac6a5Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32961f0ac6a5Smrg	  exit $EXIT_FAILURE
32971f0ac6a5Smrg	  ;;
32981f0ac6a5Smrg	esac
32991f0ac6a5Smrg
33001f0ac6a5Smrg	case $age in
33011f0ac6a5Smrg	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]) ;;
33021f0ac6a5Smrg	*)
33031f0ac6a5Smrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
33041f0ac6a5Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33051f0ac6a5Smrg	  exit $EXIT_FAILURE
33061f0ac6a5Smrg	  ;;
33071f0ac6a5Smrg	esac
33081f0ac6a5Smrg
33091f0ac6a5Smrg	if test "$age" -gt "$current"; then
33101f0ac6a5Smrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
33111f0ac6a5Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33121f0ac6a5Smrg	  exit $EXIT_FAILURE
33131f0ac6a5Smrg	fi
33141f0ac6a5Smrg
33151f0ac6a5Smrg	# Calculate the version variables.
33161f0ac6a5Smrg	major=
33171f0ac6a5Smrg	versuffix=
33181f0ac6a5Smrg	verstring=
33191f0ac6a5Smrg	case $version_type in
33201f0ac6a5Smrg	none) ;;
33211f0ac6a5Smrg
33221f0ac6a5Smrg	darwin)
33231f0ac6a5Smrg	  # Like Linux, but with the current version available in
33241f0ac6a5Smrg	  # verstring for coding it into the library header
33251f0ac6a5Smrg	  major=.`expr $current - $age`
33261f0ac6a5Smrg	  versuffix="$major.$age.$revision"
33271f0ac6a5Smrg	  # Darwin ld doesn't like 0 for these options...
33281f0ac6a5Smrg	  minor_current=`expr $current + 1`
3329e5410a46Smrg	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3330e5410a46Smrg	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
33311f0ac6a5Smrg	  ;;
33321f0ac6a5Smrg
33331f0ac6a5Smrg	freebsd-aout)
33341f0ac6a5Smrg	  major=".$current"
33351f0ac6a5Smrg	  versuffix=".$current.$revision";
33361f0ac6a5Smrg	  ;;
33371f0ac6a5Smrg
33381f0ac6a5Smrg	freebsd-elf)
33391f0ac6a5Smrg	  major=".$current"
33401f0ac6a5Smrg	  versuffix=".$current";
33411f0ac6a5Smrg	  ;;
33421f0ac6a5Smrg
33431f0ac6a5Smrg	irix | nonstopux)
3344e5410a46Smrg	  if test "X$lt_irix_increment" = "Xno"; then
3345e5410a46Smrg	    major=`expr $current - $age`
3346e5410a46Smrg	  else
3347e5410a46Smrg	    major=`expr $current - $age + 1`
3348e5410a46Smrg	  fi
33491f0ac6a5Smrg	  case $version_type in
33501f0ac6a5Smrg	    nonstopux) verstring_prefix=nonstopux ;;
33511f0ac6a5Smrg	    *)         verstring_prefix=sgi ;;
33521f0ac6a5Smrg	  esac
33531f0ac6a5Smrg	  verstring="$verstring_prefix$major.$revision"
33541f0ac6a5Smrg
33551f0ac6a5Smrg	  # Add in all the interfaces that we are compatible with.
33561f0ac6a5Smrg	  loop=$revision
33571f0ac6a5Smrg	  while test "$loop" -ne 0; do
33581f0ac6a5Smrg	    iface=`expr $revision - $loop`
33591f0ac6a5Smrg	    loop=`expr $loop - 1`
33601f0ac6a5Smrg	    verstring="$verstring_prefix$major.$iface:$verstring"
33611f0ac6a5Smrg	  done
33621f0ac6a5Smrg
33631f0ac6a5Smrg	  # Before this point, $major must not contain `.'.
33641f0ac6a5Smrg	  major=.$major
33651f0ac6a5Smrg	  versuffix="$major.$revision"
33661f0ac6a5Smrg	  ;;
33671f0ac6a5Smrg
33681f0ac6a5Smrg	linux)
33691f0ac6a5Smrg	  major=.`expr $current - $age`
33701f0ac6a5Smrg	  versuffix="$major.$age.$revision"
33711f0ac6a5Smrg	  ;;
33721f0ac6a5Smrg
33731f0ac6a5Smrg	osf)
33741f0ac6a5Smrg	  major=.`expr $current - $age`
33751f0ac6a5Smrg	  versuffix=".$current.$age.$revision"
33761f0ac6a5Smrg	  verstring="$current.$age.$revision"
33771f0ac6a5Smrg
33781f0ac6a5Smrg	  # Add in all the interfaces that we are compatible with.
33791f0ac6a5Smrg	  loop=$age
33801f0ac6a5Smrg	  while test "$loop" -ne 0; do
33811f0ac6a5Smrg	    iface=`expr $current - $loop`
33821f0ac6a5Smrg	    loop=`expr $loop - 1`
33831f0ac6a5Smrg	    verstring="$verstring:${iface}.0"
33841f0ac6a5Smrg	  done
33851f0ac6a5Smrg
33861f0ac6a5Smrg	  # Make executables depend on our current version.
33871f0ac6a5Smrg	  verstring="$verstring:${current}.0"
33881f0ac6a5Smrg	  ;;
33891f0ac6a5Smrg
33901f0ac6a5Smrg	sunos)
33911f0ac6a5Smrg	  major=".$current"
33921f0ac6a5Smrg	  versuffix=".$current.$revision"
33931f0ac6a5Smrg	  ;;
33941f0ac6a5Smrg
33951f0ac6a5Smrg	windows)
33961f0ac6a5Smrg	  # Use '-' rather than '.', since we only want one
33971f0ac6a5Smrg	  # extension on DOS 8.3 filesystems.
33981f0ac6a5Smrg	  major=`expr $current - $age`
33991f0ac6a5Smrg	  versuffix="-$major"
34001f0ac6a5Smrg	  ;;
34011f0ac6a5Smrg
34021f0ac6a5Smrg	*)
34031f0ac6a5Smrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
34041f0ac6a5Smrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
34051f0ac6a5Smrg	  exit $EXIT_FAILURE
34061f0ac6a5Smrg	  ;;
34071f0ac6a5Smrg	esac
34081f0ac6a5Smrg
34091f0ac6a5Smrg	# Clear the version info if we defaulted, and they specified a release.
34101f0ac6a5Smrg	if test -z "$vinfo" && test -n "$release"; then
34111f0ac6a5Smrg	  major=
34121f0ac6a5Smrg	  case $version_type in
34131f0ac6a5Smrg	  darwin)
34141f0ac6a5Smrg	    # we can't check for "0.0" in archive_cmds due to quoting
34151f0ac6a5Smrg	    # problems, so we reset it completely
34161f0ac6a5Smrg	    verstring=
34171f0ac6a5Smrg	    ;;
34181f0ac6a5Smrg	  *)
34191f0ac6a5Smrg	    verstring="0.0"
34201f0ac6a5Smrg	    ;;
34211f0ac6a5Smrg	  esac
34221f0ac6a5Smrg	  if test "$need_version" = no; then
34231f0ac6a5Smrg	    versuffix=
34241f0ac6a5Smrg	  else
34251f0ac6a5Smrg	    versuffix=".0.0"
34261f0ac6a5Smrg	  fi
34271f0ac6a5Smrg	fi
34281f0ac6a5Smrg
34291f0ac6a5Smrg	# Remove version info from name if versioning should be avoided
34301f0ac6a5Smrg	if test "$avoid_version" = yes && test "$need_version" = no; then
34311f0ac6a5Smrg	  major=
34321f0ac6a5Smrg	  versuffix=
34331f0ac6a5Smrg	  verstring=""
34341f0ac6a5Smrg	fi
34351f0ac6a5Smrg
34361f0ac6a5Smrg	# Check to see if the archive will have undefined symbols.
34371f0ac6a5Smrg	if test "$allow_undefined" = yes; then
34381f0ac6a5Smrg	  if test "$allow_undefined_flag" = unsupported; then
34391f0ac6a5Smrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
34401f0ac6a5Smrg	    build_libtool_libs=no
34411f0ac6a5Smrg	    build_old_libs=yes
34421f0ac6a5Smrg	  fi
34431f0ac6a5Smrg	else
34441f0ac6a5Smrg	  # Don't allow undefined symbols.
34451f0ac6a5Smrg	  allow_undefined_flag="$no_undefined_flag"
34461f0ac6a5Smrg	fi
34471f0ac6a5Smrg      fi
34481f0ac6a5Smrg
34491f0ac6a5Smrg      if test "$mode" != relink; then
34501f0ac6a5Smrg	# Remove our outputs, but don't remove object files since they
34511f0ac6a5Smrg	# may have been created when compiling PIC objects.
34521f0ac6a5Smrg	removelist=
34531f0ac6a5Smrg	tempremovelist=`$echo "$output_objdir/*"`
34541f0ac6a5Smrg	for p in $tempremovelist; do
34551f0ac6a5Smrg	  case $p in
34561f0ac6a5Smrg	    *.$objext)
34571f0ac6a5Smrg	       ;;
34581f0ac6a5Smrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
34591f0ac6a5Smrg	       if test "X$precious_files_regex" != "X"; then
34601f0ac6a5Smrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
34611f0ac6a5Smrg	         then
34621f0ac6a5Smrg		   continue
34631f0ac6a5Smrg		 fi
34641f0ac6a5Smrg	       fi
34651f0ac6a5Smrg	       removelist="$removelist $p"
34661f0ac6a5Smrg	       ;;
34671f0ac6a5Smrg	    *) ;;
34681f0ac6a5Smrg	  esac
34691f0ac6a5Smrg	done
34701f0ac6a5Smrg	if test -n "$removelist"; then
34711f0ac6a5Smrg	  $show "${rm}r $removelist"
34721f0ac6a5Smrg	  $run ${rm}r $removelist
34731f0ac6a5Smrg	fi
34741f0ac6a5Smrg      fi
34751f0ac6a5Smrg
34761f0ac6a5Smrg      # Now set the variables for building old libraries.
34771f0ac6a5Smrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
34781f0ac6a5Smrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
34791f0ac6a5Smrg
34801f0ac6a5Smrg	# Transform .lo files to .o files.
34811f0ac6a5Smrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
34821f0ac6a5Smrg      fi
34831f0ac6a5Smrg
34841f0ac6a5Smrg      # Eliminate all temporary directories.
3485e5410a46Smrg      #for path in $notinst_path; do
3486e5410a46Smrg      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3487e5410a46Smrg      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3488e5410a46Smrg      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3489e5410a46Smrg      #done
34901f0ac6a5Smrg
34911f0ac6a5Smrg      if test -n "$xrpath"; then
34921f0ac6a5Smrg	# If the user specified any rpath flags, then add them.
34931f0ac6a5Smrg	temp_xrpath=
34941f0ac6a5Smrg	for libdir in $xrpath; do
34951f0ac6a5Smrg	  temp_xrpath="$temp_xrpath -R$libdir"
34961f0ac6a5Smrg	  case "$finalize_rpath " in
34971f0ac6a5Smrg	  *" $libdir "*) ;;
34981f0ac6a5Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
34991f0ac6a5Smrg	  esac
35001f0ac6a5Smrg	done
35011f0ac6a5Smrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
35021f0ac6a5Smrg	  dependency_libs="$temp_xrpath $dependency_libs"
35031f0ac6a5Smrg	fi
35041f0ac6a5Smrg      fi
35051f0ac6a5Smrg
35061f0ac6a5Smrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
35071f0ac6a5Smrg      old_dlfiles="$dlfiles"
35081f0ac6a5Smrg      dlfiles=
35091f0ac6a5Smrg      for lib in $old_dlfiles; do
35101f0ac6a5Smrg	case " $dlprefiles $dlfiles " in
35111f0ac6a5Smrg	*" $lib "*) ;;
35121f0ac6a5Smrg	*) dlfiles="$dlfiles $lib" ;;
35131f0ac6a5Smrg	esac
35141f0ac6a5Smrg      done
35151f0ac6a5Smrg
35161f0ac6a5Smrg      # Make sure dlprefiles contains only unique files
35171f0ac6a5Smrg      old_dlprefiles="$dlprefiles"
35181f0ac6a5Smrg      dlprefiles=
35191f0ac6a5Smrg      for lib in $old_dlprefiles; do
35201f0ac6a5Smrg	case "$dlprefiles " in
35211f0ac6a5Smrg	*" $lib "*) ;;
35221f0ac6a5Smrg	*) dlprefiles="$dlprefiles $lib" ;;
35231f0ac6a5Smrg	esac
35241f0ac6a5Smrg      done
35251f0ac6a5Smrg
35261f0ac6a5Smrg      if test "$build_libtool_libs" = yes; then
35271f0ac6a5Smrg	if test -n "$rpath"; then
35281f0ac6a5Smrg	  case $host in
35291f0ac6a5Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
35301f0ac6a5Smrg	    # these systems don't actually have a c library (as such)!
35311f0ac6a5Smrg	    ;;
35321f0ac6a5Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
35331f0ac6a5Smrg	    # Rhapsody C library is in the System framework
35341f0ac6a5Smrg	    deplibs="$deplibs -framework System"
35351f0ac6a5Smrg	    ;;
35361f0ac6a5Smrg	  *-*-netbsd*)
35371f0ac6a5Smrg	    # Don't link with libc until the a.out ld.so is fixed.
35381f0ac6a5Smrg	    ;;
35391f0ac6a5Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
35401f0ac6a5Smrg	    # Do not include libc due to us having libc/libc_r.
35411f0ac6a5Smrg	    ;;
35421f0ac6a5Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
35431f0ac6a5Smrg	    # Causes problems with __ctype
35441f0ac6a5Smrg	    ;;
35451f0ac6a5Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
35461f0ac6a5Smrg	    # Compiler inserts libc in the correct place for threads to work
35471f0ac6a5Smrg	    ;;
35481f0ac6a5Smrg 	  *)
35491f0ac6a5Smrg	    # Add libc to deplibs on all other systems if necessary.
35501f0ac6a5Smrg	    if test "$build_libtool_need_lc" = "yes"; then
35511f0ac6a5Smrg	      deplibs="$deplibs -lc"
35521f0ac6a5Smrg	    fi
35531f0ac6a5Smrg	    ;;
35541f0ac6a5Smrg	  esac
35551f0ac6a5Smrg	fi
35561f0ac6a5Smrg
35571f0ac6a5Smrg	# Transform deplibs into only deplibs that can be linked in shared.
35581f0ac6a5Smrg	name_save=$name
35591f0ac6a5Smrg	libname_save=$libname
35601f0ac6a5Smrg	release_save=$release
35611f0ac6a5Smrg	versuffix_save=$versuffix
35621f0ac6a5Smrg	major_save=$major
35631f0ac6a5Smrg	# I'm not sure if I'm treating the release correctly.  I think
35641f0ac6a5Smrg	# release should show up in the -l (ie -lgmp5) so we don't want to
35651f0ac6a5Smrg	# add it in twice.  Is that correct?
35661f0ac6a5Smrg	release=""
35671f0ac6a5Smrg	versuffix=""
35681f0ac6a5Smrg	major=""
35691f0ac6a5Smrg	newdeplibs=
35701f0ac6a5Smrg	droppeddeps=no
35711f0ac6a5Smrg	case $deplibs_check_method in
35721f0ac6a5Smrg	pass_all)
35731f0ac6a5Smrg	  # Don't check for shared/static.  Everything works.
35741f0ac6a5Smrg	  # This might be a little naive.  We might want to check
35751f0ac6a5Smrg	  # whether the library exists or not.  But this is on
35761f0ac6a5Smrg	  # osf3 & osf4 and I'm not really sure... Just
35771f0ac6a5Smrg	  # implementing what was already the behavior.
35781f0ac6a5Smrg	  newdeplibs=$deplibs
35791f0ac6a5Smrg	  ;;
35801f0ac6a5Smrg	test_compile)
35811f0ac6a5Smrg	  # This code stresses the "libraries are programs" paradigm to its
35821f0ac6a5Smrg	  # limits. Maybe even breaks it.  We compile a program, linking it
35831f0ac6a5Smrg	  # against the deplibs as a proxy for the library.  Then we can check
35841f0ac6a5Smrg	  # whether they linked in statically or dynamically with ldd.
35851f0ac6a5Smrg	  $rm conftest.c
35861f0ac6a5Smrg	  cat > conftest.c <<EOF
35871f0ac6a5Smrg	  int main() { return 0; }
35881f0ac6a5SmrgEOF
35891f0ac6a5Smrg	  $rm conftest
3590e5410a46Smrg	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
35911f0ac6a5Smrg	    ldd_output=`ldd conftest`
35921f0ac6a5Smrg	    for i in $deplibs; do
35931f0ac6a5Smrg	      name=`expr $i : '-l\(.*\)'`
35941f0ac6a5Smrg	      # If $name is empty we are operating on a -L argument.
3595e5410a46Smrg              if test "$name" != "" && test "$name" != "0"; then
35961f0ac6a5Smrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
35971f0ac6a5Smrg		  case " $predeps $postdeps " in
35981f0ac6a5Smrg		  *" $i "*)
35991f0ac6a5Smrg		    newdeplibs="$newdeplibs $i"
36001f0ac6a5Smrg		    i=""
36011f0ac6a5Smrg		    ;;
36021f0ac6a5Smrg		  esac
36031f0ac6a5Smrg	        fi
36041f0ac6a5Smrg		if test -n "$i" ; then
36051f0ac6a5Smrg		  libname=`eval \\$echo \"$libname_spec\"`
36061f0ac6a5Smrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
36071f0ac6a5Smrg		  set dummy $deplib_matches
36081f0ac6a5Smrg		  deplib_match=$2
36091f0ac6a5Smrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36101f0ac6a5Smrg		    newdeplibs="$newdeplibs $i"
36111f0ac6a5Smrg		  else
36121f0ac6a5Smrg		    droppeddeps=yes
36131f0ac6a5Smrg		    $echo
36141f0ac6a5Smrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
36151f0ac6a5Smrg		    $echo "*** I have the capability to make that library automatically link in when"
36161f0ac6a5Smrg		    $echo "*** you link to this library.  But I can only do this if you have a"
36171f0ac6a5Smrg		    $echo "*** shared version of the library, which I believe you do not have"
36181f0ac6a5Smrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
36191f0ac6a5Smrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
36201f0ac6a5Smrg		  fi
36211f0ac6a5Smrg		fi
36221f0ac6a5Smrg	      else
36231f0ac6a5Smrg		newdeplibs="$newdeplibs $i"
36241f0ac6a5Smrg	      fi
36251f0ac6a5Smrg	    done
36261f0ac6a5Smrg	  else
36271f0ac6a5Smrg	    # Error occurred in the first compile.  Let's try to salvage
36281f0ac6a5Smrg	    # the situation: Compile a separate program for each library.
36291f0ac6a5Smrg	    for i in $deplibs; do
36301f0ac6a5Smrg	      name=`expr $i : '-l\(.*\)'`
36311f0ac6a5Smrg	      # If $name is empty we are operating on a -L argument.
36321f0ac6a5Smrg              if test "$name" != "" && test "$name" != "0"; then
36331f0ac6a5Smrg		$rm conftest
3634e5410a46Smrg		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
36351f0ac6a5Smrg		  ldd_output=`ldd conftest`
36361f0ac6a5Smrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36371f0ac6a5Smrg		    case " $predeps $postdeps " in
36381f0ac6a5Smrg		    *" $i "*)
36391f0ac6a5Smrg		      newdeplibs="$newdeplibs $i"
36401f0ac6a5Smrg		      i=""
36411f0ac6a5Smrg		      ;;
36421f0ac6a5Smrg		    esac
36431f0ac6a5Smrg		  fi
36441f0ac6a5Smrg		  if test -n "$i" ; then
36451f0ac6a5Smrg		    libname=`eval \\$echo \"$libname_spec\"`
36461f0ac6a5Smrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
36471f0ac6a5Smrg		    set dummy $deplib_matches
36481f0ac6a5Smrg		    deplib_match=$2
36491f0ac6a5Smrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36501f0ac6a5Smrg		      newdeplibs="$newdeplibs $i"
36511f0ac6a5Smrg		    else
36521f0ac6a5Smrg		      droppeddeps=yes
36531f0ac6a5Smrg		      $echo
36541f0ac6a5Smrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
36551f0ac6a5Smrg		      $echo "*** I have the capability to make that library automatically link in when"
36561f0ac6a5Smrg		      $echo "*** you link to this library.  But I can only do this if you have a"
36571f0ac6a5Smrg		      $echo "*** shared version of the library, which you do not appear to have"
36581f0ac6a5Smrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
36591f0ac6a5Smrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
36601f0ac6a5Smrg		    fi
36611f0ac6a5Smrg		  fi
36621f0ac6a5Smrg		else
36631f0ac6a5Smrg		  droppeddeps=yes
36641f0ac6a5Smrg		  $echo
36651f0ac6a5Smrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3666e5410a46Smrg		  $echo "*** make it link in!  You will probably need to install it or some"
36671f0ac6a5Smrg		  $echo "*** library that it depends on before this library will be fully"
36681f0ac6a5Smrg		  $echo "*** functional.  Installing it before continuing would be even better."
36691f0ac6a5Smrg		fi
36701f0ac6a5Smrg	      else
36711f0ac6a5Smrg		newdeplibs="$newdeplibs $i"
36721f0ac6a5Smrg	      fi
36731f0ac6a5Smrg	    done
36741f0ac6a5Smrg	  fi
36751f0ac6a5Smrg	  ;;
36761f0ac6a5Smrg	file_magic*)
36771f0ac6a5Smrg	  set dummy $deplibs_check_method
36781f0ac6a5Smrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
36791f0ac6a5Smrg	  for a_deplib in $deplibs; do
36801f0ac6a5Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
36811f0ac6a5Smrg	    # If $name is empty we are operating on a -L argument.
36821f0ac6a5Smrg            if test "$name" != "" && test  "$name" != "0"; then
36831f0ac6a5Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36841f0ac6a5Smrg		case " $predeps $postdeps " in
36851f0ac6a5Smrg		*" $a_deplib "*)
36861f0ac6a5Smrg		  newdeplibs="$newdeplibs $a_deplib"
36871f0ac6a5Smrg		  a_deplib=""
36881f0ac6a5Smrg		  ;;
36891f0ac6a5Smrg		esac
36901f0ac6a5Smrg	      fi
36911f0ac6a5Smrg	      if test -n "$a_deplib" ; then
36921f0ac6a5Smrg		libname=`eval \\$echo \"$libname_spec\"`
36931f0ac6a5Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
36941f0ac6a5Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
36951f0ac6a5Smrg		  for potent_lib in $potential_libs; do
36961f0ac6a5Smrg		      # Follow soft links.
36971f0ac6a5Smrg		      if ls -lLd "$potent_lib" 2>/dev/null \
36981f0ac6a5Smrg			 | grep " -> " >/dev/null; then
36991f0ac6a5Smrg			continue
37001f0ac6a5Smrg		      fi
37011f0ac6a5Smrg		      # The statement above tries to avoid entering an
37021f0ac6a5Smrg		      # endless loop below, in case of cyclic links.
37031f0ac6a5Smrg		      # We might still enter an endless loop, since a link
37041f0ac6a5Smrg		      # loop can be closed while we follow links,
37051f0ac6a5Smrg		      # but so what?
37061f0ac6a5Smrg		      potlib="$potent_lib"
37071f0ac6a5Smrg		      while test -h "$potlib" 2>/dev/null; do
37081f0ac6a5Smrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
37091f0ac6a5Smrg			case $potliblink in
37101f0ac6a5Smrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
37111f0ac6a5Smrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
37121f0ac6a5Smrg			esac
37131f0ac6a5Smrg		      done
37141f0ac6a5Smrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
37151f0ac6a5Smrg			 | ${SED} 10q \
37161f0ac6a5Smrg			 | $EGREP "$file_magic_regex" > /dev/null; then
37171f0ac6a5Smrg			newdeplibs="$newdeplibs $a_deplib"
37181f0ac6a5Smrg			a_deplib=""
37191f0ac6a5Smrg			break 2
37201f0ac6a5Smrg		      fi
37211f0ac6a5Smrg		  done
37221f0ac6a5Smrg		done
37231f0ac6a5Smrg	      fi
37241f0ac6a5Smrg	      if test -n "$a_deplib" ; then
37251f0ac6a5Smrg		droppeddeps=yes
37261f0ac6a5Smrg		$echo
37271f0ac6a5Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37281f0ac6a5Smrg		$echo "*** I have the capability to make that library automatically link in when"
37291f0ac6a5Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
37301f0ac6a5Smrg		$echo "*** shared version of the library, which you do not appear to have"
37311f0ac6a5Smrg		$echo "*** because I did check the linker path looking for a file starting"
37321f0ac6a5Smrg		if test -z "$potlib" ; then
37331f0ac6a5Smrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
37341f0ac6a5Smrg		else
37351f0ac6a5Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
37361f0ac6a5Smrg		  $echo "*** using a file magic. Last file checked: $potlib"
37371f0ac6a5Smrg		fi
37381f0ac6a5Smrg	      fi
37391f0ac6a5Smrg	    else
37401f0ac6a5Smrg	      # Add a -L argument.
37411f0ac6a5Smrg	      newdeplibs="$newdeplibs $a_deplib"
37421f0ac6a5Smrg	    fi
37431f0ac6a5Smrg	  done # Gone through all deplibs.
37441f0ac6a5Smrg	  ;;
37451f0ac6a5Smrg	match_pattern*)
37461f0ac6a5Smrg	  set dummy $deplibs_check_method
37471f0ac6a5Smrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
37481f0ac6a5Smrg	  for a_deplib in $deplibs; do
37491f0ac6a5Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
37501f0ac6a5Smrg	    # If $name is empty we are operating on a -L argument.
37511f0ac6a5Smrg	    if test -n "$name" && test "$name" != "0"; then
37521f0ac6a5Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
37531f0ac6a5Smrg		case " $predeps $postdeps " in
37541f0ac6a5Smrg		*" $a_deplib "*)
37551f0ac6a5Smrg		  newdeplibs="$newdeplibs $a_deplib"
37561f0ac6a5Smrg		  a_deplib=""
37571f0ac6a5Smrg		  ;;
37581f0ac6a5Smrg		esac
37591f0ac6a5Smrg	      fi
37601f0ac6a5Smrg	      if test -n "$a_deplib" ; then
37611f0ac6a5Smrg		libname=`eval \\$echo \"$libname_spec\"`
37621f0ac6a5Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
37631f0ac6a5Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
37641f0ac6a5Smrg		  for potent_lib in $potential_libs; do
37651f0ac6a5Smrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
37661f0ac6a5Smrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
37671f0ac6a5Smrg		        | ${SED} 10q \
37681f0ac6a5Smrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
37691f0ac6a5Smrg		      newdeplibs="$newdeplibs $a_deplib"
37701f0ac6a5Smrg		      a_deplib=""
37711f0ac6a5Smrg		      break 2
37721f0ac6a5Smrg		    fi
37731f0ac6a5Smrg		  done
37741f0ac6a5Smrg		done
37751f0ac6a5Smrg	      fi
37761f0ac6a5Smrg	      if test -n "$a_deplib" ; then
37771f0ac6a5Smrg		droppeddeps=yes
37781f0ac6a5Smrg		$echo
37791f0ac6a5Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37801f0ac6a5Smrg		$echo "*** I have the capability to make that library automatically link in when"
37811f0ac6a5Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
37821f0ac6a5Smrg		$echo "*** shared version of the library, which you do not appear to have"
37831f0ac6a5Smrg		$echo "*** because I did check the linker path looking for a file starting"
37841f0ac6a5Smrg		if test -z "$potlib" ; then
37851f0ac6a5Smrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
37861f0ac6a5Smrg		else
37871f0ac6a5Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
37881f0ac6a5Smrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
37891f0ac6a5Smrg		fi
37901f0ac6a5Smrg	      fi
37911f0ac6a5Smrg	    else
37921f0ac6a5Smrg	      # Add a -L argument.
37931f0ac6a5Smrg	      newdeplibs="$newdeplibs $a_deplib"
37941f0ac6a5Smrg	    fi
37951f0ac6a5Smrg	  done # Gone through all deplibs.
37961f0ac6a5Smrg	  ;;
37971f0ac6a5Smrg	none | unknown | *)
37981f0ac6a5Smrg	  newdeplibs=""
37991f0ac6a5Smrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
38001f0ac6a5Smrg	    -e 's/ -[LR][^ ]*//g'`
38011f0ac6a5Smrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
38021f0ac6a5Smrg	    for i in $predeps $postdeps ; do
38031f0ac6a5Smrg	      # can't use Xsed below, because $i might contain '/'
38041f0ac6a5Smrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
38051f0ac6a5Smrg	    done
38061f0ac6a5Smrg	  fi
38071f0ac6a5Smrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
38081f0ac6a5Smrg	    | grep . >/dev/null; then
38091f0ac6a5Smrg	    $echo
38101f0ac6a5Smrg	    if test "X$deplibs_check_method" = "Xnone"; then
38111f0ac6a5Smrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
38121f0ac6a5Smrg	    else
38131f0ac6a5Smrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
38141f0ac6a5Smrg	    fi
38151f0ac6a5Smrg	    $echo "*** All declared inter-library dependencies are being dropped."
38161f0ac6a5Smrg	    droppeddeps=yes
38171f0ac6a5Smrg	  fi
38181f0ac6a5Smrg	  ;;
38191f0ac6a5Smrg	esac
38201f0ac6a5Smrg	versuffix=$versuffix_save
38211f0ac6a5Smrg	major=$major_save
38221f0ac6a5Smrg	release=$release_save
38231f0ac6a5Smrg	libname=$libname_save
38241f0ac6a5Smrg	name=$name_save
38251f0ac6a5Smrg
38261f0ac6a5Smrg	case $host in
38271f0ac6a5Smrg	*-*-rhapsody* | *-*-darwin1.[012])
38281f0ac6a5Smrg	  # On Rhapsody replace the C library is the System framework
38291f0ac6a5Smrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
38301f0ac6a5Smrg	  ;;
38311f0ac6a5Smrg	esac
38321f0ac6a5Smrg
38331f0ac6a5Smrg	if test "$droppeddeps" = yes; then
38341f0ac6a5Smrg	  if test "$module" = yes; then
38351f0ac6a5Smrg	    $echo
38361f0ac6a5Smrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
38371f0ac6a5Smrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
38381f0ac6a5Smrg	    $echo "*** a static module, that should work as long as the dlopening"
38391f0ac6a5Smrg	    $echo "*** application is linked with the -dlopen flag."
38401f0ac6a5Smrg	    if test -z "$global_symbol_pipe"; then
38411f0ac6a5Smrg	      $echo
38421f0ac6a5Smrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
38431f0ac6a5Smrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
38441f0ac6a5Smrg	      $echo "*** not find such a program.  So, this module is probably useless."
38451f0ac6a5Smrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
38461f0ac6a5Smrg	    fi
38471f0ac6a5Smrg	    if test "$build_old_libs" = no; then
38481f0ac6a5Smrg	      oldlibs="$output_objdir/$libname.$libext"
38491f0ac6a5Smrg	      build_libtool_libs=module
38501f0ac6a5Smrg	      build_old_libs=yes
38511f0ac6a5Smrg	    else
38521f0ac6a5Smrg	      build_libtool_libs=no
38531f0ac6a5Smrg	    fi
38541f0ac6a5Smrg	  else
38551f0ac6a5Smrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
38561f0ac6a5Smrg	    $echo "*** automatically added whenever a program is linked with this library"
38571f0ac6a5Smrg	    $echo "*** or is declared to -dlopen it."
38581f0ac6a5Smrg
38591f0ac6a5Smrg	    if test "$allow_undefined" = no; then
38601f0ac6a5Smrg	      $echo
38611f0ac6a5Smrg	      $echo "*** Since this library must not contain undefined symbols,"
38621f0ac6a5Smrg	      $echo "*** because either the platform does not support them or"
38631f0ac6a5Smrg	      $echo "*** it was explicitly requested with -no-undefined,"
38641f0ac6a5Smrg	      $echo "*** libtool will only create a static version of it."
38651f0ac6a5Smrg	      if test "$build_old_libs" = no; then
38661f0ac6a5Smrg		oldlibs="$output_objdir/$libname.$libext"
38671f0ac6a5Smrg		build_libtool_libs=module
38681f0ac6a5Smrg		build_old_libs=yes
38691f0ac6a5Smrg	      else
38701f0ac6a5Smrg		build_libtool_libs=no
38711f0ac6a5Smrg	      fi
38721f0ac6a5Smrg	    fi
38731f0ac6a5Smrg	  fi
38741f0ac6a5Smrg	fi
38751f0ac6a5Smrg	# Done checking deplibs!
38761f0ac6a5Smrg	deplibs=$newdeplibs
38771f0ac6a5Smrg      fi
38781f0ac6a5Smrg
38791f0ac6a5Smrg
38801f0ac6a5Smrg      # move library search paths that coincide with paths to not yet
38811f0ac6a5Smrg      # installed libraries to the beginning of the library search list
38821f0ac6a5Smrg      new_libs=
38831f0ac6a5Smrg      for path in $notinst_path; do
38841f0ac6a5Smrg	case " $new_libs " in
38851f0ac6a5Smrg	*" -L$path/$objdir "*) ;;
38861f0ac6a5Smrg	*)
38871f0ac6a5Smrg	  case " $deplibs " in
38881f0ac6a5Smrg	  *" -L$path/$objdir "*)
38891f0ac6a5Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
38901f0ac6a5Smrg	  esac
38911f0ac6a5Smrg	  ;;
38921f0ac6a5Smrg	esac
38931f0ac6a5Smrg      done
38941f0ac6a5Smrg      for deplib in $deplibs; do
38951f0ac6a5Smrg	case $deplib in
38961f0ac6a5Smrg	-L*)
38971f0ac6a5Smrg	  case " $new_libs " in
38981f0ac6a5Smrg	  *" $deplib "*) ;;
38991f0ac6a5Smrg	  *) new_libs="$new_libs $deplib" ;;
39001f0ac6a5Smrg	  esac
39011f0ac6a5Smrg	  ;;
39021f0ac6a5Smrg	*) new_libs="$new_libs $deplib" ;;
39031f0ac6a5Smrg	esac
39041f0ac6a5Smrg      done
39051f0ac6a5Smrg      deplibs="$new_libs"
39061f0ac6a5Smrg
39071f0ac6a5Smrg
39081f0ac6a5Smrg      # All the library-specific variables (install_libdir is set above).
39091f0ac6a5Smrg      library_names=
39101f0ac6a5Smrg      old_library=
39111f0ac6a5Smrg      dlname=
39121f0ac6a5Smrg
39131f0ac6a5Smrg      # Test again, we may have decided not to build it any more
39141f0ac6a5Smrg      if test "$build_libtool_libs" = yes; then
39151f0ac6a5Smrg	if test "$hardcode_into_libs" = yes; then
39161f0ac6a5Smrg	  # Hardcode the library paths
39171f0ac6a5Smrg	  hardcode_libdirs=
39181f0ac6a5Smrg	  dep_rpath=
39191f0ac6a5Smrg	  rpath="$finalize_rpath"
39201f0ac6a5Smrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
39211f0ac6a5Smrg	  for libdir in $rpath; do
39221f0ac6a5Smrg	    if test -n "$hardcode_libdir_flag_spec"; then
39231f0ac6a5Smrg	      if test -n "$hardcode_libdir_separator"; then
39241f0ac6a5Smrg		if test -z "$hardcode_libdirs"; then
39251f0ac6a5Smrg		  hardcode_libdirs="$libdir"
39261f0ac6a5Smrg		else
39271f0ac6a5Smrg		  # Just accumulate the unique libdirs.
39281f0ac6a5Smrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
39291f0ac6a5Smrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
39301f0ac6a5Smrg		    ;;
39311f0ac6a5Smrg		  *)
39321f0ac6a5Smrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
39331f0ac6a5Smrg		    ;;
39341f0ac6a5Smrg		  esac
39351f0ac6a5Smrg		fi
39361f0ac6a5Smrg	      else
39371f0ac6a5Smrg		eval flag=\"$hardcode_libdir_flag_spec\"
39381f0ac6a5Smrg		dep_rpath="$dep_rpath $flag"
39391f0ac6a5Smrg	      fi
39401f0ac6a5Smrg	    elif test -n "$runpath_var"; then
39411f0ac6a5Smrg	      case "$perm_rpath " in
39421f0ac6a5Smrg	      *" $libdir "*) ;;
39431f0ac6a5Smrg	      *) perm_rpath="$perm_rpath $libdir" ;;
39441f0ac6a5Smrg	      esac
39451f0ac6a5Smrg	    fi
39461f0ac6a5Smrg	  done
39471f0ac6a5Smrg	  # Substitute the hardcoded libdirs into the rpath.
39481f0ac6a5Smrg	  if test -n "$hardcode_libdir_separator" &&
39491f0ac6a5Smrg	     test -n "$hardcode_libdirs"; then
39501f0ac6a5Smrg	    libdir="$hardcode_libdirs"
39511f0ac6a5Smrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3952e5410a46Smrg	      case $archive_cmds in
3953e5410a46Smrg	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
3954e5410a46Smrg	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
3955e5410a46Smrg	      esac
39561f0ac6a5Smrg	    else
39571f0ac6a5Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
39581f0ac6a5Smrg	    fi
39591f0ac6a5Smrg	  fi
39601f0ac6a5Smrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
39611f0ac6a5Smrg	    # We should set the runpath_var.
39621f0ac6a5Smrg	    rpath=
39631f0ac6a5Smrg	    for dir in $perm_rpath; do
39641f0ac6a5Smrg	      rpath="$rpath$dir:"
39651f0ac6a5Smrg	    done
39661f0ac6a5Smrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
39671f0ac6a5Smrg	  fi
39681f0ac6a5Smrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
39691f0ac6a5Smrg	fi
39701f0ac6a5Smrg
39711f0ac6a5Smrg	shlibpath="$finalize_shlibpath"
39721f0ac6a5Smrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
39731f0ac6a5Smrg	if test -n "$shlibpath"; then
39741f0ac6a5Smrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
39751f0ac6a5Smrg	fi
39761f0ac6a5Smrg
39771f0ac6a5Smrg	# Get the real and link names of the library.
39781f0ac6a5Smrg	eval shared_ext=\"$shrext_cmds\"
39791f0ac6a5Smrg	eval library_names=\"$library_names_spec\"
39801f0ac6a5Smrg	set dummy $library_names
39811f0ac6a5Smrg	realname="$2"
39821f0ac6a5Smrg	shift; shift
39831f0ac6a5Smrg
39841f0ac6a5Smrg	if test -n "$soname_spec"; then
39851f0ac6a5Smrg	  eval soname=\"$soname_spec\"
39861f0ac6a5Smrg	else
39871f0ac6a5Smrg	  soname="$realname"
39881f0ac6a5Smrg	fi
39891f0ac6a5Smrg	if test -z "$dlname"; then
39901f0ac6a5Smrg	  dlname=$soname
39911f0ac6a5Smrg	fi
39921f0ac6a5Smrg
39931f0ac6a5Smrg	lib="$output_objdir/$realname"
39941f0ac6a5Smrg	linknames=
39951f0ac6a5Smrg	for link
39961f0ac6a5Smrg	do
39971f0ac6a5Smrg	  linknames="$linknames $link"
39981f0ac6a5Smrg	done
39991f0ac6a5Smrg
40001f0ac6a5Smrg	# Use standard objects if they are pic
40011f0ac6a5Smrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
40021f0ac6a5Smrg
40031f0ac6a5Smrg	# Prepare the list of exported symbols
40041f0ac6a5Smrg	if test -z "$export_symbols"; then
40051f0ac6a5Smrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
40061f0ac6a5Smrg	    $show "generating symbol list for \`$libname.la'"
40071f0ac6a5Smrg	    export_symbols="$output_objdir/$libname.exp"
40081f0ac6a5Smrg	    $run $rm $export_symbols
40091f0ac6a5Smrg	    cmds=$export_symbols_cmds
40101f0ac6a5Smrg	    save_ifs="$IFS"; IFS='~'
40111f0ac6a5Smrg	    for cmd in $cmds; do
40121f0ac6a5Smrg	      IFS="$save_ifs"
40131f0ac6a5Smrg	      eval cmd=\"$cmd\"
40141f0ac6a5Smrg	      if len=`expr "X$cmd" : ".*"` &&
40151f0ac6a5Smrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40161f0ac6a5Smrg	        $show "$cmd"
40171f0ac6a5Smrg	        $run eval "$cmd" || exit $?
40181f0ac6a5Smrg	        skipped_export=false
40191f0ac6a5Smrg	      else
40201f0ac6a5Smrg	        # The command line is too long to execute in one step.
40211f0ac6a5Smrg	        $show "using reloadable object file for export list..."
40221f0ac6a5Smrg	        skipped_export=:
40231f0ac6a5Smrg		# Break out early, otherwise skipped_export may be
40241f0ac6a5Smrg		# set to false by a later but shorter cmd.
40251f0ac6a5Smrg		break
40261f0ac6a5Smrg	      fi
40271f0ac6a5Smrg	    done
40281f0ac6a5Smrg	    IFS="$save_ifs"
40291f0ac6a5Smrg	    if test -n "$export_symbols_regex"; then
40301f0ac6a5Smrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
40311f0ac6a5Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
40321f0ac6a5Smrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
40331f0ac6a5Smrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
40341f0ac6a5Smrg	    fi
40351f0ac6a5Smrg	  fi
40361f0ac6a5Smrg	fi
40371f0ac6a5Smrg
40381f0ac6a5Smrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
40391f0ac6a5Smrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
40401f0ac6a5Smrg	fi
40411f0ac6a5Smrg
40421f0ac6a5Smrg	tmp_deplibs=
40431f0ac6a5Smrg	for test_deplib in $deplibs; do
40441f0ac6a5Smrg		case " $convenience " in
40451f0ac6a5Smrg		*" $test_deplib "*) ;;
40461f0ac6a5Smrg		*)
40471f0ac6a5Smrg			tmp_deplibs="$tmp_deplibs $test_deplib"
40481f0ac6a5Smrg			;;
40491f0ac6a5Smrg		esac
40501f0ac6a5Smrg	done
40511f0ac6a5Smrg	deplibs="$tmp_deplibs"
40521f0ac6a5Smrg
40531f0ac6a5Smrg	if test -n "$convenience"; then
40541f0ac6a5Smrg	  if test -n "$whole_archive_flag_spec"; then
40551f0ac6a5Smrg	    save_libobjs=$libobjs
40561f0ac6a5Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
40571f0ac6a5Smrg	  else
40581f0ac6a5Smrg	    gentop="$output_objdir/${outputname}x"
40591f0ac6a5Smrg	    generated="$generated $gentop"
40601f0ac6a5Smrg
40611f0ac6a5Smrg	    func_extract_archives $gentop $convenience
40621f0ac6a5Smrg	    libobjs="$libobjs $func_extract_archives_result"
40631f0ac6a5Smrg	  fi
40641f0ac6a5Smrg	fi
40651f0ac6a5Smrg	
40661f0ac6a5Smrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
40671f0ac6a5Smrg	  eval flag=\"$thread_safe_flag_spec\"
40681f0ac6a5Smrg	  linker_flags="$linker_flags $flag"
40691f0ac6a5Smrg	fi
40701f0ac6a5Smrg
40711f0ac6a5Smrg	# Make a backup of the uninstalled library when relinking
40721f0ac6a5Smrg	if test "$mode" = relink; then
40731f0ac6a5Smrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
40741f0ac6a5Smrg	fi
40751f0ac6a5Smrg
40761f0ac6a5Smrg	# Do each of the archive commands.
40771f0ac6a5Smrg	if test "$module" = yes && test -n "$module_cmds" ; then
40781f0ac6a5Smrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
40791f0ac6a5Smrg	    eval test_cmds=\"$module_expsym_cmds\"
40801f0ac6a5Smrg	    cmds=$module_expsym_cmds
40811f0ac6a5Smrg	  else
40821f0ac6a5Smrg	    eval test_cmds=\"$module_cmds\"
40831f0ac6a5Smrg	    cmds=$module_cmds
40841f0ac6a5Smrg	  fi
40851f0ac6a5Smrg	else
40861f0ac6a5Smrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
40871f0ac6a5Smrg	  eval test_cmds=\"$archive_expsym_cmds\"
40881f0ac6a5Smrg	  cmds=$archive_expsym_cmds
40891f0ac6a5Smrg	else
40901f0ac6a5Smrg	  eval test_cmds=\"$archive_cmds\"
40911f0ac6a5Smrg	  cmds=$archive_cmds
40921f0ac6a5Smrg	  fi
40931f0ac6a5Smrg	fi
40941f0ac6a5Smrg
40951f0ac6a5Smrg	if test "X$skipped_export" != "X:" &&
40961f0ac6a5Smrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
40971f0ac6a5Smrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40981f0ac6a5Smrg	  :
40991f0ac6a5Smrg	else
41001f0ac6a5Smrg	  # The command line is too long to link in one step, link piecewise.
41011f0ac6a5Smrg	  $echo "creating reloadable object files..."
41021f0ac6a5Smrg
41031f0ac6a5Smrg	  # Save the value of $output and $libobjs because we want to
41041f0ac6a5Smrg	  # use them later.  If we have whole_archive_flag_spec, we
41051f0ac6a5Smrg	  # want to use save_libobjs as it was before
41061f0ac6a5Smrg	  # whole_archive_flag_spec was expanded, because we can't
41071f0ac6a5Smrg	  # assume the linker understands whole_archive_flag_spec.
41081f0ac6a5Smrg	  # This may have to be revisited, in case too many
41091f0ac6a5Smrg	  # convenience libraries get linked in and end up exceeding
41101f0ac6a5Smrg	  # the spec.
41111f0ac6a5Smrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
41121f0ac6a5Smrg	    save_libobjs=$libobjs
41131f0ac6a5Smrg	  fi
41141f0ac6a5Smrg	  save_output=$output
41151f0ac6a5Smrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
41161f0ac6a5Smrg
41171f0ac6a5Smrg	  # Clear the reloadable object creation command queue and
41181f0ac6a5Smrg	  # initialize k to one.
41191f0ac6a5Smrg	  test_cmds=
41201f0ac6a5Smrg	  concat_cmds=
41211f0ac6a5Smrg	  objlist=
41221f0ac6a5Smrg	  delfiles=
41231f0ac6a5Smrg	  last_robj=
41241f0ac6a5Smrg	  k=1
41251f0ac6a5Smrg	  output=$output_objdir/$output_la-${k}.$objext
41261f0ac6a5Smrg	  # Loop over the list of objects to be linked.
41271f0ac6a5Smrg	  for obj in $save_libobjs
41281f0ac6a5Smrg	  do
41291f0ac6a5Smrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
41301f0ac6a5Smrg	    if test "X$objlist" = X ||
41311f0ac6a5Smrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
41321f0ac6a5Smrg		 test "$len" -le "$max_cmd_len"; }; then
41331f0ac6a5Smrg	      objlist="$objlist $obj"
41341f0ac6a5Smrg	    else
41351f0ac6a5Smrg	      # The command $test_cmds is almost too long, add a
41361f0ac6a5Smrg	      # command to the queue.
41371f0ac6a5Smrg	      if test "$k" -eq 1 ; then
41381f0ac6a5Smrg		# The first file doesn't have a previous command to add.
41391f0ac6a5Smrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
41401f0ac6a5Smrg	      else
41411f0ac6a5Smrg		# All subsequent reloadable object files will link in
41421f0ac6a5Smrg		# the last one created.
41431f0ac6a5Smrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
41441f0ac6a5Smrg	      fi
41451f0ac6a5Smrg	      last_robj=$output_objdir/$output_la-${k}.$objext
41461f0ac6a5Smrg	      k=`expr $k + 1`
41471f0ac6a5Smrg	      output=$output_objdir/$output_la-${k}.$objext
41481f0ac6a5Smrg	      objlist=$obj
41491f0ac6a5Smrg	      len=1
41501f0ac6a5Smrg	    fi
41511f0ac6a5Smrg	  done
41521f0ac6a5Smrg	  # Handle the remaining objects by creating one last
41531f0ac6a5Smrg	  # reloadable object file.  All subsequent reloadable object
41541f0ac6a5Smrg	  # files will link in the last one created.
41551f0ac6a5Smrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
41561f0ac6a5Smrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
41571f0ac6a5Smrg
41581f0ac6a5Smrg	  if ${skipped_export-false}; then
41591f0ac6a5Smrg	    $show "generating symbol list for \`$libname.la'"
41601f0ac6a5Smrg	    export_symbols="$output_objdir/$libname.exp"
41611f0ac6a5Smrg	    $run $rm $export_symbols
41621f0ac6a5Smrg	    libobjs=$output
41631f0ac6a5Smrg	    # Append the command to create the export file.
41641f0ac6a5Smrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
41651f0ac6a5Smrg          fi
41661f0ac6a5Smrg
41671f0ac6a5Smrg	  # Set up a command to remove the reloadable object files
41681f0ac6a5Smrg	  # after they are used.
41691f0ac6a5Smrg	  i=0
41701f0ac6a5Smrg	  while test "$i" -lt "$k"
41711f0ac6a5Smrg	  do
41721f0ac6a5Smrg	    i=`expr $i + 1`
41731f0ac6a5Smrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
41741f0ac6a5Smrg	  done
41751f0ac6a5Smrg
41761f0ac6a5Smrg	  $echo "creating a temporary reloadable object file: $output"
41771f0ac6a5Smrg
41781f0ac6a5Smrg	  # Loop through the commands generated above and execute them.
41791f0ac6a5Smrg	  save_ifs="$IFS"; IFS='~'
41801f0ac6a5Smrg	  for cmd in $concat_cmds; do
41811f0ac6a5Smrg	    IFS="$save_ifs"
41821f0ac6a5Smrg	    $show "$cmd"
41831f0ac6a5Smrg	    $run eval "$cmd" || exit $?
41841f0ac6a5Smrg	  done
41851f0ac6a5Smrg	  IFS="$save_ifs"
41861f0ac6a5Smrg
41871f0ac6a5Smrg	  libobjs=$output
41881f0ac6a5Smrg	  # Restore the value of output.
41891f0ac6a5Smrg	  output=$save_output
41901f0ac6a5Smrg
41911f0ac6a5Smrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
41921f0ac6a5Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
41931f0ac6a5Smrg	  fi
41941f0ac6a5Smrg	  # Expand the library linking commands again to reset the
41951f0ac6a5Smrg	  # value of $libobjs for piecewise linking.
41961f0ac6a5Smrg
41971f0ac6a5Smrg	  # Do each of the archive commands.
41981f0ac6a5Smrg	  if test "$module" = yes && test -n "$module_cmds" ; then
41991f0ac6a5Smrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
42001f0ac6a5Smrg	      cmds=$module_expsym_cmds
42011f0ac6a5Smrg	    else
42021f0ac6a5Smrg	      cmds=$module_cmds
42031f0ac6a5Smrg	    fi
42041f0ac6a5Smrg	  else
42051f0ac6a5Smrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
42061f0ac6a5Smrg	    cmds=$archive_expsym_cmds
42071f0ac6a5Smrg	  else
42081f0ac6a5Smrg	    cmds=$archive_cmds
42091f0ac6a5Smrg	    fi
42101f0ac6a5Smrg	  fi
42111f0ac6a5Smrg
42121f0ac6a5Smrg	  # Append the command to remove the reloadable object files
42131f0ac6a5Smrg	  # to the just-reset $cmds.
42141f0ac6a5Smrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
42151f0ac6a5Smrg	fi
42161f0ac6a5Smrg	save_ifs="$IFS"; IFS='~'
42171f0ac6a5Smrg	for cmd in $cmds; do
42181f0ac6a5Smrg	  IFS="$save_ifs"
42191f0ac6a5Smrg	  eval cmd=\"$cmd\"
42201f0ac6a5Smrg	  $show "$cmd"
42211f0ac6a5Smrg	  $run eval "$cmd" || {
42221f0ac6a5Smrg	    lt_exit=$?
42231f0ac6a5Smrg
42241f0ac6a5Smrg	    # Restore the uninstalled library and exit
42251f0ac6a5Smrg	    if test "$mode" = relink; then
42261f0ac6a5Smrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
42271f0ac6a5Smrg	    fi
42281f0ac6a5Smrg
42291f0ac6a5Smrg	    exit $lt_exit
42301f0ac6a5Smrg	  }
42311f0ac6a5Smrg	done
42321f0ac6a5Smrg	IFS="$save_ifs"
42331f0ac6a5Smrg
42341f0ac6a5Smrg	# Restore the uninstalled library and exit
42351f0ac6a5Smrg	if test "$mode" = relink; then
42361f0ac6a5Smrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
42371f0ac6a5Smrg
42381f0ac6a5Smrg	  if test -n "$convenience"; then
42391f0ac6a5Smrg	    if test -z "$whole_archive_flag_spec"; then
42401f0ac6a5Smrg	      $show "${rm}r $gentop"
42411f0ac6a5Smrg	      $run ${rm}r "$gentop"
42421f0ac6a5Smrg	    fi
42431f0ac6a5Smrg	  fi
42441f0ac6a5Smrg
42451f0ac6a5Smrg	  exit $EXIT_SUCCESS
42461f0ac6a5Smrg	fi
42471f0ac6a5Smrg
42481f0ac6a5Smrg	# Create links to the real library.
42491f0ac6a5Smrg	for linkname in $linknames; do
42501f0ac6a5Smrg	  if test "$realname" != "$linkname"; then
42511f0ac6a5Smrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
42521f0ac6a5Smrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
42531f0ac6a5Smrg	  fi
42541f0ac6a5Smrg	done
42551f0ac6a5Smrg
42561f0ac6a5Smrg	# If -module or -export-dynamic was specified, set the dlname.
42571f0ac6a5Smrg	if test "$module" = yes || test "$export_dynamic" = yes; then
42581f0ac6a5Smrg	  # On all known operating systems, these are identical.
42591f0ac6a5Smrg	  dlname="$soname"
42601f0ac6a5Smrg	fi
42611f0ac6a5Smrg      fi
42621f0ac6a5Smrg      ;;
42631f0ac6a5Smrg
42641f0ac6a5Smrg    obj)
4265e5410a46Smrg      case " $deplibs" in
4266e5410a46Smrg      *\ -l* | *\ -L*)
4267e5410a46Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
4268e5410a46Smrg      esac
42691f0ac6a5Smrg
42701f0ac6a5Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
42711f0ac6a5Smrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
42721f0ac6a5Smrg      fi
42731f0ac6a5Smrg
42741f0ac6a5Smrg      if test -n "$rpath"; then
42751f0ac6a5Smrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
42761f0ac6a5Smrg      fi
42771f0ac6a5Smrg
42781f0ac6a5Smrg      if test -n "$xrpath"; then
42791f0ac6a5Smrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
42801f0ac6a5Smrg      fi
42811f0ac6a5Smrg
42821f0ac6a5Smrg      if test -n "$vinfo"; then
42831f0ac6a5Smrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
42841f0ac6a5Smrg      fi
42851f0ac6a5Smrg
42861f0ac6a5Smrg      if test -n "$release"; then
42871f0ac6a5Smrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
42881f0ac6a5Smrg      fi
42891f0ac6a5Smrg
42901f0ac6a5Smrg      case $output in
42911f0ac6a5Smrg      *.lo)
42921f0ac6a5Smrg	if test -n "$objs$old_deplibs"; then
42931f0ac6a5Smrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
42941f0ac6a5Smrg	  exit $EXIT_FAILURE
42951f0ac6a5Smrg	fi
42961f0ac6a5Smrg	libobj="$output"
42971f0ac6a5Smrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
42981f0ac6a5Smrg	;;
42991f0ac6a5Smrg      *)
43001f0ac6a5Smrg	libobj=
43011f0ac6a5Smrg	obj="$output"
43021f0ac6a5Smrg	;;
43031f0ac6a5Smrg      esac
43041f0ac6a5Smrg
43051f0ac6a5Smrg      # Delete the old objects.
43061f0ac6a5Smrg      $run $rm $obj $libobj
43071f0ac6a5Smrg
43081f0ac6a5Smrg      # Objects from convenience libraries.  This assumes
43091f0ac6a5Smrg      # single-version convenience libraries.  Whenever we create
43101f0ac6a5Smrg      # different ones for PIC/non-PIC, this we'll have to duplicate
43111f0ac6a5Smrg      # the extraction.
43121f0ac6a5Smrg      reload_conv_objs=
43131f0ac6a5Smrg      gentop=
43141f0ac6a5Smrg      # reload_cmds runs $LD directly, so let us get rid of
4315e5410a46Smrg      # -Wl from whole_archive_flag_spec and hope we can get by with
4316e5410a46Smrg      # turning comma into space..
43171f0ac6a5Smrg      wl=
43181f0ac6a5Smrg
43191f0ac6a5Smrg      if test -n "$convenience"; then
43201f0ac6a5Smrg	if test -n "$whole_archive_flag_spec"; then
4321e5410a46Smrg	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
4322e5410a46Smrg	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
43231f0ac6a5Smrg	else
43241f0ac6a5Smrg	  gentop="$output_objdir/${obj}x"
43251f0ac6a5Smrg	  generated="$generated $gentop"
43261f0ac6a5Smrg
43271f0ac6a5Smrg	  func_extract_archives $gentop $convenience
43281f0ac6a5Smrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
43291f0ac6a5Smrg	fi
43301f0ac6a5Smrg      fi
43311f0ac6a5Smrg
43321f0ac6a5Smrg      # Create the old-style object.
43331f0ac6a5Smrg      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
43341f0ac6a5Smrg
43351f0ac6a5Smrg      output="$obj"
43361f0ac6a5Smrg      cmds=$reload_cmds
43371f0ac6a5Smrg      save_ifs="$IFS"; IFS='~'
43381f0ac6a5Smrg      for cmd in $cmds; do
43391f0ac6a5Smrg	IFS="$save_ifs"
43401f0ac6a5Smrg	eval cmd=\"$cmd\"
43411f0ac6a5Smrg	$show "$cmd"
43421f0ac6a5Smrg	$run eval "$cmd" || exit $?
43431f0ac6a5Smrg      done
43441f0ac6a5Smrg      IFS="$save_ifs"
43451f0ac6a5Smrg
43461f0ac6a5Smrg      # Exit if we aren't doing a library object file.
43471f0ac6a5Smrg      if test -z "$libobj"; then
43481f0ac6a5Smrg	if test -n "$gentop"; then
43491f0ac6a5Smrg	  $show "${rm}r $gentop"
43501f0ac6a5Smrg	  $run ${rm}r $gentop
43511f0ac6a5Smrg	fi
43521f0ac6a5Smrg
43531f0ac6a5Smrg	exit $EXIT_SUCCESS
43541f0ac6a5Smrg      fi
43551f0ac6a5Smrg
43561f0ac6a5Smrg      if test "$build_libtool_libs" != yes; then
43571f0ac6a5Smrg	if test -n "$gentop"; then
43581f0ac6a5Smrg	  $show "${rm}r $gentop"
43591f0ac6a5Smrg	  $run ${rm}r $gentop
43601f0ac6a5Smrg	fi
43611f0ac6a5Smrg
43621f0ac6a5Smrg	# Create an invalid libtool object if no PIC, so that we don't
43631f0ac6a5Smrg	# accidentally link it into a program.
43641f0ac6a5Smrg	# $show "echo timestamp > $libobj"
43651f0ac6a5Smrg	# $run eval "echo timestamp > $libobj" || exit $?
43661f0ac6a5Smrg	exit $EXIT_SUCCESS
43671f0ac6a5Smrg      fi
43681f0ac6a5Smrg
43691f0ac6a5Smrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
43701f0ac6a5Smrg	# Only do commands if we really have different PIC objects.
43711f0ac6a5Smrg	reload_objs="$libobjs $reload_conv_objs"
43721f0ac6a5Smrg	output="$libobj"
43731f0ac6a5Smrg	cmds=$reload_cmds
43741f0ac6a5Smrg	save_ifs="$IFS"; IFS='~'
43751f0ac6a5Smrg	for cmd in $cmds; do
43761f0ac6a5Smrg	  IFS="$save_ifs"
43771f0ac6a5Smrg	  eval cmd=\"$cmd\"
43781f0ac6a5Smrg	  $show "$cmd"
43791f0ac6a5Smrg	  $run eval "$cmd" || exit $?
43801f0ac6a5Smrg	done
43811f0ac6a5Smrg	IFS="$save_ifs"
43821f0ac6a5Smrg      fi
43831f0ac6a5Smrg
43841f0ac6a5Smrg      if test -n "$gentop"; then
43851f0ac6a5Smrg	$show "${rm}r $gentop"
43861f0ac6a5Smrg	$run ${rm}r $gentop
43871f0ac6a5Smrg      fi
43881f0ac6a5Smrg
43891f0ac6a5Smrg      exit $EXIT_SUCCESS
43901f0ac6a5Smrg      ;;
43911f0ac6a5Smrg
43921f0ac6a5Smrg    prog)
43931f0ac6a5Smrg      case $host in
43941f0ac6a5Smrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
43951f0ac6a5Smrg      esac
43961f0ac6a5Smrg      if test -n "$vinfo"; then
43971f0ac6a5Smrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
43981f0ac6a5Smrg      fi
43991f0ac6a5Smrg
44001f0ac6a5Smrg      if test -n "$release"; then
44011f0ac6a5Smrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
44021f0ac6a5Smrg      fi
44031f0ac6a5Smrg
44041f0ac6a5Smrg      if test "$preload" = yes; then
44051f0ac6a5Smrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
44061f0ac6a5Smrg	   test "$dlopen_self_static" = unknown; then
44071f0ac6a5Smrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
44081f0ac6a5Smrg	fi
44091f0ac6a5Smrg      fi
44101f0ac6a5Smrg
44111f0ac6a5Smrg      case $host in
44121f0ac6a5Smrg      *-*-rhapsody* | *-*-darwin1.[012])
44131f0ac6a5Smrg	# On Rhapsody replace the C library is the System framework
44141f0ac6a5Smrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44151f0ac6a5Smrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44161f0ac6a5Smrg	;;
44171f0ac6a5Smrg      esac
44181f0ac6a5Smrg
44191f0ac6a5Smrg      case $host in
44201f0ac6a5Smrg      *darwin*)
44211f0ac6a5Smrg        # Don't allow lazy linking, it breaks C++ global constructors
44221f0ac6a5Smrg        if test "$tagname" = CXX ; then
44231f0ac6a5Smrg        compile_command="$compile_command ${wl}-bind_at_load"
44241f0ac6a5Smrg        finalize_command="$finalize_command ${wl}-bind_at_load"
44251f0ac6a5Smrg        fi
44261f0ac6a5Smrg        ;;
44271f0ac6a5Smrg      esac
44281f0ac6a5Smrg
44291f0ac6a5Smrg
44301f0ac6a5Smrg      # move library search paths that coincide with paths to not yet
44311f0ac6a5Smrg      # installed libraries to the beginning of the library search list
44321f0ac6a5Smrg      new_libs=
44331f0ac6a5Smrg      for path in $notinst_path; do
44341f0ac6a5Smrg	case " $new_libs " in
44351f0ac6a5Smrg	*" -L$path/$objdir "*) ;;
44361f0ac6a5Smrg	*)
44371f0ac6a5Smrg	  case " $compile_deplibs " in
44381f0ac6a5Smrg	  *" -L$path/$objdir "*)
44391f0ac6a5Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
44401f0ac6a5Smrg	  esac
44411f0ac6a5Smrg	  ;;
44421f0ac6a5Smrg	esac
44431f0ac6a5Smrg      done
44441f0ac6a5Smrg      for deplib in $compile_deplibs; do
44451f0ac6a5Smrg	case $deplib in
44461f0ac6a5Smrg	-L*)
44471f0ac6a5Smrg	  case " $new_libs " in
44481f0ac6a5Smrg	  *" $deplib "*) ;;
44491f0ac6a5Smrg	  *) new_libs="$new_libs $deplib" ;;
44501f0ac6a5Smrg	  esac
44511f0ac6a5Smrg	  ;;
44521f0ac6a5Smrg	*) new_libs="$new_libs $deplib" ;;
44531f0ac6a5Smrg	esac
44541f0ac6a5Smrg      done
44551f0ac6a5Smrg      compile_deplibs="$new_libs"
44561f0ac6a5Smrg
44571f0ac6a5Smrg
44581f0ac6a5Smrg      compile_command="$compile_command $compile_deplibs"
44591f0ac6a5Smrg      finalize_command="$finalize_command $finalize_deplibs"
44601f0ac6a5Smrg
44611f0ac6a5Smrg      if test -n "$rpath$xrpath"; then
44621f0ac6a5Smrg	# If the user specified any rpath flags, then add them.
44631f0ac6a5Smrg	for libdir in $rpath $xrpath; do
44641f0ac6a5Smrg	  # This is the magic to use -rpath.
44651f0ac6a5Smrg	  case "$finalize_rpath " in
44661f0ac6a5Smrg	  *" $libdir "*) ;;
44671f0ac6a5Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
44681f0ac6a5Smrg	  esac
44691f0ac6a5Smrg	done
44701f0ac6a5Smrg      fi
44711f0ac6a5Smrg
44721f0ac6a5Smrg      # Now hardcode the library paths
44731f0ac6a5Smrg      rpath=
44741f0ac6a5Smrg      hardcode_libdirs=
44751f0ac6a5Smrg      for libdir in $compile_rpath $finalize_rpath; do
44761f0ac6a5Smrg	if test -n "$hardcode_libdir_flag_spec"; then
44771f0ac6a5Smrg	  if test -n "$hardcode_libdir_separator"; then
44781f0ac6a5Smrg	    if test -z "$hardcode_libdirs"; then
44791f0ac6a5Smrg	      hardcode_libdirs="$libdir"
44801f0ac6a5Smrg	    else
44811f0ac6a5Smrg	      # Just accumulate the unique libdirs.
44821f0ac6a5Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
44831f0ac6a5Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
44841f0ac6a5Smrg		;;
44851f0ac6a5Smrg	      *)
44861f0ac6a5Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
44871f0ac6a5Smrg		;;
44881f0ac6a5Smrg	      esac
44891f0ac6a5Smrg	    fi
44901f0ac6a5Smrg	  else
44911f0ac6a5Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
44921f0ac6a5Smrg	    rpath="$rpath $flag"
44931f0ac6a5Smrg	  fi
44941f0ac6a5Smrg	elif test -n "$runpath_var"; then
44951f0ac6a5Smrg	  case "$perm_rpath " in
44961f0ac6a5Smrg	  *" $libdir "*) ;;
44971f0ac6a5Smrg	  *) perm_rpath="$perm_rpath $libdir" ;;
44981f0ac6a5Smrg	  esac
44991f0ac6a5Smrg	fi
45001f0ac6a5Smrg	case $host in
45011f0ac6a5Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
45021f0ac6a5Smrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
45031f0ac6a5Smrg	  case :$dllsearchpath: in
45041f0ac6a5Smrg	  *":$libdir:"*) ;;
45051f0ac6a5Smrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
45061f0ac6a5Smrg	  esac
45071f0ac6a5Smrg	  case :$dllsearchpath: in
45081f0ac6a5Smrg	  *":$testbindir:"*) ;;
45091f0ac6a5Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
45101f0ac6a5Smrg	  esac
45111f0ac6a5Smrg	  ;;
45121f0ac6a5Smrg	esac
45131f0ac6a5Smrg      done
45141f0ac6a5Smrg      # Substitute the hardcoded libdirs into the rpath.
45151f0ac6a5Smrg      if test -n "$hardcode_libdir_separator" &&
45161f0ac6a5Smrg	 test -n "$hardcode_libdirs"; then
45171f0ac6a5Smrg	libdir="$hardcode_libdirs"
45181f0ac6a5Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
45191f0ac6a5Smrg      fi
45201f0ac6a5Smrg      compile_rpath="$rpath"
45211f0ac6a5Smrg
45221f0ac6a5Smrg      rpath=
45231f0ac6a5Smrg      hardcode_libdirs=
45241f0ac6a5Smrg      for libdir in $finalize_rpath; do
45251f0ac6a5Smrg	if test -n "$hardcode_libdir_flag_spec"; then
45261f0ac6a5Smrg	  if test -n "$hardcode_libdir_separator"; then
45271f0ac6a5Smrg	    if test -z "$hardcode_libdirs"; then
45281f0ac6a5Smrg	      hardcode_libdirs="$libdir"
45291f0ac6a5Smrg	    else
45301f0ac6a5Smrg	      # Just accumulate the unique libdirs.
45311f0ac6a5Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
45321f0ac6a5Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
45331f0ac6a5Smrg		;;
45341f0ac6a5Smrg	      *)
45351f0ac6a5Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
45361f0ac6a5Smrg		;;
45371f0ac6a5Smrg	      esac
45381f0ac6a5Smrg	    fi
45391f0ac6a5Smrg	  else
45401f0ac6a5Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
45411f0ac6a5Smrg	    rpath="$rpath $flag"
45421f0ac6a5Smrg	  fi
45431f0ac6a5Smrg	elif test -n "$runpath_var"; then
45441f0ac6a5Smrg	  case "$finalize_perm_rpath " in
45451f0ac6a5Smrg	  *" $libdir "*) ;;
45461f0ac6a5Smrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
45471f0ac6a5Smrg	  esac
45481f0ac6a5Smrg	fi
45491f0ac6a5Smrg      done
45501f0ac6a5Smrg      # Substitute the hardcoded libdirs into the rpath.
45511f0ac6a5Smrg      if test -n "$hardcode_libdir_separator" &&
45521f0ac6a5Smrg	 test -n "$hardcode_libdirs"; then
45531f0ac6a5Smrg	libdir="$hardcode_libdirs"
45541f0ac6a5Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
45551f0ac6a5Smrg      fi
45561f0ac6a5Smrg      finalize_rpath="$rpath"
45571f0ac6a5Smrg
45581f0ac6a5Smrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
45591f0ac6a5Smrg	# Transform all the library objects into standard objects.
45601f0ac6a5Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45611f0ac6a5Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45621f0ac6a5Smrg      fi
45631f0ac6a5Smrg
45641f0ac6a5Smrg      dlsyms=
45651f0ac6a5Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
45661f0ac6a5Smrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
45671f0ac6a5Smrg	  dlsyms="${outputname}S.c"
45681f0ac6a5Smrg	else
45691f0ac6a5Smrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
45701f0ac6a5Smrg	fi
45711f0ac6a5Smrg      fi
45721f0ac6a5Smrg
45731f0ac6a5Smrg      if test -n "$dlsyms"; then
45741f0ac6a5Smrg	case $dlsyms in
45751f0ac6a5Smrg	"") ;;
45761f0ac6a5Smrg	*.c)
45771f0ac6a5Smrg	  # Discover the nlist of each of the dlfiles.
45781f0ac6a5Smrg	  nlist="$output_objdir/${outputname}.nm"
45791f0ac6a5Smrg
45801f0ac6a5Smrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
45811f0ac6a5Smrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
45821f0ac6a5Smrg
45831f0ac6a5Smrg	  # Parse the name list into a source file.
45841f0ac6a5Smrg	  $show "creating $output_objdir/$dlsyms"
45851f0ac6a5Smrg
45861f0ac6a5Smrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
45871f0ac6a5Smrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
45881f0ac6a5Smrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
45891f0ac6a5Smrg
45901f0ac6a5Smrg#ifdef __cplusplus
45911f0ac6a5Smrgextern \"C\" {
45921f0ac6a5Smrg#endif
45931f0ac6a5Smrg
45941f0ac6a5Smrg/* Prevent the only kind of declaration conflicts we can make. */
45951f0ac6a5Smrg#define lt_preloaded_symbols some_other_symbol
45961f0ac6a5Smrg
45971f0ac6a5Smrg/* External symbol declarations for the compiler. */\
45981f0ac6a5Smrg"
45991f0ac6a5Smrg
46001f0ac6a5Smrg	  if test "$dlself" = yes; then
46011f0ac6a5Smrg	    $show "generating symbol list for \`$output'"
46021f0ac6a5Smrg
46031f0ac6a5Smrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
46041f0ac6a5Smrg
46051f0ac6a5Smrg	    # Add our own program objects to the symbol list.
46061f0ac6a5Smrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
46071f0ac6a5Smrg	    for arg in $progfiles; do
46081f0ac6a5Smrg	      $show "extracting global C symbols from \`$arg'"
46091f0ac6a5Smrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46101f0ac6a5Smrg	    done
46111f0ac6a5Smrg
46121f0ac6a5Smrg	    if test -n "$exclude_expsyms"; then
46131f0ac6a5Smrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
46141f0ac6a5Smrg	      $run eval '$mv "$nlist"T "$nlist"'
46151f0ac6a5Smrg	    fi
46161f0ac6a5Smrg
46171f0ac6a5Smrg	    if test -n "$export_symbols_regex"; then
46181f0ac6a5Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
46191f0ac6a5Smrg	      $run eval '$mv "$nlist"T "$nlist"'
46201f0ac6a5Smrg	    fi
46211f0ac6a5Smrg
46221f0ac6a5Smrg	    # Prepare the list of exported symbols
46231f0ac6a5Smrg	    if test -z "$export_symbols"; then
46241f0ac6a5Smrg	      export_symbols="$output_objdir/$outputname.exp"
46251f0ac6a5Smrg	      $run $rm $export_symbols
46261f0ac6a5Smrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
46271f0ac6a5Smrg              case $host in
46281f0ac6a5Smrg              *cygwin* | *mingw* )
46291f0ac6a5Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46301f0ac6a5Smrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
46311f0ac6a5Smrg                ;;
46321f0ac6a5Smrg              esac
46331f0ac6a5Smrg	    else
46341f0ac6a5Smrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
46351f0ac6a5Smrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
46361f0ac6a5Smrg	      $run eval 'mv "$nlist"T "$nlist"'
46371f0ac6a5Smrg              case $host in
46381f0ac6a5Smrg              *cygwin* | *mingw* )
46391f0ac6a5Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46401f0ac6a5Smrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
46411f0ac6a5Smrg                ;;
46421f0ac6a5Smrg              esac
46431f0ac6a5Smrg	    fi
46441f0ac6a5Smrg	  fi
46451f0ac6a5Smrg
46461f0ac6a5Smrg	  for arg in $dlprefiles; do
46471f0ac6a5Smrg	    $show "extracting global C symbols from \`$arg'"
46481f0ac6a5Smrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
46491f0ac6a5Smrg	    $run eval '$echo ": $name " >> "$nlist"'
46501f0ac6a5Smrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46511f0ac6a5Smrg	  done
46521f0ac6a5Smrg
46531f0ac6a5Smrg	  if test -z "$run"; then
46541f0ac6a5Smrg	    # Make sure we have at least an empty file.
46551f0ac6a5Smrg	    test -f "$nlist" || : > "$nlist"
46561f0ac6a5Smrg
46571f0ac6a5Smrg	    if test -n "$exclude_expsyms"; then
46581f0ac6a5Smrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
46591f0ac6a5Smrg	      $mv "$nlist"T "$nlist"
46601f0ac6a5Smrg	    fi
46611f0ac6a5Smrg
46621f0ac6a5Smrg	    # Try sorting and uniquifying the output.
46631f0ac6a5Smrg	    if grep -v "^: " < "$nlist" |
46641f0ac6a5Smrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
46651f0ac6a5Smrg		  sort -k 3
46661f0ac6a5Smrg		else
46671f0ac6a5Smrg		  sort +2
46681f0ac6a5Smrg		fi |
46691f0ac6a5Smrg		uniq > "$nlist"S; then
46701f0ac6a5Smrg	      :
46711f0ac6a5Smrg	    else
46721f0ac6a5Smrg	      grep -v "^: " < "$nlist" > "$nlist"S
46731f0ac6a5Smrg	    fi
46741f0ac6a5Smrg
46751f0ac6a5Smrg	    if test -f "$nlist"S; then
46761f0ac6a5Smrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
46771f0ac6a5Smrg	    else
46781f0ac6a5Smrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
46791f0ac6a5Smrg	    fi
46801f0ac6a5Smrg
46811f0ac6a5Smrg	    $echo >> "$output_objdir/$dlsyms" "\
46821f0ac6a5Smrg
46831f0ac6a5Smrg#undef lt_preloaded_symbols
46841f0ac6a5Smrg
46851f0ac6a5Smrg#if defined (__STDC__) && __STDC__
46861f0ac6a5Smrg# define lt_ptr void *
46871f0ac6a5Smrg#else
46881f0ac6a5Smrg# define lt_ptr char *
46891f0ac6a5Smrg# define const
46901f0ac6a5Smrg#endif
46911f0ac6a5Smrg
46921f0ac6a5Smrg/* The mapping between symbol names and symbols. */
46931f0ac6a5Smrg"
46941f0ac6a5Smrg
46951f0ac6a5Smrg	    case $host in
46961f0ac6a5Smrg	    *cygwin* | *mingw* )
46971f0ac6a5Smrg	  $echo >> "$output_objdir/$dlsyms" "\
46981f0ac6a5Smrg/* DATA imports from DLLs on WIN32 can't be const, because
46991f0ac6a5Smrg   runtime relocations are performed -- see ld's documentation
47001f0ac6a5Smrg   on pseudo-relocs */
47011f0ac6a5Smrgstruct {
47021f0ac6a5Smrg"
47031f0ac6a5Smrg	      ;;
47041f0ac6a5Smrg	    * )
47051f0ac6a5Smrg	  $echo >> "$output_objdir/$dlsyms" "\
47061f0ac6a5Smrgconst struct {
47071f0ac6a5Smrg"
47081f0ac6a5Smrg	      ;;
47091f0ac6a5Smrg	    esac
47101f0ac6a5Smrg
47111f0ac6a5Smrg
47121f0ac6a5Smrg	  $echo >> "$output_objdir/$dlsyms" "\
47131f0ac6a5Smrg  const char *name;
47141f0ac6a5Smrg  lt_ptr address;
47151f0ac6a5Smrg}
47161f0ac6a5Smrglt_preloaded_symbols[] =
47171f0ac6a5Smrg{\
47181f0ac6a5Smrg"
47191f0ac6a5Smrg
47201f0ac6a5Smrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
47211f0ac6a5Smrg
47221f0ac6a5Smrg	    $echo >> "$output_objdir/$dlsyms" "\
47231f0ac6a5Smrg  {0, (lt_ptr) 0}
47241f0ac6a5Smrg};
47251f0ac6a5Smrg
47261f0ac6a5Smrg/* This works around a problem in FreeBSD linker */
47271f0ac6a5Smrg#ifdef FREEBSD_WORKAROUND
47281f0ac6a5Smrgstatic const void *lt_preloaded_setup() {
47291f0ac6a5Smrg  return lt_preloaded_symbols;
47301f0ac6a5Smrg}
47311f0ac6a5Smrg#endif
47321f0ac6a5Smrg
47331f0ac6a5Smrg#ifdef __cplusplus
47341f0ac6a5Smrg}
47351f0ac6a5Smrg#endif\
47361f0ac6a5Smrg"
47371f0ac6a5Smrg	  fi
47381f0ac6a5Smrg
47391f0ac6a5Smrg	  pic_flag_for_symtable=
47401f0ac6a5Smrg	  case $host in
47411f0ac6a5Smrg	  # compiling the symbol table file with pic_flag works around
47421f0ac6a5Smrg	  # a FreeBSD bug that causes programs to crash when -lm is
47431f0ac6a5Smrg	  # linked before any other PIC object.  But we must not use
47441f0ac6a5Smrg	  # pic_flag when linking with -static.  The problem exists in
47451f0ac6a5Smrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
47461f0ac6a5Smrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
47471f0ac6a5Smrg	    case "$compile_command " in
47481f0ac6a5Smrg	    *" -static "*) ;;
47491f0ac6a5Smrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
47501f0ac6a5Smrg	    esac;;
47511f0ac6a5Smrg	  *-*-hpux*)
47521f0ac6a5Smrg	    case "$compile_command " in
47531f0ac6a5Smrg	    *" -static "*) ;;
47541f0ac6a5Smrg	    *) pic_flag_for_symtable=" $pic_flag";;
47551f0ac6a5Smrg	    esac
47561f0ac6a5Smrg	  esac
47571f0ac6a5Smrg
47581f0ac6a5Smrg	  # Now compile the dynamic symbol file.
47591f0ac6a5Smrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
47601f0ac6a5Smrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
47611f0ac6a5Smrg
47621f0ac6a5Smrg	  # Clean up the generated files.
47631f0ac6a5Smrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
47641f0ac6a5Smrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
47651f0ac6a5Smrg
47661f0ac6a5Smrg	  # Transform the symbol file into the correct name.
47671f0ac6a5Smrg          case $host in
47681f0ac6a5Smrg          *cygwin* | *mingw* )
47691f0ac6a5Smrg            if test -f "$output_objdir/${outputname}.def" ; then
4770e5410a46Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4771e5410a46Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47721f0ac6a5Smrg            else
4773e5410a46Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4774e5410a46Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47751f0ac6a5Smrg             fi
47761f0ac6a5Smrg            ;;
47771f0ac6a5Smrg          * )
4778e5410a46Smrg            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4779e5410a46Smrg            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47801f0ac6a5Smrg            ;;
47811f0ac6a5Smrg          esac
47821f0ac6a5Smrg	  ;;
47831f0ac6a5Smrg	*)
47841f0ac6a5Smrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
47851f0ac6a5Smrg	  exit $EXIT_FAILURE
47861f0ac6a5Smrg	  ;;
47871f0ac6a5Smrg	esac
47881f0ac6a5Smrg      else
47891f0ac6a5Smrg	# We keep going just in case the user didn't refer to
47901f0ac6a5Smrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
47911f0ac6a5Smrg	# really was required.
47921f0ac6a5Smrg
47931f0ac6a5Smrg	# Nullify the symbol file.
4794e5410a46Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4795e5410a46Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
47961f0ac6a5Smrg      fi
47971f0ac6a5Smrg
47981f0ac6a5Smrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
47991f0ac6a5Smrg	# Replace the output file specification.
4800e5410a46Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
48011f0ac6a5Smrg	link_command="$compile_command$compile_rpath"
48021f0ac6a5Smrg
48031f0ac6a5Smrg	# We have no uninstalled library dependencies, so finalize right now.
48041f0ac6a5Smrg	$show "$link_command"
48051f0ac6a5Smrg	$run eval "$link_command"
48061f0ac6a5Smrg	exit_status=$?
48071f0ac6a5Smrg
48081f0ac6a5Smrg	# Delete the generated files.
48091f0ac6a5Smrg	if test -n "$dlsyms"; then
48101f0ac6a5Smrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
48111f0ac6a5Smrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
48121f0ac6a5Smrg	fi
48131f0ac6a5Smrg
48141f0ac6a5Smrg	exit $exit_status
48151f0ac6a5Smrg      fi
48161f0ac6a5Smrg
48171f0ac6a5Smrg      if test -n "$shlibpath_var"; then
48181f0ac6a5Smrg	# We should set the shlibpath_var
48191f0ac6a5Smrg	rpath=
48201f0ac6a5Smrg	for dir in $temp_rpath; do
48211f0ac6a5Smrg	  case $dir in
48221f0ac6a5Smrg	  [\\/]* | [A-Za-z]:[\\/]*)
48231f0ac6a5Smrg	    # Absolute path.
48241f0ac6a5Smrg	    rpath="$rpath$dir:"
48251f0ac6a5Smrg	    ;;
48261f0ac6a5Smrg	  *)
48271f0ac6a5Smrg	    # Relative path: add a thisdir entry.
48281f0ac6a5Smrg	    rpath="$rpath\$thisdir/$dir:"
48291f0ac6a5Smrg	    ;;
48301f0ac6a5Smrg	  esac
48311f0ac6a5Smrg	done
48321f0ac6a5Smrg	temp_rpath="$rpath"
48331f0ac6a5Smrg      fi
48341f0ac6a5Smrg
48351f0ac6a5Smrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
48361f0ac6a5Smrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
48371f0ac6a5Smrg      fi
48381f0ac6a5Smrg      if test -n "$finalize_shlibpath"; then
48391f0ac6a5Smrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
48401f0ac6a5Smrg      fi
48411f0ac6a5Smrg
48421f0ac6a5Smrg      compile_var=
48431f0ac6a5Smrg      finalize_var=
48441f0ac6a5Smrg      if test -n "$runpath_var"; then
48451f0ac6a5Smrg	if test -n "$perm_rpath"; then
48461f0ac6a5Smrg	  # We should set the runpath_var.
48471f0ac6a5Smrg	  rpath=
48481f0ac6a5Smrg	  for dir in $perm_rpath; do
48491f0ac6a5Smrg	    rpath="$rpath$dir:"
48501f0ac6a5Smrg	  done
48511f0ac6a5Smrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
48521f0ac6a5Smrg	fi
48531f0ac6a5Smrg	if test -n "$finalize_perm_rpath"; then
48541f0ac6a5Smrg	  # We should set the runpath_var.
48551f0ac6a5Smrg	  rpath=
48561f0ac6a5Smrg	  for dir in $finalize_perm_rpath; do
48571f0ac6a5Smrg	    rpath="$rpath$dir:"
48581f0ac6a5Smrg	  done
48591f0ac6a5Smrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
48601f0ac6a5Smrg	fi
48611f0ac6a5Smrg      fi
48621f0ac6a5Smrg
48631f0ac6a5Smrg      if test "$no_install" = yes; then
48641f0ac6a5Smrg	# We don't need to create a wrapper script.
48651f0ac6a5Smrg	link_command="$compile_var$compile_command$compile_rpath"
48661f0ac6a5Smrg	# Replace the output file specification.
48671f0ac6a5Smrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
48681f0ac6a5Smrg	# Delete the old output file.
48691f0ac6a5Smrg	$run $rm $output
48701f0ac6a5Smrg	# Link the executable and exit
48711f0ac6a5Smrg	$show "$link_command"
48721f0ac6a5Smrg	$run eval "$link_command" || exit $?
48731f0ac6a5Smrg	exit $EXIT_SUCCESS
48741f0ac6a5Smrg      fi
48751f0ac6a5Smrg
48761f0ac6a5Smrg      if test "$hardcode_action" = relink; then
48771f0ac6a5Smrg	# Fast installation is not supported
48781f0ac6a5Smrg	link_command="$compile_var$compile_command$compile_rpath"
48791f0ac6a5Smrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
48801f0ac6a5Smrg
48811f0ac6a5Smrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
48821f0ac6a5Smrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
48831f0ac6a5Smrg      else
48841f0ac6a5Smrg	if test "$fast_install" != no; then
48851f0ac6a5Smrg	  link_command="$finalize_var$compile_command$finalize_rpath"
48861f0ac6a5Smrg	  if test "$fast_install" = yes; then
4887e5410a46Smrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
48881f0ac6a5Smrg	  else
48891f0ac6a5Smrg	    # fast_install is set to needless
48901f0ac6a5Smrg	    relink_command=
48911f0ac6a5Smrg	  fi
48921f0ac6a5Smrg	else
48931f0ac6a5Smrg	  link_command="$compile_var$compile_command$compile_rpath"
48941f0ac6a5Smrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
48951f0ac6a5Smrg	fi
48961f0ac6a5Smrg      fi
48971f0ac6a5Smrg
48981f0ac6a5Smrg      # Replace the output file specification.
48991f0ac6a5Smrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
49001f0ac6a5Smrg
49011f0ac6a5Smrg      # Delete the old output files.
49021f0ac6a5Smrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
49031f0ac6a5Smrg
49041f0ac6a5Smrg      $show "$link_command"
49051f0ac6a5Smrg      $run eval "$link_command" || exit $?
49061f0ac6a5Smrg
49071f0ac6a5Smrg      # Now create the wrapper script.
49081f0ac6a5Smrg      $show "creating $output"
49091f0ac6a5Smrg
49101f0ac6a5Smrg      # Quote the relink command for shipping.
49111f0ac6a5Smrg      if test -n "$relink_command"; then
49121f0ac6a5Smrg	# Preserve any variables that may affect compiler behavior
49131f0ac6a5Smrg	for var in $variables_saved_for_relink; do
49141f0ac6a5Smrg	  if eval test -z \"\${$var+set}\"; then
49151f0ac6a5Smrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
49161f0ac6a5Smrg	  elif eval var_value=\$$var; test -z "$var_value"; then
49171f0ac6a5Smrg	    relink_command="$var=; export $var; $relink_command"
49181f0ac6a5Smrg	  else
49191f0ac6a5Smrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
49201f0ac6a5Smrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
49211f0ac6a5Smrg	  fi
49221f0ac6a5Smrg	done
49231f0ac6a5Smrg	relink_command="(cd `pwd`; $relink_command)"
4924e5410a46Smrg	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
49251f0ac6a5Smrg      fi
49261f0ac6a5Smrg
49271f0ac6a5Smrg      # Quote $echo for shipping.
49281f0ac6a5Smrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
49291f0ac6a5Smrg	case $progpath in
49301f0ac6a5Smrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
49311f0ac6a5Smrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
49321f0ac6a5Smrg	esac
49331f0ac6a5Smrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
49341f0ac6a5Smrg      else
49351f0ac6a5Smrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
49361f0ac6a5Smrg      fi
49371f0ac6a5Smrg
49381f0ac6a5Smrg      # Only actually do things if our run command is non-null.
49391f0ac6a5Smrg      if test -z "$run"; then
49401f0ac6a5Smrg	# win32 will think the script is a binary if it has
49411f0ac6a5Smrg	# a .exe suffix, so we strip it off here.
49421f0ac6a5Smrg	case $output in
49431f0ac6a5Smrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
49441f0ac6a5Smrg	esac
49451f0ac6a5Smrg	# test for cygwin because mv fails w/o .exe extensions
49461f0ac6a5Smrg	case $host in
49471f0ac6a5Smrg	  *cygwin*)
49481f0ac6a5Smrg	    exeext=.exe
49491f0ac6a5Smrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
49501f0ac6a5Smrg	  *) exeext= ;;
49511f0ac6a5Smrg	esac
49521f0ac6a5Smrg	case $host in
49531f0ac6a5Smrg	  *cygwin* | *mingw* )
49541f0ac6a5Smrg            output_name=`basename $output`
49551f0ac6a5Smrg            output_path=`dirname $output`
49561f0ac6a5Smrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
49571f0ac6a5Smrg            cwrapper="$output_path/$output_name.exe"
49581f0ac6a5Smrg            $rm $cwrappersource $cwrapper
49591f0ac6a5Smrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
49601f0ac6a5Smrg
49611f0ac6a5Smrg	    cat > $cwrappersource <<EOF
49621f0ac6a5Smrg
49631f0ac6a5Smrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
49641f0ac6a5Smrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
49651f0ac6a5Smrg
49661f0ac6a5Smrg   The $output program cannot be directly executed until all the libtool
49671f0ac6a5Smrg   libraries that it depends on are installed.
49681f0ac6a5Smrg
49691f0ac6a5Smrg   This wrapper executable should never be moved out of the build directory.
49701f0ac6a5Smrg   If it is, it will not operate correctly.
49711f0ac6a5Smrg
49721f0ac6a5Smrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
49731f0ac6a5Smrg   but could eventually absorb all of the scripts functionality and
49741f0ac6a5Smrg   exec $objdir/$outputname directly.
49751f0ac6a5Smrg*/
49761f0ac6a5SmrgEOF
49771f0ac6a5Smrg	    cat >> $cwrappersource<<"EOF"
49781f0ac6a5Smrg#include <stdio.h>
49791f0ac6a5Smrg#include <stdlib.h>
49801f0ac6a5Smrg#include <unistd.h>
49811f0ac6a5Smrg#include <malloc.h>
49821f0ac6a5Smrg#include <stdarg.h>
49831f0ac6a5Smrg#include <assert.h>
49841f0ac6a5Smrg#include <string.h>
49851f0ac6a5Smrg#include <ctype.h>
49861f0ac6a5Smrg#include <sys/stat.h>
49871f0ac6a5Smrg
49881f0ac6a5Smrg#if defined(PATH_MAX)
49891f0ac6a5Smrg# define LT_PATHMAX PATH_MAX
49901f0ac6a5Smrg#elif defined(MAXPATHLEN)
49911f0ac6a5Smrg# define LT_PATHMAX MAXPATHLEN
49921f0ac6a5Smrg#else
49931f0ac6a5Smrg# define LT_PATHMAX 1024
49941f0ac6a5Smrg#endif
49951f0ac6a5Smrg
49961f0ac6a5Smrg#ifndef DIR_SEPARATOR
49971f0ac6a5Smrg# define DIR_SEPARATOR '/'
49981f0ac6a5Smrg# define PATH_SEPARATOR ':'
49991f0ac6a5Smrg#endif
50001f0ac6a5Smrg
50011f0ac6a5Smrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
50021f0ac6a5Smrg  defined (__OS2__)
50031f0ac6a5Smrg# define HAVE_DOS_BASED_FILE_SYSTEM
50041f0ac6a5Smrg# ifndef DIR_SEPARATOR_2
50051f0ac6a5Smrg#  define DIR_SEPARATOR_2 '\\'
50061f0ac6a5Smrg# endif
50071f0ac6a5Smrg# ifndef PATH_SEPARATOR_2
50081f0ac6a5Smrg#  define PATH_SEPARATOR_2 ';'
50091f0ac6a5Smrg# endif
50101f0ac6a5Smrg#endif
50111f0ac6a5Smrg
50121f0ac6a5Smrg#ifndef DIR_SEPARATOR_2
50131f0ac6a5Smrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
50141f0ac6a5Smrg#else /* DIR_SEPARATOR_2 */
50151f0ac6a5Smrg# define IS_DIR_SEPARATOR(ch) \
50161f0ac6a5Smrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
50171f0ac6a5Smrg#endif /* DIR_SEPARATOR_2 */
50181f0ac6a5Smrg
50191f0ac6a5Smrg#ifndef PATH_SEPARATOR_2
50201f0ac6a5Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
50211f0ac6a5Smrg#else /* PATH_SEPARATOR_2 */
50221f0ac6a5Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
50231f0ac6a5Smrg#endif /* PATH_SEPARATOR_2 */
50241f0ac6a5Smrg
50251f0ac6a5Smrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
50261f0ac6a5Smrg#define XFREE(stale) do { \
50271f0ac6a5Smrg  if (stale) { free ((void *) stale); stale = 0; } \
50281f0ac6a5Smrg} while (0)
50291f0ac6a5Smrg
50301f0ac6a5Smrg/* -DDEBUG is fairly common in CFLAGS.  */
50311f0ac6a5Smrg#undef DEBUG
50321f0ac6a5Smrg#if defined DEBUGWRAPPER
50331f0ac6a5Smrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
50341f0ac6a5Smrg#else
50351f0ac6a5Smrg# define DEBUG(format, ...)
50361f0ac6a5Smrg#endif
50371f0ac6a5Smrg
50381f0ac6a5Smrgconst char *program_name = NULL;
50391f0ac6a5Smrg
50401f0ac6a5Smrgvoid * xmalloc (size_t num);
50411f0ac6a5Smrgchar * xstrdup (const char *string);
50421f0ac6a5Smrgconst char * base_name (const char *name);
50431f0ac6a5Smrgchar * find_executable(const char *wrapper);
50441f0ac6a5Smrgint    check_executable(const char *path);
50451f0ac6a5Smrgchar * strendzap(char *str, const char *pat);
50461f0ac6a5Smrgvoid lt_fatal (const char *message, ...);
50471f0ac6a5Smrg
50481f0ac6a5Smrgint
50491f0ac6a5Smrgmain (int argc, char *argv[])
50501f0ac6a5Smrg{
50511f0ac6a5Smrg  char **newargz;
50521f0ac6a5Smrg  int i;
50531f0ac6a5Smrg
50541f0ac6a5Smrg  program_name = (char *) xstrdup (base_name (argv[0]));
50551f0ac6a5Smrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
50561f0ac6a5Smrg  DEBUG("(main) program_name : %s\n",program_name);
50571f0ac6a5Smrg  newargz = XMALLOC(char *, argc+2);
50581f0ac6a5SmrgEOF
50591f0ac6a5Smrg
50601f0ac6a5Smrg            cat >> $cwrappersource <<EOF
50611f0ac6a5Smrg  newargz[0] = (char *) xstrdup("$SHELL");
50621f0ac6a5SmrgEOF
50631f0ac6a5Smrg
50641f0ac6a5Smrg            cat >> $cwrappersource <<"EOF"
50651f0ac6a5Smrg  newargz[1] = find_executable(argv[0]);
50661f0ac6a5Smrg  if (newargz[1] == NULL)
50671f0ac6a5Smrg    lt_fatal("Couldn't find %s", argv[0]);
50681f0ac6a5Smrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
50691f0ac6a5Smrg  /* we know the script has the same name, without the .exe */
50701f0ac6a5Smrg  /* so make sure newargz[1] doesn't end in .exe */
50711f0ac6a5Smrg  strendzap(newargz[1],".exe");
50721f0ac6a5Smrg  for (i = 1; i < argc; i++)
50731f0ac6a5Smrg    newargz[i+1] = xstrdup(argv[i]);
50741f0ac6a5Smrg  newargz[argc+1] = NULL;
50751f0ac6a5Smrg
50761f0ac6a5Smrg  for (i=0; i<argc+1; i++)
50771f0ac6a5Smrg  {
50781f0ac6a5Smrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
50791f0ac6a5Smrg    ;
50801f0ac6a5Smrg  }
50811f0ac6a5Smrg
50821f0ac6a5SmrgEOF
50831f0ac6a5Smrg
50841f0ac6a5Smrg            case $host_os in
50851f0ac6a5Smrg              mingw*)
50861f0ac6a5Smrg                cat >> $cwrappersource <<EOF
50871f0ac6a5Smrg  execv("$SHELL",(char const **)newargz);
50881f0ac6a5SmrgEOF
50891f0ac6a5Smrg              ;;
50901f0ac6a5Smrg              *)
50911f0ac6a5Smrg                cat >> $cwrappersource <<EOF
50921f0ac6a5Smrg  execv("$SHELL",newargz);
50931f0ac6a5SmrgEOF
50941f0ac6a5Smrg              ;;
50951f0ac6a5Smrg            esac
50961f0ac6a5Smrg
50971f0ac6a5Smrg            cat >> $cwrappersource <<"EOF"
50981f0ac6a5Smrg  return 127;
50991f0ac6a5Smrg}
51001f0ac6a5Smrg
51011f0ac6a5Smrgvoid *
51021f0ac6a5Smrgxmalloc (size_t num)
51031f0ac6a5Smrg{
51041f0ac6a5Smrg  void * p = (void *) malloc (num);
51051f0ac6a5Smrg  if (!p)
51061f0ac6a5Smrg    lt_fatal ("Memory exhausted");
51071f0ac6a5Smrg
51081f0ac6a5Smrg  return p;
51091f0ac6a5Smrg}
51101f0ac6a5Smrg
51111f0ac6a5Smrgchar *
51121f0ac6a5Smrgxstrdup (const char *string)
51131f0ac6a5Smrg{
51141f0ac6a5Smrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
51151f0ac6a5Smrg;
51161f0ac6a5Smrg}
51171f0ac6a5Smrg
51181f0ac6a5Smrgconst char *
51191f0ac6a5Smrgbase_name (const char *name)
51201f0ac6a5Smrg{
51211f0ac6a5Smrg  const char *base;
51221f0ac6a5Smrg
51231f0ac6a5Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51241f0ac6a5Smrg  /* Skip over the disk name in MSDOS pathnames. */
51251f0ac6a5Smrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
51261f0ac6a5Smrg    name += 2;
51271f0ac6a5Smrg#endif
51281f0ac6a5Smrg
51291f0ac6a5Smrg  for (base = name; *name; name++)
51301f0ac6a5Smrg    if (IS_DIR_SEPARATOR (*name))
51311f0ac6a5Smrg      base = name + 1;
51321f0ac6a5Smrg  return base;
51331f0ac6a5Smrg}
51341f0ac6a5Smrg
51351f0ac6a5Smrgint
51361f0ac6a5Smrgcheck_executable(const char * path)
51371f0ac6a5Smrg{
51381f0ac6a5Smrg  struct stat st;
51391f0ac6a5Smrg
51401f0ac6a5Smrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
51411f0ac6a5Smrg  if ((!path) || (!*path))
51421f0ac6a5Smrg    return 0;
51431f0ac6a5Smrg
51441f0ac6a5Smrg  if ((stat (path, &st) >= 0) &&
51451f0ac6a5Smrg      (
51461f0ac6a5Smrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
51471f0ac6a5Smrg#if defined (S_IXOTH)
51481f0ac6a5Smrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
51491f0ac6a5Smrg#endif
51501f0ac6a5Smrg#if defined (S_IXGRP)
51511f0ac6a5Smrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
51521f0ac6a5Smrg#endif
51531f0ac6a5Smrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
51541f0ac6a5Smrg      )
51551f0ac6a5Smrg    return 1;
51561f0ac6a5Smrg  else
51571f0ac6a5Smrg    return 0;
51581f0ac6a5Smrg}
51591f0ac6a5Smrg
51601f0ac6a5Smrg/* Searches for the full path of the wrapper.  Returns
51611f0ac6a5Smrg   newly allocated full path name if found, NULL otherwise */
51621f0ac6a5Smrgchar *
51631f0ac6a5Smrgfind_executable (const char* wrapper)
51641f0ac6a5Smrg{
51651f0ac6a5Smrg  int has_slash = 0;
51661f0ac6a5Smrg  const char* p;
51671f0ac6a5Smrg  const char* p_next;
51681f0ac6a5Smrg  /* static buffer for getcwd */
51691f0ac6a5Smrg  char tmp[LT_PATHMAX + 1];
51701f0ac6a5Smrg  int tmp_len;
51711f0ac6a5Smrg  char* concat_name;
51721f0ac6a5Smrg
51731f0ac6a5Smrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
51741f0ac6a5Smrg
51751f0ac6a5Smrg  if ((wrapper == NULL) || (*wrapper == '\0'))
51761f0ac6a5Smrg    return NULL;
51771f0ac6a5Smrg
51781f0ac6a5Smrg  /* Absolute path? */
51791f0ac6a5Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51801f0ac6a5Smrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
51811f0ac6a5Smrg  {
51821f0ac6a5Smrg    concat_name = xstrdup (wrapper);
51831f0ac6a5Smrg    if (check_executable(concat_name))
51841f0ac6a5Smrg      return concat_name;
51851f0ac6a5Smrg    XFREE(concat_name);
51861f0ac6a5Smrg  }
51871f0ac6a5Smrg  else
51881f0ac6a5Smrg  {
51891f0ac6a5Smrg#endif
51901f0ac6a5Smrg    if (IS_DIR_SEPARATOR (wrapper[0]))
51911f0ac6a5Smrg    {
51921f0ac6a5Smrg      concat_name = xstrdup (wrapper);
51931f0ac6a5Smrg      if (check_executable(concat_name))
51941f0ac6a5Smrg        return concat_name;
51951f0ac6a5Smrg      XFREE(concat_name);
51961f0ac6a5Smrg    }
51971f0ac6a5Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51981f0ac6a5Smrg  }
51991f0ac6a5Smrg#endif
52001f0ac6a5Smrg
52011f0ac6a5Smrg  for (p = wrapper; *p; p++)
52021f0ac6a5Smrg    if (*p == '/')
52031f0ac6a5Smrg    {
52041f0ac6a5Smrg      has_slash = 1;
52051f0ac6a5Smrg      break;
52061f0ac6a5Smrg    }
52071f0ac6a5Smrg  if (!has_slash)
52081f0ac6a5Smrg  {
52091f0ac6a5Smrg    /* no slashes; search PATH */
52101f0ac6a5Smrg    const char* path = getenv ("PATH");
52111f0ac6a5Smrg    if (path != NULL)
52121f0ac6a5Smrg    {
52131f0ac6a5Smrg      for (p = path; *p; p = p_next)
52141f0ac6a5Smrg      {
52151f0ac6a5Smrg        const char* q;
52161f0ac6a5Smrg        size_t p_len;
52171f0ac6a5Smrg        for (q = p; *q; q++)
52181f0ac6a5Smrg          if (IS_PATH_SEPARATOR(*q))
52191f0ac6a5Smrg            break;
52201f0ac6a5Smrg        p_len = q - p;
52211f0ac6a5Smrg        p_next = (*q == '\0' ? q : q + 1);
52221f0ac6a5Smrg        if (p_len == 0)
52231f0ac6a5Smrg        {
52241f0ac6a5Smrg          /* empty path: current directory */
52251f0ac6a5Smrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
52261f0ac6a5Smrg            lt_fatal ("getcwd failed");
52271f0ac6a5Smrg          tmp_len = strlen(tmp);
52281f0ac6a5Smrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52291f0ac6a5Smrg          memcpy (concat_name, tmp, tmp_len);
52301f0ac6a5Smrg          concat_name[tmp_len] = '/';
52311f0ac6a5Smrg          strcpy (concat_name + tmp_len + 1, wrapper);
52321f0ac6a5Smrg        }
52331f0ac6a5Smrg        else
52341f0ac6a5Smrg        {
52351f0ac6a5Smrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
52361f0ac6a5Smrg          memcpy (concat_name, p, p_len);
52371f0ac6a5Smrg          concat_name[p_len] = '/';
52381f0ac6a5Smrg          strcpy (concat_name + p_len + 1, wrapper);
52391f0ac6a5Smrg        }
52401f0ac6a5Smrg        if (check_executable(concat_name))
52411f0ac6a5Smrg          return concat_name;
52421f0ac6a5Smrg        XFREE(concat_name);
52431f0ac6a5Smrg      }
52441f0ac6a5Smrg    }
52451f0ac6a5Smrg    /* not found in PATH; assume curdir */
52461f0ac6a5Smrg  }
52471f0ac6a5Smrg  /* Relative path | not found in path: prepend cwd */
52481f0ac6a5Smrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
52491f0ac6a5Smrg    lt_fatal ("getcwd failed");
52501f0ac6a5Smrg  tmp_len = strlen(tmp);
52511f0ac6a5Smrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52521f0ac6a5Smrg  memcpy (concat_name, tmp, tmp_len);
52531f0ac6a5Smrg  concat_name[tmp_len] = '/';
52541f0ac6a5Smrg  strcpy (concat_name + tmp_len + 1, wrapper);
52551f0ac6a5Smrg
52561f0ac6a5Smrg  if (check_executable(concat_name))
52571f0ac6a5Smrg    return concat_name;
52581f0ac6a5Smrg  XFREE(concat_name);
52591f0ac6a5Smrg  return NULL;
52601f0ac6a5Smrg}
52611f0ac6a5Smrg
52621f0ac6a5Smrgchar *
52631f0ac6a5Smrgstrendzap(char *str, const char *pat)
52641f0ac6a5Smrg{
52651f0ac6a5Smrg  size_t len, patlen;
52661f0ac6a5Smrg
52671f0ac6a5Smrg  assert(str != NULL);
52681f0ac6a5Smrg  assert(pat != NULL);
52691f0ac6a5Smrg
52701f0ac6a5Smrg  len = strlen(str);
52711f0ac6a5Smrg  patlen = strlen(pat);
52721f0ac6a5Smrg
52731f0ac6a5Smrg  if (patlen <= len)
52741f0ac6a5Smrg  {
52751f0ac6a5Smrg    str += len - patlen;
52761f0ac6a5Smrg    if (strcmp(str, pat) == 0)
52771f0ac6a5Smrg      *str = '\0';
52781f0ac6a5Smrg  }
52791f0ac6a5Smrg  return str;
52801f0ac6a5Smrg}
52811f0ac6a5Smrg
52821f0ac6a5Smrgstatic void
52831f0ac6a5Smrglt_error_core (int exit_status, const char * mode,
52841f0ac6a5Smrg          const char * message, va_list ap)
52851f0ac6a5Smrg{
52861f0ac6a5Smrg  fprintf (stderr, "%s: %s: ", program_name, mode);
52871f0ac6a5Smrg  vfprintf (stderr, message, ap);
52881f0ac6a5Smrg  fprintf (stderr, ".\n");
52891f0ac6a5Smrg
52901f0ac6a5Smrg  if (exit_status >= 0)
52911f0ac6a5Smrg    exit (exit_status);
52921f0ac6a5Smrg}
52931f0ac6a5Smrg
52941f0ac6a5Smrgvoid
52951f0ac6a5Smrglt_fatal (const char *message, ...)
52961f0ac6a5Smrg{
52971f0ac6a5Smrg  va_list ap;
52981f0ac6a5Smrg  va_start (ap, message);
52991f0ac6a5Smrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
53001f0ac6a5Smrg  va_end (ap);
53011f0ac6a5Smrg}
53021f0ac6a5SmrgEOF
53031f0ac6a5Smrg          # we should really use a build-platform specific compiler
53041f0ac6a5Smrg          # here, but OTOH, the wrappers (shell script and this C one)
53051f0ac6a5Smrg          # are only useful if you want to execute the "real" binary.
53061f0ac6a5Smrg          # Since the "real" binary is built for $host, then this
53071f0ac6a5Smrg          # wrapper might as well be built for $host, too.
53081f0ac6a5Smrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
53091f0ac6a5Smrg          ;;
53101f0ac6a5Smrg        esac
53111f0ac6a5Smrg        $rm $output
53121f0ac6a5Smrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
53131f0ac6a5Smrg
53141f0ac6a5Smrg	$echo > $output "\
53151f0ac6a5Smrg#! $SHELL
53161f0ac6a5Smrg
53171f0ac6a5Smrg# $output - temporary wrapper script for $objdir/$outputname
53181f0ac6a5Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
53191f0ac6a5Smrg#
53201f0ac6a5Smrg# The $output program cannot be directly executed until all the libtool
53211f0ac6a5Smrg# libraries that it depends on are installed.
53221f0ac6a5Smrg#
53231f0ac6a5Smrg# This wrapper script should never be moved out of the build directory.
53241f0ac6a5Smrg# If it is, it will not operate correctly.
53251f0ac6a5Smrg
53261f0ac6a5Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
53271f0ac6a5Smrg# metacharacters that are still active within double-quoted strings.
53281f0ac6a5SmrgXsed='${SED} -e 1s/^X//'
53291f0ac6a5Smrgsed_quote_subst='$sed_quote_subst'
53301f0ac6a5Smrg
5331e5410a46Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5332e5410a46Smrgif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5333e5410a46Smrg  emulate sh
5334e5410a46Smrg  NULLCMD=:
5335e5410a46Smrg  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5336e5410a46Smrg  # is contrary to our usage.  Disable this feature.
5337e5410a46Smrg  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5338e5410a46Smrg  setopt NO_GLOB_SUBST
5339e5410a46Smrgelse
5340e5410a46Smrg  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5341e5410a46Smrgfi
5342e5410a46SmrgBIN_SH=xpg4; export BIN_SH # for Tru64
5343e5410a46SmrgDUALCASE=1; export DUALCASE # for MKS sh
5344e5410a46Smrg
53451f0ac6a5Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout
53461f0ac6a5Smrg# if CDPATH is set.
53471f0ac6a5Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
53481f0ac6a5Smrg
53491f0ac6a5Smrgrelink_command=\"$relink_command\"
53501f0ac6a5Smrg
53511f0ac6a5Smrg# This environment variable determines our operation mode.
53521f0ac6a5Smrgif test \"\$libtool_install_magic\" = \"$magic\"; then
53531f0ac6a5Smrg  # install mode needs the following variable:
53541f0ac6a5Smrg  notinst_deplibs='$notinst_deplibs'
53551f0ac6a5Smrgelse
53561f0ac6a5Smrg  # When we are sourced in execute mode, \$file and \$echo are already set.
53571f0ac6a5Smrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
53581f0ac6a5Smrg    echo=\"$qecho\"
53591f0ac6a5Smrg    file=\"\$0\"
53601f0ac6a5Smrg    # Make sure echo works.
53611f0ac6a5Smrg    if test \"X\$1\" = X--no-reexec; then
53621f0ac6a5Smrg      # Discard the --no-reexec flag, and continue.
53631f0ac6a5Smrg      shift
53641f0ac6a5Smrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
53651f0ac6a5Smrg      # Yippee, \$echo works!
53661f0ac6a5Smrg      :
53671f0ac6a5Smrg    else
53681f0ac6a5Smrg      # Restart under the correct shell, and then maybe \$echo will work.
53691f0ac6a5Smrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
53701f0ac6a5Smrg    fi
53711f0ac6a5Smrg  fi\
53721f0ac6a5Smrg"
53731f0ac6a5Smrg	$echo >> $output "\
53741f0ac6a5Smrg
53751f0ac6a5Smrg  # Find the directory that this script lives in.
53761f0ac6a5Smrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
53771f0ac6a5Smrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
53781f0ac6a5Smrg
53791f0ac6a5Smrg  # Follow symbolic links until we get to the real thisdir.
53801f0ac6a5Smrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
53811f0ac6a5Smrg  while test -n \"\$file\"; do
53821f0ac6a5Smrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
53831f0ac6a5Smrg
53841f0ac6a5Smrg    # If there was a directory component, then change thisdir.
53851f0ac6a5Smrg    if test \"x\$destdir\" != \"x\$file\"; then
53861f0ac6a5Smrg      case \"\$destdir\" in
53871f0ac6a5Smrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
53881f0ac6a5Smrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
53891f0ac6a5Smrg      esac
53901f0ac6a5Smrg    fi
53911f0ac6a5Smrg
53921f0ac6a5Smrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
53931f0ac6a5Smrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
53941f0ac6a5Smrg  done
53951f0ac6a5Smrg
53961f0ac6a5Smrg  # Try to get the absolute directory name.
53971f0ac6a5Smrg  absdir=\`cd \"\$thisdir\" && pwd\`
53981f0ac6a5Smrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
53991f0ac6a5Smrg"
54001f0ac6a5Smrg
54011f0ac6a5Smrg	if test "$fast_install" = yes; then
54021f0ac6a5Smrg	  $echo >> $output "\
54031f0ac6a5Smrg  program=lt-'$outputname'$exeext
54041f0ac6a5Smrg  progdir=\"\$thisdir/$objdir\"
54051f0ac6a5Smrg
54061f0ac6a5Smrg  if test ! -f \"\$progdir/\$program\" || \\
54071f0ac6a5Smrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
54081f0ac6a5Smrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
54091f0ac6a5Smrg
54101f0ac6a5Smrg    file=\"\$\$-\$program\"
54111f0ac6a5Smrg
54121f0ac6a5Smrg    if test ! -d \"\$progdir\"; then
54131f0ac6a5Smrg      $mkdir \"\$progdir\"
54141f0ac6a5Smrg    else
54151f0ac6a5Smrg      $rm \"\$progdir/\$file\"
54161f0ac6a5Smrg    fi"
54171f0ac6a5Smrg
54181f0ac6a5Smrg	  $echo >> $output "\
54191f0ac6a5Smrg
54201f0ac6a5Smrg    # relink executable if necessary
54211f0ac6a5Smrg    if test -n \"\$relink_command\"; then
54221f0ac6a5Smrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
54231f0ac6a5Smrg      else
54241f0ac6a5Smrg	$echo \"\$relink_command_output\" >&2
54251f0ac6a5Smrg	$rm \"\$progdir/\$file\"
54261f0ac6a5Smrg	exit $EXIT_FAILURE
54271f0ac6a5Smrg      fi
54281f0ac6a5Smrg    fi
54291f0ac6a5Smrg
54301f0ac6a5Smrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
54311f0ac6a5Smrg    { $rm \"\$progdir/\$program\";
54321f0ac6a5Smrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
54331f0ac6a5Smrg    $rm \"\$progdir/\$file\"
54341f0ac6a5Smrg  fi"
54351f0ac6a5Smrg	else
54361f0ac6a5Smrg	  $echo >> $output "\
54371f0ac6a5Smrg  program='$outputname'
54381f0ac6a5Smrg  progdir=\"\$thisdir/$objdir\"
54391f0ac6a5Smrg"
54401f0ac6a5Smrg	fi
54411f0ac6a5Smrg
54421f0ac6a5Smrg	$echo >> $output "\
54431f0ac6a5Smrg
54441f0ac6a5Smrg  if test -f \"\$progdir/\$program\"; then"
54451f0ac6a5Smrg
54461f0ac6a5Smrg	# Export our shlibpath_var if we have one.
54471f0ac6a5Smrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
54481f0ac6a5Smrg	  $echo >> $output "\
54491f0ac6a5Smrg    # Add our own library path to $shlibpath_var
54501f0ac6a5Smrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
54511f0ac6a5Smrg
54521f0ac6a5Smrg    # Some systems cannot cope with colon-terminated $shlibpath_var
54531f0ac6a5Smrg    # The second colon is a workaround for a bug in BeOS R4 sed
54541f0ac6a5Smrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
54551f0ac6a5Smrg
54561f0ac6a5Smrg    export $shlibpath_var
54571f0ac6a5Smrg"
54581f0ac6a5Smrg	fi
54591f0ac6a5Smrg
54601f0ac6a5Smrg	# fixup the dll searchpath if we need to.
54611f0ac6a5Smrg	if test -n "$dllsearchpath"; then
54621f0ac6a5Smrg	  $echo >> $output "\
54631f0ac6a5Smrg    # Add the dll search path components to the executable PATH
54641f0ac6a5Smrg    PATH=$dllsearchpath:\$PATH
54651f0ac6a5Smrg"
54661f0ac6a5Smrg	fi
54671f0ac6a5Smrg
54681f0ac6a5Smrg	$echo >> $output "\
54691f0ac6a5Smrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
54701f0ac6a5Smrg      # Run the actual program with our arguments.
54711f0ac6a5Smrg"
54721f0ac6a5Smrg	case $host in
54731f0ac6a5Smrg	# Backslashes separate directories on plain windows
54741f0ac6a5Smrg	*-*-mingw | *-*-os2*)
54751f0ac6a5Smrg	  $echo >> $output "\
54761f0ac6a5Smrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
54771f0ac6a5Smrg"
54781f0ac6a5Smrg	  ;;
54791f0ac6a5Smrg
54801f0ac6a5Smrg	*)
54811f0ac6a5Smrg	  $echo >> $output "\
54821f0ac6a5Smrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
54831f0ac6a5Smrg"
54841f0ac6a5Smrg	  ;;
54851f0ac6a5Smrg	esac
54861f0ac6a5Smrg	$echo >> $output "\
5487e5410a46Smrg      \$echo \"\$0: cannot exec \$program \$*\"
54881f0ac6a5Smrg      exit $EXIT_FAILURE
54891f0ac6a5Smrg    fi
54901f0ac6a5Smrg  else
54911f0ac6a5Smrg    # The program doesn't exist.
54921f0ac6a5Smrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
54931f0ac6a5Smrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
54941f0ac6a5Smrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
54951f0ac6a5Smrg    exit $EXIT_FAILURE
54961f0ac6a5Smrg  fi
54971f0ac6a5Smrgfi\
54981f0ac6a5Smrg"
54991f0ac6a5Smrg	chmod +x $output
55001f0ac6a5Smrg      fi
55011f0ac6a5Smrg      exit $EXIT_SUCCESS
55021f0ac6a5Smrg      ;;
55031f0ac6a5Smrg    esac
55041f0ac6a5Smrg
55051f0ac6a5Smrg    # See if we need to build an old-fashioned archive.
55061f0ac6a5Smrg    for oldlib in $oldlibs; do
55071f0ac6a5Smrg
55081f0ac6a5Smrg      if test "$build_libtool_libs" = convenience; then
55091f0ac6a5Smrg	oldobjs="$libobjs_save"
55101f0ac6a5Smrg	addlibs="$convenience"
55111f0ac6a5Smrg	build_libtool_libs=no
55121f0ac6a5Smrg      else
55131f0ac6a5Smrg	if test "$build_libtool_libs" = module; then
55141f0ac6a5Smrg	  oldobjs="$libobjs_save"
55151f0ac6a5Smrg	  build_libtool_libs=no
55161f0ac6a5Smrg	else
55171f0ac6a5Smrg	  oldobjs="$old_deplibs $non_pic_objects"
55181f0ac6a5Smrg	fi
55191f0ac6a5Smrg	addlibs="$old_convenience"
55201f0ac6a5Smrg      fi
55211f0ac6a5Smrg
55221f0ac6a5Smrg      if test -n "$addlibs"; then
55231f0ac6a5Smrg	gentop="$output_objdir/${outputname}x"
55241f0ac6a5Smrg	generated="$generated $gentop"
55251f0ac6a5Smrg
55261f0ac6a5Smrg	func_extract_archives $gentop $addlibs
55271f0ac6a5Smrg	oldobjs="$oldobjs $func_extract_archives_result"
55281f0ac6a5Smrg      fi
55291f0ac6a5Smrg
55301f0ac6a5Smrg      # Do each command in the archive commands.
55311f0ac6a5Smrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
55321f0ac6a5Smrg       cmds=$old_archive_from_new_cmds
55331f0ac6a5Smrg      else
55341f0ac6a5Smrg	# POSIX demands no paths to be encoded in archives.  We have
55351f0ac6a5Smrg	# to avoid creating archives with duplicate basenames if we
55361f0ac6a5Smrg	# might have to extract them afterwards, e.g., when creating a
55371f0ac6a5Smrg	# static archive out of a convenience library, or when linking
55381f0ac6a5Smrg	# the entirety of a libtool archive into another (currently
55391f0ac6a5Smrg	# not supported by libtool).
55401f0ac6a5Smrg	if (for obj in $oldobjs
55411f0ac6a5Smrg	    do
55421f0ac6a5Smrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
55431f0ac6a5Smrg	    done | sort | sort -uc >/dev/null 2>&1); then
55441f0ac6a5Smrg	  :
55451f0ac6a5Smrg	else
55461f0ac6a5Smrg	  $echo "copying selected object files to avoid basename conflicts..."
55471f0ac6a5Smrg
55481f0ac6a5Smrg	  if test -z "$gentop"; then
55491f0ac6a5Smrg	    gentop="$output_objdir/${outputname}x"
55501f0ac6a5Smrg	    generated="$generated $gentop"
55511f0ac6a5Smrg
55521f0ac6a5Smrg	    $show "${rm}r $gentop"
55531f0ac6a5Smrg	    $run ${rm}r "$gentop"
55541f0ac6a5Smrg	    $show "$mkdir $gentop"
55551f0ac6a5Smrg	    $run $mkdir "$gentop"
55561f0ac6a5Smrg	    exit_status=$?
55571f0ac6a5Smrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
55581f0ac6a5Smrg	      exit $exit_status
55591f0ac6a5Smrg	    fi
55601f0ac6a5Smrg	  fi
55611f0ac6a5Smrg
55621f0ac6a5Smrg	  save_oldobjs=$oldobjs
55631f0ac6a5Smrg	  oldobjs=
55641f0ac6a5Smrg	  counter=1
55651f0ac6a5Smrg	  for obj in $save_oldobjs
55661f0ac6a5Smrg	  do
55671f0ac6a5Smrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
55681f0ac6a5Smrg	    case " $oldobjs " in
55691f0ac6a5Smrg	    " ") oldobjs=$obj ;;
55701f0ac6a5Smrg	    *[\ /]"$objbase "*)
55711f0ac6a5Smrg	      while :; do
55721f0ac6a5Smrg		# Make sure we don't pick an alternate name that also
55731f0ac6a5Smrg		# overlaps.
55741f0ac6a5Smrg		newobj=lt$counter-$objbase
55751f0ac6a5Smrg		counter=`expr $counter + 1`
55761f0ac6a5Smrg		case " $oldobjs " in
55771f0ac6a5Smrg		*[\ /]"$newobj "*) ;;
55781f0ac6a5Smrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
55791f0ac6a5Smrg		esac
55801f0ac6a5Smrg	      done
55811f0ac6a5Smrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
55821f0ac6a5Smrg	      $run ln "$obj" "$gentop/$newobj" ||
55831f0ac6a5Smrg	      $run cp "$obj" "$gentop/$newobj"
55841f0ac6a5Smrg	      oldobjs="$oldobjs $gentop/$newobj"
55851f0ac6a5Smrg	      ;;
55861f0ac6a5Smrg	    *) oldobjs="$oldobjs $obj" ;;
55871f0ac6a5Smrg	    esac
55881f0ac6a5Smrg	  done
55891f0ac6a5Smrg	fi
55901f0ac6a5Smrg
55911f0ac6a5Smrg	eval cmds=\"$old_archive_cmds\"
55921f0ac6a5Smrg
55931f0ac6a5Smrg	if len=`expr "X$cmds" : ".*"` &&
55941f0ac6a5Smrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
55951f0ac6a5Smrg	  cmds=$old_archive_cmds
55961f0ac6a5Smrg	else
55971f0ac6a5Smrg	  # the command line is too long to link in one step, link in parts
55981f0ac6a5Smrg	  $echo "using piecewise archive linking..."
55991f0ac6a5Smrg	  save_RANLIB=$RANLIB
56001f0ac6a5Smrg	  RANLIB=:
56011f0ac6a5Smrg	  objlist=
56021f0ac6a5Smrg	  concat_cmds=
56031f0ac6a5Smrg	  save_oldobjs=$oldobjs
56041f0ac6a5Smrg
56051f0ac6a5Smrg	  # Is there a better way of finding the last object in the list?
56061f0ac6a5Smrg	  for obj in $save_oldobjs
56071f0ac6a5Smrg	  do
56081f0ac6a5Smrg	    last_oldobj=$obj
56091f0ac6a5Smrg	  done
56101f0ac6a5Smrg	  for obj in $save_oldobjs
56111f0ac6a5Smrg	  do
56121f0ac6a5Smrg	    oldobjs="$objlist $obj"
56131f0ac6a5Smrg	    objlist="$objlist $obj"
56141f0ac6a5Smrg	    eval test_cmds=\"$old_archive_cmds\"
56151f0ac6a5Smrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
56161f0ac6a5Smrg	       test "$len" -le "$max_cmd_len"; then
56171f0ac6a5Smrg	      :
56181f0ac6a5Smrg	    else
56191f0ac6a5Smrg	      # the above command should be used before it gets too long
56201f0ac6a5Smrg	      oldobjs=$objlist
56211f0ac6a5Smrg	      if test "$obj" = "$last_oldobj" ; then
56221f0ac6a5Smrg	        RANLIB=$save_RANLIB
56231f0ac6a5Smrg	      fi
56241f0ac6a5Smrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
56251f0ac6a5Smrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
56261f0ac6a5Smrg	      objlist=
56271f0ac6a5Smrg	    fi
56281f0ac6a5Smrg	  done
56291f0ac6a5Smrg	  RANLIB=$save_RANLIB
56301f0ac6a5Smrg	  oldobjs=$objlist
56311f0ac6a5Smrg	  if test "X$oldobjs" = "X" ; then
56321f0ac6a5Smrg	    eval cmds=\"\$concat_cmds\"
56331f0ac6a5Smrg	  else
56341f0ac6a5Smrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
56351f0ac6a5Smrg	  fi
56361f0ac6a5Smrg	fi
56371f0ac6a5Smrg      fi
56381f0ac6a5Smrg      save_ifs="$IFS"; IFS='~'
56391f0ac6a5Smrg      for cmd in $cmds; do
56401f0ac6a5Smrg        eval cmd=\"$cmd\"
56411f0ac6a5Smrg	IFS="$save_ifs"
56421f0ac6a5Smrg	$show "$cmd"
56431f0ac6a5Smrg	$run eval "$cmd" || exit $?
56441f0ac6a5Smrg      done
56451f0ac6a5Smrg      IFS="$save_ifs"
56461f0ac6a5Smrg    done
56471f0ac6a5Smrg
56481f0ac6a5Smrg    if test -n "$generated"; then
56491f0ac6a5Smrg      $show "${rm}r$generated"
56501f0ac6a5Smrg      $run ${rm}r$generated
56511f0ac6a5Smrg    fi
56521f0ac6a5Smrg
56531f0ac6a5Smrg    # Now create the libtool archive.
56541f0ac6a5Smrg    case $output in
56551f0ac6a5Smrg    *.la)
56561f0ac6a5Smrg      old_library=
56571f0ac6a5Smrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
56581f0ac6a5Smrg      $show "creating $output"
56591f0ac6a5Smrg
56601f0ac6a5Smrg      # Preserve any variables that may affect compiler behavior
56611f0ac6a5Smrg      for var in $variables_saved_for_relink; do
56621f0ac6a5Smrg	if eval test -z \"\${$var+set}\"; then
56631f0ac6a5Smrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
56641f0ac6a5Smrg	elif eval var_value=\$$var; test -z "$var_value"; then
56651f0ac6a5Smrg	  relink_command="$var=; export $var; $relink_command"
56661f0ac6a5Smrg	else
56671f0ac6a5Smrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
56681f0ac6a5Smrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
56691f0ac6a5Smrg	fi
56701f0ac6a5Smrg      done
56711f0ac6a5Smrg      # Quote the link command for shipping.
56721f0ac6a5Smrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5673e5410a46Smrg      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
56741f0ac6a5Smrg      if test "$hardcode_automatic" = yes ; then
56751f0ac6a5Smrg	relink_command=
56761f0ac6a5Smrg      fi
56771f0ac6a5Smrg
56781f0ac6a5Smrg
56791f0ac6a5Smrg      # Only create the output if not a dry run.
56801f0ac6a5Smrg      if test -z "$run"; then
56811f0ac6a5Smrg	for installed in no yes; do
56821f0ac6a5Smrg	  if test "$installed" = yes; then
56831f0ac6a5Smrg	    if test -z "$install_libdir"; then
56841f0ac6a5Smrg	      break
56851f0ac6a5Smrg	    fi
56861f0ac6a5Smrg	    output="$output_objdir/$outputname"i
56871f0ac6a5Smrg	    # Replace all uninstalled libtool libraries with the installed ones
56881f0ac6a5Smrg	    newdependency_libs=
56891f0ac6a5Smrg	    for deplib in $dependency_libs; do
56901f0ac6a5Smrg	      case $deplib in
56911f0ac6a5Smrg	      *.la)
56921f0ac6a5Smrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
56931f0ac6a5Smrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
56941f0ac6a5Smrg		if test -z "$libdir"; then
56951f0ac6a5Smrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
56961f0ac6a5Smrg		  exit $EXIT_FAILURE
56971f0ac6a5Smrg		fi
56981f0ac6a5Smrg		newdependency_libs="$newdependency_libs $libdir/$name"
56991f0ac6a5Smrg		;;
57001f0ac6a5Smrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
57011f0ac6a5Smrg	      esac
57021f0ac6a5Smrg	    done
57031f0ac6a5Smrg	    dependency_libs="$newdependency_libs"
57041f0ac6a5Smrg	    newdlfiles=
57051f0ac6a5Smrg	    for lib in $dlfiles; do
57061f0ac6a5Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57071f0ac6a5Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57081f0ac6a5Smrg	      if test -z "$libdir"; then
57091f0ac6a5Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57101f0ac6a5Smrg		exit $EXIT_FAILURE
57111f0ac6a5Smrg	      fi
57121f0ac6a5Smrg	      newdlfiles="$newdlfiles $libdir/$name"
57131f0ac6a5Smrg	    done
57141f0ac6a5Smrg	    dlfiles="$newdlfiles"
57151f0ac6a5Smrg	    newdlprefiles=
57161f0ac6a5Smrg	    for lib in $dlprefiles; do
57171f0ac6a5Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57181f0ac6a5Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57191f0ac6a5Smrg	      if test -z "$libdir"; then
57201f0ac6a5Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57211f0ac6a5Smrg		exit $EXIT_FAILURE
57221f0ac6a5Smrg	      fi
57231f0ac6a5Smrg	      newdlprefiles="$newdlprefiles $libdir/$name"
57241f0ac6a5Smrg	    done
57251f0ac6a5Smrg	    dlprefiles="$newdlprefiles"
57261f0ac6a5Smrg	  else
57271f0ac6a5Smrg	    newdlfiles=
57281f0ac6a5Smrg	    for lib in $dlfiles; do
57291f0ac6a5Smrg	      case $lib in
57301f0ac6a5Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57311f0ac6a5Smrg		*) abs=`pwd`"/$lib" ;;
57321f0ac6a5Smrg	      esac
57331f0ac6a5Smrg	      newdlfiles="$newdlfiles $abs"
57341f0ac6a5Smrg	    done
57351f0ac6a5Smrg	    dlfiles="$newdlfiles"
57361f0ac6a5Smrg	    newdlprefiles=
57371f0ac6a5Smrg	    for lib in $dlprefiles; do
57381f0ac6a5Smrg	      case $lib in
57391f0ac6a5Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57401f0ac6a5Smrg		*) abs=`pwd`"/$lib" ;;
57411f0ac6a5Smrg	      esac
57421f0ac6a5Smrg	      newdlprefiles="$newdlprefiles $abs"
57431f0ac6a5Smrg	    done
57441f0ac6a5Smrg	    dlprefiles="$newdlprefiles"
57451f0ac6a5Smrg	  fi
57461f0ac6a5Smrg	  $rm $output
57471f0ac6a5Smrg	  # place dlname in correct position for cygwin
57481f0ac6a5Smrg	  tdlname=$dlname
57491f0ac6a5Smrg	  case $host,$output,$installed,$module,$dlname in
57501f0ac6a5Smrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
57511f0ac6a5Smrg	  esac
57521f0ac6a5Smrg	  $echo > $output "\
57531f0ac6a5Smrg# $outputname - a libtool library file
57541f0ac6a5Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
57551f0ac6a5Smrg#
57561f0ac6a5Smrg# Please DO NOT delete this file!
57571f0ac6a5Smrg# It is necessary for linking the library.
57581f0ac6a5Smrg
57591f0ac6a5Smrg# The name that we can dlopen(3).
57601f0ac6a5Smrgdlname='$tdlname'
57611f0ac6a5Smrg
57621f0ac6a5Smrg# Names of this library.
57631f0ac6a5Smrglibrary_names='$library_names'
57641f0ac6a5Smrg
57651f0ac6a5Smrg# The name of the static archive.
57661f0ac6a5Smrgold_library='$old_library'
57671f0ac6a5Smrg
57681f0ac6a5Smrg# Libraries that this one depends upon.
57691f0ac6a5Smrgdependency_libs='$dependency_libs'
57701f0ac6a5Smrg
57711f0ac6a5Smrg# Version information for $libname.
57721f0ac6a5Smrgcurrent=$current
57731f0ac6a5Smrgage=$age
57741f0ac6a5Smrgrevision=$revision
57751f0ac6a5Smrg
57761f0ac6a5Smrg# Is this an already installed library?
57771f0ac6a5Smrginstalled=$installed
57781f0ac6a5Smrg
57791f0ac6a5Smrg# Should we warn about portability when linking against -modules?
57801f0ac6a5Smrgshouldnotlink=$module
57811f0ac6a5Smrg
57821f0ac6a5Smrg# Files to dlopen/dlpreopen
57831f0ac6a5Smrgdlopen='$dlfiles'
57841f0ac6a5Smrgdlpreopen='$dlprefiles'
57851f0ac6a5Smrg
57861f0ac6a5Smrg# Directory that this library needs to be installed in:
57871f0ac6a5Smrglibdir='$install_libdir'"
57881f0ac6a5Smrg	  if test "$installed" = no && test "$need_relink" = yes; then
57891f0ac6a5Smrg	    $echo >> $output "\
57901f0ac6a5Smrgrelink_command=\"$relink_command\""
57911f0ac6a5Smrg	  fi
57921f0ac6a5Smrg	done
57931f0ac6a5Smrg      fi
57941f0ac6a5Smrg
57951f0ac6a5Smrg      # Do a symbolic link so that the libtool archive can be found in
57961f0ac6a5Smrg      # LD_LIBRARY_PATH before the program is installed.
57971f0ac6a5Smrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
57981f0ac6a5Smrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
57991f0ac6a5Smrg      ;;
58001f0ac6a5Smrg    esac
58011f0ac6a5Smrg    exit $EXIT_SUCCESS
58021f0ac6a5Smrg    ;;
58031f0ac6a5Smrg
58041f0ac6a5Smrg  # libtool install mode
58051f0ac6a5Smrg  install)
58061f0ac6a5Smrg    modename="$modename: install"
58071f0ac6a5Smrg
58081f0ac6a5Smrg    # There may be an optional sh(1) argument at the beginning of
58091f0ac6a5Smrg    # install_prog (especially on Windows NT).
58101f0ac6a5Smrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
58111f0ac6a5Smrg       # Allow the use of GNU shtool's install command.
58121f0ac6a5Smrg       $echo "X$nonopt" | grep shtool > /dev/null; then
58131f0ac6a5Smrg      # Aesthetically quote it.
58141f0ac6a5Smrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
58151f0ac6a5Smrg      case $arg in
58161f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58171f0ac6a5Smrg	arg="\"$arg\""
58181f0ac6a5Smrg	;;
58191f0ac6a5Smrg      esac
58201f0ac6a5Smrg      install_prog="$arg "
58211f0ac6a5Smrg      arg="$1"
58221f0ac6a5Smrg      shift
58231f0ac6a5Smrg    else
58241f0ac6a5Smrg      install_prog=
58251f0ac6a5Smrg      arg=$nonopt
58261f0ac6a5Smrg    fi
58271f0ac6a5Smrg
58281f0ac6a5Smrg    # The real first argument should be the name of the installation program.
58291f0ac6a5Smrg    # Aesthetically quote it.
58301f0ac6a5Smrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58311f0ac6a5Smrg    case $arg in
58321f0ac6a5Smrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58331f0ac6a5Smrg      arg="\"$arg\""
58341f0ac6a5Smrg      ;;
58351f0ac6a5Smrg    esac
58361f0ac6a5Smrg    install_prog="$install_prog$arg"
58371f0ac6a5Smrg
58381f0ac6a5Smrg    # We need to accept at least all the BSD install flags.
58391f0ac6a5Smrg    dest=
58401f0ac6a5Smrg    files=
58411f0ac6a5Smrg    opts=
58421f0ac6a5Smrg    prev=
58431f0ac6a5Smrg    install_type=
58441f0ac6a5Smrg    isdir=no
58451f0ac6a5Smrg    stripme=
58461f0ac6a5Smrg    for arg
58471f0ac6a5Smrg    do
58481f0ac6a5Smrg      if test -n "$dest"; then
58491f0ac6a5Smrg	files="$files $dest"
58501f0ac6a5Smrg	dest=$arg
58511f0ac6a5Smrg	continue
58521f0ac6a5Smrg      fi
58531f0ac6a5Smrg
58541f0ac6a5Smrg      case $arg in
58551f0ac6a5Smrg      -d) isdir=yes ;;
58561f0ac6a5Smrg      -f) 
58571f0ac6a5Smrg      	case " $install_prog " in
58581f0ac6a5Smrg	*[\\\ /]cp\ *) ;;
58591f0ac6a5Smrg	*) prev=$arg ;;
58601f0ac6a5Smrg	esac
58611f0ac6a5Smrg	;;
58621f0ac6a5Smrg      -g | -m | -o) prev=$arg ;;
58631f0ac6a5Smrg      -s)
58641f0ac6a5Smrg	stripme=" -s"
58651f0ac6a5Smrg	continue
58661f0ac6a5Smrg	;;
58671f0ac6a5Smrg      -*)
58681f0ac6a5Smrg	;;
58691f0ac6a5Smrg      *)
58701f0ac6a5Smrg	# If the previous option needed an argument, then skip it.
58711f0ac6a5Smrg	if test -n "$prev"; then
58721f0ac6a5Smrg	  prev=
58731f0ac6a5Smrg	else
58741f0ac6a5Smrg	  dest=$arg
58751f0ac6a5Smrg	  continue
58761f0ac6a5Smrg	fi
58771f0ac6a5Smrg	;;
58781f0ac6a5Smrg      esac
58791f0ac6a5Smrg
58801f0ac6a5Smrg      # Aesthetically quote the argument.
58811f0ac6a5Smrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58821f0ac6a5Smrg      case $arg in
58831f0ac6a5Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58841f0ac6a5Smrg	arg="\"$arg\""
58851f0ac6a5Smrg	;;
58861f0ac6a5Smrg      esac
58871f0ac6a5Smrg      install_prog="$install_prog $arg"
58881f0ac6a5Smrg    done
58891f0ac6a5Smrg
58901f0ac6a5Smrg    if test -z "$install_prog"; then
58911f0ac6a5Smrg      $echo "$modename: you must specify an install program" 1>&2
58921f0ac6a5Smrg      $echo "$help" 1>&2
58931f0ac6a5Smrg      exit $EXIT_FAILURE
58941f0ac6a5Smrg    fi
58951f0ac6a5Smrg
58961f0ac6a5Smrg    if test -n "$prev"; then
58971f0ac6a5Smrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
58981f0ac6a5Smrg      $echo "$help" 1>&2
58991f0ac6a5Smrg      exit $EXIT_FAILURE
59001f0ac6a5Smrg    fi
59011f0ac6a5Smrg
59021f0ac6a5Smrg    if test -z "$files"; then
59031f0ac6a5Smrg      if test -z "$dest"; then
59041f0ac6a5Smrg	$echo "$modename: no file or destination specified" 1>&2
59051f0ac6a5Smrg      else
59061f0ac6a5Smrg	$echo "$modename: you must specify a destination" 1>&2
59071f0ac6a5Smrg      fi
59081f0ac6a5Smrg      $echo "$help" 1>&2
59091f0ac6a5Smrg      exit $EXIT_FAILURE
59101f0ac6a5Smrg    fi
59111f0ac6a5Smrg
59121f0ac6a5Smrg    # Strip any trailing slash from the destination.
59131f0ac6a5Smrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
59141f0ac6a5Smrg
59151f0ac6a5Smrg    # Check to see that the destination is a directory.
59161f0ac6a5Smrg    test -d "$dest" && isdir=yes
59171f0ac6a5Smrg    if test "$isdir" = yes; then
59181f0ac6a5Smrg      destdir="$dest"
59191f0ac6a5Smrg      destname=
59201f0ac6a5Smrg    else
59211f0ac6a5Smrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
59221f0ac6a5Smrg      test "X$destdir" = "X$dest" && destdir=.
59231f0ac6a5Smrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
59241f0ac6a5Smrg
59251f0ac6a5Smrg      # Not a directory, so check to see that there is only one file specified.
59261f0ac6a5Smrg      set dummy $files
59271f0ac6a5Smrg      if test "$#" -gt 2; then
59281f0ac6a5Smrg	$echo "$modename: \`$dest' is not a directory" 1>&2
59291f0ac6a5Smrg	$echo "$help" 1>&2
59301f0ac6a5Smrg	exit $EXIT_FAILURE
59311f0ac6a5Smrg      fi
59321f0ac6a5Smrg    fi
59331f0ac6a5Smrg    case $destdir in
59341f0ac6a5Smrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
59351f0ac6a5Smrg    *)
59361f0ac6a5Smrg      for file in $files; do
59371f0ac6a5Smrg	case $file in
59381f0ac6a5Smrg	*.lo) ;;
59391f0ac6a5Smrg	*)
59401f0ac6a5Smrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
59411f0ac6a5Smrg	  $echo "$help" 1>&2
59421f0ac6a5Smrg	  exit $EXIT_FAILURE
59431f0ac6a5Smrg	  ;;
59441f0ac6a5Smrg	esac
59451f0ac6a5Smrg      done
59461f0ac6a5Smrg      ;;
59471f0ac6a5Smrg    esac
59481f0ac6a5Smrg
59491f0ac6a5Smrg    # This variable tells wrapper scripts just to set variables rather
59501f0ac6a5Smrg    # than running their programs.
59511f0ac6a5Smrg    libtool_install_magic="$magic"
59521f0ac6a5Smrg
59531f0ac6a5Smrg    staticlibs=
59541f0ac6a5Smrg    future_libdirs=
59551f0ac6a5Smrg    current_libdirs=
59561f0ac6a5Smrg    for file in $files; do
59571f0ac6a5Smrg
59581f0ac6a5Smrg      # Do each installation.
59591f0ac6a5Smrg      case $file in
59601f0ac6a5Smrg      *.$libext)
59611f0ac6a5Smrg	# Do the static libraries later.
59621f0ac6a5Smrg	staticlibs="$staticlibs $file"
59631f0ac6a5Smrg	;;
59641f0ac6a5Smrg
59651f0ac6a5Smrg      *.la)
59661f0ac6a5Smrg	# Check to see that this really is a libtool archive.
59671f0ac6a5Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
59681f0ac6a5Smrg	else
59691f0ac6a5Smrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
59701f0ac6a5Smrg	  $echo "$help" 1>&2
59711f0ac6a5Smrg	  exit $EXIT_FAILURE
59721f0ac6a5Smrg	fi
59731f0ac6a5Smrg
59741f0ac6a5Smrg	library_names=
59751f0ac6a5Smrg	old_library=
59761f0ac6a5Smrg	relink_command=
59771f0ac6a5Smrg	# If there is no directory component, then add one.
59781f0ac6a5Smrg	case $file in
59791f0ac6a5Smrg	*/* | *\\*) . $file ;;
59801f0ac6a5Smrg	*) . ./$file ;;
59811f0ac6a5Smrg	esac
59821f0ac6a5Smrg
59831f0ac6a5Smrg	# Add the libdir to current_libdirs if it is the destination.
59841f0ac6a5Smrg	if test "X$destdir" = "X$libdir"; then
59851f0ac6a5Smrg	  case "$current_libdirs " in
59861f0ac6a5Smrg	  *" $libdir "*) ;;
59871f0ac6a5Smrg	  *) current_libdirs="$current_libdirs $libdir" ;;
59881f0ac6a5Smrg	  esac
59891f0ac6a5Smrg	else
59901f0ac6a5Smrg	  # Note the libdir as a future libdir.
59911f0ac6a5Smrg	  case "$future_libdirs " in
59921f0ac6a5Smrg	  *" $libdir "*) ;;
59931f0ac6a5Smrg	  *) future_libdirs="$future_libdirs $libdir" ;;
59941f0ac6a5Smrg	  esac
59951f0ac6a5Smrg	fi
59961f0ac6a5Smrg
59971f0ac6a5Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
59981f0ac6a5Smrg	test "X$dir" = "X$file/" && dir=
59991f0ac6a5Smrg	dir="$dir$objdir"
60001f0ac6a5Smrg
60011f0ac6a5Smrg	if test -n "$relink_command"; then
60021f0ac6a5Smrg	  # Determine the prefix the user has applied to our future dir.
60031f0ac6a5Smrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
60041f0ac6a5Smrg
60051f0ac6a5Smrg	  # Don't allow the user to place us outside of our expected
60061f0ac6a5Smrg	  # location b/c this prevents finding dependent libraries that
60071f0ac6a5Smrg	  # are installed to the same prefix.
60081f0ac6a5Smrg	  # At present, this check doesn't affect windows .dll's that
60091f0ac6a5Smrg	  # are installed into $libdir/../bin (currently, that works fine)
60101f0ac6a5Smrg	  # but it's something to keep an eye on.
60111f0ac6a5Smrg	  if test "$inst_prefix_dir" = "$destdir"; then
60121f0ac6a5Smrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
60131f0ac6a5Smrg	    exit $EXIT_FAILURE
60141f0ac6a5Smrg	  fi
60151f0ac6a5Smrg
60161f0ac6a5Smrg	  if test -n "$inst_prefix_dir"; then
60171f0ac6a5Smrg	    # Stick the inst_prefix_dir data into the link command.
6018e5410a46Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
60191f0ac6a5Smrg	  else
6020e5410a46Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
60211f0ac6a5Smrg	  fi
60221f0ac6a5Smrg
60231f0ac6a5Smrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
60241f0ac6a5Smrg	  $show "$relink_command"
60251f0ac6a5Smrg	  if $run eval "$relink_command"; then :
60261f0ac6a5Smrg	  else
60271f0ac6a5Smrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
60281f0ac6a5Smrg	    exit $EXIT_FAILURE
60291f0ac6a5Smrg	  fi
60301f0ac6a5Smrg	fi
60311f0ac6a5Smrg
60321f0ac6a5Smrg	# See the names of the shared library.
60331f0ac6a5Smrg	set dummy $library_names
60341f0ac6a5Smrg	if test -n "$2"; then
60351f0ac6a5Smrg	  realname="$2"
60361f0ac6a5Smrg	  shift
60371f0ac6a5Smrg	  shift
60381f0ac6a5Smrg
60391f0ac6a5Smrg	  srcname="$realname"
60401f0ac6a5Smrg	  test -n "$relink_command" && srcname="$realname"T
60411f0ac6a5Smrg
60421f0ac6a5Smrg	  # Install the shared library and build the symlinks.
60431f0ac6a5Smrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
60441f0ac6a5Smrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
60451f0ac6a5Smrg	  if test -n "$stripme" && test -n "$striplib"; then
60461f0ac6a5Smrg	    $show "$striplib $destdir/$realname"
60471f0ac6a5Smrg	    $run eval "$striplib $destdir/$realname" || exit $?
60481f0ac6a5Smrg	  fi
60491f0ac6a5Smrg
60501f0ac6a5Smrg	  if test "$#" -gt 0; then
60511f0ac6a5Smrg	    # Delete the old symlinks, and create new ones.
60521f0ac6a5Smrg	    # Try `ln -sf' first, because the `ln' binary might depend on
60531f0ac6a5Smrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
60541f0ac6a5Smrg	    # so we also need to try rm && ln -s.
60551f0ac6a5Smrg	    for linkname
60561f0ac6a5Smrg	    do
60571f0ac6a5Smrg	      if test "$linkname" != "$realname"; then
60581f0ac6a5Smrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60591f0ac6a5Smrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60601f0ac6a5Smrg	      fi
60611f0ac6a5Smrg	    done
60621f0ac6a5Smrg	  fi
60631f0ac6a5Smrg
60641f0ac6a5Smrg	  # Do each command in the postinstall commands.
60651f0ac6a5Smrg	  lib="$destdir/$realname"
60661f0ac6a5Smrg	  cmds=$postinstall_cmds
60671f0ac6a5Smrg	  save_ifs="$IFS"; IFS='~'
60681f0ac6a5Smrg	  for cmd in $cmds; do
60691f0ac6a5Smrg	    IFS="$save_ifs"
60701f0ac6a5Smrg	    eval cmd=\"$cmd\"
60711f0ac6a5Smrg	    $show "$cmd"
60721f0ac6a5Smrg	    $run eval "$cmd" || {
60731f0ac6a5Smrg	      lt_exit=$?
60741f0ac6a5Smrg
60751f0ac6a5Smrg	      # Restore the uninstalled library and exit
60761f0ac6a5Smrg	      if test "$mode" = relink; then
60771f0ac6a5Smrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
60781f0ac6a5Smrg	      fi
60791f0ac6a5Smrg
60801f0ac6a5Smrg	      exit $lt_exit
60811f0ac6a5Smrg	    }
60821f0ac6a5Smrg	  done
60831f0ac6a5Smrg	  IFS="$save_ifs"
60841f0ac6a5Smrg	fi
60851f0ac6a5Smrg
60861f0ac6a5Smrg	# Install the pseudo-library for information purposes.
60871f0ac6a5Smrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
60881f0ac6a5Smrg	instname="$dir/$name"i
60891f0ac6a5Smrg	$show "$install_prog $instname $destdir/$name"
60901f0ac6a5Smrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
60911f0ac6a5Smrg
60921f0ac6a5Smrg	# Maybe install the static library, too.
60931f0ac6a5Smrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
60941f0ac6a5Smrg	;;
60951f0ac6a5Smrg
60961f0ac6a5Smrg      *.lo)
60971f0ac6a5Smrg	# Install (i.e. copy) a libtool object.
60981f0ac6a5Smrg
60991f0ac6a5Smrg	# Figure out destination file name, if it wasn't already specified.
61001f0ac6a5Smrg	if test -n "$destname"; then
61011f0ac6a5Smrg	  destfile="$destdir/$destname"
61021f0ac6a5Smrg	else
61031f0ac6a5Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61041f0ac6a5Smrg	  destfile="$destdir/$destfile"
61051f0ac6a5Smrg	fi
61061f0ac6a5Smrg
61071f0ac6a5Smrg	# Deduce the name of the destination old-style object file.
61081f0ac6a5Smrg	case $destfile in
61091f0ac6a5Smrg	*.lo)
61101f0ac6a5Smrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
61111f0ac6a5Smrg	  ;;
61121f0ac6a5Smrg	*.$objext)
61131f0ac6a5Smrg	  staticdest="$destfile"
61141f0ac6a5Smrg	  destfile=
61151f0ac6a5Smrg	  ;;
61161f0ac6a5Smrg	*)
61171f0ac6a5Smrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
61181f0ac6a5Smrg	  $echo "$help" 1>&2
61191f0ac6a5Smrg	  exit $EXIT_FAILURE
61201f0ac6a5Smrg	  ;;
61211f0ac6a5Smrg	esac
61221f0ac6a5Smrg
61231f0ac6a5Smrg	# Install the libtool object if requested.
61241f0ac6a5Smrg	if test -n "$destfile"; then
61251f0ac6a5Smrg	  $show "$install_prog $file $destfile"
61261f0ac6a5Smrg	  $run eval "$install_prog $file $destfile" || exit $?
61271f0ac6a5Smrg	fi
61281f0ac6a5Smrg
61291f0ac6a5Smrg	# Install the old object if enabled.
61301f0ac6a5Smrg	if test "$build_old_libs" = yes; then
61311f0ac6a5Smrg	  # Deduce the name of the old-style object file.
61321f0ac6a5Smrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
61331f0ac6a5Smrg
61341f0ac6a5Smrg	  $show "$install_prog $staticobj $staticdest"
61351f0ac6a5Smrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
61361f0ac6a5Smrg	fi
61371f0ac6a5Smrg	exit $EXIT_SUCCESS
61381f0ac6a5Smrg	;;
61391f0ac6a5Smrg
61401f0ac6a5Smrg      *)
61411f0ac6a5Smrg	# Figure out destination file name, if it wasn't already specified.
61421f0ac6a5Smrg	if test -n "$destname"; then
61431f0ac6a5Smrg	  destfile="$destdir/$destname"
61441f0ac6a5Smrg	else
61451f0ac6a5Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61461f0ac6a5Smrg	  destfile="$destdir/$destfile"
61471f0ac6a5Smrg	fi
61481f0ac6a5Smrg
61491f0ac6a5Smrg	# If the file is missing, and there is a .exe on the end, strip it
61501f0ac6a5Smrg	# because it is most likely a libtool script we actually want to
61511f0ac6a5Smrg	# install
61521f0ac6a5Smrg	stripped_ext=""
61531f0ac6a5Smrg	case $file in
61541f0ac6a5Smrg	  *.exe)
61551f0ac6a5Smrg	    if test ! -f "$file"; then
61561f0ac6a5Smrg	      file=`$echo $file|${SED} 's,.exe$,,'`
61571f0ac6a5Smrg	      stripped_ext=".exe"
61581f0ac6a5Smrg	    fi
61591f0ac6a5Smrg	    ;;
61601f0ac6a5Smrg	esac
61611f0ac6a5Smrg
61621f0ac6a5Smrg	# Do a test to see if this is really a libtool program.
61631f0ac6a5Smrg	case $host in
61641f0ac6a5Smrg	*cygwin*|*mingw*)
61651f0ac6a5Smrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
61661f0ac6a5Smrg	    ;;
61671f0ac6a5Smrg	*)
61681f0ac6a5Smrg	    wrapper=$file
61691f0ac6a5Smrg	    ;;
61701f0ac6a5Smrg	esac
61711f0ac6a5Smrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
61721f0ac6a5Smrg	  notinst_deplibs=
61731f0ac6a5Smrg	  relink_command=
61741f0ac6a5Smrg
61751f0ac6a5Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
61761f0ac6a5Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
61771f0ac6a5Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
61781f0ac6a5Smrg	  # `FILE.' does not work on cygwin managed mounts.
61791f0ac6a5Smrg	  #
61801f0ac6a5Smrg	  # If there is no directory component, then add one.
61811f0ac6a5Smrg	  case $wrapper in
61821f0ac6a5Smrg	  */* | *\\*) . ${wrapper} ;;
61831f0ac6a5Smrg	  *) . ./${wrapper} ;;
61841f0ac6a5Smrg	  esac
61851f0ac6a5Smrg
61861f0ac6a5Smrg	  # Check the variables that should have been set.
61871f0ac6a5Smrg	  if test -z "$notinst_deplibs"; then
61881f0ac6a5Smrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
61891f0ac6a5Smrg	    exit $EXIT_FAILURE
61901f0ac6a5Smrg	  fi
61911f0ac6a5Smrg
61921f0ac6a5Smrg	  finalize=yes
61931f0ac6a5Smrg	  for lib in $notinst_deplibs; do
61941f0ac6a5Smrg	    # Check to see that each library is installed.
61951f0ac6a5Smrg	    libdir=
61961f0ac6a5Smrg	    if test -f "$lib"; then
61971f0ac6a5Smrg	      # If there is no directory component, then add one.
61981f0ac6a5Smrg	      case $lib in
61991f0ac6a5Smrg	      */* | *\\*) . $lib ;;
62001f0ac6a5Smrg	      *) . ./$lib ;;
62011f0ac6a5Smrg	      esac
62021f0ac6a5Smrg	    fi
62031f0ac6a5Smrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
62041f0ac6a5Smrg	    if test -n "$libdir" && test ! -f "$libfile"; then
62051f0ac6a5Smrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
62061f0ac6a5Smrg	      finalize=no
62071f0ac6a5Smrg	    fi
62081f0ac6a5Smrg	  done
62091f0ac6a5Smrg
62101f0ac6a5Smrg	  relink_command=
62111f0ac6a5Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
62121f0ac6a5Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
62131f0ac6a5Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
62141f0ac6a5Smrg	  # `FILE.' does not work on cygwin managed mounts.
62151f0ac6a5Smrg	  #
62161f0ac6a5Smrg	  # If there is no directory component, then add one.
62171f0ac6a5Smrg	  case $wrapper in
62181f0ac6a5Smrg	  */* | *\\*) . ${wrapper} ;;
62191f0ac6a5Smrg	  *) . ./${wrapper} ;;
62201f0ac6a5Smrg	  esac
62211f0ac6a5Smrg
62221f0ac6a5Smrg	  outputname=
62231f0ac6a5Smrg	  if test "$fast_install" = no && test -n "$relink_command"; then
62241f0ac6a5Smrg	    if test "$finalize" = yes && test -z "$run"; then
62251f0ac6a5Smrg	      tmpdir=`func_mktempdir`
62261f0ac6a5Smrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
62271f0ac6a5Smrg	      outputname="$tmpdir/$file"
62281f0ac6a5Smrg	      # Replace the output file specification.
6229e5410a46Smrg	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
62301f0ac6a5Smrg
62311f0ac6a5Smrg	      $show "$relink_command"
62321f0ac6a5Smrg	      if $run eval "$relink_command"; then :
62331f0ac6a5Smrg	      else
62341f0ac6a5Smrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
62351f0ac6a5Smrg		${rm}r "$tmpdir"
62361f0ac6a5Smrg		continue
62371f0ac6a5Smrg	      fi
62381f0ac6a5Smrg	      file="$outputname"
62391f0ac6a5Smrg	    else
62401f0ac6a5Smrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
62411f0ac6a5Smrg	    fi
62421f0ac6a5Smrg	  else
62431f0ac6a5Smrg	    # Install the binary that we compiled earlier.
62441f0ac6a5Smrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
62451f0ac6a5Smrg	  fi
62461f0ac6a5Smrg	fi
62471f0ac6a5Smrg
62481f0ac6a5Smrg	# remove .exe since cygwin /usr/bin/install will append another
62491f0ac6a5Smrg	# one anyway 
62501f0ac6a5Smrg	case $install_prog,$host in
62511f0ac6a5Smrg	*/usr/bin/install*,*cygwin*)
62521f0ac6a5Smrg	  case $file:$destfile in
62531f0ac6a5Smrg	  *.exe:*.exe)
62541f0ac6a5Smrg	    # this is ok
62551f0ac6a5Smrg	    ;;
62561f0ac6a5Smrg	  *.exe:*)
62571f0ac6a5Smrg	    destfile=$destfile.exe
62581f0ac6a5Smrg	    ;;
62591f0ac6a5Smrg	  *:*.exe)
62601f0ac6a5Smrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
62611f0ac6a5Smrg	    ;;
62621f0ac6a5Smrg	  esac
62631f0ac6a5Smrg	  ;;
62641f0ac6a5Smrg	esac
62651f0ac6a5Smrg	$show "$install_prog$stripme $file $destfile"
62661f0ac6a5Smrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
62671f0ac6a5Smrg	test -n "$outputname" && ${rm}r "$tmpdir"
62681f0ac6a5Smrg	;;
62691f0ac6a5Smrg      esac
62701f0ac6a5Smrg    done
62711f0ac6a5Smrg
62721f0ac6a5Smrg    for file in $staticlibs; do
62731f0ac6a5Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
62741f0ac6a5Smrg
62751f0ac6a5Smrg      # Set up the ranlib parameters.
62761f0ac6a5Smrg      oldlib="$destdir/$name"
62771f0ac6a5Smrg
62781f0ac6a5Smrg      $show "$install_prog $file $oldlib"
62791f0ac6a5Smrg      $run eval "$install_prog \$file \$oldlib" || exit $?
62801f0ac6a5Smrg
62811f0ac6a5Smrg      if test -n "$stripme" && test -n "$old_striplib"; then
62821f0ac6a5Smrg	$show "$old_striplib $oldlib"
62831f0ac6a5Smrg	$run eval "$old_striplib $oldlib" || exit $?
62841f0ac6a5Smrg      fi
62851f0ac6a5Smrg
62861f0ac6a5Smrg      # Do each command in the postinstall commands.
62871f0ac6a5Smrg      cmds=$old_postinstall_cmds
62881f0ac6a5Smrg      save_ifs="$IFS"; IFS='~'
62891f0ac6a5Smrg      for cmd in $cmds; do
62901f0ac6a5Smrg	IFS="$save_ifs"
62911f0ac6a5Smrg	eval cmd=\"$cmd\"
62921f0ac6a5Smrg	$show "$cmd"
62931f0ac6a5Smrg	$run eval "$cmd" || exit $?
62941f0ac6a5Smrg      done
62951f0ac6a5Smrg      IFS="$save_ifs"
62961f0ac6a5Smrg    done
62971f0ac6a5Smrg
62981f0ac6a5Smrg    if test -n "$future_libdirs"; then
62991f0ac6a5Smrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
63001f0ac6a5Smrg    fi
63011f0ac6a5Smrg
63021f0ac6a5Smrg    if test -n "$current_libdirs"; then
63031f0ac6a5Smrg      # Maybe just do a dry run.
63041f0ac6a5Smrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
63051f0ac6a5Smrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
63061f0ac6a5Smrg    else
63071f0ac6a5Smrg      exit $EXIT_SUCCESS
63081f0ac6a5Smrg    fi
63091f0ac6a5Smrg    ;;
63101f0ac6a5Smrg
63111f0ac6a5Smrg  # libtool finish mode
63121f0ac6a5Smrg  finish)
63131f0ac6a5Smrg    modename="$modename: finish"
63141f0ac6a5Smrg    libdirs="$nonopt"
63151f0ac6a5Smrg    admincmds=
63161f0ac6a5Smrg
63171f0ac6a5Smrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
63181f0ac6a5Smrg      for dir
63191f0ac6a5Smrg      do
63201f0ac6a5Smrg	libdirs="$libdirs $dir"
63211f0ac6a5Smrg      done
63221f0ac6a5Smrg
63231f0ac6a5Smrg      for libdir in $libdirs; do
63241f0ac6a5Smrg	if test -n "$finish_cmds"; then
63251f0ac6a5Smrg	  # Do each command in the finish commands.
63261f0ac6a5Smrg	  cmds=$finish_cmds
63271f0ac6a5Smrg	  save_ifs="$IFS"; IFS='~'
63281f0ac6a5Smrg	  for cmd in $cmds; do
63291f0ac6a5Smrg	    IFS="$save_ifs"
63301f0ac6a5Smrg	    eval cmd=\"$cmd\"
63311f0ac6a5Smrg	    $show "$cmd"
63321f0ac6a5Smrg	    $run eval "$cmd" || admincmds="$admincmds
63331f0ac6a5Smrg       $cmd"
63341f0ac6a5Smrg	  done
63351f0ac6a5Smrg	  IFS="$save_ifs"
63361f0ac6a5Smrg	fi
63371f0ac6a5Smrg	if test -n "$finish_eval"; then
63381f0ac6a5Smrg	  # Do the single finish_eval.
63391f0ac6a5Smrg	  eval cmds=\"$finish_eval\"
63401f0ac6a5Smrg	  $run eval "$cmds" || admincmds="$admincmds
63411f0ac6a5Smrg       $cmds"
63421f0ac6a5Smrg	fi
63431f0ac6a5Smrg      done
63441f0ac6a5Smrg    fi
63451f0ac6a5Smrg
63461f0ac6a5Smrg    # Exit here if they wanted silent mode.
63471f0ac6a5Smrg    test "$show" = : && exit $EXIT_SUCCESS
63481f0ac6a5Smrg
63491f0ac6a5Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
63501f0ac6a5Smrg    $echo "Libraries have been installed in:"
63511f0ac6a5Smrg    for libdir in $libdirs; do
63521f0ac6a5Smrg      $echo "   $libdir"
63531f0ac6a5Smrg    done
63541f0ac6a5Smrg    $echo
63551f0ac6a5Smrg    $echo "If you ever happen to want to link against installed libraries"
63561f0ac6a5Smrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
63571f0ac6a5Smrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
63581f0ac6a5Smrg    $echo "flag during linking and do at least one of the following:"
63591f0ac6a5Smrg    if test -n "$shlibpath_var"; then
63601f0ac6a5Smrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
63611f0ac6a5Smrg      $echo "     during execution"
63621f0ac6a5Smrg    fi
63631f0ac6a5Smrg    if test -n "$runpath_var"; then
63641f0ac6a5Smrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
63651f0ac6a5Smrg      $echo "     during linking"
63661f0ac6a5Smrg    fi
63671f0ac6a5Smrg    if test -n "$hardcode_libdir_flag_spec"; then
63681f0ac6a5Smrg      libdir=LIBDIR
63691f0ac6a5Smrg      eval flag=\"$hardcode_libdir_flag_spec\"
63701f0ac6a5Smrg
63711f0ac6a5Smrg      $echo "   - use the \`$flag' linker flag"
63721f0ac6a5Smrg    fi
63731f0ac6a5Smrg    if test -n "$admincmds"; then
63741f0ac6a5Smrg      $echo "   - have your system administrator run these commands:$admincmds"
63751f0ac6a5Smrg    fi
63761f0ac6a5Smrg    if test -f /etc/ld.so.conf; then
63771f0ac6a5Smrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
63781f0ac6a5Smrg    fi
63791f0ac6a5Smrg    $echo
63801f0ac6a5Smrg    $echo "See any operating system documentation about shared libraries for"
63811f0ac6a5Smrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
63821f0ac6a5Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
63831f0ac6a5Smrg    exit $EXIT_SUCCESS
63841f0ac6a5Smrg    ;;
63851f0ac6a5Smrg
63861f0ac6a5Smrg  # libtool execute mode
63871f0ac6a5Smrg  execute)
63881f0ac6a5Smrg    modename="$modename: execute"
63891f0ac6a5Smrg
63901f0ac6a5Smrg    # The first argument is the command name.
63911f0ac6a5Smrg    cmd="$nonopt"
63921f0ac6a5Smrg    if test -z "$cmd"; then
63931f0ac6a5Smrg      $echo "$modename: you must specify a COMMAND" 1>&2
63941f0ac6a5Smrg      $echo "$help"
63951f0ac6a5Smrg      exit $EXIT_FAILURE
63961f0ac6a5Smrg    fi
63971f0ac6a5Smrg
63981f0ac6a5Smrg    # Handle -dlopen flags immediately.
63991f0ac6a5Smrg    for file in $execute_dlfiles; do
64001f0ac6a5Smrg      if test ! -f "$file"; then
64011f0ac6a5Smrg	$echo "$modename: \`$file' is not a file" 1>&2
64021f0ac6a5Smrg	$echo "$help" 1>&2
64031f0ac6a5Smrg	exit $EXIT_FAILURE
64041f0ac6a5Smrg      fi
64051f0ac6a5Smrg
64061f0ac6a5Smrg      dir=
64071f0ac6a5Smrg      case $file in
64081f0ac6a5Smrg      *.la)
64091f0ac6a5Smrg	# Check to see that this really is a libtool archive.
64101f0ac6a5Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
64111f0ac6a5Smrg	else
64121f0ac6a5Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
64131f0ac6a5Smrg	  $echo "$help" 1>&2
64141f0ac6a5Smrg	  exit $EXIT_FAILURE
64151f0ac6a5Smrg	fi
64161f0ac6a5Smrg
64171f0ac6a5Smrg	# Read the libtool library.
64181f0ac6a5Smrg	dlname=
64191f0ac6a5Smrg	library_names=
64201f0ac6a5Smrg
64211f0ac6a5Smrg	# If there is no directory component, then add one.
64221f0ac6a5Smrg	case $file in
64231f0ac6a5Smrg	*/* | *\\*) . $file ;;
64241f0ac6a5Smrg	*) . ./$file ;;
64251f0ac6a5Smrg	esac
64261f0ac6a5Smrg
64271f0ac6a5Smrg	# Skip this library if it cannot be dlopened.
64281f0ac6a5Smrg	if test -z "$dlname"; then
64291f0ac6a5Smrg	  # Warn if it was a shared library.
64301f0ac6a5Smrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
64311f0ac6a5Smrg	  continue
64321f0ac6a5Smrg	fi
64331f0ac6a5Smrg
64341f0ac6a5Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64351f0ac6a5Smrg	test "X$dir" = "X$file" && dir=.
64361f0ac6a5Smrg
64371f0ac6a5Smrg	if test -f "$dir/$objdir/$dlname"; then
64381f0ac6a5Smrg	  dir="$dir/$objdir"
64391f0ac6a5Smrg	else
6440e5410a46Smrg	  if test ! -f "$dir/$dlname"; then
6441e5410a46Smrg	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6442e5410a46Smrg	    exit $EXIT_FAILURE
6443e5410a46Smrg	  fi
64441f0ac6a5Smrg	fi
64451f0ac6a5Smrg	;;
64461f0ac6a5Smrg
64471f0ac6a5Smrg      *.lo)
64481f0ac6a5Smrg	# Just add the directory containing the .lo file.
64491f0ac6a5Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64501f0ac6a5Smrg	test "X$dir" = "X$file" && dir=.
64511f0ac6a5Smrg	;;
64521f0ac6a5Smrg
64531f0ac6a5Smrg      *)
64541f0ac6a5Smrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
64551f0ac6a5Smrg	continue
64561f0ac6a5Smrg	;;
64571f0ac6a5Smrg      esac
64581f0ac6a5Smrg
64591f0ac6a5Smrg      # Get the absolute pathname.
64601f0ac6a5Smrg      absdir=`cd "$dir" && pwd`
64611f0ac6a5Smrg      test -n "$absdir" && dir="$absdir"
64621f0ac6a5Smrg
64631f0ac6a5Smrg      # Now add the directory to shlibpath_var.
64641f0ac6a5Smrg      if eval "test -z \"\$$shlibpath_var\""; then
64651f0ac6a5Smrg	eval "$shlibpath_var=\"\$dir\""
64661f0ac6a5Smrg      else
64671f0ac6a5Smrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
64681f0ac6a5Smrg      fi
64691f0ac6a5Smrg    done
64701f0ac6a5Smrg
64711f0ac6a5Smrg    # This variable tells wrapper scripts just to set shlibpath_var
64721f0ac6a5Smrg    # rather than running their programs.
64731f0ac6a5Smrg    libtool_execute_magic="$magic"
64741f0ac6a5Smrg
64751f0ac6a5Smrg    # Check if any of the arguments is a wrapper script.
64761f0ac6a5Smrg    args=
64771f0ac6a5Smrg    for file
64781f0ac6a5Smrg    do
64791f0ac6a5Smrg      case $file in
64801f0ac6a5Smrg      -*) ;;
64811f0ac6a5Smrg      *)
64821f0ac6a5Smrg	# Do a test to see if this is really a libtool program.
64831f0ac6a5Smrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
64841f0ac6a5Smrg	  # If there is no directory component, then add one.
64851f0ac6a5Smrg	  case $file in
64861f0ac6a5Smrg	  */* | *\\*) . $file ;;
64871f0ac6a5Smrg	  *) . ./$file ;;
64881f0ac6a5Smrg	  esac
64891f0ac6a5Smrg
64901f0ac6a5Smrg	  # Transform arg to wrapped name.
64911f0ac6a5Smrg	  file="$progdir/$program"
64921f0ac6a5Smrg	fi
64931f0ac6a5Smrg	;;
64941f0ac6a5Smrg      esac
64951f0ac6a5Smrg      # Quote arguments (to preserve shell metacharacters).
64961f0ac6a5Smrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
64971f0ac6a5Smrg      args="$args \"$file\""
64981f0ac6a5Smrg    done
64991f0ac6a5Smrg
65001f0ac6a5Smrg    if test -z "$run"; then
65011f0ac6a5Smrg      if test -n "$shlibpath_var"; then
65021f0ac6a5Smrg	# Export the shlibpath_var.
65031f0ac6a5Smrg	eval "export $shlibpath_var"
65041f0ac6a5Smrg      fi
65051f0ac6a5Smrg
65061f0ac6a5Smrg      # Restore saved environment variables
6507e5410a46Smrg      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
6508e5410a46Smrg      do
6509e5410a46Smrg	eval "if test \"\${save_$lt_var+set}\" = set; then
6510e5410a46Smrg		$lt_var=\$save_$lt_var; export $lt_var
6511e5410a46Smrg	      fi"
6512e5410a46Smrg      done
65131f0ac6a5Smrg
65141f0ac6a5Smrg      # Now prepare to actually exec the command.
65151f0ac6a5Smrg      exec_cmd="\$cmd$args"
65161f0ac6a5Smrg    else
65171f0ac6a5Smrg      # Display what would be done.
65181f0ac6a5Smrg      if test -n "$shlibpath_var"; then
65191f0ac6a5Smrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
65201f0ac6a5Smrg	$echo "export $shlibpath_var"
65211f0ac6a5Smrg      fi
65221f0ac6a5Smrg      $echo "$cmd$args"
65231f0ac6a5Smrg      exit $EXIT_SUCCESS
65241f0ac6a5Smrg    fi
65251f0ac6a5Smrg    ;;
65261f0ac6a5Smrg
65271f0ac6a5Smrg  # libtool clean and uninstall mode
65281f0ac6a5Smrg  clean | uninstall)
65291f0ac6a5Smrg    modename="$modename: $mode"
65301f0ac6a5Smrg    rm="$nonopt"
65311f0ac6a5Smrg    files=
65321f0ac6a5Smrg    rmforce=
65331f0ac6a5Smrg    exit_status=0
65341f0ac6a5Smrg
65351f0ac6a5Smrg    # This variable tells wrapper scripts just to set variables rather
65361f0ac6a5Smrg    # than running their programs.
65371f0ac6a5Smrg    libtool_install_magic="$magic"
65381f0ac6a5Smrg
65391f0ac6a5Smrg    for arg
65401f0ac6a5Smrg    do
65411f0ac6a5Smrg      case $arg in
65421f0ac6a5Smrg      -f) rm="$rm $arg"; rmforce=yes ;;
65431f0ac6a5Smrg      -*) rm="$rm $arg" ;;
65441f0ac6a5Smrg      *) files="$files $arg" ;;
65451f0ac6a5Smrg      esac
65461f0ac6a5Smrg    done
65471f0ac6a5Smrg
65481f0ac6a5Smrg    if test -z "$rm"; then
65491f0ac6a5Smrg      $echo "$modename: you must specify an RM program" 1>&2
65501f0ac6a5Smrg      $echo "$help" 1>&2
65511f0ac6a5Smrg      exit $EXIT_FAILURE
65521f0ac6a5Smrg    fi
65531f0ac6a5Smrg
65541f0ac6a5Smrg    rmdirs=
65551f0ac6a5Smrg
65561f0ac6a5Smrg    origobjdir="$objdir"
65571f0ac6a5Smrg    for file in $files; do
65581f0ac6a5Smrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
65591f0ac6a5Smrg      if test "X$dir" = "X$file"; then
65601f0ac6a5Smrg	dir=.
65611f0ac6a5Smrg	objdir="$origobjdir"
65621f0ac6a5Smrg      else
65631f0ac6a5Smrg	objdir="$dir/$origobjdir"
65641f0ac6a5Smrg      fi
65651f0ac6a5Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
65661f0ac6a5Smrg      test "$mode" = uninstall && objdir="$dir"
65671f0ac6a5Smrg
65681f0ac6a5Smrg      # Remember objdir for removal later, being careful to avoid duplicates
65691f0ac6a5Smrg      if test "$mode" = clean; then
65701f0ac6a5Smrg	case " $rmdirs " in
65711f0ac6a5Smrg	  *" $objdir "*) ;;
65721f0ac6a5Smrg	  *) rmdirs="$rmdirs $objdir" ;;
65731f0ac6a5Smrg	esac
65741f0ac6a5Smrg      fi
65751f0ac6a5Smrg
65761f0ac6a5Smrg      # Don't error if the file doesn't exist and rm -f was used.
65771f0ac6a5Smrg      if (test -L "$file") >/dev/null 2>&1 \
65781f0ac6a5Smrg	|| (test -h "$file") >/dev/null 2>&1 \
65791f0ac6a5Smrg	|| test -f "$file"; then
65801f0ac6a5Smrg	:
65811f0ac6a5Smrg      elif test -d "$file"; then
65821f0ac6a5Smrg	exit_status=1
65831f0ac6a5Smrg	continue
65841f0ac6a5Smrg      elif test "$rmforce" = yes; then
65851f0ac6a5Smrg	continue
65861f0ac6a5Smrg      fi
65871f0ac6a5Smrg
65881f0ac6a5Smrg      rmfiles="$file"
65891f0ac6a5Smrg
65901f0ac6a5Smrg      case $name in
65911f0ac6a5Smrg      *.la)
65921f0ac6a5Smrg	# Possibly a libtool archive, so verify it.
65931f0ac6a5Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
65941f0ac6a5Smrg	  . $dir/$name
65951f0ac6a5Smrg
65961f0ac6a5Smrg	  # Delete the libtool libraries and symlinks.
65971f0ac6a5Smrg	  for n in $library_names; do
65981f0ac6a5Smrg	    rmfiles="$rmfiles $objdir/$n"
65991f0ac6a5Smrg	  done
66001f0ac6a5Smrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
66011f0ac6a5Smrg
66021f0ac6a5Smrg	  case "$mode" in
66031f0ac6a5Smrg	  clean)
66041f0ac6a5Smrg	    case "  $library_names " in
66051f0ac6a5Smrg	    # "  " in the beginning catches empty $dlname
66061f0ac6a5Smrg	    *" $dlname "*) ;;
66071f0ac6a5Smrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
66081f0ac6a5Smrg	    esac
66091f0ac6a5Smrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
66101f0ac6a5Smrg	    ;;
66111f0ac6a5Smrg	  uninstall)
66121f0ac6a5Smrg	    if test -n "$library_names"; then
66131f0ac6a5Smrg	      # Do each command in the postuninstall commands.
66141f0ac6a5Smrg	      cmds=$postuninstall_cmds
66151f0ac6a5Smrg	      save_ifs="$IFS"; IFS='~'
66161f0ac6a5Smrg	      for cmd in $cmds; do
66171f0ac6a5Smrg		IFS="$save_ifs"
66181f0ac6a5Smrg		eval cmd=\"$cmd\"
66191f0ac6a5Smrg		$show "$cmd"
66201f0ac6a5Smrg		$run eval "$cmd"
66211f0ac6a5Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
66221f0ac6a5Smrg		  exit_status=1
66231f0ac6a5Smrg		fi
66241f0ac6a5Smrg	      done
66251f0ac6a5Smrg	      IFS="$save_ifs"
66261f0ac6a5Smrg	    fi
66271f0ac6a5Smrg
66281f0ac6a5Smrg	    if test -n "$old_library"; then
66291f0ac6a5Smrg	      # Do each command in the old_postuninstall commands.
66301f0ac6a5Smrg	      cmds=$old_postuninstall_cmds
66311f0ac6a5Smrg	      save_ifs="$IFS"; IFS='~'
66321f0ac6a5Smrg	      for cmd in $cmds; do
66331f0ac6a5Smrg		IFS="$save_ifs"
66341f0ac6a5Smrg		eval cmd=\"$cmd\"
66351f0ac6a5Smrg		$show "$cmd"
66361f0ac6a5Smrg		$run eval "$cmd"
66371f0ac6a5Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
66381f0ac6a5Smrg		  exit_status=1
66391f0ac6a5Smrg		fi
66401f0ac6a5Smrg	      done
66411f0ac6a5Smrg	      IFS="$save_ifs"
66421f0ac6a5Smrg	    fi
66431f0ac6a5Smrg	    # FIXME: should reinstall the best remaining shared library.
66441f0ac6a5Smrg	    ;;
66451f0ac6a5Smrg	  esac
66461f0ac6a5Smrg	fi
66471f0ac6a5Smrg	;;
66481f0ac6a5Smrg
66491f0ac6a5Smrg      *.lo)
66501f0ac6a5Smrg	# Possibly a libtool object, so verify it.
66511f0ac6a5Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66521f0ac6a5Smrg
66531f0ac6a5Smrg	  # Read the .lo file
66541f0ac6a5Smrg	  . $dir/$name
66551f0ac6a5Smrg
66561f0ac6a5Smrg	  # Add PIC object to the list of files to remove.
66571f0ac6a5Smrg	  if test -n "$pic_object" \
66581f0ac6a5Smrg	     && test "$pic_object" != none; then
66591f0ac6a5Smrg	    rmfiles="$rmfiles $dir/$pic_object"
66601f0ac6a5Smrg	  fi
66611f0ac6a5Smrg
66621f0ac6a5Smrg	  # Add non-PIC object to the list of files to remove.
66631f0ac6a5Smrg	  if test -n "$non_pic_object" \
66641f0ac6a5Smrg	     && test "$non_pic_object" != none; then
66651f0ac6a5Smrg	    rmfiles="$rmfiles $dir/$non_pic_object"
66661f0ac6a5Smrg	  fi
66671f0ac6a5Smrg	fi
66681f0ac6a5Smrg	;;
66691f0ac6a5Smrg
66701f0ac6a5Smrg      *)
66711f0ac6a5Smrg	if test "$mode" = clean ; then
66721f0ac6a5Smrg	  noexename=$name
66731f0ac6a5Smrg	  case $file in
66741f0ac6a5Smrg	  *.exe)
66751f0ac6a5Smrg	    file=`$echo $file|${SED} 's,.exe$,,'`
66761f0ac6a5Smrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
66771f0ac6a5Smrg	    # $file with .exe has already been added to rmfiles,
66781f0ac6a5Smrg	    # add $file without .exe
66791f0ac6a5Smrg	    rmfiles="$rmfiles $file"
66801f0ac6a5Smrg	    ;;
66811f0ac6a5Smrg	  esac
66821f0ac6a5Smrg	  # Do a test to see if this is a libtool program.
66831f0ac6a5Smrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66841f0ac6a5Smrg	    relink_command=
66851f0ac6a5Smrg	    . $dir/$noexename
66861f0ac6a5Smrg
66871f0ac6a5Smrg	    # note $name still contains .exe if it was in $file originally
66881f0ac6a5Smrg	    # as does the version of $file that was added into $rmfiles
66891f0ac6a5Smrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
66901f0ac6a5Smrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
66911f0ac6a5Smrg	      rmfiles="$rmfiles $objdir/lt-$name"
66921f0ac6a5Smrg	    fi
66931f0ac6a5Smrg	    if test "X$noexename" != "X$name" ; then
66941f0ac6a5Smrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
66951f0ac6a5Smrg	    fi
66961f0ac6a5Smrg	  fi
66971f0ac6a5Smrg	fi
66981f0ac6a5Smrg	;;
66991f0ac6a5Smrg      esac
67001f0ac6a5Smrg      $show "$rm $rmfiles"
67011f0ac6a5Smrg      $run $rm $rmfiles || exit_status=1
67021f0ac6a5Smrg    done
67031f0ac6a5Smrg    objdir="$origobjdir"
67041f0ac6a5Smrg
67051f0ac6a5Smrg    # Try to remove the ${objdir}s in the directories where we deleted files
67061f0ac6a5Smrg    for dir in $rmdirs; do
67071f0ac6a5Smrg      if test -d "$dir"; then
67081f0ac6a5Smrg	$show "rmdir $dir"
67091f0ac6a5Smrg	$run rmdir $dir >/dev/null 2>&1
67101f0ac6a5Smrg      fi
67111f0ac6a5Smrg    done
67121f0ac6a5Smrg
67131f0ac6a5Smrg    exit $exit_status
67141f0ac6a5Smrg    ;;
67151f0ac6a5Smrg
67161f0ac6a5Smrg  "")
67171f0ac6a5Smrg    $echo "$modename: you must specify a MODE" 1>&2
67181f0ac6a5Smrg    $echo "$generic_help" 1>&2
67191f0ac6a5Smrg    exit $EXIT_FAILURE
67201f0ac6a5Smrg    ;;
67211f0ac6a5Smrg  esac
67221f0ac6a5Smrg
67231f0ac6a5Smrg  if test -z "$exec_cmd"; then
67241f0ac6a5Smrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
67251f0ac6a5Smrg    $echo "$generic_help" 1>&2
67261f0ac6a5Smrg    exit $EXIT_FAILURE
67271f0ac6a5Smrg  fi
67281f0ac6a5Smrgfi # test -z "$show_help"
67291f0ac6a5Smrg
67301f0ac6a5Smrgif test -n "$exec_cmd"; then
67311f0ac6a5Smrg  eval exec $exec_cmd
67321f0ac6a5Smrg  exit $EXIT_FAILURE
67331f0ac6a5Smrgfi
67341f0ac6a5Smrg
67351f0ac6a5Smrg# We need to display help for each of the modes.
67361f0ac6a5Smrgcase $mode in
67371f0ac6a5Smrg"") $echo \
67381f0ac6a5Smrg"Usage: $modename [OPTION]... [MODE-ARG]...
67391f0ac6a5Smrg
67401f0ac6a5SmrgProvide generalized library-building support services.
67411f0ac6a5Smrg
67421f0ac6a5Smrg    --config          show all configuration variables
67431f0ac6a5Smrg    --debug           enable verbose shell tracing
67441f0ac6a5Smrg-n, --dry-run         display commands without modifying any files
67451f0ac6a5Smrg    --features        display basic configuration information and exit
67461f0ac6a5Smrg    --finish          same as \`--mode=finish'
67471f0ac6a5Smrg    --help            display this help message and exit
67481f0ac6a5Smrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
67491f0ac6a5Smrg    --quiet           same as \`--silent'
67501f0ac6a5Smrg    --silent          don't print informational messages
67511f0ac6a5Smrg    --tag=TAG         use configuration variables from tag TAG
67521f0ac6a5Smrg    --version         print version information
67531f0ac6a5Smrg
67541f0ac6a5SmrgMODE must be one of the following:
67551f0ac6a5Smrg
67561f0ac6a5Smrg      clean           remove files from the build directory
67571f0ac6a5Smrg      compile         compile a source file into a libtool object
67581f0ac6a5Smrg      execute         automatically set library path, then run a program
67591f0ac6a5Smrg      finish          complete the installation of libtool libraries
67601f0ac6a5Smrg      install         install libraries or executables
67611f0ac6a5Smrg      link            create a library or an executable
67621f0ac6a5Smrg      uninstall       remove libraries from an installed directory
67631f0ac6a5Smrg
67641f0ac6a5SmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
67651f0ac6a5Smrga more detailed description of MODE.
67661f0ac6a5Smrg
67671f0ac6a5SmrgReport bugs to <bug-libtool@gnu.org>."
67681f0ac6a5Smrg  exit $EXIT_SUCCESS
67691f0ac6a5Smrg  ;;
67701f0ac6a5Smrg
67711f0ac6a5Smrgclean)
67721f0ac6a5Smrg  $echo \
67731f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
67741f0ac6a5Smrg
67751f0ac6a5SmrgRemove files from the build directory.
67761f0ac6a5Smrg
67771f0ac6a5SmrgRM is the name of the program to use to delete files associated with each FILE
67781f0ac6a5Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
67791f0ac6a5Smrgto RM.
67801f0ac6a5Smrg
67811f0ac6a5SmrgIf FILE is a libtool library, object or program, all the files associated
67821f0ac6a5Smrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
67831f0ac6a5Smrg  ;;
67841f0ac6a5Smrg
67851f0ac6a5Smrgcompile)
67861f0ac6a5Smrg  $echo \
67871f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
67881f0ac6a5Smrg
67891f0ac6a5SmrgCompile a source file into a libtool library object.
67901f0ac6a5Smrg
67911f0ac6a5SmrgThis mode accepts the following additional options:
67921f0ac6a5Smrg
67931f0ac6a5Smrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
67941f0ac6a5Smrg  -prefer-pic       try to building PIC objects only
67951f0ac6a5Smrg  -prefer-non-pic   try to building non-PIC objects only
67961f0ac6a5Smrg  -static           always build a \`.o' file suitable for static linking
67971f0ac6a5Smrg
67981f0ac6a5SmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
67991f0ac6a5Smrgfrom the given SOURCEFILE.
68001f0ac6a5Smrg
68011f0ac6a5SmrgThe output file name is determined by removing the directory component from
68021f0ac6a5SmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
68031f0ac6a5Smrglibrary object suffix, \`.lo'."
68041f0ac6a5Smrg  ;;
68051f0ac6a5Smrg
68061f0ac6a5Smrgexecute)
68071f0ac6a5Smrg  $echo \
68081f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
68091f0ac6a5Smrg
68101f0ac6a5SmrgAutomatically set library path, then run a program.
68111f0ac6a5Smrg
68121f0ac6a5SmrgThis mode accepts the following additional options:
68131f0ac6a5Smrg
68141f0ac6a5Smrg  -dlopen FILE      add the directory containing FILE to the library path
68151f0ac6a5Smrg
68161f0ac6a5SmrgThis mode sets the library path environment variable according to \`-dlopen'
68171f0ac6a5Smrgflags.
68181f0ac6a5Smrg
68191f0ac6a5SmrgIf any of the ARGS are libtool executable wrappers, then they are translated
68201f0ac6a5Smrginto their corresponding uninstalled binary, and any of their required library
68211f0ac6a5Smrgdirectories are added to the library path.
68221f0ac6a5Smrg
68231f0ac6a5SmrgThen, COMMAND is executed, with ARGS as arguments."
68241f0ac6a5Smrg  ;;
68251f0ac6a5Smrg
68261f0ac6a5Smrgfinish)
68271f0ac6a5Smrg  $echo \
68281f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
68291f0ac6a5Smrg
68301f0ac6a5SmrgComplete the installation of libtool libraries.
68311f0ac6a5Smrg
68321f0ac6a5SmrgEach LIBDIR is a directory that contains libtool libraries.
68331f0ac6a5Smrg
68341f0ac6a5SmrgThe commands that this mode executes may require superuser privileges.  Use
68351f0ac6a5Smrgthe \`--dry-run' option if you just want to see what would be executed."
68361f0ac6a5Smrg  ;;
68371f0ac6a5Smrg
68381f0ac6a5Smrginstall)
68391f0ac6a5Smrg  $echo \
68401f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
68411f0ac6a5Smrg
68421f0ac6a5SmrgInstall executables or libraries.
68431f0ac6a5Smrg
68441f0ac6a5SmrgINSTALL-COMMAND is the installation command.  The first component should be
68451f0ac6a5Smrgeither the \`install' or \`cp' program.
68461f0ac6a5Smrg
68471f0ac6a5SmrgThe rest of the components are interpreted as arguments to that command (only
68481f0ac6a5SmrgBSD-compatible install options are recognized)."
68491f0ac6a5Smrg  ;;
68501f0ac6a5Smrg
68511f0ac6a5Smrglink)
68521f0ac6a5Smrg  $echo \
68531f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
68541f0ac6a5Smrg
68551f0ac6a5SmrgLink object files or libraries together to form another library, or to
68561f0ac6a5Smrgcreate an executable program.
68571f0ac6a5Smrg
68581f0ac6a5SmrgLINK-COMMAND is a command using the C compiler that you would use to create
68591f0ac6a5Smrga program from several object files.
68601f0ac6a5Smrg
68611f0ac6a5SmrgThe following components of LINK-COMMAND are treated specially:
68621f0ac6a5Smrg
68631f0ac6a5Smrg  -all-static       do not do any dynamic linking at all
68641f0ac6a5Smrg  -avoid-version    do not add a version suffix if possible
68651f0ac6a5Smrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
68661f0ac6a5Smrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
68671f0ac6a5Smrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
68681f0ac6a5Smrg  -export-symbols SYMFILE
6869e5410a46Smrg                    try to export only the symbols listed in SYMFILE
68701f0ac6a5Smrg  -export-symbols-regex REGEX
6871e5410a46Smrg                    try to export only the symbols matching REGEX
68721f0ac6a5Smrg  -LLIBDIR          search LIBDIR for required installed libraries
68731f0ac6a5Smrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
68741f0ac6a5Smrg  -module           build a library that can dlopened
68751f0ac6a5Smrg  -no-fast-install  disable the fast-install mode
68761f0ac6a5Smrg  -no-install       link a not-installable executable
68771f0ac6a5Smrg  -no-undefined     declare that a library does not refer to external symbols
68781f0ac6a5Smrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
68791f0ac6a5Smrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
68801f0ac6a5Smrg  -precious-files-regex REGEX
68811f0ac6a5Smrg                    don't remove output files matching REGEX
68821f0ac6a5Smrg  -release RELEASE  specify package release information
68831f0ac6a5Smrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
68841f0ac6a5Smrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6885e5410a46Smrg  -static           do not do any dynamic linking of uninstalled libtool libraries
6886e5410a46Smrg  -static-libtool-libs
6887e5410a46Smrg                    do not do any dynamic linking of libtool libraries
68881f0ac6a5Smrg  -version-info CURRENT[:REVISION[:AGE]]
6889e5410a46Smrg                    specify library version info [each variable defaults to 0]
68901f0ac6a5Smrg
68911f0ac6a5SmrgAll other options (arguments beginning with \`-') are ignored.
68921f0ac6a5Smrg
68931f0ac6a5SmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
68941f0ac6a5Smrgtreated as uninstalled libtool libraries, other files are standard or library
68951f0ac6a5Smrgobject files.
68961f0ac6a5Smrg
68971f0ac6a5SmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
68981f0ac6a5Smrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
68991f0ac6a5Smrgrequired, except when creating a convenience library.
69001f0ac6a5Smrg
69011f0ac6a5SmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
69021f0ac6a5Smrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
69031f0ac6a5Smrg
69041f0ac6a5SmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
69051f0ac6a5Smrgis created, otherwise an executable program is created."
69061f0ac6a5Smrg  ;;
69071f0ac6a5Smrg
69081f0ac6a5Smrguninstall)
69091f0ac6a5Smrg  $echo \
69101f0ac6a5Smrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
69111f0ac6a5Smrg
69121f0ac6a5SmrgRemove libraries from an installation directory.
69131f0ac6a5Smrg
69141f0ac6a5SmrgRM is the name of the program to use to delete files associated with each FILE
69151f0ac6a5Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
69161f0ac6a5Smrgto RM.
69171f0ac6a5Smrg
69181f0ac6a5SmrgIf FILE is a libtool library, all the files associated with it are deleted.
69191f0ac6a5SmrgOtherwise, only FILE itself is deleted using RM."
69201f0ac6a5Smrg  ;;
69211f0ac6a5Smrg
69221f0ac6a5Smrg*)
69231f0ac6a5Smrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
69241f0ac6a5Smrg  $echo "$help" 1>&2
69251f0ac6a5Smrg  exit $EXIT_FAILURE
69261f0ac6a5Smrg  ;;
69271f0ac6a5Smrgesac
69281f0ac6a5Smrg
69291f0ac6a5Smrg$echo
69301f0ac6a5Smrg$echo "Try \`$modename --help' for more information about other modes."
69311f0ac6a5Smrg
69321f0ac6a5Smrgexit $?
69331f0ac6a5Smrg
69341f0ac6a5Smrg# The TAGs below are defined such that we never get into a situation
69351f0ac6a5Smrg# in which we disable both kinds of libraries.  Given conflicting
69361f0ac6a5Smrg# choices, we go for a static library, that is the most portable,
69371f0ac6a5Smrg# since we can't tell whether shared libraries were disabled because
69381f0ac6a5Smrg# the user asked for that or because the platform doesn't support
69391f0ac6a5Smrg# them.  This is particularly important on AIX, because we don't
69401f0ac6a5Smrg# support having both static and shared libraries enabled at the same
69411f0ac6a5Smrg# time on that platform, so we default to a shared-only configuration.
69421f0ac6a5Smrg# If a disable-shared tag is given, we'll fallback to a static-only
69431f0ac6a5Smrg# configuration.  But we'll never go from static-only to shared-only.
69441f0ac6a5Smrg
69451f0ac6a5Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
69461f0ac6a5Smrgdisable_libs=shared
69471f0ac6a5Smrg# ### END LIBTOOL TAG CONFIG: disable-shared
69481f0ac6a5Smrg
69491f0ac6a5Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
69501f0ac6a5Smrgdisable_libs=static
69511f0ac6a5Smrg# ### END LIBTOOL TAG CONFIG: disable-static
69521f0ac6a5Smrg
69531f0ac6a5Smrg# Local Variables:
69541f0ac6a5Smrg# mode:shell-script
69551f0ac6a5Smrg# sh-indentation:2
69561f0ac6a5Smrg# End:
6957