1bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ltmain.sh - Provide generalized library-building support services.
2bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NOTE: Changing this file will not affect anything until you rerun configure.
3bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
4bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Free Software Foundation, Inc.
6bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
8bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is free software; you can redistribute it and/or modify
9bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# it under the terms of the GNU General Public License as published by
10bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the Free Software Foundation; either version 2 of the License, or
11bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# (at your option) any later version.
12bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
13bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This program is distributed in the hope that it will be useful, but
14bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# WITHOUT ANY WARRANTY; without even the implied warranty of
15bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# General Public License for more details.
17bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
18bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# You should have received a copy of the GNU General Public License
19bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# along with this program; if not, write to the Free Software
20bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
22bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# As a special exception to the GNU General Public License, if you
23bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# distribute this file as part of a program that contains a
24bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration script generated by Autoconf, you may include it under
25bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the same distribution terms that you use for the rest of that program.
26bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
27bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbasename="s,^.*/,,g"
28bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
29bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# is ksh but when the shell is invoked as "sh" and the current value of
31bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the _XPG environment variable is not equal to 1 (one), the special
32bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# positional parameter $0, within a function call, is the name of the
33bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# function.
34bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogpath="$0"
35bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
36bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of this program:
37bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprogname=`echo "$progpath" | $SED $basename`
38bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmodename="$progname"
39bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
40bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables:
41bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_SUCCESS=0
42bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEXIT_FAILURE=1
43bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
44bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPROGRAM=ltmain.sh
45bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonPACKAGE=libtool
46bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonVERSION="1.5.22 Debian 1.5.22-2"
47bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
48bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
49bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# See if we are running on zsh, and set the options which allow our
50bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# commands through without removal of \ escapes.
51bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "${ZSH_VERSION+set}" ; then
52bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  setopt NO_GLOB_SUBST
53bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
54bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
55bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Check that we have a working $echo.
56bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--no-reexec; then
57bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Discard the --no-reexec flag, and continue.
58bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
59bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X$1" = X--fallback-echo; then
60bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Avoid inline document here, it may be left over
61bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  :
62bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Yippee, $echo works!
64bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  :
65bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse
66bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Restart under the correct shell, and then maybe $echo will work.
67bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
69bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
70bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "X$1" = X--fallback-echo; then
71bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # used as fallback echo
72bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
73bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  cat <<EOF
74bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$*
75bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
76bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_SUCCESS
77bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
78bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
79bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondefault_mode=
80bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonhelp="Try \`$progname --help' for more information."
81bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmagic="%%%MAGIC variable%%%"
82bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmkdir="mkdir"
83bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmv="mv -f"
84bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrm="rm -f"
85bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
86bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting.  It backslashifies
87bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings.
88bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed="${SED}"' -e 1s/^X//'
89bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# test EBCDIC or ASCII
91bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase `echo X|tr X '\101'` in
92bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson A) # ASCII based system
93bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  SP2NL='tr \040 \012'
95bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  NL2SP='tr \015\012 \040\040'
96bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
97bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson *) # EBCDIC based system
98bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  SP2NL='tr \100 \n'
99bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  NL2SP='tr \r\n \100\100'
100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# NLS nuisances.
104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only set LANG and LC_ALL to C if already set.
105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# These must not be set unconditionally because not all systems understand
106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# e.g. LANG=C (notably SCO).
107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We save the old values to restore during execute mode.
108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LC_ALL+set}" = set; then
109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "${LANG+set}" = set; then
112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  save_LANG="$LANG"; LANG=C; export LANG
113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make sure IFS has a sensible default
116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_nl='
117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson'
118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIFS=" 	$lt_nl"
119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: not configured to build any kind of library" 1>&2
122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Global variables.
127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmode=$default_mode
128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnonopt=
129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprev=
130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonprevopt=
131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrun=
132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow="$echo"
133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshow_help=
134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute_dlfiles=
135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonduplicate_deps=no
136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpreserve_args=
137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlo2o="s/\\.lo\$/.${objext}/"
138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsono2lo="s/\\.${objext}\$/.lo/"
139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#####################################
141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Shell function definitions:
142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This seems to be the best place for them
143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_mktempdir [string]
145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Make a temporary directory that won't clash with other running
146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libtool processes, and avoids race conditions if possible.  If
147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# given, STRING is the basename for that directory.
148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_mktempdir ()
149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_template="${TMPDIR-/tmp}/${1-$progname}"
151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$run" = ":"; then
153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Return a directory name, but don't create it in dry-run mode
154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_tmpdir="${my_template}-$$"
155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If mktemp works, use that first and foremost
158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -d "$my_tmpdir"; then
161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Failing that, at least try and use $RANDOM to avoid a race
162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	my_tmpdir="${my_template}-${RANDOM-0}$$"
163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_mktempdir_umask=`umask`
165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	umask 0077
166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$mkdir "$my_tmpdir"
167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	umask $save_mktempdir_umask
168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If we're not in dry-run mode, bomb out on failure
171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -d "$my_tmpdir" || {
172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      }
175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X$my_tmpdir" | $Xsed
178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_win32_libid arg
182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# return the library type of file 'arg'
183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Need a lot of goo to handle *both* DLLs and import libs
185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Has to be a shell function in order to 'eat' the argument
186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# that is supplied when $file_magic_command is called.
187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_win32_libid ()
188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  win32_libid_type="unknown"
190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  win32_fileres=`file -L $1 2>/dev/null`
191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $win32_fileres in
192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *ar\ archive\ import\ library*) # definitely import
193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    win32_libid_type="x86 archive import"
194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *ar\ archive*) # could be an import, or static
196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      win32_nmres=`eval $NM -f posix -A $1 | \
199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $win32_nmres in
201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      import*)  win32_libid_type="x86 archive import";;
202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)        win32_libid_type="x86 archive static";;
203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *DLL*)
207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    win32_libid_type="x86 DLL"
208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *executable*) # but shell scripts are "executable" too...
210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $win32_fileres in
211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *MS\ Windows\ PE\ Intel*)
212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      win32_libid_type="x86 DLL"
213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo $win32_libid_type
218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_infer_tag arg
222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Infer tagged configuration to use if any are available and
223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if one wasn't chosen via the "--tag" command line option.
224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Only attempt this if the compiler in the base compile
225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# command doesn't match the default compiler.
226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# arg is usually of the form 'gcc ...'
227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_infer_tag ()
228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$available_tags" && test -z "$tagname"; then
230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      CC_quoted=
231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for arg in $CC; do
232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	CC_quoted="$CC_quoted $arg"
238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $@ in
240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Blanks in the command may have been stripped by the calling shell,
241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # but not from the CC environment variable when configure was run.
242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Blanks at the start of $base_compile will cause this to fail
244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # if we don't check for them as well.
245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for z in $available_tags; do
247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Evaluate the configuration.
249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    CC_quoted=
251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for arg in $CC; do
252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Double-quote args containing other shell metacharacters.
253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $arg in
254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="\"$arg\""
256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    CC_quoted="$CC_quoted $arg"
259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$@ " in
261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # The compiler in the base compile command matches
263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # the one in the tagged configuration.
264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Assume this is the tagged configuration we want.
265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tagname=$z
266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      break
267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If $tagname still isn't set, then no tagged configuration
272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# was found and let the user know that the "--tag" command
273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# line option must be used.
274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$tagname"; then
275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unable to infer tagged configuration"
276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: specify a tag with \`--tag'" 1>&2
277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#        else
279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#          $echo "$modename: using $tagname tagged configuration"
280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_an_archive dir oldlib
288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_an_archive ()
289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    f_ex_an_ar_dir="$1"; shift
291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    f_ex_an_ar_oldlib="$1"
292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     :
297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# func_extract_archives gentop oldlib ...
304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfunc_extract_archives ()
305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_gentop="$1"; shift
307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_oldlibs=${1+"$@"}
308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_oldobjs=""
309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xlib=""
310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xabs=""
311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_xdir=""
312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_status=""
313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "${rm}r $my_gentop"
315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run ${rm}r "$my_gentop"
316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $show "$mkdir $my_gentop"
317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $mkdir "$my_gentop"
318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    my_status=$?
319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $my_status
321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for my_xlib in $my_oldlibs; do
324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Extract the objects.
325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $my_xlib in
326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) my_xabs=`pwd`"/$my_xlib" ;;
328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_xdir="$my_gentop/$my_xlib"
331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "${rm}r $my_xdir"
333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run ${rm}r "$my_xdir"
334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$mkdir $my_xdir"
335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $mkdir "$my_xdir"
336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit_status=$?
337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *-darwin*)
342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "Extracting $my_xabs"
343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do not bother doing anything if just a dry run
344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$run"; then
345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_orig_dir=`pwd`
346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cd $my_xdir || exit $?
347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_archive=$my_xabs
348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_curdir=`pwd`
349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$darwin_arches"; then 
352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_arch=
354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for darwin_arch in  $darwin_arches ; do
356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cd "$darwin_curdir"
361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done # $darwin_arches
363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_file=
366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    darwin_files=
367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for darwin_file in $darwin_filelist; do
368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lipo -create -output "$darwin_file" $darwin_files
370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done # $darwin_filelist
371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ${rm}r unfat-$$
372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cd "$darwin_orig_dir"
373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cd "$darwin_orig_dir"
375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	    func_extract_an_archive "$my_xdir" "$my_xabs"
376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # $darwin_arches
377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $run
378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        func_extract_an_archive "$my_xdir" "$my_xabs"
381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_extract_archives_result="$my_oldobjs"
386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End of Shell function definitions
388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#####################################
389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Darwin sucks
391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneval std_shrext=\"$shrext_cmds\"
392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=no
394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Parse our command line options once, thoroughly.
396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwhile test "$#" -gt 0
397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondo
398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  arg="$1"
399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  shift
400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $arg in
402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *) optarg= ;;
404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # If the previous option needs an argument, assign it.
407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -n "$prev"; then
408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $prev in
409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    execute_dlfiles)
410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      execute_dlfiles="$execute_dlfiles $arg"
411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    tag)
413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      tagname="$arg"
414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      preserve_args="${preserve_args}=$arg"
415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Check whether tagname contains only valid characters
417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $tagname in
418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[!-_A-Za-z0-9,/]*)
419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$progname: invalid tag name: $tagname" 1>&2
420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $tagname in
425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      CC)
426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't test for the "default" C tag, as we know, it's there, but
427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# not specially marked.
428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  taglist="$taglist $tagname"
432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Evaluate the configuration.
433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval "$prev=\$arg"
442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt=
447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    continue
448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Have we seen a non-optional argument yet?
451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $arg in
452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --help)
453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    show_help=yes
454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --version)
457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "This is free software; see the source for copying conditions.  There is NO"
461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --config)
466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Now print the configurations for the tags.
468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for tagname in $taglist; do
469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --debug)
475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$progname: enabling shell trace mode"
476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    set -x
477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args $arg"
478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --dry-run | -n)
481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    run=:
482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --features)
485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "host: $host"
486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_libtool_libs" = yes; then
487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "enable shared libraries"
488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "disable shared libraries"
490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "enable static libraries"
493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "disable static libraries"
495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $?
497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --finish) mode="finish" ;;
500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --mode) prevopt="--mode" prev=mode ;;
502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --mode=*) mode="$optarg" ;;
503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --preserve-dup-deps) duplicate_deps="yes" ;;
505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --quiet | --silent)
507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    show=:
508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args $arg"
509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --tag)
512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt="--tag"
513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=tag
514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args --tag"
515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  --tag=*)
517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    set tag "$optarg" ${1+"$@"}
518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    shift
519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=tag
520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preserve_args="$preserve_args --tag"
521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen)
524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevopt="-dlopen"
525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=execute_dlfiles
526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -*)
529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: unrecognized option \`$arg'" 1>&2
530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$help" 1>&2
531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  *)
535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    nonopt="$arg"
536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    break
537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondone
540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$prevopt"; then
542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$help" 1>&2
544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $disable_libs in
548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonno) 
549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshared)
551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_libtool_libs=no
552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_old_libs=yes
553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic)
555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If this variable is set in any of the actions, the command in it
560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# will be execed at the end.  This prevents here-documents from being
561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# left over by shells.
562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexec_cmd=
563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -z "$show_help"; then
565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Infer the operation mode.
567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -z "$mode"; then
568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $nonopt in
571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=link
573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for arg
574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      do
575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-c)
577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   mode=compile
578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   break
579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   ;;
580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *db | *dbx | *strace | *truss)
584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=execute
585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *install*|cp|mv)
587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=install
588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *rm)
590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      mode=uninstall
591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If we have no mode, but dlfiles were specified, then do execute mode.
594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$execute_dlfiles" && mode=execute
595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just use the default operation mode.
597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$mode"; then
598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$nonopt"; then
599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Only execute mode is allowed to have -dlopen flags.
609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -n "$execute_dlfiles" && test "$mode" != execute; then
610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$help" 1>&2
612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Change the help message to a mode-specific one.
616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  generic_help="$help"
617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  help="Try \`$modename --help --mode=$mode' for more information."
618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # These modes are in order of execution frequency so that they run quickly.
620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  case $mode in
621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool compile mode
622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  compile)
623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: compile"
624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Get the compilation command and the source file.
625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    base_compile=
626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    suppress_opt=yes
628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    suppress_output=
629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg_mode=normal
630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobj=
631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    later=
632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg_mode in
636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg  )
637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# do not "continue".  Instead, add this to base_compile
638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lastarg="$arg"
639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg_mode=normal
640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      target )
643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj="$arg"
644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg_mode=normal
645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      normal )
649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Accept any command-line options.
650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-o)
652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$libobj" ; then
653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg_mode=target
657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-static | -prefer-pic | -prefer-non-pic)
661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  later="$later $arg"
662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-no-suppress)
666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  suppress_opt=no
667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-Xcompiler)
671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue      #  The current "srcfile" will either be retained or
673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;            #  replaced later.  I would guess that would be a bug.
674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-Wc,*)
676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg=
678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS=','
679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  for arg in $args; do
680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Double-quote args containing other shell metacharacters.
683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Many Bourne shells cannot handle close brackets correctly
684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # in scan sets, so we specify it separately.
685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $arg in
686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="\"$arg\""
688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lastarg="$lastarg $arg"
691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add the arguments to base_compile.
696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  base_compile="$base_compile $lastarg"
697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	* )
701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Accept the current argument as the source file.
702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The previous "srcfile" becomes the current argument.
703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lastarg="$srcfile"
705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  srcfile="$arg"
706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac  #  case $arg
708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac    #  case $arg_mode
710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote the previous argument.
712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $lastarg in
715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Double-quote args containing other shell metacharacters.
716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Many Bourne shells cannot handle close brackets correctly
717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # in scan sets, and some SunOS ksh mistreat backslash-escaping
718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # in scan sets (worked around with variable expansion),
719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # at all, so we specify them separately.
721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lastarg="\"$lastarg\""
723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      base_compile="$base_compile $lastarg"
727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # for arg
728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $arg_mode in
730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg)
731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an argument for -Xcompile"
732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    target)
735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a target with \`-o'" 1>&2
736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Get the name of the library object.
740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Recognize several different file suffixes.
745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # If the user specifies -o file.o, it is replaced with file.lo
746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xform='[cCFSifmso]'
747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $libobj in
748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ada) xform=ada ;;
749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.adb) xform=adb ;;
750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ads) xform=ads ;;
751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.asm) xform=asm ;;
752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.c++) xform=c++ ;;
753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cc) xform=cc ;;
754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.ii) xform=ii ;;
755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.class) xform=class ;;
756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cpp) xform=cpp ;;
757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.cxx) xform=cxx ;;
758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.f90) xform=f90 ;;
759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.for) xform=for ;;
760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.java) xform=java ;;
761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $libobj in
766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_infer_tag $base_compile
774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg in $later; do
776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -static)
778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_old_libs=yes
779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -prefer-pic)
783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pic_mode=yes
784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -prefer-non-pic)
788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pic_mode=no
789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $qlibobj in
796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qlibobj="\"$qlibobj\"" ;;
798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test "X$libobj" != "X$qlibobj" \
800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "X$xdir" = "X$obj"; then
805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      xdir=
806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      xdir=$xdir/
808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lobj=${xdir}$objdir/$objname
810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$base_compile"; then
812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a compilation command" 1>&2
813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Delete any leftover library objects.
818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$obj $lobj $libobj ${libobj}T"
820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$lobj $libobj ${libobj}T"
822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $rm $removelist
825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # On Cygwin there's no "real" PIC flag so we must build both object types
828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host_os in
829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    cygwin* | mingw* | pw32* | os2*)
830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pic_mode=default
831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # non-PIC code in shared libraries is not supported
835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pic_mode=default
836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Calculate the filename of the output object if compiler does
839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # not support -o with -c
840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$compiler_c_o" = no; then
841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lockfile="$output_obj.lock"
843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      removelist="$removelist $output_obj $lockfile"
844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_obj=
847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      need_locks=no
848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lockfile=
849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Lock this critical section if it is needed
852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We use this script file to make the link, it avoids creating a new file
853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$need_locks" = yes; then
854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "Waiting for $lockfile to be removed"
856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	sleep 2
857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    elif test "$need_locks" = warn; then
859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -f "$lockfile"; then
860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile exists and contains:
862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$srcfile" > "$lockfile"
875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$fix_srcfile_path"; then
878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval srcfile=\"$fix_srcfile_path\"
879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $qsrcfile in
882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      qsrcfile="\"$qsrcfile\"" ;;
884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $rm "$libobj" "${libobj}T"
887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Create a libtool object file (analogous to a ".la" file),
889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # but don't create it if we're doing a dry run.
890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -z "$run" && cat > ${libobj}T <<EOF
891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $libobj - a libtool object file
892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file!
895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library.
896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the PIC object.
898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Only build a PIC object if we are building libtool libraries.
901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_libtool_libs" = yes; then
902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Without this assignment, base_compile gets emptied.
903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fbsd_hideous_sh_bug=$base_compile
904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pic_mode" != no; then
906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile $pic_flag"
907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't build PIC code
909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile"
910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -d "${xdir}$objdir"; then
913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mkdir ${xdir}$objdir"
914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $mkdir ${xdir}$objdir
915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=$?
916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $exit_status
918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$output_obj"; then
922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Place PIC objects in $objdir
923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$command -o $lobj"
924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$lobj" "$output_obj"
927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$command"
929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if $run eval "$command"; then :
930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$output_obj" && $run $rm $removelist
932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_locks" = warn &&
936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains:
939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain:
942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile
943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just move the object if needed, then go on to compile the next one
956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mv $output_obj $lobj"
958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if $run $mv $output_obj $lobj; then :
959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  error=$?
961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm $removelist
962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $error
963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the PIC object to the libtool object file.
967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object='$objdir/$objname'
969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Allow error messages only from the first compilation.
973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$suppress_opt" = yes; then
974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        suppress_output=' >/dev/null 2>&1'
975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # No PIC object so indicate it doesn't exist in the libtool
978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # object file.
979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonpic_object=none
981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Only build a position-dependent object if we build old libraries.
986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$build_old_libs" = yes; then
987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pic_mode" != yes; then
988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Don't build PIC code
989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile"
990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$base_compile $qsrcfile $pic_flag"
992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$compiler_c_o" = yes; then
994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	command="$command -o $obj"
995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Suppress compiler output if we already did a PIC compilation.
998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      command="$command$suppress_output"
999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$obj" "$output_obj"
1000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$command"
1001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if $run eval "$command"; then :
1002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
1003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_locks" = warn &&
1008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "\
1010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*** ERROR, $lockfile contains:
1011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson`cat $lockfile 2>/dev/null`
1012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbut it should contain:
1014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$srcfile
1015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis indicates that another process is trying to use the same
1017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontemporary object file, and libtool could not work around it because
1018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonyour compiler does not support \`-c' and \`-o' together.  If you
1019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrepeat this compilation, it may succeed, by chance, but you had better
1020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonavoid parallel builds (make -j) in this platform, or get a better
1021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompiler."
1022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $removelist
1024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
1025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Just move the object if needed
1028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$mv $output_obj $obj"
1030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if $run $mv $output_obj $obj; then :
1031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  error=$?
1033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm $removelist
1034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $error
1035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the non-PIC object the libtool object file.
1039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only append if the libtool object file exists.
1040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object.
1042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object='$objname'
1043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Append the name of the non-PIC object the libtool object file.
1047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only append if the libtool object file exists.
1048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -z "$run" && cat >> ${libobj}T <<EOF
1049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Name of the non-PIC object.
1050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonnon_pic_object=none
1051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
1053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $run $mv "${libobj}T" "${libobj}"
1056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Unlock the critical section if it was locked
1058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$need_locks" != no; then
1059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm "$lockfile"
1060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
1063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
1064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool link mode
1066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  link | relink)
1067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: link"
1068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host in
1069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # It is impossible to link a dll without this setting, and
1071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # we shouldn't force the makefile maintainer to figure out
1072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # which system we are compiling for in order to pass an extra
1073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # flag for every libtool invocation.
1074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # allow_undefined=no
1075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # FIXME: Unfortunately, there are problems with the above when trying
1077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # to make a dll which has undefined symbols, in which case not
1078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # even a static library is built.  For now, we need to specify
1079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -no-undefined on the libtool link line when we can be certain
1080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # that all symbols are satisfied, otherwise we get a static library.
1081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      allow_undefined=yes
1082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
1084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      allow_undefined=yes
1085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
1087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_args="$nonopt"
1088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    base_compile="$nonopt $@"
1089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_command="$nonopt"
1090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_command="$nonopt"
1091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_rpath=
1093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_rpath=
1094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compile_shlibpath=
1095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    finalize_shlibpath=
1096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    convenience=
1097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    old_convenience=
1098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    deplibs=
1099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    old_deplibs=
1100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    compiler_flags=
1101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    linker_flags=
1102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dllsearchpath=
1103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib_search_path=`pwd`
1104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    inst_prefix_dir=
1105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    avoid_version=no
1107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlfiles=
1108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlprefiles=
1109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dlself=no
1110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_dynamic=no
1111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_symbols=
1112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export_symbols_regex=
1113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    generated=
1114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobjs=
1115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ltlibs=
1116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    module=no
1117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    no_install=no
1118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objs=
1119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    non_pic_objects=
1120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    notinst_path= # paths that contain not-installed libtool libraries
1121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    precious_files_regex=
1122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prefer_static_libs=no
1123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    preload=no
1124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
1125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prevarg=
1126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    release=
1127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rpath=
1128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    xrpath=
1129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    perm_rpath=
1130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    temp_rpath=
1131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    thread_safe=no
1132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    vinfo=
1133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    vinfo_number=no
1134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    func_infer_tag $base_compile
1136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We need to know -static, to get the right output filenames.
1138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
1139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
1140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -all-static | -static)
1142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-all-static"; then
1143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$link_static_flag"; then
1147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlopen_self=$dlopen_self_static
1148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prefer_static_libs=yes
1150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlopen_self=$dlopen_self_static
1153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prefer_static_libs=built
1155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_libtool_libs=no
1157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_old_libs=yes
1158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	break
1159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
1162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # See if our shared archives depend on static archives.
1164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Go through the arguments, transforming them on the way.
1167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    while test "$#" -gt 0; do
1168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="$1"
1169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
1170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) qarg=$arg ;;
1175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
1176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libtool_args="$libtool_args $qarg"
1177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # If the previous option needs an argument, assign it.
1179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$prev"; then
1180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $prev in
1181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	output)
1182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command @OUTPUT@"
1183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command @OUTPUT@"
1184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $prev in
1188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlfiles|dlprefiles)
1189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$preload" = no; then
1190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add the symbol object into the linking commands.
1191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_command="$compile_command @SYMFILE@"
1192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_command="$finalize_command @SYMFILE@"
1193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    preload=yes
1194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
1196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.la | *.lo) ;;  # We handle these cases below.
1197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  force)
1198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$dlself" = no; then
1199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=needless
1200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_dynamic=yes
1201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  self)
1206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlprefiles; then
1207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=yes
1208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=yes
1210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
1211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlself=needless
1212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_dynamic=yes
1213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
1218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlfiles; then
1219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlfiles="$dlfiles $arg"
1220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
1221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlprefiles="$dlprefiles $arg"
1222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    prev=
1224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	expsyms)
1229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  export_symbols="$arg"
1230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$arg"; then
1231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: symbol file \`$arg' does not exist"
1232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	expsyms_regex)
1238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  export_symbols_regex="$arg"
1239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	inst_prefix)
1243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  inst_prefix_dir="$arg"
1244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	precious_regex)
1248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  precious_files_regex="$arg"
1249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release)
1253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  release="-$arg"
1254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objectlist)
1258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -f "$arg"; then
1259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_arg=$arg
1260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    moreargs=
1261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for fil in `cat $save_arg`
1262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
1263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#	      moreargs="$moreargs $fil"
1264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg=$fil
1265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # A libtool-controlled object.
1266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Check to see that this really is a libtool object.
1268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		pic_object=
1270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		non_pic_object=
1271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Read the .lo file
1273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# If there is no directory component, then add one.
1274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $arg in
1275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*/* | *\\*) . $arg ;;
1276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) . ./$arg ;;
1277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
1278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$pic_object" || \
1280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test -z "$non_pic_object" ||
1281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test "$pic_object" = none && \
1282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   test "$non_pic_object" = none; then
1283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
1285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Extract subdirectory from the argument.
1288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "X$xdir" = "X$arg"; then
1290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir=
1291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir="$xdir/"
1293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$pic_object" != none; then
1296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Prepend the subdirectory the object is found in.
1297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  pic_object="$xdir$pic_object"
1298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$prev" = dlfiles; then
1300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      dlfiles="$dlfiles $pic_object"
1302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      prev=
1303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      continue
1304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
1305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # If libtool objects are unsupported, then we need to preload.
1306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      prev=dlprefiles
1307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
1308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # CHECK ME:  I think I busted this.  -Ossama
1311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$prev" = dlprefiles; then
1312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # Preload the old-style object.
1313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    dlprefiles="$dlprefiles $pic_object"
1314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    prev=
1315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # A PIC object.
1318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libobjs="$libobjs $pic_object"
1319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  arg="$pic_object"
1320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Non-PIC object.
1323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$non_pic_object" != none; then
1324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Prepend the subdirectory the object is found in.
1325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object="$xdir$non_pic_object"
1326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # A standard non-PIC object
1328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$pic_object" || test "$pic_object" = none ; then
1330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    arg="$non_pic_object"
1331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # If the PIC object exists, use it instead.
1334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # $xdir was prepended to $pic_object above.
1335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object="$pic_object"
1336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
1339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Only an error if not doing a dry-run.
1340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$run"; then
1341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
1343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
1344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Dry-run case.
1345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Extract subdirectory from the argument.
1347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$xdir" = "X$arg"; then
1349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    xdir=
1350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  else
1351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    xdir="$xdir/"
1352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
1353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libobjs="$libobjs $pic_object"
1357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  non_pic_objects="$non_pic_objects $non_pic_object"
1358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
1359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
1360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
1361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: link input file \`$save_arg' does not exist"
1363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg=$save_arg
1366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	rpath | xrpath)
1370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We need an absolute path.
1371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
1372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
1374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$prev" = rpath; then
1379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$rpath " in
1380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $arg "*) ;;
1381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) rpath="$rpath $arg" ;;
1382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
1383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$xrpath " in
1385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $arg "*) ;;
1386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) xrpath="$xrpath $arg" ;;
1387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
1388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xcompiler)
1393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $qarg"
1394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $qarg"
1396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $qarg"
1397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xlinker)
1400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $qarg"
1401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $wl$qarg"
1402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $wl$qarg"
1404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $wl$qarg"
1405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	xcclinker)
1408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $qarg"
1409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $qarg"
1410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $qarg"
1412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $qarg"
1413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shrext)
1416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  	  shrext_cmds="$arg"
1417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	darwin_framework|darwin_framework_skip)
1421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $arg"
1423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $arg"
1424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "$prev=\"\$arg\""
1429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
1431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi # test -n "$prev"
1434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      prevarg="$arg"
1436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
1438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -all-static)
1439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$link_static_flag"; then
1440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $link_static_flag"
1441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $link_static_flag"
1442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -allow-undefined)
1447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# FIXME: remove this flag sometime in the future.
1448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -avoid-version)
1453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	avoid_version=yes
1454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -dlopen)
1458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=dlfiles
1459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -dlpreopen)
1463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=dlprefiles
1464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -export-dynamic)
1468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	export_dynamic=yes
1469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -export-symbols | -export-symbols-regex)
1473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
1476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-export-symbols"; then
1478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=expsyms
1479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=expsyms_regex
1481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -framework|-arch|-isysroot)
1486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $CC " in
1487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=darwin_framework_skip ;;
1489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) compiler_flags="$compiler_flags $arg"
1490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     prev=darwin_framework ;;
1491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -inst-prefix-dir)
1498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=inst_prefix
1499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # so, if we see these flags be careful not to treat them like -L
1504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -L[A-Z][A-Z]*:*)
1505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $with_gcc/$host in
1506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	no/*-*-irix* | /*-*-irix*)
1507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_command="$compile_command $arg"
1508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_command="$finalize_command $arg"
1509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -L*)
1515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
1517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dir in
1518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) ;;
1519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  absdir=`cd "$dir" && pwd`
1521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$absdir"; then
1522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$dir"
1524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $dir"
1525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dir="$absdir"
1527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$deplibs " in
1530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$dir "*) ;;
1531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplibs -L$dir"
1533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib_search_path="$lib_search_path $dir"
1534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
1537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
1540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$dir:"*) ;;
1541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$dir";;
1542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
1544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$testbindir:"*) ;;
1545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -l*)
1553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
1555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # These systems don't actually have a C or math library (as such)
1557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-os2*)
1560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # These systems don't actually have a C library (as such)
1561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Do not include libc due to us having libc/libc_r.
1565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-rhapsody* | *-*-darwin1.[012])
1568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Rhapsody C and math libraries are in the System framework
1569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplibs -framework System"
1570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
1571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sco3.2v5* | *-*-sco5v6*)
1573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Causes problems with __ctype
1574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Compiler inserts libc in the correct place for threads to work
1578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "X$arg" = "X-lc" && continue
1579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "X$arg" = "X-lc_r"; then
1582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 case $host in
1583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   # Do not include libc_r directly, use -pthread flag.
1585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   continue
1586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   ;;
1587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 esac
1588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$deplibs $arg"
1590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # classes, name mangling, and exception handling.
1595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -model)
1596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compiler_flags="$compiler_flags $arg"
1598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcompiler
1600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compiler_flags="$compiler_flags $arg"
1605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -module)
1611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	module=yes
1612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # +DA*, +DD* enable 64-bit mode on the HP compiler
1619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -q* pass through compiler args for the IBM compiler
1620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -m* pass through architecture-specific compiler args for GCC
1621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -m*, -t[45]*, -txscale* pass through architecture-specific
1622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # compiler args for GCC
1623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -pg pass through profiling flag for GCC
1624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # @file GCC response files
1625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -t[45]*|-txscale*|@*)
1627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
1629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
1630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
1632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
1634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compile_command="$compile_command $arg"
1637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        finalize_command="$finalize_command $arg"
1638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compiler_flags="$compiler_flags $arg"
1639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        continue
1640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
1641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -shrext)
1643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=shrext
1644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-fast-install)
1648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fast_install=no
1649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-install)
1653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
1654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The PATH hackery in wrapper scripts is required on Windows
1656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # in order for the loader to find any dlls it needs.
1657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fast_install=no
1660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) no_install=yes ;;
1662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -no-undefined)
1667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	allow_undefined=no
1668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -objectlist)
1672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=objectlist
1673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -o) prev=output ;;
1677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -precious-files-regex)
1679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=precious_regex
1680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -release)
1684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=release
1685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -rpath)
1689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=rpath
1690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -R)
1694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xrpath
1695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -R*)
1699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
1701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dir in
1702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) ;;
1703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
1704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
1706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$xrpath " in
1709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $dir "*) ;;
1710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) xrpath="$xrpath $dir" ;;
1711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -static)
1716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# The effects of -static are defined in a previous loop.
1717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We used to do the same as -all-static on platforms that
1718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# didn't have a PIC flag, but the assumption that the effects
1719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# would be equivalent was wrong.  It would break on at least
1720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Digital Unix and AIX.
1721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -thread-safe)
1725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	thread_safe=yes
1726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -version-info)
1730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=vinfo
1731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -version-number)
1734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=vinfo
1735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	vinfo_number=yes
1736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Wc,*)
1740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=
1742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=','
1743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for flag in $args; do
1744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
1745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $flag in
1746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    flag="\"$flag\""
1748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="$arg $wl$flag"
1751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $flag"
1752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
1753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
1754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Wl,*)
1758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=
1760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=','
1761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for flag in $args; do
1762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
1763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $flag in
1764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    flag="\"$flag\""
1766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
1767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="$arg $wl$flag"
1769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compiler_flags="$compiler_flags $wl$flag"
1770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $flag"
1771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
1772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
1773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Xcompiler)
1777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcompiler
1778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -Xlinker)
1782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xlinker
1783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -XCClinker)
1787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	prev=xcclinker
1788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Some other compiler flag.
1792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -* | +*)
1793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
1794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
1795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
1797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
1799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$objext)
1804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A standard object.
1805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objs="$objs $arg"
1806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
1809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A libtool-controlled object.
1810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool object.
1812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pic_object=
1814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  non_pic_object=
1815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Read the .lo file
1817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
1818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $arg in
1819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . $arg ;;
1820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./$arg ;;
1821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
1822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$pic_object" || \
1824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -z "$non_pic_object" ||
1825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$pic_object" = none && \
1826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$non_pic_object" = none; then
1827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Extract subdirectory from the argument.
1832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$xdir" = "X$arg"; then
1834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir=
1835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  else
1836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir="$xdir/"
1837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pic_object" != none; then
1840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepend the subdirectory the object is found in.
1841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    pic_object="$xdir$pic_object"
1842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlfiles; then
1844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dlfiles="$dlfiles $pic_object"
1846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=
1847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		continue
1848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
1849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# If libtool objects are unsupported, then we need to preload.
1850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		prev=dlprefiles
1851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
1852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # CHECK ME:  I think I busted this.  -Ossama
1855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$prev" = dlprefiles; then
1856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Preload the old-style object.
1857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      dlprefiles="$dlprefiles $pic_object"
1858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      prev=
1859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # A PIC object.
1862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $pic_object"
1863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    arg="$pic_object"
1864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Non-PIC object.
1867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$non_pic_object" != none; then
1868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepend the subdirectory the object is found in.
1869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object="$xdir$non_pic_object"
1870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # A standard non-PIC object
1872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
1873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$pic_object" || test "$pic_object" = none ; then
1874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      arg="$non_pic_object"
1875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If the PIC object exists, use it instead.
1878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # $xdir was prepended to $pic_object above.
1879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object="$pic_object"
1880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
1881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Only an error if not doing a dry-run.
1884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$run"; then
1885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
1887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
1888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Dry-run case.
1889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Extract subdirectory from the argument.
1891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$xdir" = "X$arg"; then
1893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      xdir=
1894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
1895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      xdir="$xdir/"
1896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
1897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $pic_object"
1901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    non_pic_objects="$non_pic_objects $non_pic_object"
1902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
1903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$libext)
1907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# An archive.
1908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$deplibs $arg"
1909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_deplibs="$old_deplibs $arg"
1910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
1914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# A libtool-controlled library.
1915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$prev" = dlfiles; then
1917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This library was specified with -dlopen.
1918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlfiles="$dlfiles $arg"
1919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$prev" = dlprefiles; then
1921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The library was specified with -dlpreopen.
1922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlprefiles="$dlprefiles $arg"
1923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
1924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
1925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplibs $arg"
1926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
1927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
1928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Some other compiler argument.
1931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
1932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Unknown arguments in both finalize_command and compile_command need
1933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to be aesthetically quoted because they are evaled later.
1934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $arg in
1936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  arg="\"$arg\""
1938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
1939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
1940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
1941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac # arg
1942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now actually substitute the argument into the commands.
1944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$arg"; then
1945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$compile_command $arg"
1946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$finalize_command $arg"
1947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # argument parsing loop
1949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$prev"; then
1951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
1953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval arg=\"$export_dynamic_flag_spec\"
1958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_command="$compile_command $arg"
1959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_command="$finalize_command $arg"
1960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    oldlibs=
1963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # calculate the name of the file, without its directory
1964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libobjs_save="$libobjs"
1966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$shlibpath_var"; then
1968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # get the directories listed in $shlibpath_var
1969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shlib_search_path=
1972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "X$output_objdir" = "X$output"; then
1978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_objdir="$objdir"
1979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
1980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output_objdir="$output_objdir/$objdir"
1981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Create the object directory.
1983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test ! -d "$output_objdir"; then
1984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$mkdir $output_objdir"
1985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $mkdir $output_objdir
1986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit_status=$?
1987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
1989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
1990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
1991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
1992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Determine the type of output
1993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $output in
1994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    "")
1995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an output file" 1>&2
1996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
1997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
1998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
1999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.$libext) linkmode=oldlib ;;
2000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.lo | *.$objext) linkmode=obj ;;
2001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.la) linkmode=lib ;;
2002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *) linkmode=prog ;; # Anything else should be a program.
2003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $host in
2006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *cygwin* | *mingw* | *pw32*)
2007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # don't eliminate duplications in $postdeps and $predeps
2008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      duplicate_compiler_generated_deps=yes
2009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
2010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
2011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      duplicate_compiler_generated_deps=$duplicate_deps
2012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
2013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    specialdeplibs=
2015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libs=
2017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Find all interdependent deplibs by searching for libraries
2018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # that are linked more than once (e.g. -la -lb -la)
2019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for deplib in $deplibs; do
2020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$duplicate_deps" = "Xyes" ; then
2021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$libs " in
2022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libs="$libs $deplib"
2026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
2027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$linkmode" = lib; then
2029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Compute libraries that are listed more than once in $predeps
2032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # $postdeps and mark them as special (i.e., whose duplicates are
2033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # not to be eliminated).
2034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pre_post_deps=
2035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for pre_post_dep in $predeps $postdeps; do
2037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$pre_post_deps " in
2038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pre_post_deps="$pre_post_deps $pre_post_dep"
2041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      pre_post_deps=
2044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
2045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    deplibs=
2047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newdependency_libs=
2048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newlib_search_path=
2049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    need_relink=no # whether we're linking any uninstalled libtool libraries
2050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    notinst_deplibs= # not-installed libtool libraries
2051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $linkmode in
2052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib)
2053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	passes="conv link"
2054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for file in $dlfiles $dlprefiles; do
2055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
2056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.la) ;;
2057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
2058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
2062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prog)
2065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_deplibs=
2066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_deplibs=
2067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	alldeplibs=no
2068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdlfiles=
2069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdlprefiles=
2070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	passes="conv scan dlopen dlpreopen link"
2071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)  passes="conv"
2073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
2074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
2075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for pass in $passes; do
2076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$linkmode,$pass" = "lib,link" ||
2077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test "$linkmode,$pass" = "prog,scan"; then
2078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libs="$deplibs"
2079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=
2080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$linkmode" = prog; then
2082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $pass in
2083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlopen) libs="$dlfiles" ;;
2084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlpreopen) libs="$dlprefiles" ;;
2085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link)
2086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libs="$deplibs %DEPLIBS%"
2087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" = dlopen; then
2092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Collect dlpreopened libraries
2093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_deplibs="$deplibs"
2094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=
2095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $libs; do
2097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib=
2098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	found=no
2099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
2100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode,$pass" = "prog,link"; then
2102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$deplib $compile_deplibs"
2103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$deplib $finalize_deplibs"
2104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compiler_flags="$compiler_flags $deplib"
2106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-l*)
2110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for search_ext in .la $std_shrext .so .a; do
2117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Search the libtool library
2118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lib="$searchdir/lib${name}${search_ext}"
2119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -f "$lib"; then
2120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$search_ext" = ".la"; then
2121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  found=yes
2122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
2123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  found=no
2124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		break 2
2126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
2129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$found" != yes; then
2130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # deplib doesn't seem to be a libtool library
2131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode,$pass" = "prog,link"; then
2132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else # deplib is a libtool library
2140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We need to do some special things here, and not later.
2142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $predeps $postdeps " in
2144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*)
2145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if (${SED} -e '2q' $lib |
2146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  library_names=
2148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  old_library=
2149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $lib in
2150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  */* | *\\*) . $lib ;;
2151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *) . ./$lib ;;
2152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
2153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for l in $old_library $library_names; do
2154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ll="$l"
2155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
2156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$ll" = "X$old_library" ; then # only static version available
2157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    found=no
2158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    test "X$ladir" = "X$lib" && ladir="."
2160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    lib=$ladir/$old_library
2161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test "$linkmode,$pass" = "prog,link"; then
2162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      compile_deplibs="$deplib $compile_deplibs"
2163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      finalize_deplibs="$deplib $finalize_deplibs"
2164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
2165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      deplibs="$deplib $deplibs"
2166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
2168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    continue
2169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        ;;
2172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) ;;
2173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # -l
2177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
2178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $linkmode in
2179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib)
2180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test "$pass" = conv && continue
2182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs="$deplib $newdependency_libs"
2183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prog)
2186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = conv; then
2187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      continue
2189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = scan; then
2191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
2199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac # linkmode
2202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # -L
2204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-R*)
2205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = link; then
2206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make sure the xrpath contains only unique directories.
2208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$xrpath " in
2209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dir "*) ;;
2210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) xrpath="$xrpath $dir" ;;
2211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplib $deplibs"
2214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.la) lib="$deplib" ;;
2217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.$libext)
2218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = conv; then
2219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $linkmode in
2223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib)
2224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    valid_a_lib=no
2225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplibs_check_method in
2226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      match_pattern*)
2227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		set dummy $deplibs_check_method
2228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if eval $echo \"$deplib\" 2>/dev/null \
2230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    | $SED 10q \
2231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    | $EGREP "$match_pattern_regex" > /dev/null; then
2232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  valid_a_lib=yes
2233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      pass_all)
2236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		valid_a_lib=yes
2237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            esac
2239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$valid_a_lib" != yes; then
2240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
2241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** I have the capability to make that library automatically link in when"
2243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** you link to this library.  But I can only do this if you have a"
2244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** shared version of the library, which you do not appear to have"
2245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** that it is just a static archive that I should not used here."
2247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
2249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the shared library $output against the"
2250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** static library $deplib is not portable!"
2251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prog)
2256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" != link; then
2257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
2264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac # linkmode
2265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;; # *.$libext
2266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo | *.$objext)
2267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$pass" = conv; then
2268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplib $deplibs"
2269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode" = prog; then
2270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If there is no dlopen support or we're linking statically,
2272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # we need to preload.
2273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $deplib"
2274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      compile_deplibs="$deplib $compile_deplibs"
2275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize_deplibs="$deplib $finalize_deplibs"
2276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $deplib"
2278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	%DEPLIBS%)
2283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  alldeplibs=yes
2284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac # case $deplib
2287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$found" = yes || test -f "$lib"; then :
2288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
2294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$ladir" = "X$lib" && ladir="."
2302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlname=
2304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlopen=
2305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlpreopen=
2306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir=
2307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
2308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_library=
2309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the library was installed with an old release of libtool,
2310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# it will not redefine variables installed, or shouldnotlink
2311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	installed=yes
2312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shouldnotlink=no
2313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	avoidtemprpath=
2314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Read the .la file
2317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $lib in
2318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $lib ;;
2319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$lib ;;
2320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" = "lib,link" ||
2323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$linkmode,$pass" = "prog,scan" ||
2324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = conv; then
2330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Only check for convenience libraries
2331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$lib $deplibs"
2332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$old_library"; then
2334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $EXIT_FAILURE
2336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # It is a libtool convenience library, so add in its objects.
2338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    convenience="$convenience $ladir/$objdir/$old_library"
2339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs=
2341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
2342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "X$duplicate_deps" = "Xyes" ; then
2344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        case "$tmp_libs " in
2345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        esac
2347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              fi
2348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmp_libs="$tmp_libs $deplib"
2349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = conv
2356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Get the name of the library we link against.
2359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linklib=
2360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for l in $old_library $library_names; do
2361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linklib="$l"
2362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$linklib"; then
2364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
2366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# This library was specified with -dlopen.
2369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = dlopen; then
2370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$dlname" ||
2375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$dlopen_support" != yes ||
2376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$build_libtool_libs" = no; then
2377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If there is no dlname, no dlopen support or we're linking
2378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # statically, we need to preload.  We also need to preload any
2379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # dependent libraries so libltdl's deplib preloader doesn't
2380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # bomb out in the load deplibs phase.
2381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$dlprefiles $lib $dependency_libs"
2382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles="$newdlfiles $lib"
2384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = dlopen
2387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We need an absolute path.
2389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $ladir in
2390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
2392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  abs_ladir=`cd "$ladir" && pwd`
2393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$abs_ladir"; then
2394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    abs_ladir="$ladir"
2397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
2399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
2400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Find the relevant object directory and library name.
2403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$installed" = Xyes; then
2404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir"
2407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir"
2408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir="$abs_ladir"
2409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$libdir"
2411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$libdir"
2412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir"
2417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir"
2418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Remove this search path later
2419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $abs_ladir"
2420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir="$ladir/$objdir"
2422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    absdir="$abs_ladir/$objdir"
2423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Remove this search path later
2424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_path="$notinst_path $abs_ladir"
2425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $installed = yes
2427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# This library was specified with -dlpreopen.
2430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" = dlpreopen; then
2431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$libdir"; then
2432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
2434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are required to link).
2437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$old_library"; then
2438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$old_library"
2439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test -n "$dlname"; then
2441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$dlname"
2442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles="$newdlprefiles $dir/$linklib"
2444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $pass = dlpreopen
2446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$libdir"; then
2448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Link the convenience library
2449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = lib; then
2450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$dir/$old_library $deplibs"
2451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif test "$linkmode,$pass" = "prog,link"; then
2452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$dir/$old_library $compile_deplibs"
2453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$lib $deplibs" # used for prog,scan pass
2456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode" = prog && test "$pass" != link; then
2462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path="$newlib_search_path $ladir"
2463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$lib $deplibs"
2464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linkalldeplibs=no
2466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$build_libtool_libs" = no; then
2468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    linkalldeplibs=yes
2469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
2472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $dependency_libs; do
2473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
2474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Need to link against all dependency_libs?
2477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkalldeplibs" = yes; then
2478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplib $deplibs"
2479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Need to hardcode shared library paths
2481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # or/and link against static libraries
2482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdependency_libs="$deplib $newdependency_libs"
2483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$duplicate_deps" = "Xyes" ; then
2485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$tmp_libs " in
2486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs="$tmp_libs $deplib"
2490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # for deplib
2491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
2492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # $linkmode = prog...
2493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" = "prog,link"; then
2495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$library_names" &&
2496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We need to hardcode the library path
2498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Make sure the rpath contains only unique directories.
2500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$temp_rpath " in
2501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $dir "*) ;;
2502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) temp_rpath="$temp_rpath $absdir" ;;
2504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Hardcode the library path.
2508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Skip directories that are in the system default run-time
2509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # search path.
2510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $absdir "*) ;;
2512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$compile_rpath " in
2514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_rpath="$compile_rpath $absdir"
2516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $libdir "*) ;;
2521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$finalize_rpath " in
2523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
2524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_rpath="$finalize_rpath $libdir"
2525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # $linkmode,$pass = prog,link...
2529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$alldeplibs" = yes &&
2531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$deplibs_check_method" = pass_all ||
2532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       { test "$build_libtool_libs" = yes &&
2533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test -n "$library_names"; }; }; then
2534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We only need to search for static libraries
2535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    continue
2536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_static=no # Whether the deplib will be linked statically
2540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	use_static_libs=$prefer_static_libs
2541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$use_static_libs" = built && test "$installed" = yes ; then
2542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  use_static_libs=no
2543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$library_names" &&
2545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = no; then
2547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    notinst_deplibs="$notinst_deplibs $lib"
2548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    need_relink=yes
2549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This is a shared library
2551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Warn about portability, can't link against -module's on
2553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # some systems (darwin)
2554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
2556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
2557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the executable $output against the loadable module"
2558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** $linklib is not portable!"
2562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = lib &&
2564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$hardcode_into_libs" = yes; then
2565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Hardcode the library path.
2566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Skip directories that are in the system default run-time
2567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # search path.
2568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $absdir "*) ;;
2570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$compile_rpath " in
2572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $absdir "*) ;;
2573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_rpath="$compile_rpath $absdir"
2574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $sys_lib_dlsearch_path " in
2578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $libdir "*) ;;
2579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$finalize_rpath " in
2581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
2582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_rpath="$finalize_rpath $libdir"
2583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$old_archive_from_expsyms_cmds"; then
2589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # figure out the soname
2590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    set dummy $library_names
2591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    realname="$2"
2592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    shift; shift
2593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libname=`eval \\$echo \"$libname_spec\"`
2594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # use dlname if we got it. it's perfectly good, no?
2595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$dlname"; then
2596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      soname="$dlname"
2597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test -n "$soname_spec"; then
2598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # bleh windows
2599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $host in
2600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *cygwin* | mingw*)
2601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		major=`expr $current - $age`
2602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		versuffix="-$major"
2603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval soname=\"$soname_spec\"
2606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      soname="$realname"
2608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make a new name for the extract_expsyms_cmds to use
2611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    soroot="$soname"
2612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If the library has no export list, then create one now
2616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$output_objdir/$soname-def"; then :
2617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "extracting exported symbol list from \`$soname'"
2619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
2620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$extract_expsyms_cmds
2621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
2622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
2623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
2624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
2625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd" || exit $?
2626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
2627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
2628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Create $newlib
2631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$output_objdir/$newlib"; then :; else
2632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "generating import library for \`$soname'"
2633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
2634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$old_archive_from_expsyms_cmds
2635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
2636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
2637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
2638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
2639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd" || exit $?
2640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
2641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
2642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # make sure the library variables are pointing to the new library
2644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dir=$output_objdir
2645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    linklib=$newlib
2646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # test -n "$old_archive_from_expsyms_cmds"
2647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = prog || test "$mode" != relink; then
2649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_shlibpath=
2650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_dir=
2651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add=
2652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lib_linked=yes
2653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $hardcode_action in
2654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    immediate | unsupported)
2655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" = no; then
2656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="$dir/$linklib"
2657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
2658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *-*-unixware7*) add_dir="-L$dir" ;;
2662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *-*-darwin* )
2663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # if the lib is a module then we can not link against
2664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # it, someone is ignoring the new warnings I added
2665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if /usr/bin/file -L $add 2> /dev/null |
2666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                      $EGREP ": [^:]* bundle" >/dev/null ; then
2667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "** Warning, lib $linklib is a module, not a shared library"
2668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if test -z "$old_library" ; then
2669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo
2670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo "** And there doesn't seem to be a static archive available"
2671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        $echo "** The link will probably fail, sorry"
2672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      else
2673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        add="$dir/$old_library"
2674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
2675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
2676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_minus_L" = no; then
2678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
2679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-sunos*) add_shlibpath="$dir" ;;
2680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_dir="-L$dir"
2682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
2683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_shlibpath_var" = no; then
2684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_shlibpath="$dir"
2685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
2686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
2687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		lib_linked=no
2688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink)
2691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" = yes; then
2692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="$dir/$linklib"
2693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_minus_L" = yes; then
2694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_dir="-L$dir"
2695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Try looking first in the location we're being installed to.
2696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -n "$inst_prefix_dir"; then
2697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $libdir in
2698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    [\\/]*)
2699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      ;;
2701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
2702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
2704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      elif test "$hardcode_shlibpath_var" = yes; then
2705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add_shlibpath="$dir"
2706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		add="-l$name"
2707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
2708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		lib_linked=no
2709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
2711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) lib_linked=no ;;
2712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$lib_linked" != yes; then
2715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: configuration error: unsupported hardcode properties"
2716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $EXIT_FAILURE
2717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$add_shlibpath"; then
2720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case :$compile_shlibpath: in
2721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *":$add_shlibpath:"*) ;;
2722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
2726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && deplibs="$add $deplibs"
2731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$hardcode_direct" != yes && \
2732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$hardcode_minus_L" != yes && \
2733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$hardcode_shlibpath_var" = yes; then
2734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case :$finalize_shlibpath: in
2735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*":$libdir:"*) ;;
2736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$linkmode" = prog || test "$mode" = relink; then
2743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_shlibpath=
2744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add_dir=
2745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    add=
2746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Finalize command for both is simple: just hardcode it.
2747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$hardcode_direct" = yes; then
2748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="$libdir/$linklib"
2749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_minus_L" = yes; then
2750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add_dir="-L$libdir"
2751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
2752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_shlibpath_var" = yes; then
2753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case :$finalize_shlibpath: in
2754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *":$libdir:"*) ;;
2755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
2758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test "$hardcode_automatic" = yes; then
2759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$inst_prefix_dir" &&
2760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        add="$inst_prefix_dir$libdir/$linklib"
2762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
2763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        add="$libdir/$linklib"
2764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # We cannot seem to hardcode it, guess we'll fake it.
2767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add_dir="-L$libdir"
2768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Try looking first in the location we're being installed to.
2769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$inst_prefix_dir"; then
2770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $libdir in
2771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  [\\/]*)
2772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
2774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      add="-l$name"
2777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$linkmode" = prog; then
2780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
2783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -n "$add" && deplibs="$add $deplibs"
2785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$linkmode" = prog; then
2788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # is not unsupported.  This is valid on all known static and
2790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # shared platforms.
2791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$hardcode_direct" != unsupported; then
2792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -n "$old_library" && linklib="$old_library"
2793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="$dir/$linklib $compile_deplibs"
2794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test "$build_libtool_libs" = yes; then
2800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Not a shared library
2801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$deplibs_check_method" != pass_all; then
2802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We're trying link a shared library against a static one
2803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # but the system doesn't support it.
2804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Just print a warning and add the library to dependency_libs so
2806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # that the program can be linked against the static library.
2807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
2808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** Warning: This system can not link to static lib archive $lib."
2809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** I have the capability to make that library automatically link in when"
2810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** you link to this library.  But I can only do this if you have a"
2811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** shared version of the library, which you do not appear to have."
2812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$module" = yes; then
2813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** But as you try to build a module library, libtool will still create "
2814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** a static module, that should work as long as the dlopening application"
2815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$global_symbol_pipe"; then
2817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
2818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** However, this would only work if libtool was able to extract symbol"
2819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** not find such a program.  So, this module is probably useless."
2821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_old_libs" = no; then
2824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=module
2825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_old_libs=yes
2826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
2827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=no
2828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
2829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
2831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$dir/$old_library $deplibs"
2832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    link_static=yes
2833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # link shared/static library?
2835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode" = lib; then
2837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$dependency_libs" &&
2838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     { test "$hardcode_into_libs" != yes ||
2839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$build_old_libs" = yes ||
2840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$link_static" = yes; }; then
2841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Extract -R from dependency_libs
2842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    temp_deplibs=
2843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for libdir in $dependency_libs; do
2844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $libdir in
2845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   case " $xrpath " in
2847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   *" $temp_xrpath "*) ;;
2848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   *) xrpath="$xrpath $temp_xrpath";;
2849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   esac;;
2850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) temp_deplibs="$temp_deplibs $libdir";;
2851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dependency_libs="$temp_deplibs"
2854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
2855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path="$newlib_search_path $absdir"
2857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Link against this library
2858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # ... and its dependency_libs
2860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
2861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $dependency_libs; do
2862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs="$deplib $newdependency_libs"
2863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$duplicate_deps" = "Xyes" ; then
2864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$tmp_libs " in
2865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
2868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    tmp_libs="$tmp_libs $deplib"
2869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
2870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$link_all_deplibs" != no; then
2872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add the search paths of all dependency libraries
2873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
2874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $deplib in
2875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -L*) path="$deplib" ;;
2876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *.la)
2877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		test "X$dir" = "X$deplib" && dir="."
2879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# We need an absolute path.
2880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $dir in
2881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
2883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  absdir=`cd "$dir" && pwd`
2884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$absdir"; then
2885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    absdir="$dir"
2887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
2889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if grep "^installed=no" $deplib > /dev/null; then
2891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="$absdir/$objdir"
2892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
2893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -z "$libdir"; then
2895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    exit $EXIT_FAILURE
2897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "$absdir" != "$libdir"; then
2899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="$absdir"
2902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
2903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		depdepl=
2904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
2905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-darwin*)
2906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # we do not want to link against static libs,
2907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # but need to link against shared
2908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -n "$deplibrary_names" ; then
2910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    for tmp in $deplibrary_names ; do
2911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      depdepl=$tmp
2912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    done
2913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test -f "$path/$depdepl" ; then
2914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      depdepl="$path/$depdepl"
2915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
2916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    # do not add paths which are already there
2917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    case " $newlib_search_path " in
2918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *" $path "*) ;;
2919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *) newlib_search_path="$newlib_search_path $path";;
2920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    esac
2921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
2922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path=""
2923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
2924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
2925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path="-L$path"
2926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
2927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      -l*)
2930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case $host in
2931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*-*-darwin*)
2932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Again, we only want to link against shared libraries
2933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for tmp in $newlib_search_path ; do
2935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      break
2938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
2939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
2940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  path=""
2941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
2942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) continue ;;
2943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
2944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
2945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) continue ;;
2946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $deplibs " in
2948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $path "*) ;;
2949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) deplibs="$path $deplibs" ;;
2950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $deplibs " in
2952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $depdepl "*) ;;
2953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) deplibs="$depdepl $deplibs" ;;
2954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
2955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
2956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi # link_all_deplibs != no
2957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi # linkmode = lib
2958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done # for deplib in $libs
2959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dependency_libs="$newdependency_libs"
2960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" = dlpreopen; then
2961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Link the dlpreopened libraries before other libraries
2962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for deplib in $save_deplibs; do
2963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  deplibs="$deplib $deplibs"
2964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
2965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
2966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$pass" != dlopen; then
2967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$pass" != conv; then
2968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Make sure lib_search_path contains only unique directories.
2969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib_search_path=
2970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $newlib_search_path; do
2971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$lib_search_path " in
2972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dir "*) ;;
2973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) lib_search_path="$lib_search_path $dir" ;;
2974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
2975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
2976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newlib_search_path=
2977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
2979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$linkmode,$pass" != "prog,link"; then
2980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  vars="deplibs"
2981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
2982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  vars="compile_deplibs finalize_deplibs"
2983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
2984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for var in $vars dependency_libs; do
2985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add libraries to $var in reverse order
2986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval tmp_libs=\"\$$var\"
2987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  new_libs=
2988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $tmp_libs; do
2989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # FIXME: Pedantically, this is the right thing to do, so
2990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #        that some nasty dependency loop isn't accidentally
2991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #        broken:
2992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    #new_libs="$deplib $new_libs"
2993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Pragmatically, this seems to cause very few problems in
2994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # practice:
2995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
2996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*) new_libs="$deplib $new_libs" ;;
2997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -R*) ;;
2998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)
2999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # And here is the reason: when a library appears more
3000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # than once as an explicit dependence of a library, or
3001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # is implicitly linked in more than once by the
3002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # compiler, it is considered special, and multiple
3003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # occurrences thereof are not removed.  Compare this
3004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # with having the same library being listed as a
3005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # dependency of multiple other libraries: in this case,
3006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # we know (pedantically, we assume) the library does not
3007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # need to be listed more than once, so we keep only the
3008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # last copy.  This is not always right, but it is rare
3009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # enough that we require users that really mean to play
3010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # such unportable linking tricks to link the library
3011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # using -Wl,-lname, so that libtool does not consider it
3012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # for duplicate removal.
3013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $specialdeplibs " in
3014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
3016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $new_libs " in
3017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $deplib "*) ;;
3018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) new_libs="$deplib $new_libs" ;;
3019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
3021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs=
3026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for deplib in $new_libs; do
3027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $deplib in
3028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -L*)
3029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case " $tmp_libs " in
3030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $deplib "*) ;;
3031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) tmp_libs="$tmp_libs $deplib" ;;
3032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
3034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) tmp_libs="$tmp_libs $deplib" ;;
3035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
3036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval $var=\"$tmp_libs\"
3038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done # for var
3039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Last step: remove runtime libs from dependency_libs
3041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # (they stay in deplibs)
3042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      tmp_libs=
3043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for i in $dependency_libs ; do
3044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $predeps $postdeps $compiler_lib_search_path " in
3045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $i "*)
3046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  i=""
3047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$i" ; then
3050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_libs="$tmp_libs $i"
3051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dependency_libs=$tmp_libs
3054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done # for pass
3055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$linkmode" = prog; then
3056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlfiles="$newdlfiles"
3057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlprefiles="$newdlprefiles"
3058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
3059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $linkmode in
3061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    oldlib)
3062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$deplibs"; then
3063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath"; then
3071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
3075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
3079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
3083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now set the variables for building old libraries.
3091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      build_libtool_libs=no
3092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlibs="$output"
3093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      objs="$objs$old_deplibs"
3094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
3095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lib)
3097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure we only generate libraries of the form `libNAME.la'.
3098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $outputname in
3099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      lib*)
3100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval shared_ext=\"$shrext_cmds\"
3102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval libname=\"$libname_spec\"
3103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
3104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
3105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = no; then
3106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
3108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$need_lib_prefix" != no; then
3111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add the "lib" prefix for modules if required
3112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval shared_ext=\"$shrext_cmds\"
3114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval libname=\"$libname_spec\"
3115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
3119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
3120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$objs"; then
3122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$deplibs_check_method" != pass_all; then
3123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo
3127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "*** objects $objs is not portable!"
3129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libobjs="$libobjs $objs"
3130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$dlself" != no; then
3134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      set dummy $rpath
3138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$#" -gt 2; then
3139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_libdir="$2"
3142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlibs=
3144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$rpath"; then
3145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_libtool_libs" = yes; then
3146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Building a libtool convenience library.
3147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Some compilers have problems with a `.al' extension so
3148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # convenience libraries should have the same extension an
3149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # archive normally would.
3150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_libtool_libs=convenience
3152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_old_libs=yes
3153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$vinfo"; then
3156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$release"; then
3160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
3163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Parse the version information argument.
3165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS=':'
3166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $vinfo 0 0 0
3167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
3168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$8"; then
3170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
3172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# convert absolute version numbers to libtool ages
3176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# this retains compatibility with .la files and attempts
3177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to make the code below a bit more comprehensible
3178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $vinfo_number in
3180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	yes)
3181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_major="$2"
3182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_minor="$3"
3183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  number_revision="$4"
3184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
3185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # There are really only two kinds -- those that
3186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # use the current revision as the major version
3187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # and those that subtract age and use age as
3188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # a minor version.  But, then there is irix
3189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # which has an extra 1 added just for fun
3190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
3191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin|linux|osf|windows)
3193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current=`expr $number_major + $number_minor`
3194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="$number_minor"
3195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_revision"
3196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  freebsd-aout|freebsd-elf|sunos)
3198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current="$number_major"
3199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_minor"
3200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="0"
3201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  irix|nonstopux)
3203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    current=`expr $number_major + $number_minor - 1`
3204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    age="$number_minor"
3205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    revision="$number_minor"
3206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
3208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: unknown library version type \`$version_type'" 1>&2
3209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
3211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	no)
3215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  current="$2"
3216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  revision="$3"
3217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  age="$4"
3218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check that each of the things are valid numbers.
3222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $current in
3223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $revision in
3232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $age in
3241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	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]) ;;
3242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$age" -gt "$current"; then
3250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Calculate the version variables.
3256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=
3257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=
3258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	verstring=
3259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $version_type in
3260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	none) ;;
3261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	darwin)
3263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Like Linux, but with the current version available in
3264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # verstring for coding it into the library header
3265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$age.$revision"
3267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Darwin ld doesn't like 0 for these options...
3268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  minor_current=`expr $current + 1`
3269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	freebsd-aout)
3273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$revision";
3275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	freebsd-elf)
3278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current";
3280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	irix | nonstopux)
3283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=`expr $current - $age + 1`
3284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    nonstopux) verstring_prefix=nonstopux ;;
3287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *)         verstring_prefix=sgi ;;
3288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$verstring_prefix$major.$revision"
3290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add in all the interfaces that we are compatible with.
3292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  loop=$revision
3293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$loop" -ne 0; do
3294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    iface=`expr $revision - $loop`
3295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    loop=`expr $loop - 1`
3296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="$verstring_prefix$major.$iface:$verstring"
3297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Before this point, $major must not contain `.'.
3300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.$major
3301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$revision"
3302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linux)
3305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="$major.$age.$revision"
3307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	osf)
3310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=.`expr $current - $age`
3311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$age.$revision"
3312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$current.$age.$revision"
3313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add in all the interfaces that we are compatible with.
3315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  loop=$age
3316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$loop" -ne 0; do
3317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    iface=`expr $current - $loop`
3318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    loop=`expr $loop - 1`
3319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="$verstring:${iface}.0"
3320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Make executables depend on our current version.
3323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring="$verstring:${current}.0"
3324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	sunos)
3327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=".$current"
3328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=".$current.$revision"
3329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	windows)
3332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Use '-' rather than '.', since we only want one
3333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # extension on DOS 8.3 filesystems.
3334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=`expr $current - $age`
3335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix="-$major"
3336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
3342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Clear the version info if we defaulted, and they specified a release.
3346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$vinfo" && test -n "$release"; then
3347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=
3348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $version_type in
3349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  darwin)
3350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # we can't check for "0.0" in archive_cmds due to quoting
3351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # problems, so we reset it completely
3352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring=
3353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
3355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    verstring="0.0"
3356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$need_version" = no; then
3359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    versuffix=
3360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    versuffix=".0.0"
3362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Remove version info from name if versioning should be avoided
3366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$avoid_version" = yes && test "$need_version" = no; then
3367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  major=
3368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  versuffix=
3369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  verstring=""
3370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see if the archive will have undefined symbols.
3373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$allow_undefined" = yes; then
3374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$allow_undefined_flag" = unsupported; then
3375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    build_libtool_libs=no
3377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    build_old_libs=yes
3378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't allow undefined symbols.
3381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  allow_undefined_flag="$no_undefined_flag"
3382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$mode" != relink; then
3386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Remove our outputs, but don't remove object files since they
3387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# may have been created when compiling PIC objects.
3388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	removelist=
3389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	tempremovelist=`$echo "$output_objdir/*"`
3390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for p in $tempremovelist; do
3391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $p in
3392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *.$objext)
3393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       ;;
3394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       if test "X$precious_files_regex" != "X"; then
3396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	         then
3398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		   continue
3399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 fi
3400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       fi
3401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       removelist="$removelist $p"
3402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       ;;
3403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) ;;
3404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$removelist"; then
3407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $removelist"
3408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $removelist
3409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now set the variables for building old libraries.
3413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform .lo files to .o files.
3417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Eliminate all temporary directories.
3421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
3422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
3428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the user specified any rpath flags, then add them.
3429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	temp_xrpath=
3430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for libdir in $xrpath; do
3431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  temp_xrpath="$temp_xrpath -R$libdir"
3432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_rpath " in
3433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
3434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dependency_libs="$temp_xrpath $dependency_libs"
3439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure dlfiles contains only unique files that won't be dlpreopened
3443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_dlfiles="$dlfiles"
3444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlfiles=
3445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for lib in $old_dlfiles; do
3446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $dlprefiles $dlfiles " in
3447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $lib "*) ;;
3448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) dlfiles="$dlfiles $lib" ;;
3449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Make sure dlprefiles contains only unique files
3453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_dlprefiles="$dlprefiles"
3454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlprefiles=
3455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for lib in $old_dlprefiles; do
3456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case "$dlprefiles " in
3457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" $lib "*) ;;
3458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) dlprefiles="$dlprefiles $lib" ;;
3459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = yes; then
3463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$rpath"; then
3464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
3465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # these systems don't actually have a c library (as such)!
3467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-rhapsody* | *-*-darwin1.[012])
3469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Rhapsody C library is in the System framework
3470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    deplibs="$deplibs -framework System"
3471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-netbsd*)
3473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Don't link with libc until the a.out ld.so is fixed.
3474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Do not include libc due to us having libc/libc_r.
3477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sco3.2v5* | *-*-sco5v6*)
3479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Causes problems with __ctype
3480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Compiler inserts libc in the correct place for threads to work
3483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson 	  *)
3485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add libc to deplibs on all other systems if necessary.
3486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$build_libtool_need_lc" = "yes"; then
3487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      deplibs="$deplibs -lc"
3488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
3490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform deplibs into only deplibs that can be linked in shared.
3494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name_save=$name
3495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libname_save=$libname
3496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release_save=$release
3497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix_save=$versuffix
3498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major_save=$major
3499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# I'm not sure if I'm treating the release correctly.  I think
3500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# release should show up in the -l (ie -lgmp5) so we don't want to
3501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# add it in twice.  Is that correct?
3502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release=""
3503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=""
3504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=""
3505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	newdeplibs=
3506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	droppeddeps=no
3507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplibs_check_method in
3508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	pass_all)
3509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't check for shared/static.  Everything works.
3510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This might be a little naive.  We might want to check
3511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whether the library exists or not.  But this is on
3512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # osf3 & osf4 and I'm not really sure... Just
3513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # implementing what was already the behavior.
3514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=$deplibs
3515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test_compile)
3517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This code stresses the "libraries are programs" paradigm to its
3518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # limits. Maybe even breaks it.  We compile a program, linking it
3519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # against the deplibs as a proxy for the library.  Then we can check
3520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whether they linked in statically or dynamically with ldd.
3521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm conftest.c
3522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cat > conftest.c <<EOF
3523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  int main() { return 0; }
3524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
3525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm conftest
3526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$?" -eq 0 ; then
3528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ldd_output=`ldd conftest`
3529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $deplibs; do
3530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`expr $i : '-l\(.*\)'`
3531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If $name is empty we are operating on a -L argument.
3532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "$name" != "" && test "$name" -ne "0"; then
3533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case " $predeps $postdeps " in
3535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *" $i "*)
3536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    newdeplibs="$newdeplibs $i"
3537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    i=""
3538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
3539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
3540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        fi
3541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -n "$i" ; then
3542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  libname=`eval \\$echo \"$libname_spec\"`
3543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  set dummy $deplib_matches
3545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  deplib_match=$2
3546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    newdeplibs="$newdeplibs $i"
3548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  else
3549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    droppeddeps=yes
3550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo
3551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** I have the capability to make that library automatically link in when"
3553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** you link to this library.  But I can only do this if you have a"
3554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** shared version of the library, which I believe you do not have"
3555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdeplibs="$newdeplibs $i"
3561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Error occurred in the first compile.  Let's try to salvage
3565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # the situation: Compile a separate program for each library.
3566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $deplibs; do
3567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`expr $i : '-l\(.*\)'`
3568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If $name is empty we are operating on a -L argument.
3569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              if test "$name" != "" && test "$name" != "0"; then
3570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$rm conftest
3571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$LTCC $LTCFLAGS -o conftest conftest.c $i
3572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Did it work?
3573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -eq 0 ; then
3574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ldd_output=`ldd conftest`
3575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    case " $predeps $postdeps " in
3577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    *" $i "*)
3578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $i"
3579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      i=""
3580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      ;;
3581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    esac
3582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  if test -n "$i" ; then
3584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    libname=`eval \\$echo \"$libname_spec\"`
3585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    set dummy $deplib_matches
3587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    deplib_match=$2
3588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $i"
3590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    else
3591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      droppeddeps=yes
3592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo
3593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** I have the capability to make that library automatically link in when"
3595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** you link to this library.  But I can only do this if you have a"
3596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** shared version of the library, which you do not appear to have"
3597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  fi
3601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  droppeddeps=yes
3603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo
3604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "***  make it link in!  You will probably need to install it or some"
3606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** library that it depends on before this library will be fully"
3607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** functional.  Installing it before continuing would be even better."
3608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdeplibs="$newdeplibs $i"
3611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	file_magic*)
3616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  set dummy $deplibs_check_method
3617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for a_deplib in $deplibs; do
3619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`expr $a_deplib : '-l\(.*\)'`
3620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $name is empty we are operating on a -L argument.
3621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            if test "$name" != "" && test  "$name" != "0"; then
3622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $predeps $postdeps " in
3624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $a_deplib "*)
3625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  newdeplibs="$newdeplibs $a_deplib"
3626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  a_deplib=""
3627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
3631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		libname=`eval \\$echo \"$libname_spec\"`
3632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for potent_lib in $potential_libs; do
3635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # Follow soft links.
3636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if ls -lLd "$potent_lib" 2>/dev/null \
3637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | grep " -> " >/dev/null; then
3638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			continue
3639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
3640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # The statement above tries to avoid entering an
3641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # endless loop below, in case of cyclic links.
3642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # We might still enter an endless loop, since a link
3643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # loop can be closed while we follow links,
3644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      # but so what?
3645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      potlib="$potent_lib"
3646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      while test -h "$potlib" 2>/dev/null; do
3647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			case $potliblink in
3649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			esac
3652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      done
3653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | ${SED} 10q \
3655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			 | $EGREP "$file_magic_regex" > /dev/null; then
3656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			newdeplibs="$newdeplibs $a_deplib"
3657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			a_deplib=""
3658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			break 2
3659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      fi
3660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
3661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		done
3662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
3664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		droppeddeps=yes
3665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
3666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** I have the capability to make that library automatically link in when"
3668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** you link to this library.  But I can only do this if you have a"
3669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** shared version of the library, which you do not appear to have"
3670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** because I did check the linker path looking for a file starting"
3671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$potlib" ; then
3672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname and none of the candidates passed a file format test"
3675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** using a file magic. Last file checked: $potlib"
3676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Add a -L argument.
3680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdeplibs="$newdeplibs $a_deplib"
3681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # Gone through all deplibs.
3683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	match_pattern*)
3685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  set dummy $deplibs_check_method
3686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for a_deplib in $deplibs; do
3688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`expr $a_deplib : '-l\(.*\)'`
3689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # If $name is empty we are operating on a -L argument.
3690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$name" && test "$name" != "0"; then
3691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $predeps $postdeps " in
3693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $a_deplib "*)
3694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  newdeplibs="$newdeplibs $a_deplib"
3695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  a_deplib=""
3696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  ;;
3697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
3700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		libname=`eval \\$echo \"$libname_spec\"`
3701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  for potent_lib in $potential_libs; do
3704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    potlib="$potent_lib" # see symlink-check above in file_magic test
3705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    if eval $echo \"$potent_lib\" 2>/dev/null \
3706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        | ${SED} 10q \
3707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		        | $EGREP "$match_pattern_regex" > /dev/null; then
3708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      newdeplibs="$newdeplibs $a_deplib"
3709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      a_deplib=""
3710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		      break 2
3711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    fi
3712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  done
3713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		done
3714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$a_deplib" ; then
3716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		droppeddeps=yes
3717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo
3718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** I have the capability to make that library automatically link in when"
3720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** you link to this library.  But I can only do this if you have a"
3721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** shared version of the library, which you do not appear to have"
3722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "*** because I did check the linker path looking for a file starting"
3723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$potlib" ; then
3724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** with $libname and none of the candidates passed a file format test"
3727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "*** using a regex pattern. Last file checked: $potlib"
3728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Add a -L argument.
3732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdeplibs="$newdeplibs $a_deplib"
3733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done # Gone through all deplibs.
3735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	none | unknown | *)
3737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=""
3738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    -e 's/ -[LR][^ ]*//g'`
3740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for i in $predeps $postdeps ; do
3742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # can't use Xsed below, because $i might contain '/'
3743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    | grep . >/dev/null; then
3748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
3749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$deplibs_check_method" = "Xnone"; then
3750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** All declared inter-library dependencies are being dropped."
3755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    droppeddeps=yes
3756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	versuffix=$versuffix_save
3760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	major=$major_save
3761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	release=$release_save
3762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libname=$libname_save
3763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=$name_save
3764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
3766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-rhapsody* | *-*-darwin1.[012])
3767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # On Rhapsody replace the C library is the System framework
3768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$droppeddeps" = yes; then
3773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$module" = yes; then
3774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo
3775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** a static module, that should work as long as the dlopening"
3778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** application is linked with the -dlopen flag."
3779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$global_symbol_pipe"; then
3780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
3781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** However, this would only work if libtool was able to extract symbol"
3782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** not find such a program.  So, this module is probably useless."
3784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$build_old_libs" = no; then
3787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldlibs="$output_objdir/$libname.$libext"
3788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_libtool_libs=module
3789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_old_libs=yes
3790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      build_libtool_libs=no
3792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** The inter-library dependencies that have been dropped here will be"
3795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** automatically added whenever a program is linked with this library"
3796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "*** or is declared to -dlopen it."
3797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$allow_undefined" = no; then
3799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo
3800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** Since this library must not contain undefined symbols,"
3801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** because either the platform does not support them or"
3802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** it was explicitly requested with -no-undefined,"
3803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "*** libtool will only create a static version of it."
3804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$build_old_libs" = no; then
3805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		oldlibs="$output_objdir/$libname.$libext"
3806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=module
3807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_old_libs=yes
3808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		build_libtool_libs=no
3810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Done checking deplibs!
3815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs=$newdeplibs
3816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
3817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # move library search paths that coincide with paths to not yet
3820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # installed libraries to the beginning of the library search list
3821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      new_libs=
3822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
3823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $new_libs " in
3824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$path/$objdir "*) ;;
3825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
3826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $deplibs " in
3827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" -L$path/$objdir "*)
3828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    new_libs="$new_libs -L$path/$objdir" ;;
3829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $deplibs; do
3834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
3835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
3836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $new_libs " in
3837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $deplib "*) ;;
3838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) new_libs="$new_libs $deplib" ;;
3839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
3840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
3841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) new_libs="$new_libs $deplib" ;;
3842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
3843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
3844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      deplibs="$new_libs"
3845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # All the library-specific variables (install_libdir is set above).
3848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      library_names=
3849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_library=
3850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlname=
3851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Test again, we may have decided not to build it any more
3853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = yes; then
3854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$hardcode_into_libs" = yes; then
3855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Hardcode the library paths
3856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  hardcode_libdirs=
3857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dep_rpath=
3858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath="$finalize_rpath"
3859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for libdir in $rpath; do
3861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$hardcode_libdir_flag_spec"; then
3862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -n "$hardcode_libdir_separator"; then
3863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$hardcode_libdirs"; then
3864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  hardcode_libdirs="$libdir"
3865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
3866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  # Just accumulate the unique libdirs.
3867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
3870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  *)
3871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    ;;
3873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  esac
3874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
3875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval flag=\"$hardcode_libdir_flag_spec\"
3877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		dep_rpath="$dep_rpath $flag"
3878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    elif test -n "$runpath_var"; then
3880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case "$perm_rpath " in
3881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *" $libdir "*) ;;
3882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) perm_rpath="$perm_rpath $libdir" ;;
3883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
3884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
3886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Substitute the hardcoded libdirs into the rpath.
3887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator" &&
3888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -n "$hardcode_libdirs"; then
3889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir="$hardcode_libdirs"
3890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
3893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # We should set the runpath_var.
3898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath=
3899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for dir in $perm_rpath; do
3900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rpath="$rpath$dir:"
3901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shlibpath="$finalize_shlibpath"
3908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$shlibpath"; then
3910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Get the real and link names of the library.
3914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval shared_ext=\"$shrext_cmds\"
3915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval library_names=\"$library_names_spec\"
3916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $library_names
3917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	realname="$2"
3918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	shift; shift
3919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$soname_spec"; then
3921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval soname=\"$soname_spec\"
3922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
3923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  soname="$realname"
3924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$dlname"; then
3926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlname=$soname
3927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	lib="$output_objdir/$realname"
3930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	linknames=
3931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for link
3932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	do
3933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linknames="$linknames $link"
3934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Use standard objects if they are pic
3937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Prepare the list of exported symbols
3940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$export_symbols"; then
3941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$libname.la'"
3943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    export_symbols="$output_objdir/$libname.exp"
3944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $rm $export_symbols
3945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$export_symbols_cmds
3946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_ifs="$IFS"; IFS='~'
3947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for cmd in $cmds; do
3948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
3949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval cmd=\"$cmd\"
3950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if len=`expr "X$cmd" : ".*"` &&
3951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $show "$cmd"
3953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "$cmd" || exit $?
3954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        skipped_export=false
3955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
3956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        # The command line is too long to execute in one step.
3957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $show "using reloadable object file for export list..."
3958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        skipped_export=:
3959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Break out early, otherwise skipped_export may be
3960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# set to false by a later but shorter cmd.
3961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		break
3962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
3963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
3964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
3965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols_regex"; then
3966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
3971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
3972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" && test -n "$include_expsyms"; then
3975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
3977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	tmp_deplibs=
3979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for test_deplib in $deplibs; do
3980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $convenience " in
3981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*" $test_deplib "*) ;;
3982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*)
3983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			tmp_deplibs="$tmp_deplibs $test_deplib"
3984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson			;;
3985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
3986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
3987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	deplibs="$tmp_deplibs"
3988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$convenience"; then
3990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$whole_archive_flag_spec"; then
3991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_libobjs=$libobjs
3992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
3994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    gentop="$output_objdir/${outputname}x"
3995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    generated="$generated $gentop"
3996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
3997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    func_extract_archives $gentop $convenience
3998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs="$libobjs $func_extract_archives_result"
3999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	
4002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval flag=\"$thread_safe_flag_spec\"
4004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  linker_flags="$linker_flags $flag"
4005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Make a backup of the uninstalled library when relinking
4008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = relink; then
4009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do each of the archive commands.
4013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = yes && test -n "$module_cmds" ; then
4014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$module_expsym_cmds\"
4016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$module_expsym_cmds
4017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$module_cmds\"
4019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$module_cmds
4020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval test_cmds=\"$archive_expsym_cmds\"
4024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$archive_expsym_cmds
4025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval test_cmds=\"$archive_cmds\"
4027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$archive_cmds
4028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$skipped_export" != "X:" &&
4032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  :
4035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # The command line is too long to link in one step, link piecewise.
4037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "creating reloadable object files..."
4038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Save the value of $output and $libobjs because we want to
4040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # use them later.  If we have whole_archive_flag_spec, we
4041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # want to use save_libobjs as it was before
4042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # whole_archive_flag_spec was expanded, because we can't
4043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # assume the linker understands whole_archive_flag_spec.
4044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This may have to be revisited, in case too many
4045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # convenience libraries get linked in and end up exceeding
4046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # the spec.
4047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    save_libobjs=$libobjs
4049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_output=$output
4051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Clear the reloadable object creation command queue and
4054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # initialize k to one.
4055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test_cmds=
4056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  concat_cmds=
4057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  objlist=
4058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  delfiles=
4059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  last_robj=
4060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  k=1
4061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output=$output_objdir/$output_la-${k}.$objext
4062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Loop over the list of objects to be linked.
4063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_libobjs
4064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
4065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$objlist" = X ||
4067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		 test "$len" -le "$max_cmd_len"; }; then
4069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist="$objlist $obj"
4070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # The command $test_cmds is almost too long, add a
4072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # command to the queue.
4073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$k" -eq 1 ; then
4074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# The first file doesn't have a previous command to add.
4075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
4077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# All subsequent reloadable object files will link in
4078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# the last one created.
4079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
4081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      last_robj=$output_objdir/$output_la-${k}.$objext
4082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      k=`expr $k + 1`
4083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      output=$output_objdir/$output_la-${k}.$objext
4084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist=$obj
4085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      len=1
4086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Handle the remaining objects by creating one last
4089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # reloadable object file.  All subsequent reloadable object
4090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # files will link in the last one created.
4091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if ${skipped_export-false}; then
4095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$libname.la'"
4096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    export_symbols="$output_objdir/$libname.exp"
4097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $rm $export_symbols
4098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libobjs=$output
4099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Append the command to create the export file.
4100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          fi
4102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Set up a command to remove the reloadable object files
4104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # after they are used.
4105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  i=0
4106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  while test "$i" -lt "$k"
4107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
4108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    i=`expr $i + 1`
4109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "creating a temporary reloadable object file: $output"
4113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Loop through the commands generated above and execute them.
4115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
4116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $concat_cmds; do
4117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
4118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
4119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || exit $?
4120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  libobjs=$output
4124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Restore the value of output.
4125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  output=$save_output
4126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Expand the library linking commands again to reset the
4131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # value of $libobjs for piecewise linking.
4132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each of the archive commands.
4134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$module" = yes && test -n "$module_cmds" ; then
4135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$module_expsym_cmds
4137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$module_cmds
4139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$archive_expsym_cmds
4143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cmds=$archive_cmds
4145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Append the command to remove the reloadable object files
4149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # to the just-reset $cmds.
4150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmds=\"\$cmds~\$rm $delfiles\"
4151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS='~'
4153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for cmd in $cmds; do
4154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmd=\"$cmd\"
4156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$cmd"
4157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmd" || {
4158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    lt_exit=$?
4159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Restore the uninstalled library and exit
4161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$mode" = relink; then
4162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $lt_exit
4166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  }
4167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Restore the uninstalled library and exit
4171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = relink; then
4172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$convenience"; then
4175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$whole_archive_flag_spec"; then
4176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "${rm}r $gentop"
4177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run ${rm}r "$gentop"
4178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_SUCCESS
4182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Create links to the real library.
4185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for linkname in $linknames; do
4186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$realname" != "$linkname"; then
4187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If -module or -export-dynamic was specified, set the dlname.
4193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$module" = yes || test "$export_dynamic" = yes; then
4194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # On all known operating systems, these are identical.
4195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlname="$soname"
4196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
4199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    obj)
4201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$deplibs"; then
4202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath"; then
4210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$xrpath"; then
4214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
4218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
4222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $output in
4226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
4227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$objs$old_deplibs"; then
4228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
4230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj="$output"
4232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
4235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libobj=
4236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	obj="$output"
4237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Delete the old objects.
4241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $obj $libobj
4242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Objects from convenience libraries.  This assumes
4244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # single-version convenience libraries.  Whenever we create
4245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # different ones for PIC/non-PIC, this we'll have to duplicate
4246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # the extraction.
4247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      reload_conv_objs=
4248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      gentop=
4249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # reload_cmds runs $LD directly, so let us get rid of
4250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # -Wl from whole_archive_flag_spec
4251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      wl=
4252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$convenience"; then
4254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$whole_archive_flag_spec"; then
4255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  gentop="$output_objdir/${obj}x"
4258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  generated="$generated $gentop"
4259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  func_extract_archives $gentop $convenience
4261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Create the old-style object.
4266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      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
4267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      output="$obj"
4269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      cmds=$reload_cmds
4270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
4271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
4272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmd=\"$cmd\"
4274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
4275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
4276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
4278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Exit if we aren't doing a library object file.
4280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$libobj"; then
4281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$gentop"; then
4282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $gentop"
4283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $gentop
4284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
4287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" != yes; then
4290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$gentop"; then
4291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "${rm}r $gentop"
4292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run ${rm}r $gentop
4293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Create an invalid libtool object if no PIC, so that we don't
4296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# accidentally link it into a program.
4297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# $show "echo timestamp > $libobj"
4298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# $run eval "echo timestamp > $libobj" || exit $?
4299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
4300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$pic_flag" || test "$pic_mode" != default; then
4303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Only do commands if we really have different PIC objects.
4304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	reload_objs="$libobjs $reload_conv_objs"
4305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	output="$libobj"
4306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	cmds=$reload_cmds
4307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	save_ifs="$IFS"; IFS='~'
4308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for cmd in $cmds; do
4309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
4310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmd=\"$cmd\"
4311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$cmd"
4312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmd" || exit $?
4313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
4315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$gentop"; then
4318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "${rm}r $gentop"
4319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run ${rm}r $gentop
4320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
4323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
4324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prog)
4326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$vinfo"; then
4330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$release"; then
4334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$preload" = yes; then
4338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	   test "$dlopen_self_static" = unknown; then
4340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *-*-rhapsody* | *-*-darwin1.[012])
4346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# On Rhapsody replace the C library is the System framework
4347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
4350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $host in
4353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *darwin*)
4354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        # Don't allow lazy linking, it breaks C++ global constructors
4355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if test "$tagname" = CXX ; then
4356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        compile_command="$compile_command ${wl}-bind_at_load"
4357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        finalize_command="$finalize_command ${wl}-bind_at_load"
4358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        fi
4359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        ;;
4360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
4361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # move library search paths that coincide with paths to not yet
4364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # installed libraries to the beginning of the library search list
4365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      new_libs=
4366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for path in $notinst_path; do
4367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $new_libs " in
4368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*" -L$path/$objdir "*) ;;
4369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
4370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $compile_deplibs " in
4371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" -L$path/$objdir "*)
4372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    new_libs="$new_libs -L$path/$objdir" ;;
4373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for deplib in $compile_deplibs; do
4378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $deplib in
4379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	-L*)
4380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case " $new_libs " in
4381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $deplib "*) ;;
4382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) new_libs="$new_libs $deplib" ;;
4383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) new_libs="$new_libs $deplib" ;;
4386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_deplibs="$new_libs"
4389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_command="$compile_command $compile_deplibs"
4392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_command="$finalize_command $finalize_deplibs"
4393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$rpath$xrpath"; then
4395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the user specified any rpath flags, then add them.
4396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for libdir in $rpath $xrpath; do
4397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # This is the magic to use -rpath.
4398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_rpath " in
4399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now hardcode the library paths
4406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rpath=
4407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      hardcode_libdirs=
4408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $compile_rpath $finalize_rpath; do
4409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$hardcode_libdir_flag_spec"; then
4410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator"; then
4411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$hardcode_libdirs"; then
4412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      hardcode_libdirs="$libdir"
4413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Just accumulate the unique libdirs.
4415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
4419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
4422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval flag=\"$hardcode_libdir_flag_spec\"
4425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath $flag"
4426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test -n "$runpath_var"; then
4428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$perm_rpath " in
4429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) perm_rpath="$perm_rpath $libdir" ;;
4431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
4434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
4437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$libdir:"*) ;;
4438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$libdir";;
4439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case :$dllsearchpath: in
4441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *":$testbindir:"*) ;;
4442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Substitute the hardcoded libdirs into the rpath.
4448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$hardcode_libdir_separator" &&
4449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test -n "$hardcode_libdirs"; then
4450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir="$hardcode_libdirs"
4451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval rpath=\" $hardcode_libdir_flag_spec\"
4452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_rpath="$rpath"
4454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rpath=
4456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      hardcode_libdirs=
4457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $finalize_rpath; do
4458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$hardcode_libdir_flag_spec"; then
4459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$hardcode_libdir_separator"; then
4460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$hardcode_libdirs"; then
4461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      hardcode_libdirs="$libdir"
4462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Just accumulate the unique libdirs.
4464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *)
4468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
4470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
4471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval flag=\"$hardcode_libdir_flag_spec\"
4474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath $flag"
4475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif test -n "$runpath_var"; then
4477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$finalize_perm_rpath " in
4478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
4479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
4483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Substitute the hardcoded libdirs into the rpath.
4484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$hardcode_libdir_separator" &&
4485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	 test -n "$hardcode_libdirs"; then
4486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdir="$hardcode_libdirs"
4487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval rpath=\" $hardcode_libdir_flag_spec\"
4488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_rpath="$rpath"
4490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Transform all the library objects into standard objects.
4493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dlsyms=
4498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dlsyms="${outputname}S.c"
4501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dlsyms"; then
4507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $dlsyms in
4508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	"") ;;
4509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.c)
4510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Discover the nlist of each of the dlfiles.
4511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  nlist="$output_objdir/${outputname}.nm"
4512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $nlist ${nlist}S ${nlist}T"
4514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Parse the name list into a source file.
4517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "creating $output_objdir/$dlsyms"
4518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus
4524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonextern \"C\" {
4525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Prevent the only kind of declaration conflicts we can make. */
4528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define lt_preloaded_symbols some_other_symbol
4529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* External symbol declarations for the compiler. */\
4531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$dlself" = yes; then
4534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "generating symbol list for \`$output'"
4535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Add our own program objects to the symbol list.
4539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for arg in $progfiles; do
4541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "extracting global C symbols from \`$arg'"
4542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
4544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$exclude_expsyms"; then
4546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "$nlist"T "$nlist"'
4548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$export_symbols_regex"; then
4551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval '$mv "$nlist"T "$nlist"'
4553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Prepare the list of exported symbols
4556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$export_symbols"; then
4557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      export_symbols="$output_objdir/$outputname.exp"
4558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run $rm $export_symbols
4559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              case $host in
4561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *cygwin* | *mingw* )
4562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                ;;
4565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              esac
4566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run eval 'mv "$nlist"T "$nlist"'
4570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              case $host in
4571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *cygwin* | *mingw* )
4572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                ;;
4575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              esac
4576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for arg in $dlprefiles; do
4580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "extracting global C symbols from \`$arg'"
4581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval '$echo ": $name " >> "$nlist"'
4583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$run"; then
4587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Make sure we have at least an empty file.
4588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    test -f "$nlist" || : > "$nlist"
4589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$exclude_expsyms"; then
4591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $mv "$nlist"T "$nlist"
4593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Try sorting and uniquifying the output.
4596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if grep -v "^: " < "$nlist" |
4597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if sort -k 3 </dev/null >/dev/null 2>&1; then
4598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  sort -k 3
4599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		else
4600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  sort +2
4601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi |
4602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		uniq > "$nlist"S; then
4603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      :
4604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      grep -v "^: " < "$nlist" > "$nlist"S
4606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$nlist"S; then
4609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
4611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
4613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> "$output_objdir/$dlsyms" "\
4615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef lt_preloaded_symbols
4617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (__STDC__) && __STDC__
4619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr void *
4620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
4621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define lt_ptr char *
4622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define const
4623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* The mapping between symbol names and symbols. */
4626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case $host in
4629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *cygwin* | *mingw* )
4630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* DATA imports from DLLs on WIN32 can't be const, because
4632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   runtime relocations are performed -- see ld's documentation
4633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   on pseudo-relocs */
4634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstruct {
4635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
4637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    * )
4638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst struct {
4640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
4642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
4643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> "$output_objdir/$dlsyms" "\
4646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char *name;
4647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  lt_ptr address;
4648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
4649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_preloaded_symbols[] =
4650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{\
4651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> "$output_objdir/$dlsyms" "\
4656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {0, (lt_ptr) 0}
4657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson};
4658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* This works around a problem in FreeBSD linker */
4660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef FREEBSD_WORKAROUND
4661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic const void *lt_preloaded_setup() {
4662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return lt_preloaded_symbols;
4663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
4664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifdef __cplusplus
4667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
4668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif\
4669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
4670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  pic_flag_for_symtable=
4673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host in
4674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # compiling the symbol table file with pic_flag works around
4675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # a FreeBSD bug that causes programs to crash when -lm is
4676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # linked before any other PIC object.  But we must not use
4677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # pic_flag when linking with -static.  The problem exists in
4678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$compile_command " in
4681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" -static "*) ;;
4682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac;;
4684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *-*-hpux*)
4685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "$compile_command " in
4686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" -static "*) ;;
4687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) pic_flag_for_symtable=" $pic_flag";;
4688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
4689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Now compile the dynamic symbol file.
4692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Clean up the generated files.
4696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Transform the symbol file into the correct name.
4700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          case $host in
4701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          *cygwin* | *mingw* )
4702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            if test -f "$output_objdir/${outputname}.def" ; then
4703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            else
4706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson             fi
4709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            ;;
4710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          * )
4711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            ;;
4714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          esac
4715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
4717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
4719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
4720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
4722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We keep going just in case the user didn't refer to
4723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# really was required.
4725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Nullify the symbol file.
4727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Replace the output file specification.
4733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_command$compile_rpath"
4735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We have no uninstalled library dependencies, so finalize right now.
4737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$link_command"
4738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$link_command"
4739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=$?
4740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Delete the generated files.
4742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$dlsyms"; then
4743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$rm $output_objdir/${outputname}S.${objext}"
4744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run $rm "$output_objdir/${outputname}S.${objext}"
4745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $exit_status
4748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
4751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We should set the shlibpath_var
4752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	rpath=
4753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for dir in $temp_rpath; do
4754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $dir in
4755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  [\\/]* | [A-Za-z]:[\\/]*)
4756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Absolute path.
4757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
4758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
4759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *)
4760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Relative path: add a thisdir entry.
4761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath\$thisdir/$dir:"
4762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
4763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
4764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	temp_rpath="$rpath"
4766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$finalize_shlibpath"; then
4772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile_var=
4776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finalize_var=
4777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$runpath_var"; then
4778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$perm_rpath"; then
4779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We should set the runpath_var.
4780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath=
4781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $perm_rpath; do
4782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
4783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finalize_perm_rpath"; then
4787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # We should set the runpath_var.
4788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  rpath=
4789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for dir in $finalize_perm_rpath; do
4790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rpath="$rpath$dir:"
4791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
4792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$no_install" = yes; then
4797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# We don't need to create a wrapper script.
4798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_var$compile_command$compile_rpath"
4799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Replace the output file specification.
4800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Delete the old output file.
4802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run $rm $output
4803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Link the executable and exit
4804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$link_command"
4805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$link_command" || exit $?
4806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
4807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$hardcode_action" = relink; then
4810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Fast installation is not supported
4811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	link_command="$compile_var$compile_command$compile_rpath"
4812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command="$finalize_var$finalize_command$finalize_rpath"
4813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
4817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$fast_install" != no; then
4818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  link_command="$finalize_var$compile_command$finalize_rpath"
4819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$fast_install" = yes; then
4820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # fast_install is set to needless
4823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=
4824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
4826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  link_command="$compile_var$compile_command$compile_rpath"
4827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
4829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Replace the output file specification.
4832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Delete the old output files.
4835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$link_command"
4838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval "$link_command" || exit $?
4839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now create the wrapper script.
4841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "creating $output"
4842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote the relink command for shipping.
4844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$relink_command"; then
4845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Preserve any variables that may affect compiler behavior
4846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for var in $variables_saved_for_relink; do
4847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if eval test -z \"\${$var+set}\"; then
4848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  elif eval var_value=\$$var; test -z "$var_value"; then
4850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="$var=; export $var; $relink_command"
4851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
4852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
4855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
4856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command="(cd `pwd`; $relink_command)"
4857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote $echo for shipping.
4861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $progpath in
4863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
4868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
4870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only actually do things if our run command is non-null.
4872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$run"; then
4873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# win32 will think the script is a binary if it has
4874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# a .exe suffix, so we strip it off here.
4875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $output in
4876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# test for cygwin because mv fails w/o .exe extensions
4879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
4880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *cygwin*)
4881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exeext=.exe
4882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) exeext= ;;
4884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
4885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
4886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *cygwin* | *mingw* )
4887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            output_name=`basename $output`
4888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            output_path=`dirname $output`
4889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cwrapper="$output_path/$output_name.exe"
4891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            $rm $cwrappersource $cwrapper
4892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cat > $cwrappersource <<EOF
4895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   The $output program cannot be directly executed until all the libtool
4900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   libraries that it depends on are installed.
4901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   This wrapper executable should never be moved out of the build directory.
4903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   If it is, it will not operate correctly.
4904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   but could eventually absorb all of the scripts functionality and
4907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   exec $objdir/$outputname directly.
4908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*/
4909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
4910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    cat >> $cwrappersource<<"EOF"
4911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdio.h>
4912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdlib.h>
4913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <unistd.h>
4914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <malloc.h>
4915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <stdarg.h>
4916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <assert.h>
4917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <string.h>
4918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <ctype.h>
4919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#include <sys/stat.h>
4920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined(PATH_MAX)
4922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX PATH_MAX
4923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#elif defined(MAXPATHLEN)
4924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX MAXPATHLEN
4925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
4926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define LT_PATHMAX 1024
4927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR
4930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DIR_SEPARATOR '/'
4931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define PATH_SEPARATOR ':'
4932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  defined (__OS2__)
4936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define HAVE_DOS_BASED_FILE_SYSTEM
4937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef DIR_SEPARATOR_2
4938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#  define DIR_SEPARATOR_2 '\\'
4939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif
4940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ifndef PATH_SEPARATOR_2
4941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#  define PATH_SEPARATOR_2 ';'
4942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# endif
4943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef DIR_SEPARATOR_2
4946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* DIR_SEPARATOR_2 */
4948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_DIR_SEPARATOR(ch) \
4949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* DIR_SEPARATOR_2 */
4951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#ifndef PATH_SEPARATOR_2
4953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else /* PATH_SEPARATOR_2 */
4955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif /* PATH_SEPARATOR_2 */
4957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#define XFREE(stale) do { \
4960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (stale) { free ((void *) stale); stale = 0; } \
4961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson} while (0)
4962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* -DDEBUG is fairly common in CFLAGS.  */
4964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#undef DEBUG
4965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined DEBUGWRAPPER
4966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#else
4968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# define DEBUG(format, ...)
4969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
4970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char *program_name = NULL;
4972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid * xmalloc (size_t num);
4974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * xstrdup (const char *string);
4975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char * base_name (const char *name);
4976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * find_executable(const char *wrapper);
4977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint    check_executable(const char *path);
4978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar * strendzap(char *str, const char *pat);
4979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid lt_fatal (const char *message, ...);
4980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint
4982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonmain (int argc, char *argv[])
4983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
4984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char **newargz;
4985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int i;
4986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program_name = (char *) xstrdup (base_name (argv[0]));
4988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) argv[0]      : %s\n",argv[0]);
4989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) program_name : %s\n",program_name);
4990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz = XMALLOC(char *, argc+2);
4991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
4992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<EOF
4994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[0] = (char *) xstrdup("$SHELL");
4995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
4996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
4997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<"EOF"
4998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[1] = find_executable(argv[0]);
4999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (newargz[1] == NULL)
5000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal("Couldn't find %s", argv[0]);
5001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(main) found exe at : %s\n",newargz[1]);
5002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* we know the script has the same name, without the .exe */
5003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* so make sure newargz[1] doesn't end in .exe */
5004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  strendzap(newargz[1],".exe");
5005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (i = 1; i < argc; i++)
5006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    newargz[i+1] = xstrdup(argv[i]);
5007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  newargz[argc+1] = NULL;
5008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (i=0; i<argc+1; i++)
5010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;
5013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            case $host_os in
5018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              mingw*)
5019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                cat >> $cwrappersource <<EOF
5020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execv("$SHELL",(char const **)newargz);
5021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              ;;
5023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              *)
5024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                cat >> $cwrappersource <<EOF
5025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execv("$SHELL",newargz);
5026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson              ;;
5028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            esac
5029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            cat >> $cwrappersource <<"EOF"
5031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return 127;
5032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid *
5035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxmalloc (size_t num)
5036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  void * p = (void *) malloc (num);
5038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (!p)
5039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal ("Memory exhausted");
5040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return p;
5042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonxstrdup (const char *string)
5046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson;
5049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonconst char *
5052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonbase_name (const char *name)
5053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char *base;
5055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Skip over the disk name in MSDOS pathnames. */
5058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    name += 2;
5060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (base = name; *name; name++)
5063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (IS_DIR_SEPARATOR (*name))
5064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      base = name + 1;
5065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return base;
5066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonint
5069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncheck_executable(const char * path)
5070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  struct stat st;
5072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((!path) || (!*path))
5075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 0;
5076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((stat (path, &st) >= 0) &&
5078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      (
5079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXOTH)
5081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (S_IXGRP)
5084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       ((st.st_mode & S_IXUSR) == S_IXUSR))
5087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      )
5088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 1;
5089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return 0;
5091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson/* Searches for the full path of the wrapper.  Returns
5094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson   newly allocated full path name if found, NULL otherwise */
5095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfind_executable (const char* wrapper)
5097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int has_slash = 0;
5099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char* p;
5100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  const char* p_next;
5101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* static buffer for getcwd */
5102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char tmp[LT_PATHMAX + 1];
5103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  int tmp_len;
5104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  char* concat_name;
5105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if ((wrapper == NULL) || (*wrapper == '\0'))
5109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return NULL;
5110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Absolute path? */
5112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    concat_name = xstrdup (wrapper);
5116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (check_executable(concat_name))
5117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      return concat_name;
5118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    XFREE(concat_name);
5119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (IS_DIR_SEPARATOR (wrapper[0]))
5124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      concat_name = xstrdup (wrapper);
5126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if (check_executable(concat_name))
5127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        return concat_name;
5128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      XFREE(concat_name);
5129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#endif
5133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  for (p = wrapper; *p; p++)
5135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (*p == '/')
5136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      has_slash = 1;
5138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      break;
5139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (!has_slash)
5141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    /* no slashes; search PATH */
5143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    const char* path = getenv ("PATH");
5144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (path != NULL)
5145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    {
5146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for (p = path; *p; p = p_next)
5147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      {
5148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        const char* q;
5149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        size_t p_len;
5150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        for (q = p; *q; q++)
5151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          if (IS_PATH_SEPARATOR(*q))
5152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            break;
5153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        p_len = q - p;
5154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        p_next = (*q == '\0' ? q : q + 1);
5155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if (p_len == 0)
5156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        {
5157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          /* empty path: current directory */
5158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          if (getcwd (tmp, LT_PATHMAX) == NULL)
5159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson            lt_fatal ("getcwd failed");
5160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          tmp_len = strlen(tmp);
5161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          memcpy (concat_name, tmp, tmp_len);
5163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name[tmp_len] = '/';
5164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          strcpy (concat_name + tmp_len + 1, wrapper);
5165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        }
5166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        else
5167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        {
5168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          memcpy (concat_name, p, p_len);
5170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          concat_name[p_len] = '/';
5171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          strcpy (concat_name + p_len + 1, wrapper);
5172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        }
5173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        if (check_executable(concat_name))
5174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          return concat_name;
5175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        XFREE(concat_name);
5176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      }
5177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    }
5178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    /* not found in PATH; assume curdir */
5179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  /* Relative path | not found in path: prepend cwd */
5181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (getcwd (tmp, LT_PATHMAX) == NULL)
5182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    lt_fatal ("getcwd failed");
5183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  tmp_len = strlen(tmp);
5184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  memcpy (concat_name, tmp, tmp_len);
5186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  concat_name[tmp_len] = '/';
5187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  strcpy (concat_name + tmp_len + 1, wrapper);
5188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (check_executable(concat_name))
5190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    return concat_name;
5191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  XFREE(concat_name);
5192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return NULL;
5193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonchar *
5196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstrendzap(char *str, const char *pat)
5197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  size_t len, patlen;
5199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  assert(str != NULL);
5201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  assert(pat != NULL);
5202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  len = strlen(str);
5204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  patlen = strlen(pat);
5205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (patlen <= len)
5207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  {
5208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    str += len - patlen;
5209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if (strcmp(str, pat) == 0)
5210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *str = '\0';
5211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  }
5212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  return str;
5213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonstatic void
5216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_error_core (int exit_status, const char * mode,
5217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          const char * message, va_list ap)
5218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fprintf (stderr, "%s: %s: ", program_name, mode);
5220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  vfprintf (stderr, message, ap);
5221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fprintf (stderr, ".\n");
5222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if (exit_status >= 0)
5224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit (exit_status);
5225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonvoid
5228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlt_fatal (const char *message, ...)
5229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson{
5230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_list ap;
5231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_start (ap, message);
5232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  va_end (ap);
5234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson}
5235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEOF
5236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # we should really use a build-platform specific compiler
5237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # here, but OTOH, the wrappers (shell script and this C one)
5238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # are only useful if you want to execute the "real" binary.
5239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # Since the "real" binary is built for $host, then this
5240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          # wrapper might as well be built for $host, too.
5241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson          ;;
5243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        esac
5244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        $rm $output
5245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo > $output "\
5248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#! $SHELL
5249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $output - temporary wrapper script for $objdir/$outputname
5251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
5253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The $output program cannot be directly executed until all the libtool
5254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# libraries that it depends on are installed.
5255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
5256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This wrapper script should never be moved out of the build directory.
5257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If it is, it will not operate correctly.
5258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Sed substitution that helps us do robust quoting.  It backslashifies
5260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# metacharacters that are still active within double-quoted strings.
5261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonXsed='${SED} -e 1s/^X//'
5262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonsed_quote_subst='$sed_quote_subst'
5263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The HP-UX ksh and POSIX shell print the target directory to stdout
5265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# if CDPATH is set.
5266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\"
5269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# This environment variable determines our operation mode.
5271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test \"\$libtool_install_magic\" = \"$magic\"; then
5272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # install mode needs the following variable:
5273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  notinst_deplibs='$notinst_deplibs'
5274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonelse
5275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # When we are sourced in execute mode, \$file and \$echo are already set.
5276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    echo=\"$qecho\"
5278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\"\$0\"
5279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Make sure echo works.
5280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"X\$1\" = X--no-reexec; then
5281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Discard the --no-reexec flag, and continue.
5282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
5283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Yippee, \$echo works!
5285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      :
5286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Restart under the correct shell, and then maybe \$echo will work.
5288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi\
5291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Find the directory that this script lives in.
5295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Follow symbolic links until we get to the real thisdir.
5299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  while test -n \"\$file\"; do
5301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # If there was a directory component, then change thisdir.
5304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"x\$destdir\" != \"x\$file\"; then
5305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case \"\$destdir\" in
5306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) thisdir=\"\$thisdir/\$destdir\" ;;
5308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
5309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  done
5314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # Try to get the absolute directory name.
5316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  absdir=\`cd \"\$thisdir\" && pwd\`
5317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$fast_install" = yes; then
5321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program=lt-'$outputname'$exeext
5323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  progdir=\"\$thisdir/$objdir\"
5324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test ! -f \"\$progdir/\$program\" || \\
5326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    file=\"\$\$-\$program\"
5330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test ! -d \"\$progdir\"; then
5332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $mkdir \"\$progdir\"
5333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $rm \"\$progdir/\$file\"
5335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi"
5336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # relink executable if necessary
5340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n \"\$relink_command\"; then
5341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo \"\$relink_command_output\" >&2
5344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$rm \"\$progdir/\$file\"
5345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
5346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    { $rm \"\$progdir/\$program\";
5351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $rm \"\$progdir/\$file\"
5353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi"
5354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  program='$outputname'
5357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  progdir=\"\$thisdir/$objdir\"
5358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -f \"\$progdir/\$program\"; then"
5364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Export our shlibpath_var if we have one.
5366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Add our own library path to $shlibpath_var
5369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Some systems cannot cope with colon-terminated $shlibpath_var
5372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The second colon is a workaround for a bug in BeOS R4 sed
5373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    export $shlibpath_var
5376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# fixup the dll searchpath if we need to.
5380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$dllsearchpath"; then
5381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Add the dll search path components to the executable PATH
5383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    PATH=$dllsearchpath:\$PATH
5384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Run the actual program with our arguments.
5390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
5392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Backslashes separate directories on plain windows
5393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*-*-mingw | *-*-os2*)
5394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
5400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo >> $output "\
5401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo >> $output "\
5406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
5408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  else
5410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The program doesn't exist.
5411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
5415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
5416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi\
5417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"
5418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	chmod +x $output
5419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
5421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
5422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
5423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # See if we need to build an old-fashioned archive.
5425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for oldlib in $oldlibs; do
5426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$build_libtool_libs" = convenience; then
5428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$libobjs_save"
5429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	addlibs="$convenience"
5430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	build_libtool_libs=no
5431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_libtool_libs" = module; then
5433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs="$libobjs_save"
5434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  build_libtool_libs=no
5435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs="$old_deplibs $non_pic_objects"
5437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	addlibs="$old_convenience"
5439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$addlibs"; then
5442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	gentop="$output_objdir/${outputname}x"
5443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	generated="$generated $gentop"
5444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	func_extract_archives $gentop $addlibs
5446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	oldobjs="$oldobjs $func_extract_archives_result"
5447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each command in the archive commands.
5450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       cmds=$old_archive_from_new_cmds
5452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# POSIX demands no paths to be encoded in archives.  We have
5454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# to avoid creating archives with duplicate basenames if we
5455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# might have to extract them afterwards, e.g., when creating a
5456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# static archive out of a convenience library, or when linking
5457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# the entirety of a libtool archive into another (currently
5458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# not supported by libtool).
5459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (for obj in $oldobjs
5460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
5461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done | sort | sort -uc >/dev/null 2>&1); then
5463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  :
5464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "copying selected object files to avoid basename conflicts..."
5466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$gentop"; then
5468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    gentop="$output_objdir/${outputname}x"
5469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    generated="$generated $gentop"
5470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "${rm}r $gentop"
5472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run ${rm}r "$gentop"
5473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$mkdir $gentop"
5474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run $mkdir "$gentop"
5475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit_status=$?
5476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $exit_status
5478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_oldobjs=$oldobjs
5482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs=
5483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  counter=1
5484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case " $oldobjs " in
5488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    " ") oldobjs=$obj ;;
5489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *[\ /]"$objbase "*)
5490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      while :; do
5491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# Make sure we don't pick an alternate name that also
5492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		# overlaps.
5493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newobj=lt$counter-$objbase
5494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		counter=`expr $counter + 1`
5495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		case " $oldobjs " in
5496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*[\ /]"$newobj "*) ;;
5497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		esac
5499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
5500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run ln "$obj" "$gentop/$newobj" ||
5502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $run cp "$obj" "$gentop/$newobj"
5503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldobjs="$oldobjs $gentop/$newobj"
5504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      ;;
5505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) oldobjs="$oldobjs $obj" ;;
5506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
5507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmds=\"$old_archive_cmds\"
5511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if len=`expr "X$cmds" : ".*"` &&
5513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$old_archive_cmds
5515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # the command line is too long to link in one step, link in parts
5517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "using piecewise archive linking..."
5518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_RANLIB=$RANLIB
5519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  RANLIB=:
5520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  objlist=
5521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  concat_cmds=
5522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_oldobjs=$oldobjs
5523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Is there a better way of finding the last object in the list?
5525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    last_oldobj=$obj
5528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for obj in $save_oldobjs
5530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  do
5531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    oldobjs="$objlist $obj"
5532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    objlist="$objlist $obj"
5533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval test_cmds=\"$old_archive_cmds\"
5534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	       test "$len" -le "$max_cmd_len"; then
5536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      :
5537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
5538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # the above command should be used before it gets too long
5539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      oldobjs=$objlist
5540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$obj" = "$last_oldobj" ; then
5541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	        RANLIB=$save_RANLIB
5542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      objlist=
5546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
5548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  RANLIB=$save_RANLIB
5549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  oldobjs=$objlist
5550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "X$oldobjs" = "X" ; then
5551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmds=\"\$concat_cmds\"
5552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
5558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
5559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson        eval cmd=\"$cmd\"
5560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
5561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
5562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
5563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
5564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
5565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
5566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$generated"; then
5568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "${rm}r$generated"
5569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run ${rm}r$generated
5570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Now create the libtool archive.
5573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $output in
5574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *.la)
5575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      old_library=
5576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "$build_old_libs" = yes && old_library="$libname.$libext"
5577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "creating $output"
5578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Preserve any variables that may affect compiler behavior
5580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for var in $variables_saved_for_relink; do
5581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if eval test -z \"\${$var+set}\"; then
5582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	elif eval var_value=\$$var; test -z "$var_value"; then
5584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$var=; export $var; $relink_command"
5585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
5590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote the link command for shipping.
5591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$hardcode_automatic" = yes ; then
5594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=
5595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Only create the output if not a dry run.
5599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$run"; then
5600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	for installed in no yes; do
5601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = yes; then
5602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -z "$install_libdir"; then
5603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      break
5604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
5605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    output="$output_objdir/$outputname"i
5606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Replace all uninstalled libtool libraries with the installed ones
5607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdependency_libs=
5608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for deplib in $dependency_libs; do
5609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $deplib in
5610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *.la)
5611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test -z "$libdir"; then
5614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit $EXIT_FAILURE
5616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
5617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		newdependency_libs="$newdependency_libs $libdir/$name"
5618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		;;
5619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
5621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dependency_libs="$newdependency_libs"
5623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles=
5624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlfiles; do
5625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$libdir"; then
5628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		exit $EXIT_FAILURE
5630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $libdir/$name"
5632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlfiles="$newdlfiles"
5634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles=
5635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlprefiles; do
5636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test -z "$libdir"; then
5639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		exit $EXIT_FAILURE
5641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $libdir/$name"
5643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$newdlprefiles"
5645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlfiles=
5647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlfiles; do
5648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
5649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) abs=`pwd`"/$lib" ;;
5651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
5652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlfiles="$newdlfiles $abs"
5653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlfiles="$newdlfiles"
5655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    newdlprefiles=
5656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for lib in $dlprefiles; do
5657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
5658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		*) abs=`pwd`"/$lib" ;;
5660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
5661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      newdlprefiles="$newdlprefiles $abs"
5662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    dlprefiles="$newdlprefiles"
5664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $rm $output
5666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # place dlname in correct position for cygwin
5667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  tdlname=$dlname
5668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $host,$output,$installed,$module,$dlname in
5669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
5671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo > $output "\
5672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# $outputname - a libtool library file
5673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson#
5675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Please DO NOT delete this file!
5676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# It is necessary for linking the library.
5677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name that we can dlopen(3).
5679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlname='$tdlname'
5680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Names of this library.
5682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary_names='$library_names'
5683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The name of the static archive.
5685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonold_library='$old_library'
5686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Libraries that this one depends upon.
5688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondependency_libs='$dependency_libs'
5689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Version information for $libname.
5691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncurrent=$current
5692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonage=$age
5693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrevision=$revision
5694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Is this an already installed library?
5696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstalled=$installed
5697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Should we warn about portability when linking against -modules?
5699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonshouldnotlink=$module
5700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Files to dlopen/dlpreopen
5702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlopen='$dlfiles'
5703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondlpreopen='$dlprefiles'
5704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Directory that this library needs to be installed in:
5706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibdir='$install_libdir'"
5707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$installed" = no && test "$need_relink" = yes; then
5708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo >> $output "\
5709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrelink_command=\"$relink_command\""
5710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	done
5712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do a symbolic link so that the libtool archive can be found in
5715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # LD_LIBRARY_PATH before the program is installed.
5716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
5719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
5720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
5721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
5722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool install mode
5724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  install)
5725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: install"
5726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # There may be an optional sh(1) argument at the beginning of
5728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # install_prog (especially on Windows NT).
5729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       # Allow the use of GNU shtool's install command.
5731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $echo "X$nonopt" | grep shtool > /dev/null; then
5732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote it.
5733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
5735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg="\"$arg\""
5737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
5739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog="$arg "
5740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="$1"
5741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      shift
5742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog=
5744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=$nonopt
5745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The real first argument should be the name of the installation program.
5748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Aesthetically quote it.
5749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $arg in
5751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg="\"$arg\""
5753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
5754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
5755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    install_prog="$install_prog$arg"
5756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # We need to accept at least all the BSD install flags.
5758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dest=
5759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    files=
5760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    opts=
5761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    prev=
5762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    install_type=
5763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    isdir=no
5764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    stripme=
5765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
5766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
5767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$dest"; then
5768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	files="$files $dest"
5769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dest=$arg
5770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
5771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
5774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -d) isdir=yes ;;
5775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -f) 
5776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      	case " $install_prog " in
5777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*[\\\ /]cp\ *) ;;
5778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) prev=$arg ;;
5779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -g | -m | -o) prev=$arg ;;
5782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -s)
5783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	stripme=" -s"
5784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
5785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*)
5787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
5789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the previous option needed an argument, then skip it.
5790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$prev"; then
5791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  prev=
5792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dest=$arg
5794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
5795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
5798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Aesthetically quote the argument.
5800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
5802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	arg="\"$arg\""
5804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
5806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install_prog="$install_prog $arg"
5807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
5808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$install_prog"; then
5810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an install program" 1>&2
5811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
5812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
5813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$prev"; then
5816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
5818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
5819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$files"; then
5822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -z "$dest"; then
5823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: no file or destination specified" 1>&2
5824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
5825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: you must specify a destination" 1>&2
5826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
5828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
5829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Strip any trailing slash from the destination.
5832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Check to see that the destination is a directory.
5835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test -d "$dest" && isdir=yes
5836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test "$isdir" = yes; then
5837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destdir="$dest"
5838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destname=
5839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
5840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "X$destdir" = "X$dest" && destdir=.
5842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Not a directory, so check to see that there is only one file specified.
5845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      set dummy $files
5846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$#" -gt 2; then
5847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$dest' is not a directory" 1>&2
5848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$help" 1>&2
5849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
5850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
5851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
5852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    case $destdir in
5853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    [\\/]* | [A-Za-z]:[\\/]*) ;;
5854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    *)
5855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for file in $files; do
5856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
5857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo) ;;
5858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
5859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
5861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
5862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
5863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
5865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      ;;
5866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    esac
5867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set variables rather
5869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # than running their programs.
5870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_install_magic="$magic"
5871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5872bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    staticlibs=
5873bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    future_libdirs=
5874bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    current_libdirs=
5875bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $files; do
5876bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5877bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each installation.
5878bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
5879bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.$libext)
5880bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do the static libraries later.
5881bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	staticlibs="$staticlibs $file"
5882bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
5883bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5884bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
5885bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
5886bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5887bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5888bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5889bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
5890bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
5891bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5892bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5893bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
5894bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	old_library=
5895bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	relink_command=
5896bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If there is no directory component, then add one.
5897bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
5898bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $file ;;
5899bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$file ;;
5900bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
5901bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5902bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Add the libdir to current_libdirs if it is the destination.
5903bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "X$destdir" = "X$libdir"; then
5904bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$current_libdirs " in
5905bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
5906bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) current_libdirs="$current_libdirs $libdir" ;;
5907bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
5908bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
5909bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note the libdir as a future libdir.
5910bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$future_libdirs " in
5911bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $libdir "*) ;;
5912bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) future_libdirs="$future_libdirs $libdir" ;;
5913bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
5914bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5915bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5916bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5917bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file/" && dir=
5918bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir="$dir$objdir"
5919bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5920bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$relink_command"; then
5921bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Determine the prefix the user has applied to our future dir.
5922bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5923bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5924bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Don't allow the user to place us outside of our expected
5925bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # location b/c this prevents finding dependent libraries that
5926bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are installed to the same prefix.
5927bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # At present, this check doesn't affect windows .dll's that
5928bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # are installed into $libdir/../bin (currently, that works fine)
5929bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # but it's something to keep an eye on.
5930bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$inst_prefix_dir" = "$destdir"; then
5931bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5932bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
5933bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5934bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5935bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$inst_prefix_dir"; then
5936bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Stick the inst_prefix_dir data into the link command.
5937bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5938bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5939bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5940bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5941bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5942bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: warning: relinking \`$file'" 1>&2
5943bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$relink_command"
5944bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if $run eval "$relink_command"; then :
5945bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
5946bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5947bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
5948bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5949bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
5950bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5951bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# See the names of the shared library.
5952bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	set dummy $library_names
5953bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$2"; then
5954bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  realname="$2"
5955bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  shift
5956bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  shift
5957bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5958bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  srcname="$realname"
5959bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$relink_command" && srcname="$realname"T
5960bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5961bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Install the shared library and build the symlinks.
5962bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $dir/$srcname $destdir/$realname"
5963bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5964bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$stripme" && test -n "$striplib"; then
5965bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$striplib $destdir/$realname"
5966bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$striplib $destdir/$realname" || exit $?
5967bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5968bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5969bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$#" -gt 0; then
5970bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Delete the old symlinks, and create new ones.
5971bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Try `ln -sf' first, because the `ln' binary might depend on
5972bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
5973bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # so we also need to try rm && ln -s.
5974bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    for linkname
5975bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    do
5976bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$linkname" != "$realname"; then
5977bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5978bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5979bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5980bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    done
5981bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
5982bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5983bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each command in the postinstall commands.
5984bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  lib="$destdir/$realname"
5985bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$postinstall_cmds
5986bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
5987bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $cmds; do
5988bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
5989bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmd=\"$cmd\"
5990bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
5991bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || {
5992bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      lt_exit=$?
5993bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5994bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Restore the uninstalled library and exit
5995bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if test "$mode" = relink; then
5996bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5997bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
5998bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
5999bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      exit $lt_exit
6000bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    }
6001bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6002bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
6003bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6004bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6005bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the pseudo-library for information purposes.
6006bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6007bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	instname="$dir/$name"i
6008bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$install_prog $instname $destdir/$name"
6009bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$install_prog $instname $destdir/$name" || exit $?
6010bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6011bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Maybe install the static library, too.
6012bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6013bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6014bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6015bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6016bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install (i.e. copy) a libtool object.
6017bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6018bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Figure out destination file name, if it wasn't already specified.
6019bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destname"; then
6020bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destname"
6021bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6022bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6023bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destfile"
6024bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6025bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6026bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Deduce the name of the destination old-style object file.
6027bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $destfile in
6028bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.lo)
6029bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6030bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6031bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*.$objext)
6032bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticdest="$destfile"
6033bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=
6034bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6035bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
6036bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6037bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6038bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6039bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6040bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6041bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6042bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the libtool object if requested.
6043bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destfile"; then
6044bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $file $destfile"
6045bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog $file $destfile" || exit $?
6046bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6047bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6048bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Install the old object if enabled.
6049bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$build_old_libs" = yes; then
6050bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Deduce the name of the old-style object file.
6051bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6052bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6053bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $show "$install_prog $staticobj $staticdest"
6054bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6055bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6056bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_SUCCESS
6057bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6058bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6059bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6060bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Figure out destination file name, if it wasn't already specified.
6061bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$destname"; then
6062bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destname"
6063bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6064bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6065bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  destfile="$destdir/$destfile"
6066bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6067bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6068bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If the file is missing, and there is a .exe on the end, strip it
6069bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# because it is most likely a libtool script we actually want to
6070bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# install
6071bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	stripped_ext=""
6072bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6073bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe)
6074bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test ! -f "$file"; then
6075bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file=`$echo $file|${SED} 's,.exe$,,'`
6076bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      stripped_ext=".exe"
6077bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6078bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6079bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6080bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6081bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do a test to see if this is really a libtool program.
6082bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $host in
6083bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*cygwin*|*mingw*)
6084bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6085bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6086bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*)
6087bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    wrapper=$file
6088bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6089bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6090bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6091bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  notinst_deplibs=
6092bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command=
6093bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6094bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note that it is not necessary on cygwin/mingw to append a dot to
6095bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6096bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6097bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # `FILE.' does not work on cygwin managed mounts.
6098bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
6099bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6100bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $wrapper in
6101bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . ${wrapper} ;;
6102bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./${wrapper} ;;
6103bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6104bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6105bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Check the variables that should have been set.
6106bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -z "$notinst_deplibs"; then
6107bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6108bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    exit $EXIT_FAILURE
6109bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6110bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6111bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  finalize=yes
6112bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for lib in $notinst_deplibs; do
6113bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Check to see that each library is installed.
6114bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libdir=
6115bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -f "$lib"; then
6116bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # If there is no directory component, then add one.
6117bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      case $lib in
6118bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      */* | *\\*) . $lib ;;
6119bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      *) . ./$lib ;;
6120bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      esac
6121bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6122bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6123bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$libdir" && test ! -f "$libfile"; then
6124bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6125bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      finalize=no
6126bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6127bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6128bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6129bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  relink_command=
6130bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Note that it is not necessary on cygwin/mingw to append a dot to
6131bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6132bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6133bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # `FILE.' does not work on cygwin managed mounts.
6134bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  #
6135bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6136bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $wrapper in
6137bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . ${wrapper} ;;
6138bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./${wrapper} ;;
6139bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6140bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6141bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  outputname=
6142bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test "$fast_install" = no && test -n "$relink_command"; then
6143bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$finalize" = yes && test -z "$run"; then
6144bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      tmpdir=`func_mktempdir`
6145bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6146bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      outputname="$tmpdir/$file"
6147bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Replace the output file specification.
6148bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6149bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6150bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $show "$relink_command"
6151bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      if $run eval "$relink_command"; then :
6152bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      else
6153bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6154bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		${rm}r "$tmpdir"
6155bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		continue
6156bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      fi
6157bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      file="$outputname"
6158bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    else
6159bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6160bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6161bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  else
6162bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # Install the binary that we compiled earlier.
6163bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6164bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6165bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6166bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6167bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# remove .exe since cygwin /usr/bin/install will append another
6168bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# one anyway 
6169bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $install_prog,$host in
6170bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/usr/bin/install*,*cygwin*)
6171bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file:$destfile in
6172bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe:*.exe)
6173bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # this is ok
6174bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6175bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe:*)
6176bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    destfile=$destfile.exe
6177bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6178bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *:*.exe)
6179bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6180bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6181bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6182bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  ;;
6183bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6184bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$install_prog$stripme $file $destfile"
6185bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6186bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test -n "$outputname" && ${rm}r "$tmpdir"
6187bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6188bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6189bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6190bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6191bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $staticlibs; do
6192bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6193bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6194bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Set up the ranlib parameters.
6195bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      oldlib="$destdir/$name"
6196bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6197bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$install_prog $file $oldlib"
6198bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run eval "$install_prog \$file \$oldlib" || exit $?
6199bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6200bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$stripme" && test -n "$old_striplib"; then
6201bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$old_striplib $oldlib"
6202bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$old_striplib $oldlib" || exit $?
6203bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6204bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6205bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Do each command in the postinstall commands.
6206bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      cmds=$old_postinstall_cmds
6207bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      save_ifs="$IFS"; IFS='~'
6208bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for cmd in $cmds; do
6209bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	IFS="$save_ifs"
6210bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval cmd=\"$cmd\"
6211bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "$cmd"
6212bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run eval "$cmd" || exit $?
6213bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6214bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      IFS="$save_ifs"
6215bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6216bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6217bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$future_libdirs"; then
6218bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6219bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6220bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6221bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$current_libdirs"; then
6222bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Maybe just do a dry run.
6223bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$run" && current_libdirs=" -n$current_libdirs"
6224bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6225bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6226bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
6227bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6228bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6229bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6230bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool finish mode
6231bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  finish)
6232bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: finish"
6233bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libdirs="$nonopt"
6234bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    admincmds=
6235bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6236bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6237bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for dir
6238bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      do
6239bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	libdirs="$libdirs $dir"
6240bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6241bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6242bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      for libdir in $libdirs; do
6243bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finish_cmds"; then
6244bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do each command in the finish commands.
6245bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  cmds=$finish_cmds
6246bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  save_ifs="$IFS"; IFS='~'
6247bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for cmd in $cmds; do
6248bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    IFS="$save_ifs"
6249bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    eval cmd=\"$cmd\"
6250bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $show "$cmd"
6251bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    $run eval "$cmd" || admincmds="$admincmds
6252bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $cmd"
6253bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6254bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  IFS="$save_ifs"
6255bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6256bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -n "$finish_eval"; then
6257bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do the single finish_eval.
6258bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  eval cmds=\"$finish_eval\"
6259bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $run eval "$cmds" || admincmds="$admincmds
6260bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson       $cmds"
6261bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6262bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      done
6263bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6264bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6265bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Exit here if they wanted silent mode.
6266bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    test "$show" = : && exit $EXIT_SUCCESS
6267bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6268bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X----------------------------------------------------------------------" | $Xsed
6269bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "Libraries have been installed in:"
6270bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for libdir in $libdirs; do
6271bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   $libdir"
6272bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6273bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
6274bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "If you ever happen to want to link against installed libraries"
6275bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6276bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6277bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "flag during linking and do at least one of the following:"
6278bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$shlibpath_var"; then
6279bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6280bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "     during execution"
6281bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6282bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$runpath_var"; then
6283bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6284bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "     during linking"
6285bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6286bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$hardcode_libdir_flag_spec"; then
6287bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      libdir=LIBDIR
6288bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      eval flag=\"$hardcode_libdir_flag_spec\"
6289bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6290bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - use the \`$flag' linker flag"
6291bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6292bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -n "$admincmds"; then
6293bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - have your system administrator run these commands:$admincmds"
6294bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6295bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -f /etc/ld.so.conf; then
6296bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6297bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6298bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo
6299bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "See any operating system documentation about shared libraries for"
6300bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6301bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "X----------------------------------------------------------------------" | $Xsed
6302bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_SUCCESS
6303bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6304bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6305bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool execute mode
6306bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  execute)
6307bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: execute"
6308bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6309bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # The first argument is the command name.
6310bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    cmd="$nonopt"
6311bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$cmd"; then
6312bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify a COMMAND" 1>&2
6313bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help"
6314bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6315bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6316bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6317bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Handle -dlopen flags immediately.
6318bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $execute_dlfiles; do
6319bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test ! -f "$file"; then
6320bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: \`$file' is not a file" 1>&2
6321bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$help" 1>&2
6322bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit $EXIT_FAILURE
6323bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6324bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6325bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dir=
6326bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
6327bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
6328bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Check to see that this really is a libtool archive.
6329bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6330bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6331bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6332bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$help" 1>&2
6333bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6334bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6335bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6336bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Read the libtool library.
6337bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dlname=
6338bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	library_names=
6339bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6340bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# If there is no directory component, then add one.
6341bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case $file in
6342bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*/* | *\\*) . $file ;;
6343bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	*) . ./$file ;;
6344bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6345bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6346bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Skip this library if it cannot be dlopened.
6347bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -z "$dlname"; then
6348bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Warn if it was a shared library.
6349bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6350bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  continue
6351bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6352bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6353bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6354bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file" && dir=.
6355bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6356bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test -f "$dir/$objdir/$dlname"; then
6357bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  dir="$dir/$objdir"
6358bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	else
6359bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6360bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  exit $EXIT_FAILURE
6361bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6362bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6363bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6364bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6365bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Just add the directory containing the .lo file.
6366bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6367bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	test "X$dir" = "X$file" && dir=.
6368bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6369bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6370bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6371bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6372bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6373bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6374bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6375bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6376bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Get the absolute pathname.
6377bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      absdir=`cd "$dir" && pwd`
6378bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test -n "$absdir" && dir="$absdir"
6379bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6380bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now add the directory to shlibpath_var.
6381bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if eval "test -z \"\$$shlibpath_var\""; then
6382bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "$shlibpath_var=\"\$dir\""
6383bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
6384bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6385bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6386bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6387bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6388bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set shlibpath_var
6389bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # rather than running their programs.
6390bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_execute_magic="$magic"
6391bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6392bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Check if any of the arguments is a wrapper script.
6393bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    args=
6394bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file
6395bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
6396bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $file in
6397bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*) ;;
6398bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6399bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Do a test to see if this is really a libtool program.
6400bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6401bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # If there is no directory component, then add one.
6402bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
6403bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  */* | *\\*) . $file ;;
6404bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) . ./$file ;;
6405bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6406bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6407bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Transform arg to wrapped name.
6408bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  file="$progdir/$program"
6409bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6410bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6411bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6412bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Quote arguments (to preserve shell metacharacters).
6413bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6414bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      args="$args \"$file\""
6415bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6416bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6417bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$run"; then
6418bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
6419bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Export the shlibpath_var.
6420bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "export $shlibpath_var"
6421bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6422bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6423bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Restore saved environment variables
6424bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "${save_LC_ALL+set}" = set; then
6425bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	LC_ALL="$save_LC_ALL"; export LC_ALL
6426bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6427bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "${save_LANG+set}" = set; then
6428bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	LANG="$save_LANG"; export LANG
6429bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6430bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6431bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Now prepare to actually exec the command.
6432bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exec_cmd="\$cmd$args"
6433bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    else
6434bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Display what would be done.
6435bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -n "$shlibpath_var"; then
6436bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6437bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$echo "export $shlibpath_var"
6438bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6439bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$cmd$args"
6440bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_SUCCESS
6441bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6442bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6443bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6444bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  # libtool clean and uninstall mode
6445bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  clean | uninstall)
6446bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    modename="$modename: $mode"
6447bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rm="$nonopt"
6448bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    files=
6449bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rmforce=
6450bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit_status=0
6451bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6452bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # This variable tells wrapper scripts just to set variables rather
6453bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # than running their programs.
6454bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    libtool_install_magic="$magic"
6455bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6456bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for arg
6457bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    do
6458bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $arg in
6459bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -f) rm="$rm $arg"; rmforce=yes ;;
6460bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      -*) rm="$rm $arg" ;;
6461bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *) files="$files $arg" ;;
6462bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6463bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6464bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6465bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    if test -z "$rm"; then
6466bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$modename: you must specify an RM program" 1>&2
6467bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $echo "$help" 1>&2
6468bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      exit $EXIT_FAILURE
6469bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    fi
6470bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6471bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    rmdirs=
6472bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6473bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    origobjdir="$objdir"
6474bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for file in $files; do
6475bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6476bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "X$dir" = "X$file"; then
6477bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	dir=.
6478bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objdir="$origobjdir"
6479bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      else
6480bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	objdir="$dir/$origobjdir"
6481bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6482bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6483bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      test "$mode" = uninstall && objdir="$dir"
6484bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6485bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Remember objdir for removal later, being careful to avoid duplicates
6486bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test "$mode" = clean; then
6487bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	case " $rmdirs " in
6488bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *" $objdir "*) ;;
6489bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *) rmdirs="$rmdirs $objdir" ;;
6490bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	esac
6491bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6492bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6493bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      # Don't error if the file doesn't exist and rm -f was used.
6494bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if (test -L "$file") >/dev/null 2>&1 \
6495bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	|| (test -h "$file") >/dev/null 2>&1 \
6496bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	|| test -f "$file"; then
6497bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	:
6498bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      elif test -d "$file"; then
6499bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	exit_status=1
6500bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6501bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      elif test "$rmforce" = yes; then
6502bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	continue
6503bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6504bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6505bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      rmfiles="$file"
6506bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6507bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      case $name in
6508bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.la)
6509bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Possibly a libtool archive, so verify it.
6510bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6511bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  . $dir/$name
6512bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6513bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Delete the libtool libraries and symlinks.
6514bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  for n in $library_names; do
6515bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $objdir/$n"
6516bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  done
6517bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6518bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6519bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case "$mode" in
6520bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  clean)
6521bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    case "  $library_names " in
6522bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # "  " in the beginning catches empty $dlname
6523bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *" $dlname "*) ;;
6524bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6525bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    esac
6526bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6527bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6528bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  uninstall)
6529bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$library_names"; then
6530bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Do each command in the postuninstall commands.
6531bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$postuninstall_cmds
6532bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
6533bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
6534bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
6535bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
6536bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
6537bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd"
6538bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -ne 0 && test "$rmforce" != yes; then
6539bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit_status=1
6540bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
6541bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
6542bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
6543bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6544bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6545bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test -n "$old_library"; then
6546bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      # Do each command in the old_postuninstall commands.
6547bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      cmds=$old_postuninstall_cmds
6548bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      save_ifs="$IFS"; IFS='~'
6549bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      for cmd in $cmds; do
6550bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		IFS="$save_ifs"
6551bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		eval cmd=\"$cmd\"
6552bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$show "$cmd"
6553bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		$run eval "$cmd"
6554bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		if test "$?" -ne 0 && test "$rmforce" != yes; then
6555bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		  exit_status=1
6556bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		fi
6557bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      done
6558bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      IFS="$save_ifs"
6559bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6560bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # FIXME: should reinstall the best remaining shared library.
6561bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6562bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6563bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6564bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6565bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6566bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *.lo)
6567bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	# Possibly a libtool object, so verify it.
6568bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6569bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6570bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Read the .lo file
6571bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  . $dir/$name
6572bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6573bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add PIC object to the list of files to remove.
6574bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$pic_object" \
6575bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     && test "$pic_object" != none; then
6576bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $dir/$pic_object"
6577bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6578bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6579bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Add non-PIC object to the list of files to remove.
6580bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if test -n "$non_pic_object" \
6581bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	     && test "$non_pic_object" != none; then
6582bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $dir/$non_pic_object"
6583bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6584bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6585bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6586bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6587bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      *)
6588bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	if test "$mode" = clean ; then
6589bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  noexename=$name
6590bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  case $file in
6591bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  *.exe)
6592bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    file=`$echo $file|${SED} 's,.exe$,,'`
6593bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6594bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # $file with .exe has already been added to rmfiles,
6595bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # add $file without .exe
6596bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $file"
6597bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    ;;
6598bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  esac
6599bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  # Do a test to see if this is a libtool program.
6600bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6601bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    relink_command=
6602bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    . $dir/$noexename
6603bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6604bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # note $name still contains .exe if it was in $file originally
6605bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    # as does the version of $file that was added into $rmfiles
6606bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6607bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "$fast_install" = yes && test -n "$relink_command"; then
6608bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rmfiles="$rmfiles $objdir/lt-$name"
6609bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6610bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    if test "X$noexename" != "X$name" ; then
6611bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6612bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	    fi
6613bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	  fi
6614bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	fi
6615bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	;;
6616bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      esac
6617bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $show "$rm $rmfiles"
6618bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      $run $rm $rmfiles || exit_status=1
6619bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6620bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    objdir="$origobjdir"
6621bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6622bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    # Try to remove the ${objdir}s in the directories where we deleted files
6623bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    for dir in $rmdirs; do
6624bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      if test -d "$dir"; then
6625bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$show "rmdir $dir"
6626bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson	$run rmdir $dir >/dev/null 2>&1
6627bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      fi
6628bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    done
6629bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6630bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $exit_status
6631bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6632bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6633bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  "")
6634bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: you must specify a MODE" 1>&2
6635bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$generic_help" 1>&2
6636bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
6637bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    ;;
6638bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  esac
6639bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6640bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  if test -z "$exec_cmd"; then
6641bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6642bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    $echo "$generic_help" 1>&2
6643bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    exit $EXIT_FAILURE
6644bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  fi
6645bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi # test -z "$show_help"
6646bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6647bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonif test -n "$exec_cmd"; then
6648bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  eval exec $exec_cmd
6649bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
6650bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfi
6651bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6652bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# We need to display help for each of the modes.
6653bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncase $mode in
6654bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"") $echo \
6655bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... [MODE-ARG]...
6656bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6657bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonProvide generalized library-building support services.
6658bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6659bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --config          show all configuration variables
6660bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --debug           enable verbose shell tracing
6661bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson-n, --dry-run         display commands without modifying any files
6662bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --features        display basic configuration information and exit
6663bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --finish          same as \`--mode=finish'
6664bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --help            display this help message and exit
6665bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6666bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --quiet           same as \`--silent'
6667bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --silent          don't print informational messages
6668bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --tag=TAG         use configuration variables from tag TAG
6669bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson    --version         print version information
6670bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6671bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE must be one of the following:
6672bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6673bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      clean           remove files from the build directory
6674bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      compile         compile a source file into a libtool object
6675bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      execute         automatically set library path, then run a program
6676bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      finish          complete the installation of libtool libraries
6677bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      install         install libraries or executables
6678bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      link            create a library or an executable
6679bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson      uninstall       remove libraries from an installed directory
6680bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6681bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6682bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona more detailed description of MODE.
6683bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6684bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonReport bugs to <bug-libtool@gnu.org>."
6685bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_SUCCESS
6686bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6687bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6688bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonclean)
6689bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6690bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6691bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6692bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove files from the build directory.
6693bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6694bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE
6695bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6696bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM.
6697bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6698bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, object or program, all the files associated
6699bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6700bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6701bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6702bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncompile)
6703bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6704bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6705bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6706bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCompile a source file into a libtool library object.
6707bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6708bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options:
6709bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6710bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6711bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -prefer-pic       try to building PIC objects only
6712bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -prefer-non-pic   try to building non-PIC objects only
6713bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -static           always build a \`.o' file suitable for static linking
6714bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6715bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6716bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfrom the given SOURCEFILE.
6717bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6718bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe output file name is determined by removing the directory component from
6719bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonSOURCEFILE, then substituting the C source code suffix \`.c' with the
6720bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlibrary object suffix, \`.lo'."
6721bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6722bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6723bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexecute)
6724bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6725bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6726bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6727bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAutomatically set library path, then run a program.
6728bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6729bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode accepts the following additional options:
6730bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6731bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen FILE      add the directory containing FILE to the library path
6732bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6733bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThis mode sets the library path environment variable according to \`-dlopen'
6734bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonflags.
6735bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6736bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf any of the ARGS are libtool executable wrappers, then they are translated
6737bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninto their corresponding uninstalled binary, and any of their required library
6738bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondirectories are added to the library path.
6739bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6740bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThen, COMMAND is executed, with ARGS as arguments."
6741bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6742bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6743bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonfinish)
6744bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6745bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6746bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6747bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonComplete the installation of libtool libraries.
6748bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6749bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEach LIBDIR is a directory that contains libtool libraries.
6750bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6751bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe commands that this mode executes may require superuser privileges.  Use
6752bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonthe \`--dry-run' option if you just want to see what would be executed."
6753bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6754bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6755bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoninstall)
6756bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6757bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6758bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6759bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonInstall executables or libraries.
6760bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6761bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonINSTALL-COMMAND is the installation command.  The first component should be
6762bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoneither the \`install' or \`cp' program.
6763bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6764bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe rest of the components are interpreted as arguments to that command (only
6765bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonBSD-compatible install options are recognized)."
6766bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6767bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6768bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonlink)
6769bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6770bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6771bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6772bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLink object files or libraries together to form another library, or to
6773bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsoncreate an executable program.
6774bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6775bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonLINK-COMMAND is a command using the C compiler that you would use to create
6776bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsona program from several object files.
6777bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6778bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonThe following components of LINK-COMMAND are treated specially:
6779bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6780bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -all-static       do not do any dynamic linking at all
6781bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -avoid-version    do not add a version suffix if possible
6782bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6783bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6784bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6785bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-symbols SYMFILE
6786bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    try to export only the symbols listed in SYMFILE
6787bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -export-symbols-regex REGEX
6788bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    try to export only the symbols matching REGEX
6789bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -LLIBDIR          search LIBDIR for required installed libraries
6790bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -lNAME            OUTPUT-FILE requires the installed library libNAME
6791bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -module           build a library that can dlopened
6792bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-fast-install  disable the fast-install mode
6793bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-install       link a not-installable executable
6794bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -no-undefined     declare that a library does not refer to external symbols
6795bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6796bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -objectlist FILE  Use a list of object files found in FILE to specify objects
6797bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -precious-files-regex REGEX
6798bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson                    don't remove output files matching REGEX
6799bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -release RELEASE  specify package release information
6800bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6801bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6802bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -static           do not do any dynamic linking of libtool libraries
6803bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  -version-info CURRENT[:REVISION[:AGE]]
6804bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson		    specify library version info [each variable defaults to 0]
6805bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6806bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonAll other options (arguments beginning with \`-') are ignored.
6807bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6808bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonEvery other argument is treated as a filename.  Files ending in \`.la' are
6809bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsontreated as uninstalled libtool libraries, other files are standard or library
6810bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonobject files.
6811bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6812bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6813bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsononly library objects (\`.lo' files) may be specified, and \`-rpath' is
6814bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonrequired, except when creating a convenience library.
6815bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6816bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6817bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonusing \`ar' and \`ranlib', or on Windows using \`lib'.
6818bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6819bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6820bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonis created, otherwise an executable program is created."
6821bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6822bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6823bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonuninstall)
6824bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo \
6825bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6826bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6827bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRemove libraries from an installation directory.
6828bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6829bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonRM is the name of the program to use to delete files associated with each FILE
6830bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6831bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonto RM.
6832bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6833bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonIf FILE is a libtool library, all the files associated with it are deleted.
6834bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee WilsonOtherwise, only FILE itself is deleted using RM."
6835bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6836bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6837bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson*)
6838bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6839bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  $echo "$help" 1>&2
6840bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  exit $EXIT_FAILURE
6841bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson  ;;
6842bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonesac
6843bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6844bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo
6845bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson$echo "Try \`$modename --help' for more information about other modes."
6846bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6847bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsonexit $?
6848bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6849bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# The TAGs below are defined such that we never get into a situation
6850bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# in which we disable both kinds of libraries.  Given conflicting
6851bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# choices, we go for a static library, that is the most portable,
6852bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# since we can't tell whether shared libraries were disabled because
6853bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# the user asked for that or because the platform doesn't support
6854bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# them.  This is particularly important on AIX, because we don't
6855bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# support having both static and shared libraries enabled at the same
6856bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# time on that platform, so we default to a shared-only configuration.
6857bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# If a disable-shared tag is given, we'll fallback to a static-only
6858bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# configuration.  But we'll never go from static-only to shared-only.
6859bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6860bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6861bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=shared
6862bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-shared
6863bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6864bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6865bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilsondisable_libs=static
6866bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# ### END LIBTOOL TAG CONFIG: disable-static
6867bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson
6868bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# Local Variables:
6869bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# mode:shell-script
6870bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# sh-indentation:2
6871bdd62c531bbdea115a3a7e71bba91c19dd319cc4Heather Lee Wilson# End:
6872