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