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