ltmain.sh revision c5629e66
1266e564dSmrg# ltmain.sh - Provide generalized library-building support services.
2266e564dSmrg# NOTE: Changing this file will not affect anything until you rerun configure.
3266e564dSmrg#
4c5629e66Smrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5c5629e66Smrg# 2007, 2008  Free Software Foundation, Inc.
6266e564dSmrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7266e564dSmrg#
8266e564dSmrg# This program is free software; you can redistribute it and/or modify
9266e564dSmrg# it under the terms of the GNU General Public License as published by
10266e564dSmrg# the Free Software Foundation; either version 2 of the License, or
11266e564dSmrg# (at your option) any later version.
12266e564dSmrg#
13266e564dSmrg# This program is distributed in the hope that it will be useful, but
14266e564dSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
15266e564dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16266e564dSmrg# General Public License for more details.
17266e564dSmrg#
18266e564dSmrg# You should have received a copy of the GNU General Public License
19266e564dSmrg# along with this program; if not, write to the Free Software
20266e564dSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21266e564dSmrg#
22266e564dSmrg# As a special exception to the GNU General Public License, if you
23266e564dSmrg# distribute this file as part of a program that contains a
24266e564dSmrg# configuration script generated by Autoconf, you may include it under
25266e564dSmrg# the same distribution terms that you use for the rest of that program.
26266e564dSmrg
27266e564dSmrgbasename="s,^.*/,,g"
28266e564dSmrg
29266e564dSmrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30266e564dSmrg# is ksh but when the shell is invoked as "sh" and the current value of
31266e564dSmrg# the _XPG environment variable is not equal to 1 (one), the special
32266e564dSmrg# positional parameter $0, within a function call, is the name of the
33266e564dSmrg# function.
34266e564dSmrgprogpath="$0"
35266e564dSmrg
36c5629e66Smrg# define SED for historic ltconfig's generated by Libtool 1.3
37c5629e66Smrgtest -z "$SED" && SED=sed
38c5629e66Smrg
39266e564dSmrg# The name of this program:
40266e564dSmrgprogname=`echo "$progpath" | $SED $basename`
41266e564dSmrgmodename="$progname"
42266e564dSmrg
43266e564dSmrg# Global variables:
44266e564dSmrgEXIT_SUCCESS=0
45266e564dSmrgEXIT_FAILURE=1
46266e564dSmrg
47266e564dSmrgPROGRAM=ltmain.sh
48266e564dSmrgPACKAGE=libtool
49c5629e66SmrgVERSION=1.5.26
50c5629e66SmrgTIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
51c5629e66Smrg
52c5629e66Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
53c5629e66Smrgif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
54c5629e66Smrg  emulate sh
55c5629e66Smrg  NULLCMD=:
56c5629e66Smrg  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
57c5629e66Smrg  # is contrary to our usage.  Disable this feature.
58c5629e66Smrg  alias -g '${1+"$@"}'='"$@"'
59266e564dSmrg  setopt NO_GLOB_SUBST
60c5629e66Smrgelse
61c5629e66Smrg  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
62266e564dSmrgfi
63c5629e66SmrgBIN_SH=xpg4; export BIN_SH # for Tru64
64c5629e66SmrgDUALCASE=1; export DUALCASE # for MKS sh
65266e564dSmrg
66266e564dSmrg# Check that we have a working $echo.
67266e564dSmrgif test "X$1" = X--no-reexec; then
68266e564dSmrg  # Discard the --no-reexec flag, and continue.
69266e564dSmrg  shift
70266e564dSmrgelif test "X$1" = X--fallback-echo; then
71266e564dSmrg  # Avoid inline document here, it may be left over
72266e564dSmrg  :
73266e564dSmrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
74266e564dSmrg  # Yippee, $echo works!
75266e564dSmrg  :
76266e564dSmrgelse
77266e564dSmrg  # Restart under the correct shell, and then maybe $echo will work.
78266e564dSmrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
79266e564dSmrgfi
80266e564dSmrg
81266e564dSmrgif test "X$1" = X--fallback-echo; then
82266e564dSmrg  # used as fallback echo
83266e564dSmrg  shift
84266e564dSmrg  cat <<EOF
85266e564dSmrg$*
86266e564dSmrgEOF
87266e564dSmrg  exit $EXIT_SUCCESS
88266e564dSmrgfi
89266e564dSmrg
90266e564dSmrgdefault_mode=
91266e564dSmrghelp="Try \`$progname --help' for more information."
92266e564dSmrgmagic="%%%MAGIC variable%%%"
93266e564dSmrgmkdir="mkdir"
94266e564dSmrgmv="mv -f"
95266e564dSmrgrm="rm -f"
96266e564dSmrg
97266e564dSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
98266e564dSmrg# metacharacters that are still active within double-quoted strings.
99266e564dSmrgXsed="${SED}"' -e 1s/^X//'
100266e564dSmrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
101266e564dSmrg# test EBCDIC or ASCII
102266e564dSmrgcase `echo X|tr X '\101'` in
103266e564dSmrg A) # ASCII based system
104266e564dSmrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
105266e564dSmrg  SP2NL='tr \040 \012'
106266e564dSmrg  NL2SP='tr \015\012 \040\040'
107266e564dSmrg  ;;
108266e564dSmrg *) # EBCDIC based system
109266e564dSmrg  SP2NL='tr \100 \n'
110266e564dSmrg  NL2SP='tr \r\n \100\100'
111266e564dSmrg  ;;
112266e564dSmrgesac
113266e564dSmrg
114266e564dSmrg# NLS nuisances.
115266e564dSmrg# Only set LANG and LC_ALL to C if already set.
116266e564dSmrg# These must not be set unconditionally because not all systems understand
117266e564dSmrg# e.g. LANG=C (notably SCO).
118266e564dSmrg# We save the old values to restore during execute mode.
119c5629e66Smrglt_env=
120c5629e66Smrgfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
121c5629e66Smrgdo
122c5629e66Smrg  eval "if test \"\${$lt_var+set}\" = set; then
123c5629e66Smrg	  save_$lt_var=\$$lt_var
124c5629e66Smrg	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
125c5629e66Smrg	  $lt_var=C
126c5629e66Smrg	  export $lt_var
127c5629e66Smrg	fi"
128c5629e66Smrgdone
129c5629e66Smrg
130c5629e66Smrgif test -n "$lt_env"; then
131c5629e66Smrg  lt_env="env $lt_env"
132266e564dSmrgfi
133266e564dSmrg
134266e564dSmrg# Make sure IFS has a sensible default
135266e564dSmrglt_nl='
136266e564dSmrg'
137266e564dSmrgIFS=" 	$lt_nl"
138266e564dSmrg
139266e564dSmrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
140266e564dSmrg  $echo "$modename: not configured to build any kind of library" 1>&2
141266e564dSmrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
142266e564dSmrg  exit $EXIT_FAILURE
143266e564dSmrgfi
144266e564dSmrg
145266e564dSmrg# Global variables.
146266e564dSmrgmode=$default_mode
147266e564dSmrgnonopt=
148266e564dSmrgprev=
149266e564dSmrgprevopt=
150266e564dSmrgrun=
151266e564dSmrgshow="$echo"
152266e564dSmrgshow_help=
153266e564dSmrgexecute_dlfiles=
154266e564dSmrgduplicate_deps=no
155266e564dSmrgpreserve_args=
156266e564dSmrglo2o="s/\\.lo\$/.${objext}/"
157266e564dSmrgo2lo="s/\\.${objext}\$/.lo/"
158c5629e66Smrgextracted_archives=
159c5629e66Smrgextracted_serial=0
160266e564dSmrg
161266e564dSmrg#####################################
162266e564dSmrg# Shell function definitions:
163266e564dSmrg# This seems to be the best place for them
164266e564dSmrg
165266e564dSmrg# func_mktempdir [string]
166266e564dSmrg# Make a temporary directory that won't clash with other running
167266e564dSmrg# libtool processes, and avoids race conditions if possible.  If
168266e564dSmrg# given, STRING is the basename for that directory.
169266e564dSmrgfunc_mktempdir ()
170266e564dSmrg{
171266e564dSmrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
172266e564dSmrg
173266e564dSmrg    if test "$run" = ":"; then
174266e564dSmrg      # Return a directory name, but don't create it in dry-run mode
175266e564dSmrg      my_tmpdir="${my_template}-$$"
176266e564dSmrg    else
177266e564dSmrg
178266e564dSmrg      # If mktemp works, use that first and foremost
179266e564dSmrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
180266e564dSmrg
181266e564dSmrg      if test ! -d "$my_tmpdir"; then
182266e564dSmrg	# Failing that, at least try and use $RANDOM to avoid a race
183266e564dSmrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
184266e564dSmrg
185266e564dSmrg	save_mktempdir_umask=`umask`
186266e564dSmrg	umask 0077
187266e564dSmrg	$mkdir "$my_tmpdir"
188266e564dSmrg	umask $save_mktempdir_umask
189266e564dSmrg      fi
190266e564dSmrg
191266e564dSmrg      # If we're not in dry-run mode, bomb out on failure
192266e564dSmrg      test -d "$my_tmpdir" || {
193266e564dSmrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
194266e564dSmrg	exit $EXIT_FAILURE
195266e564dSmrg      }
196266e564dSmrg    fi
197266e564dSmrg
198266e564dSmrg    $echo "X$my_tmpdir" | $Xsed
199266e564dSmrg}
200266e564dSmrg
201266e564dSmrg
202266e564dSmrg# func_win32_libid arg
203266e564dSmrg# return the library type of file 'arg'
204266e564dSmrg#
205266e564dSmrg# Need a lot of goo to handle *both* DLLs and import libs
206266e564dSmrg# Has to be a shell function in order to 'eat' the argument
207266e564dSmrg# that is supplied when $file_magic_command is called.
208266e564dSmrgfunc_win32_libid ()
209266e564dSmrg{
210266e564dSmrg  win32_libid_type="unknown"
211266e564dSmrg  win32_fileres=`file -L $1 2>/dev/null`
212266e564dSmrg  case $win32_fileres in
213266e564dSmrg  *ar\ archive\ import\ library*) # definitely import
214266e564dSmrg    win32_libid_type="x86 archive import"
215266e564dSmrg    ;;
216266e564dSmrg  *ar\ archive*) # could be an import, or static
217266e564dSmrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
218266e564dSmrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
219266e564dSmrg      win32_nmres=`eval $NM -f posix -A $1 | \
220c5629e66Smrg	$SED -n -e '1,100{
221c5629e66Smrg		/ I /{
222c5629e66Smrg			s,.*,import,
223c5629e66Smrg			p
224c5629e66Smrg			q
225c5629e66Smrg			}
226c5629e66Smrg		}'`
227266e564dSmrg      case $win32_nmres in
228266e564dSmrg      import*)  win32_libid_type="x86 archive import";;
229266e564dSmrg      *)        win32_libid_type="x86 archive static";;
230266e564dSmrg      esac
231266e564dSmrg    fi
232266e564dSmrg    ;;
233266e564dSmrg  *DLL*)
234266e564dSmrg    win32_libid_type="x86 DLL"
235266e564dSmrg    ;;
236266e564dSmrg  *executable*) # but shell scripts are "executable" too...
237266e564dSmrg    case $win32_fileres in
238266e564dSmrg    *MS\ Windows\ PE\ Intel*)
239266e564dSmrg      win32_libid_type="x86 DLL"
240266e564dSmrg      ;;
241266e564dSmrg    esac
242266e564dSmrg    ;;
243266e564dSmrg  esac
244266e564dSmrg  $echo $win32_libid_type
245266e564dSmrg}
246266e564dSmrg
247266e564dSmrg
248266e564dSmrg# func_infer_tag arg
249266e564dSmrg# Infer tagged configuration to use if any are available and
250266e564dSmrg# if one wasn't chosen via the "--tag" command line option.
251266e564dSmrg# Only attempt this if the compiler in the base compile
252266e564dSmrg# command doesn't match the default compiler.
253266e564dSmrg# arg is usually of the form 'gcc ...'
254266e564dSmrgfunc_infer_tag ()
255266e564dSmrg{
256266e564dSmrg    if test -n "$available_tags" && test -z "$tagname"; then
257266e564dSmrg      CC_quoted=
258266e564dSmrg      for arg in $CC; do
259266e564dSmrg	case $arg in
260266e564dSmrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
261266e564dSmrg	  arg="\"$arg\""
262266e564dSmrg	  ;;
263266e564dSmrg	esac
264266e564dSmrg	CC_quoted="$CC_quoted $arg"
265266e564dSmrg      done
266266e564dSmrg      case $@ in
267266e564dSmrg      # Blanks in the command may have been stripped by the calling shell,
268266e564dSmrg      # but not from the CC environment variable when configure was run.
269266e564dSmrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
270266e564dSmrg      # Blanks at the start of $base_compile will cause this to fail
271266e564dSmrg      # if we don't check for them as well.
272266e564dSmrg      *)
273266e564dSmrg	for z in $available_tags; do
274266e564dSmrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
275266e564dSmrg	    # Evaluate the configuration.
276266e564dSmrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
277266e564dSmrg	    CC_quoted=
278266e564dSmrg	    for arg in $CC; do
279266e564dSmrg	    # Double-quote args containing other shell metacharacters.
280266e564dSmrg	    case $arg in
281266e564dSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
282266e564dSmrg	      arg="\"$arg\""
283266e564dSmrg	      ;;
284266e564dSmrg	    esac
285266e564dSmrg	    CC_quoted="$CC_quoted $arg"
286266e564dSmrg	  done
287266e564dSmrg	    case "$@ " in
288266e564dSmrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
289266e564dSmrg	      # The compiler in the base compile command matches
290266e564dSmrg	      # the one in the tagged configuration.
291266e564dSmrg	      # Assume this is the tagged configuration we want.
292266e564dSmrg	      tagname=$z
293266e564dSmrg	      break
294266e564dSmrg	      ;;
295266e564dSmrg	    esac
296266e564dSmrg	  fi
297266e564dSmrg	done
298266e564dSmrg	# If $tagname still isn't set, then no tagged configuration
299266e564dSmrg	# was found and let the user know that the "--tag" command
300266e564dSmrg	# line option must be used.
301266e564dSmrg	if test -z "$tagname"; then
302266e564dSmrg	  $echo "$modename: unable to infer tagged configuration"
303266e564dSmrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
304266e564dSmrg	  exit $EXIT_FAILURE
305266e564dSmrg#        else
306266e564dSmrg#          $echo "$modename: using $tagname tagged configuration"
307266e564dSmrg	fi
308266e564dSmrg	;;
309266e564dSmrg      esac
310266e564dSmrg    fi
311266e564dSmrg}
312266e564dSmrg
313266e564dSmrg
314266e564dSmrg# func_extract_an_archive dir oldlib
315266e564dSmrgfunc_extract_an_archive ()
316266e564dSmrg{
317266e564dSmrg    f_ex_an_ar_dir="$1"; shift
318266e564dSmrg    f_ex_an_ar_oldlib="$1"
319266e564dSmrg
320266e564dSmrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
321266e564dSmrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
322266e564dSmrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
323266e564dSmrg     :
324266e564dSmrg    else
325266e564dSmrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
326266e564dSmrg      exit $EXIT_FAILURE
327266e564dSmrg    fi
328266e564dSmrg}
329266e564dSmrg
330266e564dSmrg# func_extract_archives gentop oldlib ...
331266e564dSmrgfunc_extract_archives ()
332266e564dSmrg{
333266e564dSmrg    my_gentop="$1"; shift
334266e564dSmrg    my_oldlibs=${1+"$@"}
335266e564dSmrg    my_oldobjs=""
336266e564dSmrg    my_xlib=""
337266e564dSmrg    my_xabs=""
338266e564dSmrg    my_xdir=""
339266e564dSmrg    my_status=""
340266e564dSmrg
341266e564dSmrg    $show "${rm}r $my_gentop"
342266e564dSmrg    $run ${rm}r "$my_gentop"
343266e564dSmrg    $show "$mkdir $my_gentop"
344266e564dSmrg    $run $mkdir "$my_gentop"
345266e564dSmrg    my_status=$?
346266e564dSmrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
347266e564dSmrg      exit $my_status
348266e564dSmrg    fi
349266e564dSmrg
350266e564dSmrg    for my_xlib in $my_oldlibs; do
351266e564dSmrg      # Extract the objects.
352266e564dSmrg      case $my_xlib in
353266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
354266e564dSmrg	*) my_xabs=`pwd`"/$my_xlib" ;;
355266e564dSmrg      esac
356266e564dSmrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
357c5629e66Smrg      my_xlib_u=$my_xlib
358c5629e66Smrg      while :; do
359c5629e66Smrg        case " $extracted_archives " in
360c5629e66Smrg	*" $my_xlib_u "*)
361c5629e66Smrg	  extracted_serial=`expr $extracted_serial + 1`
362c5629e66Smrg	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
363c5629e66Smrg	*) break ;;
364c5629e66Smrg	esac
365c5629e66Smrg      done
366c5629e66Smrg      extracted_archives="$extracted_archives $my_xlib_u"
367c5629e66Smrg      my_xdir="$my_gentop/$my_xlib_u"
368266e564dSmrg
369266e564dSmrg      $show "${rm}r $my_xdir"
370266e564dSmrg      $run ${rm}r "$my_xdir"
371266e564dSmrg      $show "$mkdir $my_xdir"
372266e564dSmrg      $run $mkdir "$my_xdir"
373266e564dSmrg      exit_status=$?
374266e564dSmrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
375266e564dSmrg	exit $exit_status
376266e564dSmrg      fi
377266e564dSmrg      case $host in
378266e564dSmrg      *-darwin*)
379266e564dSmrg	$show "Extracting $my_xabs"
380266e564dSmrg	# Do not bother doing anything if just a dry run
381266e564dSmrg	if test -z "$run"; then
382266e564dSmrg	  darwin_orig_dir=`pwd`
383266e564dSmrg	  cd $my_xdir || exit $?
384266e564dSmrg	  darwin_archive=$my_xabs
385266e564dSmrg	  darwin_curdir=`pwd`
386266e564dSmrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
387266e564dSmrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
388266e564dSmrg	  if test -n "$darwin_arches"; then 
389266e564dSmrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
390266e564dSmrg	    darwin_arch=
391266e564dSmrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
392266e564dSmrg	    for darwin_arch in  $darwin_arches ; do
393266e564dSmrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
394266e564dSmrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
395266e564dSmrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
396266e564dSmrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
397266e564dSmrg	      cd "$darwin_curdir"
398266e564dSmrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
399266e564dSmrg	    done # $darwin_arches
400266e564dSmrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
401266e564dSmrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
402266e564dSmrg	    darwin_file=
403266e564dSmrg	    darwin_files=
404266e564dSmrg	    for darwin_file in $darwin_filelist; do
405266e564dSmrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
406266e564dSmrg	      lipo -create -output "$darwin_file" $darwin_files
407266e564dSmrg	    done # $darwin_filelist
408266e564dSmrg	    ${rm}r unfat-$$
409266e564dSmrg	    cd "$darwin_orig_dir"
410266e564dSmrg	  else
411266e564dSmrg	    cd "$darwin_orig_dir"
412266e564dSmrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
413266e564dSmrg	  fi # $darwin_arches
414266e564dSmrg	fi # $run
415266e564dSmrg	;;
416266e564dSmrg      *)
417266e564dSmrg        func_extract_an_archive "$my_xdir" "$my_xabs"
418266e564dSmrg        ;;
419266e564dSmrg      esac
420266e564dSmrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
421266e564dSmrg    done
422266e564dSmrg    func_extract_archives_result="$my_oldobjs"
423266e564dSmrg}
424266e564dSmrg# End of Shell function definitions
425266e564dSmrg#####################################
426266e564dSmrg
427266e564dSmrg# Darwin sucks
428266e564dSmrgeval std_shrext=\"$shrext_cmds\"
429266e564dSmrg
430266e564dSmrgdisable_libs=no
431266e564dSmrg
432266e564dSmrg# Parse our command line options once, thoroughly.
433266e564dSmrgwhile test "$#" -gt 0
434266e564dSmrgdo
435266e564dSmrg  arg="$1"
436266e564dSmrg  shift
437266e564dSmrg
438266e564dSmrg  case $arg in
439266e564dSmrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
440266e564dSmrg  *) optarg= ;;
441266e564dSmrg  esac
442266e564dSmrg
443266e564dSmrg  # If the previous option needs an argument, assign it.
444266e564dSmrg  if test -n "$prev"; then
445266e564dSmrg    case $prev in
446266e564dSmrg    execute_dlfiles)
447266e564dSmrg      execute_dlfiles="$execute_dlfiles $arg"
448266e564dSmrg      ;;
449266e564dSmrg    tag)
450266e564dSmrg      tagname="$arg"
451266e564dSmrg      preserve_args="${preserve_args}=$arg"
452266e564dSmrg
453266e564dSmrg      # Check whether tagname contains only valid characters
454266e564dSmrg      case $tagname in
455266e564dSmrg      *[!-_A-Za-z0-9,/]*)
456266e564dSmrg	$echo "$progname: invalid tag name: $tagname" 1>&2
457266e564dSmrg	exit $EXIT_FAILURE
458266e564dSmrg	;;
459266e564dSmrg      esac
460266e564dSmrg
461266e564dSmrg      case $tagname in
462266e564dSmrg      CC)
463266e564dSmrg	# Don't test for the "default" C tag, as we know, it's there, but
464266e564dSmrg	# not specially marked.
465266e564dSmrg	;;
466266e564dSmrg      *)
467266e564dSmrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
468266e564dSmrg	  taglist="$taglist $tagname"
469266e564dSmrg	  # Evaluate the configuration.
470266e564dSmrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
471266e564dSmrg	else
472266e564dSmrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
473266e564dSmrg	fi
474266e564dSmrg	;;
475266e564dSmrg      esac
476266e564dSmrg      ;;
477266e564dSmrg    *)
478266e564dSmrg      eval "$prev=\$arg"
479266e564dSmrg      ;;
480266e564dSmrg    esac
481266e564dSmrg
482266e564dSmrg    prev=
483266e564dSmrg    prevopt=
484266e564dSmrg    continue
485266e564dSmrg  fi
486266e564dSmrg
487266e564dSmrg  # Have we seen a non-optional argument yet?
488266e564dSmrg  case $arg in
489266e564dSmrg  --help)
490266e564dSmrg    show_help=yes
491266e564dSmrg    ;;
492266e564dSmrg
493266e564dSmrg  --version)
494c5629e66Smrg    echo "\
495c5629e66Smrg$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
496c5629e66Smrg
497c5629e66SmrgCopyright (C) 2008  Free Software Foundation, Inc.
498c5629e66SmrgThis is free software; see the source for copying conditions.  There is NO
499c5629e66Smrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
500266e564dSmrg    exit $?
501266e564dSmrg    ;;
502266e564dSmrg
503266e564dSmrg  --config)
504266e564dSmrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
505266e564dSmrg    # Now print the configurations for the tags.
506266e564dSmrg    for tagname in $taglist; do
507266e564dSmrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
508266e564dSmrg    done
509266e564dSmrg    exit $?
510266e564dSmrg    ;;
511266e564dSmrg
512266e564dSmrg  --debug)
513266e564dSmrg    $echo "$progname: enabling shell trace mode"
514266e564dSmrg    set -x
515266e564dSmrg    preserve_args="$preserve_args $arg"
516266e564dSmrg    ;;
517266e564dSmrg
518266e564dSmrg  --dry-run | -n)
519266e564dSmrg    run=:
520266e564dSmrg    ;;
521266e564dSmrg
522266e564dSmrg  --features)
523266e564dSmrg    $echo "host: $host"
524266e564dSmrg    if test "$build_libtool_libs" = yes; then
525266e564dSmrg      $echo "enable shared libraries"
526266e564dSmrg    else
527266e564dSmrg      $echo "disable shared libraries"
528266e564dSmrg    fi
529266e564dSmrg    if test "$build_old_libs" = yes; then
530266e564dSmrg      $echo "enable static libraries"
531266e564dSmrg    else
532266e564dSmrg      $echo "disable static libraries"
533266e564dSmrg    fi
534266e564dSmrg    exit $?
535266e564dSmrg    ;;
536266e564dSmrg
537266e564dSmrg  --finish) mode="finish" ;;
538266e564dSmrg
539266e564dSmrg  --mode) prevopt="--mode" prev=mode ;;
540266e564dSmrg  --mode=*) mode="$optarg" ;;
541266e564dSmrg
542266e564dSmrg  --preserve-dup-deps) duplicate_deps="yes" ;;
543266e564dSmrg
544266e564dSmrg  --quiet | --silent)
545266e564dSmrg    show=:
546266e564dSmrg    preserve_args="$preserve_args $arg"
547266e564dSmrg    ;;
548266e564dSmrg
549266e564dSmrg  --tag)
550266e564dSmrg    prevopt="--tag"
551266e564dSmrg    prev=tag
552266e564dSmrg    preserve_args="$preserve_args --tag"
553266e564dSmrg    ;;
554266e564dSmrg  --tag=*)
555266e564dSmrg    set tag "$optarg" ${1+"$@"}
556266e564dSmrg    shift
557266e564dSmrg    prev=tag
558266e564dSmrg    preserve_args="$preserve_args --tag"
559266e564dSmrg    ;;
560266e564dSmrg
561266e564dSmrg  -dlopen)
562266e564dSmrg    prevopt="-dlopen"
563266e564dSmrg    prev=execute_dlfiles
564266e564dSmrg    ;;
565266e564dSmrg
566266e564dSmrg  -*)
567266e564dSmrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
568266e564dSmrg    $echo "$help" 1>&2
569266e564dSmrg    exit $EXIT_FAILURE
570266e564dSmrg    ;;
571266e564dSmrg
572266e564dSmrg  *)
573266e564dSmrg    nonopt="$arg"
574266e564dSmrg    break
575266e564dSmrg    ;;
576266e564dSmrg  esac
577266e564dSmrgdone
578266e564dSmrg
579266e564dSmrgif test -n "$prevopt"; then
580266e564dSmrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
581266e564dSmrg  $echo "$help" 1>&2
582266e564dSmrg  exit $EXIT_FAILURE
583266e564dSmrgfi
584266e564dSmrg
585266e564dSmrgcase $disable_libs in
586266e564dSmrgno) 
587266e564dSmrg  ;;
588266e564dSmrgshared)
589266e564dSmrg  build_libtool_libs=no
590266e564dSmrg  build_old_libs=yes
591266e564dSmrg  ;;
592266e564dSmrgstatic)
593266e564dSmrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
594266e564dSmrg  ;;
595266e564dSmrgesac
596266e564dSmrg
597266e564dSmrg# If this variable is set in any of the actions, the command in it
598266e564dSmrg# will be execed at the end.  This prevents here-documents from being
599266e564dSmrg# left over by shells.
600266e564dSmrgexec_cmd=
601266e564dSmrg
602266e564dSmrgif test -z "$show_help"; then
603266e564dSmrg
604266e564dSmrg  # Infer the operation mode.
605266e564dSmrg  if test -z "$mode"; then
606266e564dSmrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
607266e564dSmrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
608266e564dSmrg    case $nonopt in
609266e564dSmrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
610266e564dSmrg      mode=link
611266e564dSmrg      for arg
612266e564dSmrg      do
613266e564dSmrg	case $arg in
614266e564dSmrg	-c)
615266e564dSmrg	   mode=compile
616266e564dSmrg	   break
617266e564dSmrg	   ;;
618266e564dSmrg	esac
619266e564dSmrg      done
620266e564dSmrg      ;;
621266e564dSmrg    *db | *dbx | *strace | *truss)
622266e564dSmrg      mode=execute
623266e564dSmrg      ;;
624266e564dSmrg    *install*|cp|mv)
625266e564dSmrg      mode=install
626266e564dSmrg      ;;
627266e564dSmrg    *rm)
628266e564dSmrg      mode=uninstall
629266e564dSmrg      ;;
630266e564dSmrg    *)
631266e564dSmrg      # If we have no mode, but dlfiles were specified, then do execute mode.
632266e564dSmrg      test -n "$execute_dlfiles" && mode=execute
633266e564dSmrg
634266e564dSmrg      # Just use the default operation mode.
635266e564dSmrg      if test -z "$mode"; then
636266e564dSmrg	if test -n "$nonopt"; then
637266e564dSmrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
638266e564dSmrg	else
639266e564dSmrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
640266e564dSmrg	fi
641266e564dSmrg      fi
642266e564dSmrg      ;;
643266e564dSmrg    esac
644266e564dSmrg  fi
645266e564dSmrg
646266e564dSmrg  # Only execute mode is allowed to have -dlopen flags.
647266e564dSmrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
648266e564dSmrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
649266e564dSmrg    $echo "$help" 1>&2
650266e564dSmrg    exit $EXIT_FAILURE
651266e564dSmrg  fi
652266e564dSmrg
653266e564dSmrg  # Change the help message to a mode-specific one.
654266e564dSmrg  generic_help="$help"
655266e564dSmrg  help="Try \`$modename --help --mode=$mode' for more information."
656266e564dSmrg
657266e564dSmrg  # These modes are in order of execution frequency so that they run quickly.
658266e564dSmrg  case $mode in
659266e564dSmrg  # libtool compile mode
660266e564dSmrg  compile)
661266e564dSmrg    modename="$modename: compile"
662266e564dSmrg    # Get the compilation command and the source file.
663266e564dSmrg    base_compile=
664266e564dSmrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
665266e564dSmrg    suppress_opt=yes
666266e564dSmrg    suppress_output=
667266e564dSmrg    arg_mode=normal
668266e564dSmrg    libobj=
669266e564dSmrg    later=
670266e564dSmrg
671266e564dSmrg    for arg
672266e564dSmrg    do
673266e564dSmrg      case $arg_mode in
674266e564dSmrg      arg  )
675266e564dSmrg	# do not "continue".  Instead, add this to base_compile
676266e564dSmrg	lastarg="$arg"
677266e564dSmrg	arg_mode=normal
678266e564dSmrg	;;
679266e564dSmrg
680266e564dSmrg      target )
681266e564dSmrg	libobj="$arg"
682266e564dSmrg	arg_mode=normal
683266e564dSmrg	continue
684266e564dSmrg	;;
685266e564dSmrg
686266e564dSmrg      normal )
687266e564dSmrg	# Accept any command-line options.
688266e564dSmrg	case $arg in
689266e564dSmrg	-o)
690266e564dSmrg	  if test -n "$libobj" ; then
691266e564dSmrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
692266e564dSmrg	    exit $EXIT_FAILURE
693266e564dSmrg	  fi
694266e564dSmrg	  arg_mode=target
695266e564dSmrg	  continue
696266e564dSmrg	  ;;
697266e564dSmrg
698266e564dSmrg	-static | -prefer-pic | -prefer-non-pic)
699266e564dSmrg	  later="$later $arg"
700266e564dSmrg	  continue
701266e564dSmrg	  ;;
702266e564dSmrg
703266e564dSmrg	-no-suppress)
704266e564dSmrg	  suppress_opt=no
705266e564dSmrg	  continue
706266e564dSmrg	  ;;
707266e564dSmrg
708266e564dSmrg	-Xcompiler)
709266e564dSmrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
710266e564dSmrg	  continue      #  The current "srcfile" will either be retained or
711266e564dSmrg	  ;;            #  replaced later.  I would guess that would be a bug.
712266e564dSmrg
713266e564dSmrg	-Wc,*)
714266e564dSmrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
715266e564dSmrg	  lastarg=
716266e564dSmrg	  save_ifs="$IFS"; IFS=','
717266e564dSmrg 	  for arg in $args; do
718266e564dSmrg	    IFS="$save_ifs"
719266e564dSmrg
720266e564dSmrg	    # Double-quote args containing other shell metacharacters.
721266e564dSmrg	    # Many Bourne shells cannot handle close brackets correctly
722266e564dSmrg	    # in scan sets, so we specify it separately.
723266e564dSmrg	    case $arg in
724266e564dSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
725266e564dSmrg	      arg="\"$arg\""
726266e564dSmrg	      ;;
727266e564dSmrg	    esac
728266e564dSmrg	    lastarg="$lastarg $arg"
729266e564dSmrg	  done
730266e564dSmrg	  IFS="$save_ifs"
731266e564dSmrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
732266e564dSmrg
733266e564dSmrg	  # Add the arguments to base_compile.
734266e564dSmrg	  base_compile="$base_compile $lastarg"
735266e564dSmrg	  continue
736266e564dSmrg	  ;;
737266e564dSmrg
738266e564dSmrg	* )
739266e564dSmrg	  # Accept the current argument as the source file.
740266e564dSmrg	  # The previous "srcfile" becomes the current argument.
741266e564dSmrg	  #
742266e564dSmrg	  lastarg="$srcfile"
743266e564dSmrg	  srcfile="$arg"
744266e564dSmrg	  ;;
745266e564dSmrg	esac  #  case $arg
746266e564dSmrg	;;
747266e564dSmrg      esac    #  case $arg_mode
748266e564dSmrg
749266e564dSmrg      # Aesthetically quote the previous argument.
750266e564dSmrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
751266e564dSmrg
752266e564dSmrg      case $lastarg in
753266e564dSmrg      # Double-quote args containing other shell metacharacters.
754266e564dSmrg      # Many Bourne shells cannot handle close brackets correctly
755266e564dSmrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
756266e564dSmrg      # in scan sets (worked around with variable expansion),
757266e564dSmrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
758266e564dSmrg      # at all, so we specify them separately.
759266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
760266e564dSmrg	lastarg="\"$lastarg\""
761266e564dSmrg	;;
762266e564dSmrg      esac
763266e564dSmrg
764266e564dSmrg      base_compile="$base_compile $lastarg"
765266e564dSmrg    done # for arg
766266e564dSmrg
767266e564dSmrg    case $arg_mode in
768266e564dSmrg    arg)
769266e564dSmrg      $echo "$modename: you must specify an argument for -Xcompile"
770266e564dSmrg      exit $EXIT_FAILURE
771266e564dSmrg      ;;
772266e564dSmrg    target)
773266e564dSmrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
774266e564dSmrg      exit $EXIT_FAILURE
775266e564dSmrg      ;;
776266e564dSmrg    *)
777266e564dSmrg      # Get the name of the library object.
778266e564dSmrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
779266e564dSmrg      ;;
780266e564dSmrg    esac
781266e564dSmrg
782266e564dSmrg    # Recognize several different file suffixes.
783266e564dSmrg    # If the user specifies -o file.o, it is replaced with file.lo
784266e564dSmrg    xform='[cCFSifmso]'
785266e564dSmrg    case $libobj in
786266e564dSmrg    *.ada) xform=ada ;;
787266e564dSmrg    *.adb) xform=adb ;;
788266e564dSmrg    *.ads) xform=ads ;;
789266e564dSmrg    *.asm) xform=asm ;;
790266e564dSmrg    *.c++) xform=c++ ;;
791266e564dSmrg    *.cc) xform=cc ;;
792266e564dSmrg    *.ii) xform=ii ;;
793266e564dSmrg    *.class) xform=class ;;
794266e564dSmrg    *.cpp) xform=cpp ;;
795266e564dSmrg    *.cxx) xform=cxx ;;
796c5629e66Smrg    *.[fF][09]?) xform=[fF][09]. ;;
797266e564dSmrg    *.for) xform=for ;;
798266e564dSmrg    *.java) xform=java ;;
799c5629e66Smrg    *.obj) xform=obj ;;
800c5629e66Smrg    *.sx) xform=sx ;;
801266e564dSmrg    esac
802266e564dSmrg
803266e564dSmrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
804266e564dSmrg
805266e564dSmrg    case $libobj in
806266e564dSmrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
807266e564dSmrg    *)
808266e564dSmrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
809266e564dSmrg      exit $EXIT_FAILURE
810266e564dSmrg      ;;
811266e564dSmrg    esac
812266e564dSmrg
813266e564dSmrg    func_infer_tag $base_compile
814266e564dSmrg
815266e564dSmrg    for arg in $later; do
816266e564dSmrg      case $arg in
817266e564dSmrg      -static)
818266e564dSmrg	build_old_libs=yes
819266e564dSmrg	continue
820266e564dSmrg	;;
821266e564dSmrg
822266e564dSmrg      -prefer-pic)
823266e564dSmrg	pic_mode=yes
824266e564dSmrg	continue
825266e564dSmrg	;;
826266e564dSmrg
827266e564dSmrg      -prefer-non-pic)
828266e564dSmrg	pic_mode=no
829266e564dSmrg	continue
830266e564dSmrg	;;
831266e564dSmrg      esac
832266e564dSmrg    done
833266e564dSmrg
834266e564dSmrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
835266e564dSmrg    case $qlibobj in
836266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
837266e564dSmrg	qlibobj="\"$qlibobj\"" ;;
838266e564dSmrg    esac
839266e564dSmrg    test "X$libobj" != "X$qlibobj" \
840266e564dSmrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
841266e564dSmrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
842266e564dSmrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
843266e564dSmrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
844266e564dSmrg    if test "X$xdir" = "X$obj"; then
845266e564dSmrg      xdir=
846266e564dSmrg    else
847266e564dSmrg      xdir=$xdir/
848266e564dSmrg    fi
849266e564dSmrg    lobj=${xdir}$objdir/$objname
850266e564dSmrg
851266e564dSmrg    if test -z "$base_compile"; then
852266e564dSmrg      $echo "$modename: you must specify a compilation command" 1>&2
853266e564dSmrg      $echo "$help" 1>&2
854266e564dSmrg      exit $EXIT_FAILURE
855266e564dSmrg    fi
856266e564dSmrg
857266e564dSmrg    # Delete any leftover library objects.
858266e564dSmrg    if test "$build_old_libs" = yes; then
859266e564dSmrg      removelist="$obj $lobj $libobj ${libobj}T"
860266e564dSmrg    else
861266e564dSmrg      removelist="$lobj $libobj ${libobj}T"
862266e564dSmrg    fi
863266e564dSmrg
864266e564dSmrg    $run $rm $removelist
865266e564dSmrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
866266e564dSmrg
867266e564dSmrg    # On Cygwin there's no "real" PIC flag so we must build both object types
868266e564dSmrg    case $host_os in
869266e564dSmrg    cygwin* | mingw* | pw32* | os2*)
870266e564dSmrg      pic_mode=default
871266e564dSmrg      ;;
872266e564dSmrg    esac
873266e564dSmrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
874266e564dSmrg      # non-PIC code in shared libraries is not supported
875266e564dSmrg      pic_mode=default
876266e564dSmrg    fi
877266e564dSmrg
878266e564dSmrg    # Calculate the filename of the output object if compiler does
879266e564dSmrg    # not support -o with -c
880266e564dSmrg    if test "$compiler_c_o" = no; then
881266e564dSmrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
882266e564dSmrg      lockfile="$output_obj.lock"
883266e564dSmrg      removelist="$removelist $output_obj $lockfile"
884266e564dSmrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
885266e564dSmrg    else
886266e564dSmrg      output_obj=
887266e564dSmrg      need_locks=no
888266e564dSmrg      lockfile=
889266e564dSmrg    fi
890266e564dSmrg
891266e564dSmrg    # Lock this critical section if it is needed
892266e564dSmrg    # We use this script file to make the link, it avoids creating a new file
893266e564dSmrg    if test "$need_locks" = yes; then
894266e564dSmrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
895266e564dSmrg	$show "Waiting for $lockfile to be removed"
896266e564dSmrg	sleep 2
897266e564dSmrg      done
898266e564dSmrg    elif test "$need_locks" = warn; then
899266e564dSmrg      if test -f "$lockfile"; then
900266e564dSmrg	$echo "\
901266e564dSmrg*** ERROR, $lockfile exists and contains:
902266e564dSmrg`cat $lockfile 2>/dev/null`
903266e564dSmrg
904266e564dSmrgThis indicates that another process is trying to use the same
905266e564dSmrgtemporary object file, and libtool could not work around it because
906266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
907266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
908266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
909266e564dSmrgcompiler."
910266e564dSmrg
911266e564dSmrg	$run $rm $removelist
912266e564dSmrg	exit $EXIT_FAILURE
913266e564dSmrg      fi
914266e564dSmrg      $echo "$srcfile" > "$lockfile"
915266e564dSmrg    fi
916266e564dSmrg
917266e564dSmrg    if test -n "$fix_srcfile_path"; then
918266e564dSmrg      eval srcfile=\"$fix_srcfile_path\"
919266e564dSmrg    fi
920266e564dSmrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
921266e564dSmrg    case $qsrcfile in
922266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
923266e564dSmrg      qsrcfile="\"$qsrcfile\"" ;;
924266e564dSmrg    esac
925266e564dSmrg
926266e564dSmrg    $run $rm "$libobj" "${libobj}T"
927266e564dSmrg
928266e564dSmrg    # Create a libtool object file (analogous to a ".la" file),
929266e564dSmrg    # but don't create it if we're doing a dry run.
930266e564dSmrg    test -z "$run" && cat > ${libobj}T <<EOF
931266e564dSmrg# $libobj - a libtool object file
932266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
933266e564dSmrg#
934266e564dSmrg# Please DO NOT delete this file!
935266e564dSmrg# It is necessary for linking the library.
936266e564dSmrg
937266e564dSmrg# Name of the PIC object.
938266e564dSmrgEOF
939266e564dSmrg
940266e564dSmrg    # Only build a PIC object if we are building libtool libraries.
941266e564dSmrg    if test "$build_libtool_libs" = yes; then
942266e564dSmrg      # Without this assignment, base_compile gets emptied.
943266e564dSmrg      fbsd_hideous_sh_bug=$base_compile
944266e564dSmrg
945266e564dSmrg      if test "$pic_mode" != no; then
946266e564dSmrg	command="$base_compile $qsrcfile $pic_flag"
947266e564dSmrg      else
948266e564dSmrg	# Don't build PIC code
949266e564dSmrg	command="$base_compile $qsrcfile"
950266e564dSmrg      fi
951266e564dSmrg
952266e564dSmrg      if test ! -d "${xdir}$objdir"; then
953266e564dSmrg	$show "$mkdir ${xdir}$objdir"
954266e564dSmrg	$run $mkdir ${xdir}$objdir
955266e564dSmrg	exit_status=$?
956266e564dSmrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
957266e564dSmrg	  exit $exit_status
958266e564dSmrg	fi
959266e564dSmrg      fi
960266e564dSmrg
961266e564dSmrg      if test -z "$output_obj"; then
962266e564dSmrg	# Place PIC objects in $objdir
963266e564dSmrg	command="$command -o $lobj"
964266e564dSmrg      fi
965266e564dSmrg
966266e564dSmrg      $run $rm "$lobj" "$output_obj"
967266e564dSmrg
968266e564dSmrg      $show "$command"
969c5629e66Smrg      if $run eval $lt_env "$command"; then :
970266e564dSmrg      else
971266e564dSmrg	test -n "$output_obj" && $run $rm $removelist
972266e564dSmrg	exit $EXIT_FAILURE
973266e564dSmrg      fi
974266e564dSmrg
975266e564dSmrg      if test "$need_locks" = warn &&
976266e564dSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
977266e564dSmrg	$echo "\
978266e564dSmrg*** ERROR, $lockfile contains:
979266e564dSmrg`cat $lockfile 2>/dev/null`
980266e564dSmrg
981266e564dSmrgbut it should contain:
982266e564dSmrg$srcfile
983266e564dSmrg
984266e564dSmrgThis indicates that another process is trying to use the same
985266e564dSmrgtemporary object file, and libtool could not work around it because
986266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
987266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
988266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
989266e564dSmrgcompiler."
990266e564dSmrg
991266e564dSmrg	$run $rm $removelist
992266e564dSmrg	exit $EXIT_FAILURE
993266e564dSmrg      fi
994266e564dSmrg
995266e564dSmrg      # Just move the object if needed, then go on to compile the next one
996266e564dSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
997266e564dSmrg	$show "$mv $output_obj $lobj"
998266e564dSmrg	if $run $mv $output_obj $lobj; then :
999266e564dSmrg	else
1000266e564dSmrg	  error=$?
1001266e564dSmrg	  $run $rm $removelist
1002266e564dSmrg	  exit $error
1003266e564dSmrg	fi
1004266e564dSmrg      fi
1005266e564dSmrg
1006266e564dSmrg      # Append the name of the PIC object to the libtool object file.
1007266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1008266e564dSmrgpic_object='$objdir/$objname'
1009266e564dSmrg
1010266e564dSmrgEOF
1011266e564dSmrg
1012266e564dSmrg      # Allow error messages only from the first compilation.
1013266e564dSmrg      if test "$suppress_opt" = yes; then
1014266e564dSmrg        suppress_output=' >/dev/null 2>&1'
1015266e564dSmrg      fi
1016266e564dSmrg    else
1017266e564dSmrg      # No PIC object so indicate it doesn't exist in the libtool
1018266e564dSmrg      # object file.
1019266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1020266e564dSmrgpic_object=none
1021266e564dSmrg
1022266e564dSmrgEOF
1023266e564dSmrg    fi
1024266e564dSmrg
1025266e564dSmrg    # Only build a position-dependent object if we build old libraries.
1026266e564dSmrg    if test "$build_old_libs" = yes; then
1027266e564dSmrg      if test "$pic_mode" != yes; then
1028266e564dSmrg	# Don't build PIC code
1029266e564dSmrg	command="$base_compile $qsrcfile"
1030266e564dSmrg      else
1031266e564dSmrg	command="$base_compile $qsrcfile $pic_flag"
1032266e564dSmrg      fi
1033266e564dSmrg      if test "$compiler_c_o" = yes; then
1034266e564dSmrg	command="$command -o $obj"
1035266e564dSmrg      fi
1036266e564dSmrg
1037266e564dSmrg      # Suppress compiler output if we already did a PIC compilation.
1038266e564dSmrg      command="$command$suppress_output"
1039266e564dSmrg      $run $rm "$obj" "$output_obj"
1040266e564dSmrg      $show "$command"
1041c5629e66Smrg      if $run eval $lt_env "$command"; then :
1042266e564dSmrg      else
1043266e564dSmrg	$run $rm $removelist
1044266e564dSmrg	exit $EXIT_FAILURE
1045266e564dSmrg      fi
1046266e564dSmrg
1047266e564dSmrg      if test "$need_locks" = warn &&
1048266e564dSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1049266e564dSmrg	$echo "\
1050266e564dSmrg*** ERROR, $lockfile contains:
1051266e564dSmrg`cat $lockfile 2>/dev/null`
1052266e564dSmrg
1053266e564dSmrgbut it should contain:
1054266e564dSmrg$srcfile
1055266e564dSmrg
1056266e564dSmrgThis indicates that another process is trying to use the same
1057266e564dSmrgtemporary object file, and libtool could not work around it because
1058266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
1059266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
1060266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
1061266e564dSmrgcompiler."
1062266e564dSmrg
1063266e564dSmrg	$run $rm $removelist
1064266e564dSmrg	exit $EXIT_FAILURE
1065266e564dSmrg      fi
1066266e564dSmrg
1067266e564dSmrg      # Just move the object if needed
1068266e564dSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1069266e564dSmrg	$show "$mv $output_obj $obj"
1070266e564dSmrg	if $run $mv $output_obj $obj; then :
1071266e564dSmrg	else
1072266e564dSmrg	  error=$?
1073266e564dSmrg	  $run $rm $removelist
1074266e564dSmrg	  exit $error
1075266e564dSmrg	fi
1076266e564dSmrg      fi
1077266e564dSmrg
1078266e564dSmrg      # Append the name of the non-PIC object the libtool object file.
1079266e564dSmrg      # Only append if the libtool object file exists.
1080266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1081266e564dSmrg# Name of the non-PIC object.
1082266e564dSmrgnon_pic_object='$objname'
1083266e564dSmrg
1084266e564dSmrgEOF
1085266e564dSmrg    else
1086266e564dSmrg      # Append the name of the non-PIC object the libtool object file.
1087266e564dSmrg      # Only append if the libtool object file exists.
1088266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1089266e564dSmrg# Name of the non-PIC object.
1090266e564dSmrgnon_pic_object=none
1091266e564dSmrg
1092266e564dSmrgEOF
1093266e564dSmrg    fi
1094266e564dSmrg
1095266e564dSmrg    $run $mv "${libobj}T" "${libobj}"
1096266e564dSmrg
1097266e564dSmrg    # Unlock the critical section if it was locked
1098266e564dSmrg    if test "$need_locks" != no; then
1099266e564dSmrg      $run $rm "$lockfile"
1100266e564dSmrg    fi
1101266e564dSmrg
1102266e564dSmrg    exit $EXIT_SUCCESS
1103266e564dSmrg    ;;
1104266e564dSmrg
1105266e564dSmrg  # libtool link mode
1106266e564dSmrg  link | relink)
1107266e564dSmrg    modename="$modename: link"
1108266e564dSmrg    case $host in
1109266e564dSmrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1110266e564dSmrg      # It is impossible to link a dll without this setting, and
1111266e564dSmrg      # we shouldn't force the makefile maintainer to figure out
1112266e564dSmrg      # which system we are compiling for in order to pass an extra
1113266e564dSmrg      # flag for every libtool invocation.
1114266e564dSmrg      # allow_undefined=no
1115266e564dSmrg
1116266e564dSmrg      # FIXME: Unfortunately, there are problems with the above when trying
1117266e564dSmrg      # to make a dll which has undefined symbols, in which case not
1118266e564dSmrg      # even a static library is built.  For now, we need to specify
1119266e564dSmrg      # -no-undefined on the libtool link line when we can be certain
1120266e564dSmrg      # that all symbols are satisfied, otherwise we get a static library.
1121266e564dSmrg      allow_undefined=yes
1122266e564dSmrg      ;;
1123266e564dSmrg    *)
1124266e564dSmrg      allow_undefined=yes
1125266e564dSmrg      ;;
1126266e564dSmrg    esac
1127266e564dSmrg    libtool_args="$nonopt"
1128266e564dSmrg    base_compile="$nonopt $@"
1129266e564dSmrg    compile_command="$nonopt"
1130266e564dSmrg    finalize_command="$nonopt"
1131266e564dSmrg
1132266e564dSmrg    compile_rpath=
1133266e564dSmrg    finalize_rpath=
1134266e564dSmrg    compile_shlibpath=
1135266e564dSmrg    finalize_shlibpath=
1136266e564dSmrg    convenience=
1137266e564dSmrg    old_convenience=
1138266e564dSmrg    deplibs=
1139266e564dSmrg    old_deplibs=
1140266e564dSmrg    compiler_flags=
1141266e564dSmrg    linker_flags=
1142266e564dSmrg    dllsearchpath=
1143266e564dSmrg    lib_search_path=`pwd`
1144266e564dSmrg    inst_prefix_dir=
1145266e564dSmrg
1146266e564dSmrg    avoid_version=no
1147266e564dSmrg    dlfiles=
1148266e564dSmrg    dlprefiles=
1149266e564dSmrg    dlself=no
1150266e564dSmrg    export_dynamic=no
1151266e564dSmrg    export_symbols=
1152266e564dSmrg    export_symbols_regex=
1153266e564dSmrg    generated=
1154266e564dSmrg    libobjs=
1155266e564dSmrg    ltlibs=
1156266e564dSmrg    module=no
1157266e564dSmrg    no_install=no
1158266e564dSmrg    objs=
1159266e564dSmrg    non_pic_objects=
1160266e564dSmrg    notinst_path= # paths that contain not-installed libtool libraries
1161266e564dSmrg    precious_files_regex=
1162266e564dSmrg    prefer_static_libs=no
1163266e564dSmrg    preload=no
1164266e564dSmrg    prev=
1165266e564dSmrg    prevarg=
1166266e564dSmrg    release=
1167266e564dSmrg    rpath=
1168266e564dSmrg    xrpath=
1169266e564dSmrg    perm_rpath=
1170266e564dSmrg    temp_rpath=
1171266e564dSmrg    thread_safe=no
1172266e564dSmrg    vinfo=
1173266e564dSmrg    vinfo_number=no
1174c5629e66Smrg    single_module="${wl}-single_module"
1175266e564dSmrg
1176266e564dSmrg    func_infer_tag $base_compile
1177266e564dSmrg
1178266e564dSmrg    # We need to know -static, to get the right output filenames.
1179266e564dSmrg    for arg
1180266e564dSmrg    do
1181266e564dSmrg      case $arg in
1182c5629e66Smrg      -all-static | -static | -static-libtool-libs)
1183c5629e66Smrg	case $arg in
1184c5629e66Smrg	-all-static)
1185266e564dSmrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1186266e564dSmrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1187266e564dSmrg	  fi
1188266e564dSmrg	  if test -n "$link_static_flag"; then
1189266e564dSmrg	    dlopen_self=$dlopen_self_static
1190266e564dSmrg	  fi
1191266e564dSmrg	  prefer_static_libs=yes
1192c5629e66Smrg	  ;;
1193c5629e66Smrg	-static)
1194266e564dSmrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1195266e564dSmrg	    dlopen_self=$dlopen_self_static
1196266e564dSmrg	  fi
1197266e564dSmrg	  prefer_static_libs=built
1198c5629e66Smrg	  ;;
1199c5629e66Smrg	-static-libtool-libs)
1200c5629e66Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1201c5629e66Smrg	    dlopen_self=$dlopen_self_static
1202c5629e66Smrg	  fi
1203c5629e66Smrg	  prefer_static_libs=yes
1204c5629e66Smrg	  ;;
1205c5629e66Smrg	esac
1206266e564dSmrg	build_libtool_libs=no
1207266e564dSmrg	build_old_libs=yes
1208266e564dSmrg	break
1209266e564dSmrg	;;
1210266e564dSmrg      esac
1211266e564dSmrg    done
1212266e564dSmrg
1213266e564dSmrg    # See if our shared archives depend on static archives.
1214266e564dSmrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1215266e564dSmrg
1216266e564dSmrg    # Go through the arguments, transforming them on the way.
1217266e564dSmrg    while test "$#" -gt 0; do
1218266e564dSmrg      arg="$1"
1219266e564dSmrg      shift
1220266e564dSmrg      case $arg in
1221266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1222266e564dSmrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1223266e564dSmrg	;;
1224266e564dSmrg      *) qarg=$arg ;;
1225266e564dSmrg      esac
1226266e564dSmrg      libtool_args="$libtool_args $qarg"
1227266e564dSmrg
1228266e564dSmrg      # If the previous option needs an argument, assign it.
1229266e564dSmrg      if test -n "$prev"; then
1230266e564dSmrg	case $prev in
1231266e564dSmrg	output)
1232266e564dSmrg	  compile_command="$compile_command @OUTPUT@"
1233266e564dSmrg	  finalize_command="$finalize_command @OUTPUT@"
1234266e564dSmrg	  ;;
1235266e564dSmrg	esac
1236266e564dSmrg
1237266e564dSmrg	case $prev in
1238266e564dSmrg	dlfiles|dlprefiles)
1239266e564dSmrg	  if test "$preload" = no; then
1240266e564dSmrg	    # Add the symbol object into the linking commands.
1241266e564dSmrg	    compile_command="$compile_command @SYMFILE@"
1242266e564dSmrg	    finalize_command="$finalize_command @SYMFILE@"
1243266e564dSmrg	    preload=yes
1244266e564dSmrg	  fi
1245266e564dSmrg	  case $arg in
1246266e564dSmrg	  *.la | *.lo) ;;  # We handle these cases below.
1247266e564dSmrg	  force)
1248266e564dSmrg	    if test "$dlself" = no; then
1249266e564dSmrg	      dlself=needless
1250266e564dSmrg	      export_dynamic=yes
1251266e564dSmrg	    fi
1252266e564dSmrg	    prev=
1253266e564dSmrg	    continue
1254266e564dSmrg	    ;;
1255266e564dSmrg	  self)
1256266e564dSmrg	    if test "$prev" = dlprefiles; then
1257266e564dSmrg	      dlself=yes
1258266e564dSmrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1259266e564dSmrg	      dlself=yes
1260266e564dSmrg	    else
1261266e564dSmrg	      dlself=needless
1262266e564dSmrg	      export_dynamic=yes
1263266e564dSmrg	    fi
1264266e564dSmrg	    prev=
1265266e564dSmrg	    continue
1266266e564dSmrg	    ;;
1267266e564dSmrg	  *)
1268266e564dSmrg	    if test "$prev" = dlfiles; then
1269266e564dSmrg	      dlfiles="$dlfiles $arg"
1270266e564dSmrg	    else
1271266e564dSmrg	      dlprefiles="$dlprefiles $arg"
1272266e564dSmrg	    fi
1273266e564dSmrg	    prev=
1274266e564dSmrg	    continue
1275266e564dSmrg	    ;;
1276266e564dSmrg	  esac
1277266e564dSmrg	  ;;
1278266e564dSmrg	expsyms)
1279266e564dSmrg	  export_symbols="$arg"
1280266e564dSmrg	  if test ! -f "$arg"; then
1281266e564dSmrg	    $echo "$modename: symbol file \`$arg' does not exist"
1282266e564dSmrg	    exit $EXIT_FAILURE
1283266e564dSmrg	  fi
1284266e564dSmrg	  prev=
1285266e564dSmrg	  continue
1286266e564dSmrg	  ;;
1287266e564dSmrg	expsyms_regex)
1288266e564dSmrg	  export_symbols_regex="$arg"
1289266e564dSmrg	  prev=
1290266e564dSmrg	  continue
1291266e564dSmrg	  ;;
1292266e564dSmrg	inst_prefix)
1293266e564dSmrg	  inst_prefix_dir="$arg"
1294266e564dSmrg	  prev=
1295266e564dSmrg	  continue
1296266e564dSmrg	  ;;
1297266e564dSmrg	precious_regex)
1298266e564dSmrg	  precious_files_regex="$arg"
1299266e564dSmrg	  prev=
1300266e564dSmrg	  continue
1301266e564dSmrg	  ;;
1302266e564dSmrg	release)
1303266e564dSmrg	  release="-$arg"
1304266e564dSmrg	  prev=
1305266e564dSmrg	  continue
1306266e564dSmrg	  ;;
1307266e564dSmrg	objectlist)
1308266e564dSmrg	  if test -f "$arg"; then
1309266e564dSmrg	    save_arg=$arg
1310266e564dSmrg	    moreargs=
1311266e564dSmrg	    for fil in `cat $save_arg`
1312266e564dSmrg	    do
1313266e564dSmrg#	      moreargs="$moreargs $fil"
1314266e564dSmrg	      arg=$fil
1315266e564dSmrg	      # A libtool-controlled object.
1316266e564dSmrg
1317266e564dSmrg	      # Check to see that this really is a libtool object.
1318266e564dSmrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1319266e564dSmrg		pic_object=
1320266e564dSmrg		non_pic_object=
1321266e564dSmrg
1322266e564dSmrg		# Read the .lo file
1323266e564dSmrg		# If there is no directory component, then add one.
1324266e564dSmrg		case $arg in
1325266e564dSmrg		*/* | *\\*) . $arg ;;
1326266e564dSmrg		*) . ./$arg ;;
1327266e564dSmrg		esac
1328266e564dSmrg
1329266e564dSmrg		if test -z "$pic_object" || \
1330266e564dSmrg		   test -z "$non_pic_object" ||
1331266e564dSmrg		   test "$pic_object" = none && \
1332266e564dSmrg		   test "$non_pic_object" = none; then
1333266e564dSmrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1334266e564dSmrg		  exit $EXIT_FAILURE
1335266e564dSmrg		fi
1336266e564dSmrg
1337266e564dSmrg		# Extract subdirectory from the argument.
1338266e564dSmrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1339266e564dSmrg		if test "X$xdir" = "X$arg"; then
1340266e564dSmrg		  xdir=
1341266e564dSmrg		else
1342266e564dSmrg		  xdir="$xdir/"
1343266e564dSmrg		fi
1344266e564dSmrg
1345266e564dSmrg		if test "$pic_object" != none; then
1346266e564dSmrg		  # Prepend the subdirectory the object is found in.
1347266e564dSmrg		  pic_object="$xdir$pic_object"
1348266e564dSmrg
1349266e564dSmrg		  if test "$prev" = dlfiles; then
1350266e564dSmrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1351266e564dSmrg		      dlfiles="$dlfiles $pic_object"
1352266e564dSmrg		      prev=
1353266e564dSmrg		      continue
1354266e564dSmrg		    else
1355266e564dSmrg		      # If libtool objects are unsupported, then we need to preload.
1356266e564dSmrg		      prev=dlprefiles
1357266e564dSmrg		    fi
1358266e564dSmrg		  fi
1359266e564dSmrg
1360266e564dSmrg		  # CHECK ME:  I think I busted this.  -Ossama
1361266e564dSmrg		  if test "$prev" = dlprefiles; then
1362266e564dSmrg		    # Preload the old-style object.
1363266e564dSmrg		    dlprefiles="$dlprefiles $pic_object"
1364266e564dSmrg		    prev=
1365266e564dSmrg		  fi
1366266e564dSmrg
1367266e564dSmrg		  # A PIC object.
1368266e564dSmrg		  libobjs="$libobjs $pic_object"
1369266e564dSmrg		  arg="$pic_object"
1370266e564dSmrg		fi
1371266e564dSmrg
1372266e564dSmrg		# Non-PIC object.
1373266e564dSmrg		if test "$non_pic_object" != none; then
1374266e564dSmrg		  # Prepend the subdirectory the object is found in.
1375266e564dSmrg		  non_pic_object="$xdir$non_pic_object"
1376266e564dSmrg
1377266e564dSmrg		  # A standard non-PIC object
1378266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1379266e564dSmrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
1380266e564dSmrg		    arg="$non_pic_object"
1381266e564dSmrg		  fi
1382266e564dSmrg		else
1383266e564dSmrg		  # If the PIC object exists, use it instead.
1384266e564dSmrg		  # $xdir was prepended to $pic_object above.
1385266e564dSmrg		  non_pic_object="$pic_object"
1386266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1387266e564dSmrg		fi
1388266e564dSmrg	      else
1389266e564dSmrg		# Only an error if not doing a dry-run.
1390266e564dSmrg		if test -z "$run"; then
1391266e564dSmrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1392266e564dSmrg		  exit $EXIT_FAILURE
1393266e564dSmrg		else
1394266e564dSmrg		  # Dry-run case.
1395266e564dSmrg
1396266e564dSmrg		  # Extract subdirectory from the argument.
1397266e564dSmrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1398266e564dSmrg		  if test "X$xdir" = "X$arg"; then
1399266e564dSmrg		    xdir=
1400266e564dSmrg		  else
1401266e564dSmrg		    xdir="$xdir/"
1402266e564dSmrg		  fi
1403266e564dSmrg
1404266e564dSmrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1405266e564dSmrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1406266e564dSmrg		  libobjs="$libobjs $pic_object"
1407266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1408266e564dSmrg		fi
1409266e564dSmrg	      fi
1410266e564dSmrg	    done
1411266e564dSmrg	  else
1412266e564dSmrg	    $echo "$modename: link input file \`$save_arg' does not exist"
1413266e564dSmrg	    exit $EXIT_FAILURE
1414266e564dSmrg	  fi
1415266e564dSmrg	  arg=$save_arg
1416266e564dSmrg	  prev=
1417266e564dSmrg	  continue
1418266e564dSmrg	  ;;
1419266e564dSmrg	rpath | xrpath)
1420266e564dSmrg	  # We need an absolute path.
1421266e564dSmrg	  case $arg in
1422266e564dSmrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1423266e564dSmrg	  *)
1424266e564dSmrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1425266e564dSmrg	    exit $EXIT_FAILURE
1426266e564dSmrg	    ;;
1427266e564dSmrg	  esac
1428266e564dSmrg	  if test "$prev" = rpath; then
1429266e564dSmrg	    case "$rpath " in
1430266e564dSmrg	    *" $arg "*) ;;
1431266e564dSmrg	    *) rpath="$rpath $arg" ;;
1432266e564dSmrg	    esac
1433266e564dSmrg	  else
1434266e564dSmrg	    case "$xrpath " in
1435266e564dSmrg	    *" $arg "*) ;;
1436266e564dSmrg	    *) xrpath="$xrpath $arg" ;;
1437266e564dSmrg	    esac
1438266e564dSmrg	  fi
1439266e564dSmrg	  prev=
1440266e564dSmrg	  continue
1441266e564dSmrg	  ;;
1442266e564dSmrg	xcompiler)
1443266e564dSmrg	  compiler_flags="$compiler_flags $qarg"
1444266e564dSmrg	  prev=
1445266e564dSmrg	  compile_command="$compile_command $qarg"
1446266e564dSmrg	  finalize_command="$finalize_command $qarg"
1447266e564dSmrg	  continue
1448266e564dSmrg	  ;;
1449266e564dSmrg	xlinker)
1450266e564dSmrg	  linker_flags="$linker_flags $qarg"
1451266e564dSmrg	  compiler_flags="$compiler_flags $wl$qarg"
1452266e564dSmrg	  prev=
1453266e564dSmrg	  compile_command="$compile_command $wl$qarg"
1454266e564dSmrg	  finalize_command="$finalize_command $wl$qarg"
1455266e564dSmrg	  continue
1456266e564dSmrg	  ;;
1457266e564dSmrg	xcclinker)
1458266e564dSmrg	  linker_flags="$linker_flags $qarg"
1459266e564dSmrg	  compiler_flags="$compiler_flags $qarg"
1460266e564dSmrg	  prev=
1461266e564dSmrg	  compile_command="$compile_command $qarg"
1462266e564dSmrg	  finalize_command="$finalize_command $qarg"
1463266e564dSmrg	  continue
1464266e564dSmrg	  ;;
1465266e564dSmrg	shrext)
1466266e564dSmrg  	  shrext_cmds="$arg"
1467266e564dSmrg	  prev=
1468266e564dSmrg	  continue
1469266e564dSmrg	  ;;
1470266e564dSmrg	darwin_framework|darwin_framework_skip)
1471266e564dSmrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1472266e564dSmrg	  compile_command="$compile_command $arg"
1473266e564dSmrg	  finalize_command="$finalize_command $arg"
1474266e564dSmrg	  prev=
1475266e564dSmrg	  continue
1476266e564dSmrg	  ;;
1477266e564dSmrg	*)
1478266e564dSmrg	  eval "$prev=\"\$arg\""
1479266e564dSmrg	  prev=
1480266e564dSmrg	  continue
1481266e564dSmrg	  ;;
1482266e564dSmrg	esac
1483266e564dSmrg      fi # test -n "$prev"
1484266e564dSmrg
1485266e564dSmrg      prevarg="$arg"
1486266e564dSmrg
1487266e564dSmrg      case $arg in
1488266e564dSmrg      -all-static)
1489266e564dSmrg	if test -n "$link_static_flag"; then
1490266e564dSmrg	  compile_command="$compile_command $link_static_flag"
1491266e564dSmrg	  finalize_command="$finalize_command $link_static_flag"
1492266e564dSmrg	fi
1493266e564dSmrg	continue
1494266e564dSmrg	;;
1495266e564dSmrg
1496266e564dSmrg      -allow-undefined)
1497266e564dSmrg	# FIXME: remove this flag sometime in the future.
1498266e564dSmrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1499266e564dSmrg	continue
1500266e564dSmrg	;;
1501266e564dSmrg
1502266e564dSmrg      -avoid-version)
1503266e564dSmrg	avoid_version=yes
1504266e564dSmrg	continue
1505266e564dSmrg	;;
1506266e564dSmrg
1507266e564dSmrg      -dlopen)
1508266e564dSmrg	prev=dlfiles
1509266e564dSmrg	continue
1510266e564dSmrg	;;
1511266e564dSmrg
1512266e564dSmrg      -dlpreopen)
1513266e564dSmrg	prev=dlprefiles
1514266e564dSmrg	continue
1515266e564dSmrg	;;
1516266e564dSmrg
1517266e564dSmrg      -export-dynamic)
1518266e564dSmrg	export_dynamic=yes
1519266e564dSmrg	continue
1520266e564dSmrg	;;
1521266e564dSmrg
1522266e564dSmrg      -export-symbols | -export-symbols-regex)
1523266e564dSmrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1524266e564dSmrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1525266e564dSmrg	  exit $EXIT_FAILURE
1526266e564dSmrg	fi
1527266e564dSmrg	if test "X$arg" = "X-export-symbols"; then
1528266e564dSmrg	  prev=expsyms
1529266e564dSmrg	else
1530266e564dSmrg	  prev=expsyms_regex
1531266e564dSmrg	fi
1532266e564dSmrg	continue
1533266e564dSmrg	;;
1534266e564dSmrg
1535266e564dSmrg      -framework|-arch|-isysroot)
1536266e564dSmrg	case " $CC " in
1537266e564dSmrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1538266e564dSmrg		prev=darwin_framework_skip ;;
1539266e564dSmrg	  *) compiler_flags="$compiler_flags $arg"
1540266e564dSmrg	     prev=darwin_framework ;;
1541266e564dSmrg	esac
1542266e564dSmrg	compile_command="$compile_command $arg"
1543266e564dSmrg	finalize_command="$finalize_command $arg"
1544266e564dSmrg	continue
1545266e564dSmrg	;;
1546266e564dSmrg
1547266e564dSmrg      -inst-prefix-dir)
1548266e564dSmrg	prev=inst_prefix
1549266e564dSmrg	continue
1550266e564dSmrg	;;
1551266e564dSmrg
1552266e564dSmrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1553266e564dSmrg      # so, if we see these flags be careful not to treat them like -L
1554266e564dSmrg      -L[A-Z][A-Z]*:*)
1555266e564dSmrg	case $with_gcc/$host in
1556266e564dSmrg	no/*-*-irix* | /*-*-irix*)
1557266e564dSmrg	  compile_command="$compile_command $arg"
1558266e564dSmrg	  finalize_command="$finalize_command $arg"
1559266e564dSmrg	  ;;
1560266e564dSmrg	esac
1561266e564dSmrg	continue
1562266e564dSmrg	;;
1563266e564dSmrg
1564266e564dSmrg      -L*)
1565266e564dSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1566266e564dSmrg	# We need an absolute path.
1567266e564dSmrg	case $dir in
1568266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1569266e564dSmrg	*)
1570266e564dSmrg	  absdir=`cd "$dir" && pwd`
1571266e564dSmrg	  if test -z "$absdir"; then
1572266e564dSmrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1573266e564dSmrg	    absdir="$dir"
1574266e564dSmrg	    notinst_path="$notinst_path $dir"
1575266e564dSmrg	  fi
1576266e564dSmrg	  dir="$absdir"
1577266e564dSmrg	  ;;
1578266e564dSmrg	esac
1579266e564dSmrg	case "$deplibs " in
1580266e564dSmrg	*" -L$dir "*) ;;
1581266e564dSmrg	*)
1582266e564dSmrg	  deplibs="$deplibs -L$dir"
1583266e564dSmrg	  lib_search_path="$lib_search_path $dir"
1584266e564dSmrg	  ;;
1585266e564dSmrg	esac
1586266e564dSmrg	case $host in
1587266e564dSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1588266e564dSmrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1589266e564dSmrg	  case :$dllsearchpath: in
1590266e564dSmrg	  *":$dir:"*) ;;
1591266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$dir";;
1592266e564dSmrg	  esac
1593266e564dSmrg	  case :$dllsearchpath: in
1594266e564dSmrg	  *":$testbindir:"*) ;;
1595266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1596266e564dSmrg	  esac
1597266e564dSmrg	  ;;
1598266e564dSmrg	esac
1599266e564dSmrg	continue
1600266e564dSmrg	;;
1601266e564dSmrg
1602266e564dSmrg      -l*)
1603266e564dSmrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1604266e564dSmrg	  case $host in
1605266e564dSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1606266e564dSmrg	    # These systems don't actually have a C or math library (as such)
1607266e564dSmrg	    continue
1608266e564dSmrg	    ;;
1609266e564dSmrg	  *-*-os2*)
1610266e564dSmrg	    # These systems don't actually have a C library (as such)
1611266e564dSmrg	    test "X$arg" = "X-lc" && continue
1612266e564dSmrg	    ;;
1613266e564dSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1614266e564dSmrg	    # Do not include libc due to us having libc/libc_r.
1615266e564dSmrg	    test "X$arg" = "X-lc" && continue
1616266e564dSmrg	    ;;
1617266e564dSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
1618266e564dSmrg	    # Rhapsody C and math libraries are in the System framework
1619266e564dSmrg	    deplibs="$deplibs -framework System"
1620266e564dSmrg	    continue
1621266e564dSmrg	    ;;
1622266e564dSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
1623266e564dSmrg	    # Causes problems with __ctype
1624266e564dSmrg	    test "X$arg" = "X-lc" && continue
1625266e564dSmrg	    ;;
1626266e564dSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1627266e564dSmrg	    # Compiler inserts libc in the correct place for threads to work
1628266e564dSmrg	    test "X$arg" = "X-lc" && continue
1629266e564dSmrg	    ;;
1630266e564dSmrg	  esac
1631266e564dSmrg	elif test "X$arg" = "X-lc_r"; then
1632266e564dSmrg	 case $host in
1633266e564dSmrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1634266e564dSmrg	   # Do not include libc_r directly, use -pthread flag.
1635266e564dSmrg	   continue
1636266e564dSmrg	   ;;
1637266e564dSmrg	 esac
1638266e564dSmrg	fi
1639266e564dSmrg	deplibs="$deplibs $arg"
1640266e564dSmrg	continue
1641266e564dSmrg	;;
1642266e564dSmrg
1643266e564dSmrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1644266e564dSmrg      # classes, name mangling, and exception handling.
1645266e564dSmrg      -model)
1646266e564dSmrg	compile_command="$compile_command $arg"
1647266e564dSmrg	compiler_flags="$compiler_flags $arg"
1648266e564dSmrg	finalize_command="$finalize_command $arg"
1649266e564dSmrg	prev=xcompiler
1650266e564dSmrg	continue
1651266e564dSmrg	;;
1652266e564dSmrg
1653c5629e66Smrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1654266e564dSmrg	compiler_flags="$compiler_flags $arg"
1655266e564dSmrg	compile_command="$compile_command $arg"
1656266e564dSmrg	finalize_command="$finalize_command $arg"
1657266e564dSmrg	continue
1658266e564dSmrg	;;
1659266e564dSmrg
1660c5629e66Smrg      -multi_module)
1661c5629e66Smrg	single_module="${wl}-multi_module"
1662c5629e66Smrg	continue
1663c5629e66Smrg	;;
1664c5629e66Smrg
1665266e564dSmrg      -module)
1666266e564dSmrg	module=yes
1667266e564dSmrg	continue
1668266e564dSmrg	;;
1669266e564dSmrg
1670266e564dSmrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1671266e564dSmrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1672266e564dSmrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1673266e564dSmrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
1674266e564dSmrg      # -q* pass through compiler args for the IBM compiler
1675266e564dSmrg      # -m* pass through architecture-specific compiler args for GCC
1676266e564dSmrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
1677266e564dSmrg      # compiler args for GCC
1678c5629e66Smrg      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1679c5629e66Smrg      # -F/path gives path to uninstalled frameworks, gcc on darwin
1680266e564dSmrg      # @file GCC response files
1681c5629e66Smrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1682c5629e66Smrg      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1683266e564dSmrg
1684266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1685266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1686266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1687266e564dSmrg	case $arg in
1688266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1689266e564dSmrg	  arg="\"$arg\""
1690266e564dSmrg	  ;;
1691266e564dSmrg	esac
1692266e564dSmrg        compile_command="$compile_command $arg"
1693266e564dSmrg        finalize_command="$finalize_command $arg"
1694266e564dSmrg        compiler_flags="$compiler_flags $arg"
1695266e564dSmrg        continue
1696266e564dSmrg        ;;
1697266e564dSmrg
1698266e564dSmrg      -shrext)
1699266e564dSmrg	prev=shrext
1700266e564dSmrg	continue
1701266e564dSmrg	;;
1702266e564dSmrg
1703266e564dSmrg      -no-fast-install)
1704266e564dSmrg	fast_install=no
1705266e564dSmrg	continue
1706266e564dSmrg	;;
1707266e564dSmrg
1708266e564dSmrg      -no-install)
1709266e564dSmrg	case $host in
1710c5629e66Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
1711266e564dSmrg	  # The PATH hackery in wrapper scripts is required on Windows
1712c5629e66Smrg	  # and Darwin in order for the loader to find any dlls it needs.
1713266e564dSmrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1714266e564dSmrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1715266e564dSmrg	  fast_install=no
1716266e564dSmrg	  ;;
1717266e564dSmrg	*) no_install=yes ;;
1718266e564dSmrg	esac
1719266e564dSmrg	continue
1720266e564dSmrg	;;
1721266e564dSmrg
1722266e564dSmrg      -no-undefined)
1723266e564dSmrg	allow_undefined=no
1724266e564dSmrg	continue
1725266e564dSmrg	;;
1726266e564dSmrg
1727266e564dSmrg      -objectlist)
1728266e564dSmrg	prev=objectlist
1729266e564dSmrg	continue
1730266e564dSmrg	;;
1731266e564dSmrg
1732266e564dSmrg      -o) prev=output ;;
1733266e564dSmrg
1734266e564dSmrg      -precious-files-regex)
1735266e564dSmrg	prev=precious_regex
1736266e564dSmrg	continue
1737266e564dSmrg	;;
1738266e564dSmrg
1739266e564dSmrg      -release)
1740266e564dSmrg	prev=release
1741266e564dSmrg	continue
1742266e564dSmrg	;;
1743266e564dSmrg
1744266e564dSmrg      -rpath)
1745266e564dSmrg	prev=rpath
1746266e564dSmrg	continue
1747266e564dSmrg	;;
1748266e564dSmrg
1749266e564dSmrg      -R)
1750266e564dSmrg	prev=xrpath
1751266e564dSmrg	continue
1752266e564dSmrg	;;
1753266e564dSmrg
1754266e564dSmrg      -R*)
1755266e564dSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1756266e564dSmrg	# We need an absolute path.
1757266e564dSmrg	case $dir in
1758266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1759266e564dSmrg	*)
1760266e564dSmrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1761266e564dSmrg	  exit $EXIT_FAILURE
1762266e564dSmrg	  ;;
1763266e564dSmrg	esac
1764266e564dSmrg	case "$xrpath " in
1765266e564dSmrg	*" $dir "*) ;;
1766266e564dSmrg	*) xrpath="$xrpath $dir" ;;
1767266e564dSmrg	esac
1768266e564dSmrg	continue
1769266e564dSmrg	;;
1770266e564dSmrg
1771c5629e66Smrg      -static | -static-libtool-libs)
1772266e564dSmrg	# The effects of -static are defined in a previous loop.
1773266e564dSmrg	# We used to do the same as -all-static on platforms that
1774266e564dSmrg	# didn't have a PIC flag, but the assumption that the effects
1775266e564dSmrg	# would be equivalent was wrong.  It would break on at least
1776266e564dSmrg	# Digital Unix and AIX.
1777266e564dSmrg	continue
1778266e564dSmrg	;;
1779266e564dSmrg
1780266e564dSmrg      -thread-safe)
1781266e564dSmrg	thread_safe=yes
1782266e564dSmrg	continue
1783266e564dSmrg	;;
1784266e564dSmrg
1785266e564dSmrg      -version-info)
1786266e564dSmrg	prev=vinfo
1787266e564dSmrg	continue
1788266e564dSmrg	;;
1789266e564dSmrg      -version-number)
1790266e564dSmrg	prev=vinfo
1791266e564dSmrg	vinfo_number=yes
1792266e564dSmrg	continue
1793266e564dSmrg	;;
1794266e564dSmrg
1795266e564dSmrg      -Wc,*)
1796266e564dSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1797266e564dSmrg	arg=
1798266e564dSmrg	save_ifs="$IFS"; IFS=','
1799266e564dSmrg	for flag in $args; do
1800266e564dSmrg	  IFS="$save_ifs"
1801266e564dSmrg	  case $flag in
1802266e564dSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1803266e564dSmrg	    flag="\"$flag\""
1804266e564dSmrg	    ;;
1805266e564dSmrg	  esac
1806266e564dSmrg	  arg="$arg $wl$flag"
1807266e564dSmrg	  compiler_flags="$compiler_flags $flag"
1808266e564dSmrg	done
1809266e564dSmrg	IFS="$save_ifs"
1810266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1811266e564dSmrg	;;
1812266e564dSmrg
1813266e564dSmrg      -Wl,*)
1814266e564dSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1815266e564dSmrg	arg=
1816266e564dSmrg	save_ifs="$IFS"; IFS=','
1817266e564dSmrg	for flag in $args; do
1818266e564dSmrg	  IFS="$save_ifs"
1819266e564dSmrg	  case $flag in
1820266e564dSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1821266e564dSmrg	    flag="\"$flag\""
1822266e564dSmrg	    ;;
1823266e564dSmrg	  esac
1824266e564dSmrg	  arg="$arg $wl$flag"
1825266e564dSmrg	  compiler_flags="$compiler_flags $wl$flag"
1826266e564dSmrg	  linker_flags="$linker_flags $flag"
1827266e564dSmrg	done
1828266e564dSmrg	IFS="$save_ifs"
1829266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1830266e564dSmrg	;;
1831266e564dSmrg
1832266e564dSmrg      -Xcompiler)
1833266e564dSmrg	prev=xcompiler
1834266e564dSmrg	continue
1835266e564dSmrg	;;
1836266e564dSmrg
1837266e564dSmrg      -Xlinker)
1838266e564dSmrg	prev=xlinker
1839266e564dSmrg	continue
1840266e564dSmrg	;;
1841266e564dSmrg
1842266e564dSmrg      -XCClinker)
1843266e564dSmrg	prev=xcclinker
1844266e564dSmrg	continue
1845266e564dSmrg	;;
1846266e564dSmrg
1847266e564dSmrg      # Some other compiler flag.
1848266e564dSmrg      -* | +*)
1849266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1850266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1851266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1852266e564dSmrg	case $arg in
1853266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1854266e564dSmrg	  arg="\"$arg\""
1855266e564dSmrg	  ;;
1856266e564dSmrg	esac
1857266e564dSmrg	;;
1858266e564dSmrg
1859266e564dSmrg      *.$objext)
1860266e564dSmrg	# A standard object.
1861266e564dSmrg	objs="$objs $arg"
1862266e564dSmrg	;;
1863266e564dSmrg
1864266e564dSmrg      *.lo)
1865266e564dSmrg	# A libtool-controlled object.
1866266e564dSmrg
1867266e564dSmrg	# Check to see that this really is a libtool object.
1868266e564dSmrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1869266e564dSmrg	  pic_object=
1870266e564dSmrg	  non_pic_object=
1871266e564dSmrg
1872266e564dSmrg	  # Read the .lo file
1873266e564dSmrg	  # If there is no directory component, then add one.
1874266e564dSmrg	  case $arg in
1875266e564dSmrg	  */* | *\\*) . $arg ;;
1876266e564dSmrg	  *) . ./$arg ;;
1877266e564dSmrg	  esac
1878266e564dSmrg
1879266e564dSmrg	  if test -z "$pic_object" || \
1880266e564dSmrg	     test -z "$non_pic_object" ||
1881266e564dSmrg	     test "$pic_object" = none && \
1882266e564dSmrg	     test "$non_pic_object" = none; then
1883266e564dSmrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1884266e564dSmrg	    exit $EXIT_FAILURE
1885266e564dSmrg	  fi
1886266e564dSmrg
1887266e564dSmrg	  # Extract subdirectory from the argument.
1888266e564dSmrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1889266e564dSmrg	  if test "X$xdir" = "X$arg"; then
1890266e564dSmrg	    xdir=
1891266e564dSmrg 	  else
1892266e564dSmrg	    xdir="$xdir/"
1893266e564dSmrg	  fi
1894266e564dSmrg
1895266e564dSmrg	  if test "$pic_object" != none; then
1896266e564dSmrg	    # Prepend the subdirectory the object is found in.
1897266e564dSmrg	    pic_object="$xdir$pic_object"
1898266e564dSmrg
1899266e564dSmrg	    if test "$prev" = dlfiles; then
1900266e564dSmrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1901266e564dSmrg		dlfiles="$dlfiles $pic_object"
1902266e564dSmrg		prev=
1903266e564dSmrg		continue
1904266e564dSmrg	      else
1905266e564dSmrg		# If libtool objects are unsupported, then we need to preload.
1906266e564dSmrg		prev=dlprefiles
1907266e564dSmrg	      fi
1908266e564dSmrg	    fi
1909266e564dSmrg
1910266e564dSmrg	    # CHECK ME:  I think I busted this.  -Ossama
1911266e564dSmrg	    if test "$prev" = dlprefiles; then
1912266e564dSmrg	      # Preload the old-style object.
1913266e564dSmrg	      dlprefiles="$dlprefiles $pic_object"
1914266e564dSmrg	      prev=
1915266e564dSmrg	    fi
1916266e564dSmrg
1917266e564dSmrg	    # A PIC object.
1918266e564dSmrg	    libobjs="$libobjs $pic_object"
1919266e564dSmrg	    arg="$pic_object"
1920266e564dSmrg	  fi
1921266e564dSmrg
1922266e564dSmrg	  # Non-PIC object.
1923266e564dSmrg	  if test "$non_pic_object" != none; then
1924266e564dSmrg	    # Prepend the subdirectory the object is found in.
1925266e564dSmrg	    non_pic_object="$xdir$non_pic_object"
1926266e564dSmrg
1927266e564dSmrg	    # A standard non-PIC object
1928266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1929266e564dSmrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
1930266e564dSmrg	      arg="$non_pic_object"
1931266e564dSmrg	    fi
1932266e564dSmrg	  else
1933266e564dSmrg	    # If the PIC object exists, use it instead.
1934266e564dSmrg	    # $xdir was prepended to $pic_object above.
1935266e564dSmrg	    non_pic_object="$pic_object"
1936266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1937266e564dSmrg	  fi
1938266e564dSmrg	else
1939266e564dSmrg	  # Only an error if not doing a dry-run.
1940266e564dSmrg	  if test -z "$run"; then
1941266e564dSmrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1942266e564dSmrg	    exit $EXIT_FAILURE
1943266e564dSmrg	  else
1944266e564dSmrg	    # Dry-run case.
1945266e564dSmrg
1946266e564dSmrg	    # Extract subdirectory from the argument.
1947266e564dSmrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1948266e564dSmrg	    if test "X$xdir" = "X$arg"; then
1949266e564dSmrg	      xdir=
1950266e564dSmrg	    else
1951266e564dSmrg	      xdir="$xdir/"
1952266e564dSmrg	    fi
1953266e564dSmrg
1954266e564dSmrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1955266e564dSmrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1956266e564dSmrg	    libobjs="$libobjs $pic_object"
1957266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1958266e564dSmrg	  fi
1959266e564dSmrg	fi
1960266e564dSmrg	;;
1961266e564dSmrg
1962266e564dSmrg      *.$libext)
1963266e564dSmrg	# An archive.
1964266e564dSmrg	deplibs="$deplibs $arg"
1965266e564dSmrg	old_deplibs="$old_deplibs $arg"
1966266e564dSmrg	continue
1967266e564dSmrg	;;
1968266e564dSmrg
1969266e564dSmrg      *.la)
1970266e564dSmrg	# A libtool-controlled library.
1971266e564dSmrg
1972266e564dSmrg	if test "$prev" = dlfiles; then
1973266e564dSmrg	  # This library was specified with -dlopen.
1974266e564dSmrg	  dlfiles="$dlfiles $arg"
1975266e564dSmrg	  prev=
1976266e564dSmrg	elif test "$prev" = dlprefiles; then
1977266e564dSmrg	  # The library was specified with -dlpreopen.
1978266e564dSmrg	  dlprefiles="$dlprefiles $arg"
1979266e564dSmrg	  prev=
1980266e564dSmrg	else
1981266e564dSmrg	  deplibs="$deplibs $arg"
1982266e564dSmrg	fi
1983266e564dSmrg	continue
1984266e564dSmrg	;;
1985266e564dSmrg
1986266e564dSmrg      # Some other compiler argument.
1987266e564dSmrg      *)
1988266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1989266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1990266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1991266e564dSmrg	case $arg in
1992266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1993266e564dSmrg	  arg="\"$arg\""
1994266e564dSmrg	  ;;
1995266e564dSmrg	esac
1996266e564dSmrg	;;
1997266e564dSmrg      esac # arg
1998266e564dSmrg
1999266e564dSmrg      # Now actually substitute the argument into the commands.
2000266e564dSmrg      if test -n "$arg"; then
2001266e564dSmrg	compile_command="$compile_command $arg"
2002266e564dSmrg	finalize_command="$finalize_command $arg"
2003266e564dSmrg      fi
2004266e564dSmrg    done # argument parsing loop
2005266e564dSmrg
2006c5629e66Smrg    if test "$module" = yes ; then
2007c5629e66Smrg	# [Mandriva] dropping ld option "--no-undefined" which is wrong for plugins
2008c5629e66Smrg    	linker_flags=`$echo "X $linker_flags" | $Xsed -e 's/ --no-undefined//'`
2009c5629e66Smrg    	compiler_flags=`$echo "X $compiler_flags" | $Xsed -e 's/ -Wl,--no-undefined//'`
2010c5629e66Smrg    fi
2011c5629e66Smrg
2012266e564dSmrg    if test -n "$prev"; then
2013266e564dSmrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
2014266e564dSmrg      $echo "$help" 1>&2
2015266e564dSmrg      exit $EXIT_FAILURE
2016266e564dSmrg    fi
2017266e564dSmrg
2018266e564dSmrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
2019266e564dSmrg      eval arg=\"$export_dynamic_flag_spec\"
2020266e564dSmrg      compile_command="$compile_command $arg"
2021266e564dSmrg      finalize_command="$finalize_command $arg"
2022266e564dSmrg    fi
2023266e564dSmrg
2024266e564dSmrg    oldlibs=
2025266e564dSmrg    # calculate the name of the file, without its directory
2026266e564dSmrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2027266e564dSmrg    libobjs_save="$libobjs"
2028266e564dSmrg
2029266e564dSmrg    if test -n "$shlibpath_var"; then
2030266e564dSmrg      # get the directories listed in $shlibpath_var
2031266e564dSmrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2032266e564dSmrg    else
2033266e564dSmrg      shlib_search_path=
2034266e564dSmrg    fi
2035266e564dSmrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2036266e564dSmrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2037266e564dSmrg
2038266e564dSmrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2039266e564dSmrg    if test "X$output_objdir" = "X$output"; then
2040266e564dSmrg      output_objdir="$objdir"
2041266e564dSmrg    else
2042266e564dSmrg      output_objdir="$output_objdir/$objdir"
2043266e564dSmrg    fi
2044266e564dSmrg    # Create the object directory.
2045266e564dSmrg    if test ! -d "$output_objdir"; then
2046266e564dSmrg      $show "$mkdir $output_objdir"
2047266e564dSmrg      $run $mkdir $output_objdir
2048266e564dSmrg      exit_status=$?
2049266e564dSmrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2050266e564dSmrg	exit $exit_status
2051266e564dSmrg      fi
2052266e564dSmrg    fi
2053266e564dSmrg
2054266e564dSmrg    # Determine the type of output
2055266e564dSmrg    case $output in
2056266e564dSmrg    "")
2057266e564dSmrg      $echo "$modename: you must specify an output file" 1>&2
2058266e564dSmrg      $echo "$help" 1>&2
2059266e564dSmrg      exit $EXIT_FAILURE
2060266e564dSmrg      ;;
2061266e564dSmrg    *.$libext) linkmode=oldlib ;;
2062266e564dSmrg    *.lo | *.$objext) linkmode=obj ;;
2063266e564dSmrg    *.la) linkmode=lib ;;
2064266e564dSmrg    *) linkmode=prog ;; # Anything else should be a program.
2065266e564dSmrg    esac
2066266e564dSmrg
2067266e564dSmrg    case $host in
2068266e564dSmrg    *cygwin* | *mingw* | *pw32*)
2069266e564dSmrg      # don't eliminate duplications in $postdeps and $predeps
2070266e564dSmrg      duplicate_compiler_generated_deps=yes
2071266e564dSmrg      ;;
2072266e564dSmrg    *)
2073266e564dSmrg      duplicate_compiler_generated_deps=$duplicate_deps
2074266e564dSmrg      ;;
2075266e564dSmrg    esac
2076266e564dSmrg    specialdeplibs=
2077266e564dSmrg
2078266e564dSmrg    libs=
2079266e564dSmrg    # Find all interdependent deplibs by searching for libraries
2080266e564dSmrg    # that are linked more than once (e.g. -la -lb -la)
2081266e564dSmrg    for deplib in $deplibs; do
2082266e564dSmrg      if test "X$duplicate_deps" = "Xyes" ; then
2083266e564dSmrg	case "$libs " in
2084266e564dSmrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2085266e564dSmrg	esac
2086266e564dSmrg      fi
2087266e564dSmrg      libs="$libs $deplib"
2088266e564dSmrg    done
2089266e564dSmrg
2090266e564dSmrg    if test "$linkmode" = lib; then
2091266e564dSmrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2092266e564dSmrg
2093266e564dSmrg      # Compute libraries that are listed more than once in $predeps
2094266e564dSmrg      # $postdeps and mark them as special (i.e., whose duplicates are
2095266e564dSmrg      # not to be eliminated).
2096266e564dSmrg      pre_post_deps=
2097266e564dSmrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2098266e564dSmrg	for pre_post_dep in $predeps $postdeps; do
2099266e564dSmrg	  case "$pre_post_deps " in
2100266e564dSmrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2101266e564dSmrg	  esac
2102266e564dSmrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
2103266e564dSmrg	done
2104266e564dSmrg      fi
2105266e564dSmrg      pre_post_deps=
2106266e564dSmrg    fi
2107266e564dSmrg
2108266e564dSmrg    deplibs=
2109266e564dSmrg    newdependency_libs=
2110266e564dSmrg    newlib_search_path=
2111266e564dSmrg    need_relink=no # whether we're linking any uninstalled libtool libraries
2112266e564dSmrg    notinst_deplibs= # not-installed libtool libraries
2113266e564dSmrg    case $linkmode in
2114266e564dSmrg    lib)
2115266e564dSmrg	passes="conv link"
2116266e564dSmrg	for file in $dlfiles $dlprefiles; do
2117266e564dSmrg	  case $file in
2118266e564dSmrg	  *.la) ;;
2119266e564dSmrg	  *)
2120266e564dSmrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2121266e564dSmrg	    exit $EXIT_FAILURE
2122266e564dSmrg	    ;;
2123266e564dSmrg	  esac
2124266e564dSmrg	done
2125266e564dSmrg	;;
2126266e564dSmrg    prog)
2127266e564dSmrg	compile_deplibs=
2128266e564dSmrg	finalize_deplibs=
2129266e564dSmrg	alldeplibs=no
2130266e564dSmrg	newdlfiles=
2131266e564dSmrg	newdlprefiles=
2132266e564dSmrg	passes="conv scan dlopen dlpreopen link"
2133266e564dSmrg	;;
2134266e564dSmrg    *)  passes="conv"
2135266e564dSmrg	;;
2136266e564dSmrg    esac
2137266e564dSmrg    for pass in $passes; do
2138266e564dSmrg      if test "$linkmode,$pass" = "lib,link" ||
2139266e564dSmrg	 test "$linkmode,$pass" = "prog,scan"; then
2140266e564dSmrg	libs="$deplibs"
2141266e564dSmrg	deplibs=
2142266e564dSmrg      fi
2143266e564dSmrg      if test "$linkmode" = prog; then
2144266e564dSmrg	case $pass in
2145266e564dSmrg	dlopen) libs="$dlfiles" ;;
2146266e564dSmrg	dlpreopen) libs="$dlprefiles" ;;
2147c5629e66Smrg	link)
2148c5629e66Smrg	  libs="$deplibs %DEPLIBS%"
2149c5629e66Smrg	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
2150c5629e66Smrg	  ;;
2151266e564dSmrg	esac
2152266e564dSmrg      fi
2153266e564dSmrg      if test "$pass" = dlopen; then
2154266e564dSmrg	# Collect dlpreopened libraries
2155266e564dSmrg	save_deplibs="$deplibs"
2156266e564dSmrg	deplibs=
2157266e564dSmrg      fi
2158266e564dSmrg      for deplib in $libs; do
2159266e564dSmrg	lib=
2160266e564dSmrg	found=no
2161266e564dSmrg	case $deplib in
2162c5629e66Smrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2163266e564dSmrg	  if test "$linkmode,$pass" = "prog,link"; then
2164266e564dSmrg	    compile_deplibs="$deplib $compile_deplibs"
2165266e564dSmrg	    finalize_deplibs="$deplib $finalize_deplibs"
2166266e564dSmrg	  else
2167266e564dSmrg	    compiler_flags="$compiler_flags $deplib"
2168266e564dSmrg	  fi
2169266e564dSmrg	  continue
2170266e564dSmrg	  ;;
2171266e564dSmrg	-l*)
2172266e564dSmrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2173266e564dSmrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2174266e564dSmrg	    continue
2175266e564dSmrg	  fi
2176266e564dSmrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2177c5629e66Smrg	  if test "$linkmode" = lib; then
2178c5629e66Smrg	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
2179c5629e66Smrg	  else
2180c5629e66Smrg	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
2181c5629e66Smrg	  fi
2182c5629e66Smrg	  for searchdir in $searchdirs; do
2183266e564dSmrg	    for search_ext in .la $std_shrext .so .a; do
2184266e564dSmrg	      # Search the libtool library
2185266e564dSmrg	      lib="$searchdir/lib${name}${search_ext}"
2186266e564dSmrg	      if test -f "$lib"; then
2187266e564dSmrg		if test "$search_ext" = ".la"; then
2188266e564dSmrg		  found=yes
2189266e564dSmrg		else
2190266e564dSmrg		  found=no
2191266e564dSmrg		fi
2192266e564dSmrg		break 2
2193266e564dSmrg	      fi
2194266e564dSmrg	    done
2195266e564dSmrg	  done
2196266e564dSmrg	  if test "$found" != yes; then
2197266e564dSmrg	    # deplib doesn't seem to be a libtool library
2198266e564dSmrg	    if test "$linkmode,$pass" = "prog,link"; then
2199266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2200266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2201266e564dSmrg	    else
2202266e564dSmrg	      deplibs="$deplib $deplibs"
2203266e564dSmrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2204266e564dSmrg	    fi
2205266e564dSmrg	    continue
2206266e564dSmrg	  else # deplib is a libtool library
2207266e564dSmrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2208266e564dSmrg	    # We need to do some special things here, and not later.
2209266e564dSmrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2210266e564dSmrg	      case " $predeps $postdeps " in
2211266e564dSmrg	      *" $deplib "*)
2212266e564dSmrg		if (${SED} -e '2q' $lib |
2213266e564dSmrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2214266e564dSmrg		  library_names=
2215266e564dSmrg		  old_library=
2216266e564dSmrg		  case $lib in
2217266e564dSmrg		  */* | *\\*) . $lib ;;
2218266e564dSmrg		  *) . ./$lib ;;
2219266e564dSmrg		  esac
2220266e564dSmrg		  for l in $old_library $library_names; do
2221266e564dSmrg		    ll="$l"
2222266e564dSmrg		  done
2223266e564dSmrg		  if test "X$ll" = "X$old_library" ; then # only static version available
2224266e564dSmrg		    found=no
2225266e564dSmrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2226266e564dSmrg		    test "X$ladir" = "X$lib" && ladir="."
2227266e564dSmrg		    lib=$ladir/$old_library
2228266e564dSmrg		    if test "$linkmode,$pass" = "prog,link"; then
2229266e564dSmrg		      compile_deplibs="$deplib $compile_deplibs"
2230266e564dSmrg		      finalize_deplibs="$deplib $finalize_deplibs"
2231266e564dSmrg		    else
2232266e564dSmrg		      deplibs="$deplib $deplibs"
2233266e564dSmrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2234266e564dSmrg		    fi
2235266e564dSmrg		    continue
2236266e564dSmrg		  fi
2237266e564dSmrg		fi
2238266e564dSmrg	        ;;
2239266e564dSmrg	      *) ;;
2240266e564dSmrg	      esac
2241266e564dSmrg	    fi
2242266e564dSmrg	  fi
2243266e564dSmrg	  ;; # -l
2244266e564dSmrg	-L*)
2245266e564dSmrg	  case $linkmode in
2246266e564dSmrg	  lib)
2247266e564dSmrg	    deplibs="$deplib $deplibs"
2248266e564dSmrg	    test "$pass" = conv && continue
2249266e564dSmrg	    newdependency_libs="$deplib $newdependency_libs"
2250266e564dSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2251266e564dSmrg	    ;;
2252266e564dSmrg	  prog)
2253266e564dSmrg	    if test "$pass" = conv; then
2254266e564dSmrg	      deplibs="$deplib $deplibs"
2255266e564dSmrg	      continue
2256266e564dSmrg	    fi
2257266e564dSmrg	    if test "$pass" = scan; then
2258266e564dSmrg	      deplibs="$deplib $deplibs"
2259266e564dSmrg	    else
2260266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2261266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2262266e564dSmrg	    fi
2263266e564dSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2264266e564dSmrg	    ;;
2265266e564dSmrg	  *)
2266266e564dSmrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2267266e564dSmrg	    ;;
2268266e564dSmrg	  esac # linkmode
2269266e564dSmrg	  continue
2270266e564dSmrg	  ;; # -L
2271266e564dSmrg	-R*)
2272266e564dSmrg	  if test "$pass" = link; then
2273266e564dSmrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2274266e564dSmrg	    # Make sure the xrpath contains only unique directories.
2275266e564dSmrg	    case "$xrpath " in
2276266e564dSmrg	    *" $dir "*) ;;
2277266e564dSmrg	    *) xrpath="$xrpath $dir" ;;
2278266e564dSmrg	    esac
2279266e564dSmrg	  fi
2280266e564dSmrg	  deplibs="$deplib $deplibs"
2281266e564dSmrg	  continue
2282266e564dSmrg	  ;;
2283266e564dSmrg	*.la) lib="$deplib" ;;
2284266e564dSmrg	*.$libext)
2285266e564dSmrg	  if test "$pass" = conv; then
2286266e564dSmrg	    deplibs="$deplib $deplibs"
2287266e564dSmrg	    continue
2288266e564dSmrg	  fi
2289266e564dSmrg	  case $linkmode in
2290266e564dSmrg	  lib)
2291266e564dSmrg	    valid_a_lib=no
2292266e564dSmrg	    case $deplibs_check_method in
2293266e564dSmrg	      match_pattern*)
2294266e564dSmrg		set dummy $deplibs_check_method
2295266e564dSmrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2296266e564dSmrg		if eval $echo \"$deplib\" 2>/dev/null \
2297266e564dSmrg		    | $SED 10q \
2298266e564dSmrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
2299266e564dSmrg		  valid_a_lib=yes
2300266e564dSmrg		fi
2301266e564dSmrg		;;
2302266e564dSmrg	      pass_all)
2303266e564dSmrg		valid_a_lib=yes
2304266e564dSmrg		;;
2305266e564dSmrg            esac
2306266e564dSmrg	    if test "$valid_a_lib" != yes; then
2307266e564dSmrg	      $echo
2308266e564dSmrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2309266e564dSmrg	      $echo "*** I have the capability to make that library automatically link in when"
2310266e564dSmrg	      $echo "*** you link to this library.  But I can only do this if you have a"
2311266e564dSmrg	      $echo "*** shared version of the library, which you do not appear to have"
2312266e564dSmrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2313266e564dSmrg	      $echo "*** that it is just a static archive that I should not used here."
2314266e564dSmrg	    else
2315266e564dSmrg	      $echo
2316266e564dSmrg	      $echo "*** Warning: Linking the shared library $output against the"
2317266e564dSmrg	      $echo "*** static library $deplib is not portable!"
2318266e564dSmrg	      deplibs="$deplib $deplibs"
2319266e564dSmrg	    fi
2320266e564dSmrg	    continue
2321266e564dSmrg	    ;;
2322266e564dSmrg	  prog)
2323266e564dSmrg	    if test "$pass" != link; then
2324266e564dSmrg	      deplibs="$deplib $deplibs"
2325266e564dSmrg	    else
2326266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2327266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2328266e564dSmrg	    fi
2329266e564dSmrg	    continue
2330266e564dSmrg	    ;;
2331266e564dSmrg	  esac # linkmode
2332266e564dSmrg	  ;; # *.$libext
2333266e564dSmrg	*.lo | *.$objext)
2334266e564dSmrg	  if test "$pass" = conv; then
2335266e564dSmrg	    deplibs="$deplib $deplibs"
2336266e564dSmrg	  elif test "$linkmode" = prog; then
2337266e564dSmrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2338266e564dSmrg	      # If there is no dlopen support or we're linking statically,
2339266e564dSmrg	      # we need to preload.
2340266e564dSmrg	      newdlprefiles="$newdlprefiles $deplib"
2341266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2342266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2343266e564dSmrg	    else
2344266e564dSmrg	      newdlfiles="$newdlfiles $deplib"
2345266e564dSmrg	    fi
2346266e564dSmrg	  fi
2347266e564dSmrg	  continue
2348266e564dSmrg	  ;;
2349266e564dSmrg	%DEPLIBS%)
2350266e564dSmrg	  alldeplibs=yes
2351266e564dSmrg	  continue
2352266e564dSmrg	  ;;
2353266e564dSmrg	esac # case $deplib
2354266e564dSmrg	if test "$found" = yes || test -f "$lib"; then :
2355266e564dSmrg	else
2356266e564dSmrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2357266e564dSmrg	  exit $EXIT_FAILURE
2358266e564dSmrg	fi
2359266e564dSmrg
2360266e564dSmrg	# Check to see that this really is a libtool archive.
2361266e564dSmrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2362266e564dSmrg	else
2363266e564dSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2364266e564dSmrg	  exit $EXIT_FAILURE
2365266e564dSmrg	fi
2366266e564dSmrg
2367266e564dSmrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2368266e564dSmrg	test "X$ladir" = "X$lib" && ladir="."
2369266e564dSmrg
2370266e564dSmrg	dlname=
2371266e564dSmrg	dlopen=
2372266e564dSmrg	dlpreopen=
2373266e564dSmrg	libdir=
2374266e564dSmrg	library_names=
2375266e564dSmrg	old_library=
2376266e564dSmrg	# If the library was installed with an old release of libtool,
2377266e564dSmrg	# it will not redefine variables installed, or shouldnotlink
2378266e564dSmrg	installed=yes
2379266e564dSmrg	shouldnotlink=no
2380266e564dSmrg	avoidtemprpath=
2381266e564dSmrg
2382266e564dSmrg
2383266e564dSmrg	# Read the .la file
2384266e564dSmrg	case $lib in
2385266e564dSmrg	*/* | *\\*) . $lib ;;
2386266e564dSmrg	*) . ./$lib ;;
2387266e564dSmrg	esac
2388266e564dSmrg
2389266e564dSmrg	if test "$linkmode,$pass" = "lib,link" ||
2390266e564dSmrg	   test "$linkmode,$pass" = "prog,scan" ||
2391266e564dSmrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2392266e564dSmrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2393266e564dSmrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2394266e564dSmrg	fi
2395266e564dSmrg
2396266e564dSmrg	if test "$pass" = conv; then
2397266e564dSmrg	  # Only check for convenience libraries
2398266e564dSmrg	  deplibs="$lib $deplibs"
2399266e564dSmrg	  if test -z "$libdir"; then
2400266e564dSmrg	    if test -z "$old_library"; then
2401266e564dSmrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2402266e564dSmrg	      exit $EXIT_FAILURE
2403266e564dSmrg	    fi
2404266e564dSmrg	    # It is a libtool convenience library, so add in its objects.
2405266e564dSmrg	    convenience="$convenience $ladir/$objdir/$old_library"
2406266e564dSmrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2407266e564dSmrg	    tmp_libs=
2408266e564dSmrg	    for deplib in $dependency_libs; do
2409266e564dSmrg	      deplibs="$deplib $deplibs"
2410266e564dSmrg              if test "X$duplicate_deps" = "Xyes" ; then
2411266e564dSmrg	        case "$tmp_libs " in
2412266e564dSmrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2413266e564dSmrg	        esac
2414266e564dSmrg              fi
2415266e564dSmrg	      tmp_libs="$tmp_libs $deplib"
2416266e564dSmrg	    done
2417266e564dSmrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2418266e564dSmrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2419266e564dSmrg	    exit $EXIT_FAILURE
2420266e564dSmrg	  fi
2421266e564dSmrg	  continue
2422266e564dSmrg	fi # $pass = conv
2423266e564dSmrg
2424266e564dSmrg
2425266e564dSmrg	# Get the name of the library we link against.
2426266e564dSmrg	linklib=
2427266e564dSmrg	for l in $old_library $library_names; do
2428266e564dSmrg	  linklib="$l"
2429266e564dSmrg	done
2430266e564dSmrg	if test -z "$linklib"; then
2431266e564dSmrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2432266e564dSmrg	  exit $EXIT_FAILURE
2433266e564dSmrg	fi
2434266e564dSmrg
2435266e564dSmrg	# This library was specified with -dlopen.
2436266e564dSmrg	if test "$pass" = dlopen; then
2437266e564dSmrg	  if test -z "$libdir"; then
2438266e564dSmrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2439266e564dSmrg	    exit $EXIT_FAILURE
2440266e564dSmrg	  fi
2441266e564dSmrg	  if test -z "$dlname" ||
2442266e564dSmrg	     test "$dlopen_support" != yes ||
2443266e564dSmrg	     test "$build_libtool_libs" = no; then
2444266e564dSmrg	    # If there is no dlname, no dlopen support or we're linking
2445266e564dSmrg	    # statically, we need to preload.  We also need to preload any
2446266e564dSmrg	    # dependent libraries so libltdl's deplib preloader doesn't
2447266e564dSmrg	    # bomb out in the load deplibs phase.
2448266e564dSmrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
2449266e564dSmrg	  else
2450266e564dSmrg	    newdlfiles="$newdlfiles $lib"
2451266e564dSmrg	  fi
2452266e564dSmrg	  continue
2453266e564dSmrg	fi # $pass = dlopen
2454266e564dSmrg
2455266e564dSmrg	# We need an absolute path.
2456266e564dSmrg	case $ladir in
2457266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2458266e564dSmrg	*)
2459266e564dSmrg	  abs_ladir=`cd "$ladir" && pwd`
2460266e564dSmrg	  if test -z "$abs_ladir"; then
2461266e564dSmrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2462266e564dSmrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2463266e564dSmrg	    abs_ladir="$ladir"
2464266e564dSmrg	  fi
2465266e564dSmrg	  ;;
2466266e564dSmrg	esac
2467266e564dSmrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2468266e564dSmrg
2469266e564dSmrg	# Find the relevant object directory and library name.
2470266e564dSmrg	if test "X$installed" = Xyes; then
2471266e564dSmrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2472266e564dSmrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2473266e564dSmrg	    dir="$ladir"
2474266e564dSmrg	    absdir="$abs_ladir"
2475266e564dSmrg	    libdir="$abs_ladir"
2476266e564dSmrg	  else
2477266e564dSmrg	    dir="$libdir"
2478266e564dSmrg	    absdir="$libdir"
2479266e564dSmrg	  fi
2480266e564dSmrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2481266e564dSmrg	else
2482266e564dSmrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2483266e564dSmrg	    dir="$ladir"
2484266e564dSmrg	    absdir="$abs_ladir"
2485266e564dSmrg	    # Remove this search path later
2486266e564dSmrg	    notinst_path="$notinst_path $abs_ladir"
2487266e564dSmrg	  else
2488266e564dSmrg	    dir="$ladir/$objdir"
2489266e564dSmrg	    absdir="$abs_ladir/$objdir"
2490266e564dSmrg	    # Remove this search path later
2491266e564dSmrg	    notinst_path="$notinst_path $abs_ladir"
2492266e564dSmrg	  fi
2493266e564dSmrg	fi # $installed = yes
2494266e564dSmrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2495266e564dSmrg
2496266e564dSmrg	# This library was specified with -dlpreopen.
2497266e564dSmrg	if test "$pass" = dlpreopen; then
2498266e564dSmrg	  if test -z "$libdir"; then
2499266e564dSmrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2500266e564dSmrg	    exit $EXIT_FAILURE
2501266e564dSmrg	  fi
2502266e564dSmrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2503266e564dSmrg	  # are required to link).
2504266e564dSmrg	  if test -n "$old_library"; then
2505266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
2506266e564dSmrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2507266e564dSmrg	  elif test -n "$dlname"; then
2508266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
2509266e564dSmrg	  else
2510266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
2511266e564dSmrg	  fi
2512266e564dSmrg	fi # $pass = dlpreopen
2513266e564dSmrg
2514266e564dSmrg	if test -z "$libdir"; then
2515266e564dSmrg	  # Link the convenience library
2516266e564dSmrg	  if test "$linkmode" = lib; then
2517266e564dSmrg	    deplibs="$dir/$old_library $deplibs"
2518266e564dSmrg	  elif test "$linkmode,$pass" = "prog,link"; then
2519266e564dSmrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
2520266e564dSmrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2521266e564dSmrg	  else
2522266e564dSmrg	    deplibs="$lib $deplibs" # used for prog,scan pass
2523266e564dSmrg	  fi
2524266e564dSmrg	  continue
2525266e564dSmrg	fi
2526266e564dSmrg
2527266e564dSmrg
2528266e564dSmrg	if test "$linkmode" = prog && test "$pass" != link; then
2529266e564dSmrg	  newlib_search_path="$newlib_search_path $ladir"
2530266e564dSmrg	  deplibs="$lib $deplibs"
2531266e564dSmrg
2532266e564dSmrg	  linkalldeplibs=no
2533266e564dSmrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2534266e564dSmrg	     test "$build_libtool_libs" = no; then
2535266e564dSmrg	    linkalldeplibs=yes
2536266e564dSmrg	  fi
2537266e564dSmrg
2538266e564dSmrg	  tmp_libs=
2539266e564dSmrg	  for deplib in $dependency_libs; do
2540266e564dSmrg	    case $deplib in
2541266e564dSmrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2542266e564dSmrg	    esac
2543266e564dSmrg	    # Need to link against all dependency_libs?
2544266e564dSmrg	    if test "$linkalldeplibs" = yes; then
2545266e564dSmrg	      deplibs="$deplib $deplibs"
2546266e564dSmrg	    else
2547266e564dSmrg	      # Need to hardcode shared library paths
2548266e564dSmrg	      # or/and link against static libraries
2549266e564dSmrg	      newdependency_libs="$deplib $newdependency_libs"
2550266e564dSmrg	    fi
2551266e564dSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
2552266e564dSmrg	      case "$tmp_libs " in
2553266e564dSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2554266e564dSmrg	      esac
2555266e564dSmrg	    fi
2556266e564dSmrg	    tmp_libs="$tmp_libs $deplib"
2557266e564dSmrg	  done # for deplib
2558266e564dSmrg	  continue
2559266e564dSmrg	fi # $linkmode = prog...
2560266e564dSmrg
2561266e564dSmrg	if test "$linkmode,$pass" = "prog,link"; then
2562266e564dSmrg	  if test -n "$library_names" &&
2563c5629e66Smrg	     { { test "$prefer_static_libs" = no ||
2564c5629e66Smrg		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
2565c5629e66Smrg	       test -z "$old_library"; }; then
2566266e564dSmrg	    # We need to hardcode the library path
2567266e564dSmrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2568266e564dSmrg	      # Make sure the rpath contains only unique directories.
2569266e564dSmrg	      case "$temp_rpath " in
2570266e564dSmrg	      *" $dir "*) ;;
2571266e564dSmrg	      *" $absdir "*) ;;
2572266e564dSmrg	      *) temp_rpath="$temp_rpath $absdir" ;;
2573266e564dSmrg	      esac
2574266e564dSmrg	    fi
2575266e564dSmrg
2576266e564dSmrg	    # Hardcode the library path.
2577266e564dSmrg	    # Skip directories that are in the system default run-time
2578266e564dSmrg	    # search path.
2579266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2580266e564dSmrg	    *" $absdir "*) ;;
2581266e564dSmrg	    *)
2582266e564dSmrg	      case "$compile_rpath " in
2583266e564dSmrg	      *" $absdir "*) ;;
2584266e564dSmrg	      *) compile_rpath="$compile_rpath $absdir"
2585266e564dSmrg	      esac
2586266e564dSmrg	      ;;
2587266e564dSmrg	    esac
2588266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2589266e564dSmrg	    *" $libdir "*) ;;
2590266e564dSmrg	    *)
2591266e564dSmrg	      case "$finalize_rpath " in
2592266e564dSmrg	      *" $libdir "*) ;;
2593266e564dSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
2594266e564dSmrg	      esac
2595266e564dSmrg	      ;;
2596266e564dSmrg	    esac
2597266e564dSmrg	  fi # $linkmode,$pass = prog,link...
2598266e564dSmrg
2599266e564dSmrg	  if test "$alldeplibs" = yes &&
2600266e564dSmrg	     { test "$deplibs_check_method" = pass_all ||
2601266e564dSmrg	       { test "$build_libtool_libs" = yes &&
2602266e564dSmrg		 test -n "$library_names"; }; }; then
2603266e564dSmrg	    # We only need to search for static libraries
2604266e564dSmrg	    continue
2605266e564dSmrg	  fi
2606266e564dSmrg	fi
2607266e564dSmrg
2608266e564dSmrg	link_static=no # Whether the deplib will be linked statically
2609266e564dSmrg	use_static_libs=$prefer_static_libs
2610266e564dSmrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
2611266e564dSmrg	  use_static_libs=no
2612266e564dSmrg	fi
2613266e564dSmrg	if test -n "$library_names" &&
2614266e564dSmrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2615266e564dSmrg	  if test "$installed" = no; then
2616266e564dSmrg	    notinst_deplibs="$notinst_deplibs $lib"
2617266e564dSmrg	    need_relink=yes
2618266e564dSmrg	  fi
2619266e564dSmrg	  # This is a shared library
2620266e564dSmrg
2621266e564dSmrg	  # Warn about portability, can't link against -module's on
2622266e564dSmrg	  # some systems (darwin)
2623266e564dSmrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2624266e564dSmrg	    $echo
2625266e564dSmrg	    if test "$linkmode" = prog; then
2626266e564dSmrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
2627266e564dSmrg	    else
2628266e564dSmrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2629266e564dSmrg	    fi
2630266e564dSmrg	    $echo "*** $linklib is not portable!"
2631266e564dSmrg	  fi
2632266e564dSmrg	  if test "$linkmode" = lib &&
2633266e564dSmrg	     test "$hardcode_into_libs" = yes; then
2634266e564dSmrg	    # Hardcode the library path.
2635266e564dSmrg	    # Skip directories that are in the system default run-time
2636266e564dSmrg	    # search path.
2637266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2638266e564dSmrg	    *" $absdir "*) ;;
2639266e564dSmrg	    *)
2640266e564dSmrg	      case "$compile_rpath " in
2641266e564dSmrg	      *" $absdir "*) ;;
2642266e564dSmrg	      *) compile_rpath="$compile_rpath $absdir"
2643266e564dSmrg	      esac
2644266e564dSmrg	      ;;
2645266e564dSmrg	    esac
2646266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2647266e564dSmrg	    *" $libdir "*) ;;
2648266e564dSmrg	    *)
2649266e564dSmrg	      case "$finalize_rpath " in
2650266e564dSmrg	      *" $libdir "*) ;;
2651266e564dSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
2652266e564dSmrg	      esac
2653266e564dSmrg	      ;;
2654266e564dSmrg	    esac
2655266e564dSmrg	  fi
2656266e564dSmrg
2657266e564dSmrg	  if test -n "$old_archive_from_expsyms_cmds"; then
2658266e564dSmrg	    # figure out the soname
2659266e564dSmrg	    set dummy $library_names
2660266e564dSmrg	    realname="$2"
2661266e564dSmrg	    shift; shift
2662266e564dSmrg	    libname=`eval \\$echo \"$libname_spec\"`
2663266e564dSmrg	    # use dlname if we got it. it's perfectly good, no?
2664266e564dSmrg	    if test -n "$dlname"; then
2665266e564dSmrg	      soname="$dlname"
2666266e564dSmrg	    elif test -n "$soname_spec"; then
2667266e564dSmrg	      # bleh windows
2668266e564dSmrg	      case $host in
2669266e564dSmrg	      *cygwin* | mingw*)
2670266e564dSmrg		major=`expr $current - $age`
2671266e564dSmrg		versuffix="-$major"
2672266e564dSmrg		;;
2673266e564dSmrg	      esac
2674266e564dSmrg	      eval soname=\"$soname_spec\"
2675266e564dSmrg	    else
2676266e564dSmrg	      soname="$realname"
2677266e564dSmrg	    fi
2678266e564dSmrg
2679266e564dSmrg	    # Make a new name for the extract_expsyms_cmds to use
2680266e564dSmrg	    soroot="$soname"
2681266e564dSmrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2682266e564dSmrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2683266e564dSmrg
2684266e564dSmrg	    # If the library has no export list, then create one now
2685266e564dSmrg	    if test -f "$output_objdir/$soname-def"; then :
2686266e564dSmrg	    else
2687266e564dSmrg	      $show "extracting exported symbol list from \`$soname'"
2688266e564dSmrg	      save_ifs="$IFS"; IFS='~'
2689266e564dSmrg	      cmds=$extract_expsyms_cmds
2690266e564dSmrg	      for cmd in $cmds; do
2691266e564dSmrg		IFS="$save_ifs"
2692266e564dSmrg		eval cmd=\"$cmd\"
2693266e564dSmrg		$show "$cmd"
2694266e564dSmrg		$run eval "$cmd" || exit $?
2695266e564dSmrg	      done
2696266e564dSmrg	      IFS="$save_ifs"
2697266e564dSmrg	    fi
2698266e564dSmrg
2699266e564dSmrg	    # Create $newlib
2700266e564dSmrg	    if test -f "$output_objdir/$newlib"; then :; else
2701266e564dSmrg	      $show "generating import library for \`$soname'"
2702266e564dSmrg	      save_ifs="$IFS"; IFS='~'
2703266e564dSmrg	      cmds=$old_archive_from_expsyms_cmds
2704266e564dSmrg	      for cmd in $cmds; do
2705266e564dSmrg		IFS="$save_ifs"
2706266e564dSmrg		eval cmd=\"$cmd\"
2707266e564dSmrg		$show "$cmd"
2708266e564dSmrg		$run eval "$cmd" || exit $?
2709266e564dSmrg	      done
2710266e564dSmrg	      IFS="$save_ifs"
2711266e564dSmrg	    fi
2712266e564dSmrg	    # make sure the library variables are pointing to the new library
2713266e564dSmrg	    dir=$output_objdir
2714266e564dSmrg	    linklib=$newlib
2715266e564dSmrg	  fi # test -n "$old_archive_from_expsyms_cmds"
2716266e564dSmrg
2717266e564dSmrg	  if test "$linkmode" = prog || test "$mode" != relink; then
2718266e564dSmrg	    add_shlibpath=
2719266e564dSmrg	    add_dir=
2720266e564dSmrg	    add=
2721266e564dSmrg	    lib_linked=yes
2722266e564dSmrg	    case $hardcode_action in
2723266e564dSmrg	    immediate | unsupported)
2724266e564dSmrg	      if test "$hardcode_direct" = no; then
2725266e564dSmrg		add="$dir/$linklib"
2726266e564dSmrg		case $host in
2727266e564dSmrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2728266e564dSmrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2729266e564dSmrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2730266e564dSmrg		    *-*-unixware7*) add_dir="-L$dir" ;;
2731266e564dSmrg		  *-*-darwin* )
2732266e564dSmrg		    # if the lib is a module then we can not link against
2733266e564dSmrg		    # it, someone is ignoring the new warnings I added
2734266e564dSmrg		    if /usr/bin/file -L $add 2> /dev/null |
2735266e564dSmrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
2736266e564dSmrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
2737266e564dSmrg		      if test -z "$old_library" ; then
2738266e564dSmrg		        $echo
2739266e564dSmrg		        $echo "** And there doesn't seem to be a static archive available"
2740266e564dSmrg		        $echo "** The link will probably fail, sorry"
2741266e564dSmrg		      else
2742266e564dSmrg		        add="$dir/$old_library"
2743266e564dSmrg		      fi
2744266e564dSmrg		    fi
2745266e564dSmrg		esac
2746266e564dSmrg	      elif test "$hardcode_minus_L" = no; then
2747266e564dSmrg		case $host in
2748266e564dSmrg		*-*-sunos*) add_shlibpath="$dir" ;;
2749266e564dSmrg		esac
2750266e564dSmrg		add_dir="-L$dir"
2751266e564dSmrg		add="-l$name"
2752266e564dSmrg	      elif test "$hardcode_shlibpath_var" = no; then
2753266e564dSmrg		add_shlibpath="$dir"
2754266e564dSmrg		add="-l$name"
2755266e564dSmrg	      else
2756266e564dSmrg		lib_linked=no
2757266e564dSmrg	      fi
2758266e564dSmrg	      ;;
2759266e564dSmrg	    relink)
2760266e564dSmrg	      if test "$hardcode_direct" = yes; then
2761266e564dSmrg		add="$dir/$linklib"
2762266e564dSmrg	      elif test "$hardcode_minus_L" = yes; then
2763266e564dSmrg		add_dir="-L$dir"
2764266e564dSmrg		# Try looking first in the location we're being installed to.
2765266e564dSmrg		if test -n "$inst_prefix_dir"; then
2766266e564dSmrg		  case $libdir in
2767266e564dSmrg		    [\\/]*)
2768266e564dSmrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2769266e564dSmrg		      ;;
2770266e564dSmrg		  esac
2771266e564dSmrg		fi
2772266e564dSmrg		add="-l$name"
2773266e564dSmrg	      elif test "$hardcode_shlibpath_var" = yes; then
2774266e564dSmrg		add_shlibpath="$dir"
2775266e564dSmrg		add="-l$name"
2776266e564dSmrg	      else
2777266e564dSmrg		lib_linked=no
2778266e564dSmrg	      fi
2779266e564dSmrg	      ;;
2780266e564dSmrg	    *) lib_linked=no ;;
2781266e564dSmrg	    esac
2782266e564dSmrg
2783266e564dSmrg	    if test "$lib_linked" != yes; then
2784266e564dSmrg	      $echo "$modename: configuration error: unsupported hardcode properties"
2785266e564dSmrg	      exit $EXIT_FAILURE
2786266e564dSmrg	    fi
2787266e564dSmrg
2788266e564dSmrg	    if test -n "$add_shlibpath"; then
2789266e564dSmrg	      case :$compile_shlibpath: in
2790266e564dSmrg	      *":$add_shlibpath:"*) ;;
2791266e564dSmrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2792266e564dSmrg	      esac
2793266e564dSmrg	    fi
2794266e564dSmrg	    if test "$linkmode" = prog; then
2795266e564dSmrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2796266e564dSmrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2797266e564dSmrg	    else
2798266e564dSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2799266e564dSmrg	      test -n "$add" && deplibs="$add $deplibs"
2800266e564dSmrg	      if test "$hardcode_direct" != yes && \
2801266e564dSmrg		 test "$hardcode_minus_L" != yes && \
2802266e564dSmrg		 test "$hardcode_shlibpath_var" = yes; then
2803266e564dSmrg		case :$finalize_shlibpath: in
2804266e564dSmrg		*":$libdir:"*) ;;
2805266e564dSmrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2806266e564dSmrg		esac
2807266e564dSmrg	      fi
2808266e564dSmrg	    fi
2809266e564dSmrg	  fi
2810266e564dSmrg
2811266e564dSmrg	  if test "$linkmode" = prog || test "$mode" = relink; then
2812266e564dSmrg	    add_shlibpath=
2813266e564dSmrg	    add_dir=
2814266e564dSmrg	    add=
2815266e564dSmrg	    # Finalize command for both is simple: just hardcode it.
2816266e564dSmrg	    if test "$hardcode_direct" = yes; then
2817266e564dSmrg	      add="$libdir/$linklib"
2818266e564dSmrg	    elif test "$hardcode_minus_L" = yes; then
2819266e564dSmrg	      add_dir="-L$libdir"
2820266e564dSmrg	      add="-l$name"
2821266e564dSmrg	    elif test "$hardcode_shlibpath_var" = yes; then
2822266e564dSmrg	      case :$finalize_shlibpath: in
2823266e564dSmrg	      *":$libdir:"*) ;;
2824266e564dSmrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2825266e564dSmrg	      esac
2826266e564dSmrg	      add="-l$name"
2827266e564dSmrg	    elif test "$hardcode_automatic" = yes; then
2828266e564dSmrg	      if test -n "$inst_prefix_dir" &&
2829266e564dSmrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2830266e564dSmrg	        add="$inst_prefix_dir$libdir/$linklib"
2831266e564dSmrg	      else
2832266e564dSmrg	        add="$libdir/$linklib"
2833266e564dSmrg	      fi
2834266e564dSmrg	    else
2835266e564dSmrg	      # We cannot seem to hardcode it, guess we'll fake it.
2836266e564dSmrg	      add_dir="-L$libdir"
2837266e564dSmrg	      # Try looking first in the location we're being installed to.
2838266e564dSmrg	      if test -n "$inst_prefix_dir"; then
2839266e564dSmrg		case $libdir in
2840266e564dSmrg		  [\\/]*)
2841266e564dSmrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2842266e564dSmrg		    ;;
2843266e564dSmrg		esac
2844266e564dSmrg	      fi
2845266e564dSmrg	      add="-l$name"
2846266e564dSmrg	    fi
2847266e564dSmrg
2848266e564dSmrg	    if test "$linkmode" = prog; then
2849266e564dSmrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2850266e564dSmrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2851266e564dSmrg	    else
2852266e564dSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2853266e564dSmrg	      test -n "$add" && deplibs="$add $deplibs"
2854266e564dSmrg	    fi
2855266e564dSmrg	  fi
2856266e564dSmrg	elif test "$linkmode" = prog; then
2857266e564dSmrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2858266e564dSmrg	  # is not unsupported.  This is valid on all known static and
2859266e564dSmrg	  # shared platforms.
2860266e564dSmrg	  if test "$hardcode_direct" != unsupported; then
2861266e564dSmrg	    test -n "$old_library" && linklib="$old_library"
2862266e564dSmrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
2863266e564dSmrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2864266e564dSmrg	  else
2865266e564dSmrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2866266e564dSmrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2867266e564dSmrg	  fi
2868266e564dSmrg	elif test "$build_libtool_libs" = yes; then
2869266e564dSmrg	  # Not a shared library
2870266e564dSmrg	  if test "$deplibs_check_method" != pass_all; then
2871266e564dSmrg	    # We're trying link a shared library against a static one
2872266e564dSmrg	    # but the system doesn't support it.
2873266e564dSmrg
2874266e564dSmrg	    # Just print a warning and add the library to dependency_libs so
2875266e564dSmrg	    # that the program can be linked against the static library.
2876266e564dSmrg	    $echo
2877266e564dSmrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
2878266e564dSmrg	    $echo "*** I have the capability to make that library automatically link in when"
2879266e564dSmrg	    $echo "*** you link to this library.  But I can only do this if you have a"
2880266e564dSmrg	    $echo "*** shared version of the library, which you do not appear to have."
2881266e564dSmrg	    if test "$module" = yes; then
2882266e564dSmrg	      $echo "*** But as you try to build a module library, libtool will still create "
2883266e564dSmrg	      $echo "*** a static module, that should work as long as the dlopening application"
2884266e564dSmrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2885266e564dSmrg	      if test -z "$global_symbol_pipe"; then
2886266e564dSmrg		$echo
2887266e564dSmrg		$echo "*** However, this would only work if libtool was able to extract symbol"
2888266e564dSmrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2889266e564dSmrg		$echo "*** not find such a program.  So, this module is probably useless."
2890266e564dSmrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2891266e564dSmrg	      fi
2892266e564dSmrg	      if test "$build_old_libs" = no; then
2893266e564dSmrg		build_libtool_libs=module
2894266e564dSmrg		build_old_libs=yes
2895266e564dSmrg	      else
2896266e564dSmrg		build_libtool_libs=no
2897266e564dSmrg	      fi
2898266e564dSmrg	    fi
2899266e564dSmrg	  else
2900266e564dSmrg	    deplibs="$dir/$old_library $deplibs"
2901266e564dSmrg	    link_static=yes
2902266e564dSmrg	  fi
2903266e564dSmrg	fi # link shared/static library?
2904266e564dSmrg
2905266e564dSmrg	if test "$linkmode" = lib; then
2906266e564dSmrg	  if test -n "$dependency_libs" &&
2907266e564dSmrg	     { test "$hardcode_into_libs" != yes ||
2908266e564dSmrg	       test "$build_old_libs" = yes ||
2909266e564dSmrg	       test "$link_static" = yes; }; then
2910266e564dSmrg	    # Extract -R from dependency_libs
2911266e564dSmrg	    temp_deplibs=
2912266e564dSmrg	    for libdir in $dependency_libs; do
2913266e564dSmrg	      case $libdir in
2914266e564dSmrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2915266e564dSmrg		   case " $xrpath " in
2916266e564dSmrg		   *" $temp_xrpath "*) ;;
2917266e564dSmrg		   *) xrpath="$xrpath $temp_xrpath";;
2918266e564dSmrg		   esac;;
2919266e564dSmrg	      *) temp_deplibs="$temp_deplibs $libdir";;
2920266e564dSmrg	      esac
2921266e564dSmrg	    done
2922266e564dSmrg	    dependency_libs="$temp_deplibs"
2923266e564dSmrg	  fi
2924266e564dSmrg
2925266e564dSmrg	  newlib_search_path="$newlib_search_path $absdir"
2926266e564dSmrg	  # Link against this library
2927266e564dSmrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2928266e564dSmrg	  # ... and its dependency_libs
2929266e564dSmrg	  tmp_libs=
2930266e564dSmrg	  for deplib in $dependency_libs; do
2931266e564dSmrg	    newdependency_libs="$deplib $newdependency_libs"
2932266e564dSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
2933266e564dSmrg	      case "$tmp_libs " in
2934266e564dSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2935266e564dSmrg	      esac
2936266e564dSmrg	    fi
2937266e564dSmrg	    tmp_libs="$tmp_libs $deplib"
2938266e564dSmrg	  done
2939266e564dSmrg
2940266e564dSmrg	  if test "$link_all_deplibs" != no; then
2941266e564dSmrg	    # Add the search paths of all dependency libraries
2942266e564dSmrg	    for deplib in $dependency_libs; do
2943266e564dSmrg	      case $deplib in
2944266e564dSmrg	      -L*) path="$deplib" ;;
2945266e564dSmrg	      *.la)
2946266e564dSmrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2947266e564dSmrg		test "X$dir" = "X$deplib" && dir="."
2948266e564dSmrg		# We need an absolute path.
2949266e564dSmrg		case $dir in
2950266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2951266e564dSmrg		*)
2952266e564dSmrg		  absdir=`cd "$dir" && pwd`
2953266e564dSmrg		  if test -z "$absdir"; then
2954266e564dSmrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2955266e564dSmrg		    absdir="$dir"
2956266e564dSmrg		  fi
2957266e564dSmrg		  ;;
2958266e564dSmrg		esac
2959266e564dSmrg		if grep "^installed=no" $deplib > /dev/null; then
2960266e564dSmrg		  path="$absdir/$objdir"
2961266e564dSmrg		else
2962266e564dSmrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2963266e564dSmrg		  if test -z "$libdir"; then
2964266e564dSmrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2965266e564dSmrg		    exit $EXIT_FAILURE
2966266e564dSmrg		  fi
2967266e564dSmrg		  if test "$absdir" != "$libdir"; then
2968266e564dSmrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2969266e564dSmrg		  fi
2970266e564dSmrg		  path="$absdir"
2971266e564dSmrg		fi
2972266e564dSmrg		depdepl=
2973266e564dSmrg		case $host in
2974266e564dSmrg		*-*-darwin*)
2975266e564dSmrg		  # we do not want to link against static libs,
2976266e564dSmrg		  # but need to link against shared
2977266e564dSmrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2978c5629e66Smrg		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2979266e564dSmrg		  if test -n "$deplibrary_names" ; then
2980266e564dSmrg		    for tmp in $deplibrary_names ; do
2981266e564dSmrg		      depdepl=$tmp
2982266e564dSmrg		    done
2983c5629e66Smrg		    if test -f "$deplibdir/$depdepl" ; then
2984c5629e66Smrg		      depdepl="$deplibdir/$depdepl"
2985c5629e66Smrg	      	    elif test -f "$path/$depdepl" ; then
2986266e564dSmrg		      depdepl="$path/$depdepl"
2987c5629e66Smrg		    else
2988c5629e66Smrg		      # Can't find it, oh well...
2989c5629e66Smrg		      depdepl=
2990266e564dSmrg		    fi
2991266e564dSmrg		    # do not add paths which are already there
2992266e564dSmrg		    case " $newlib_search_path " in
2993266e564dSmrg		    *" $path "*) ;;
2994266e564dSmrg		    *) newlib_search_path="$newlib_search_path $path";;
2995266e564dSmrg		    esac
2996266e564dSmrg		  fi
2997266e564dSmrg		  path=""
2998266e564dSmrg		  ;;
2999266e564dSmrg		*)
3000266e564dSmrg		  path="-L$path"
3001266e564dSmrg		  ;;
3002266e564dSmrg		esac
3003266e564dSmrg		;;
3004266e564dSmrg	      -l*)
3005266e564dSmrg		case $host in
3006266e564dSmrg		*-*-darwin*)
3007266e564dSmrg		  # Again, we only want to link against shared libraries
3008266e564dSmrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
3009266e564dSmrg		  for tmp in $newlib_search_path ; do
3010266e564dSmrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
3011266e564dSmrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
3012266e564dSmrg		      break
3013266e564dSmrg		    fi
3014266e564dSmrg		  done
3015266e564dSmrg		  path=""
3016266e564dSmrg		  ;;
3017266e564dSmrg		*) continue ;;
3018266e564dSmrg		esac
3019266e564dSmrg		;;
3020266e564dSmrg	      *) continue ;;
3021266e564dSmrg	      esac
3022266e564dSmrg	      case " $deplibs " in
3023266e564dSmrg	      *" $path "*) ;;
3024266e564dSmrg	      *) deplibs="$path $deplibs" ;;
3025266e564dSmrg	      esac
3026266e564dSmrg	      case " $deplibs " in
3027266e564dSmrg	      *" $depdepl "*) ;;
3028266e564dSmrg	      *) deplibs="$depdepl $deplibs" ;;
3029266e564dSmrg	      esac
3030266e564dSmrg	    done
3031266e564dSmrg	  fi # link_all_deplibs != no
3032266e564dSmrg	fi # linkmode = lib
3033266e564dSmrg      done # for deplib in $libs
3034266e564dSmrg      dependency_libs="$newdependency_libs"
3035266e564dSmrg      if test "$pass" = dlpreopen; then
3036266e564dSmrg	# Link the dlpreopened libraries before other libraries
3037266e564dSmrg	for deplib in $save_deplibs; do
3038266e564dSmrg	  deplibs="$deplib $deplibs"
3039266e564dSmrg	done
3040266e564dSmrg      fi
3041266e564dSmrg      if test "$pass" != dlopen; then
3042266e564dSmrg	if test "$pass" != conv; then
3043266e564dSmrg	  # Make sure lib_search_path contains only unique directories.
3044266e564dSmrg	  lib_search_path=
3045266e564dSmrg	  for dir in $newlib_search_path; do
3046266e564dSmrg	    case "$lib_search_path " in
3047266e564dSmrg	    *" $dir "*) ;;
3048266e564dSmrg	    *) lib_search_path="$lib_search_path $dir" ;;
3049266e564dSmrg	    esac
3050266e564dSmrg	  done
3051266e564dSmrg	  newlib_search_path=
3052266e564dSmrg	fi
3053266e564dSmrg
3054266e564dSmrg	if test "$linkmode,$pass" != "prog,link"; then
3055266e564dSmrg	  vars="deplibs"
3056266e564dSmrg	else
3057266e564dSmrg	  vars="compile_deplibs finalize_deplibs"
3058266e564dSmrg	fi
3059266e564dSmrg	for var in $vars dependency_libs; do
3060266e564dSmrg	  # Add libraries to $var in reverse order
3061266e564dSmrg	  eval tmp_libs=\"\$$var\"
3062266e564dSmrg	  new_libs=
3063266e564dSmrg	  for deplib in $tmp_libs; do
3064266e564dSmrg	    # FIXME: Pedantically, this is the right thing to do, so
3065266e564dSmrg	    #        that some nasty dependency loop isn't accidentally
3066266e564dSmrg	    #        broken:
3067266e564dSmrg	    #new_libs="$deplib $new_libs"
3068266e564dSmrg	    # Pragmatically, this seems to cause very few problems in
3069266e564dSmrg	    # practice:
3070266e564dSmrg	    case $deplib in
3071266e564dSmrg	    -L*) new_libs="$deplib $new_libs" ;;
3072266e564dSmrg	    -R*) ;;
3073266e564dSmrg	    *)
3074266e564dSmrg	      # And here is the reason: when a library appears more
3075266e564dSmrg	      # than once as an explicit dependence of a library, or
3076266e564dSmrg	      # is implicitly linked in more than once by the
3077266e564dSmrg	      # compiler, it is considered special, and multiple
3078266e564dSmrg	      # occurrences thereof are not removed.  Compare this
3079266e564dSmrg	      # with having the same library being listed as a
3080266e564dSmrg	      # dependency of multiple other libraries: in this case,
3081266e564dSmrg	      # we know (pedantically, we assume) the library does not
3082266e564dSmrg	      # need to be listed more than once, so we keep only the
3083266e564dSmrg	      # last copy.  This is not always right, but it is rare
3084266e564dSmrg	      # enough that we require users that really mean to play
3085266e564dSmrg	      # such unportable linking tricks to link the library
3086266e564dSmrg	      # using -Wl,-lname, so that libtool does not consider it
3087266e564dSmrg	      # for duplicate removal.
3088266e564dSmrg	      case " $specialdeplibs " in
3089266e564dSmrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3090266e564dSmrg	      *)
3091266e564dSmrg		case " $new_libs " in
3092266e564dSmrg		*" $deplib "*) ;;
3093266e564dSmrg		*) new_libs="$deplib $new_libs" ;;
3094266e564dSmrg		esac
3095266e564dSmrg		;;
3096266e564dSmrg	      esac
3097266e564dSmrg	      ;;
3098266e564dSmrg	    esac
3099266e564dSmrg	  done
3100266e564dSmrg	  tmp_libs=
3101266e564dSmrg	  for deplib in $new_libs; do
3102266e564dSmrg	    case $deplib in
3103266e564dSmrg	    -L*)
3104266e564dSmrg	      case " $tmp_libs " in
3105266e564dSmrg	      *" $deplib "*) ;;
3106266e564dSmrg	      *) tmp_libs="$tmp_libs $deplib" ;;
3107266e564dSmrg	      esac
3108266e564dSmrg	      ;;
3109266e564dSmrg	    *) tmp_libs="$tmp_libs $deplib" ;;
3110266e564dSmrg	    esac
3111266e564dSmrg	  done
3112266e564dSmrg	  eval $var=\"$tmp_libs\"
3113266e564dSmrg	done # for var
3114266e564dSmrg      fi
3115266e564dSmrg      # Last step: remove runtime libs from dependency_libs
3116266e564dSmrg      # (they stay in deplibs)
3117266e564dSmrg      tmp_libs=
3118266e564dSmrg      for i in $dependency_libs ; do
3119266e564dSmrg	case " $predeps $postdeps $compiler_lib_search_path " in
3120266e564dSmrg	*" $i "*)
3121266e564dSmrg	  i=""
3122266e564dSmrg	  ;;
3123266e564dSmrg	esac
3124266e564dSmrg	if test -n "$i" ; then
3125266e564dSmrg	  tmp_libs="$tmp_libs $i"
3126266e564dSmrg	fi
3127266e564dSmrg      done
3128266e564dSmrg      dependency_libs=$tmp_libs
3129266e564dSmrg    done # for pass
3130266e564dSmrg    if test "$linkmode" = prog; then
3131266e564dSmrg      dlfiles="$newdlfiles"
3132266e564dSmrg      dlprefiles="$newdlprefiles"
3133266e564dSmrg    fi
3134266e564dSmrg
3135266e564dSmrg    case $linkmode in
3136266e564dSmrg    oldlib)
3137c5629e66Smrg      case " $deplibs" in
3138c5629e66Smrg      *\ -l* | *\ -L*)
3139c5629e66Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
3140c5629e66Smrg      esac
3141266e564dSmrg
3142266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3143266e564dSmrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3144266e564dSmrg      fi
3145266e564dSmrg
3146266e564dSmrg      if test -n "$rpath"; then
3147266e564dSmrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3148266e564dSmrg      fi
3149266e564dSmrg
3150266e564dSmrg      if test -n "$xrpath"; then
3151266e564dSmrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3152266e564dSmrg      fi
3153266e564dSmrg
3154266e564dSmrg      if test -n "$vinfo"; then
3155266e564dSmrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3156266e564dSmrg      fi
3157266e564dSmrg
3158266e564dSmrg      if test -n "$release"; then
3159266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3160266e564dSmrg      fi
3161266e564dSmrg
3162266e564dSmrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3163266e564dSmrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3164266e564dSmrg      fi
3165266e564dSmrg
3166266e564dSmrg      # Now set the variables for building old libraries.
3167266e564dSmrg      build_libtool_libs=no
3168266e564dSmrg      oldlibs="$output"
3169266e564dSmrg      objs="$objs$old_deplibs"
3170266e564dSmrg      ;;
3171266e564dSmrg
3172266e564dSmrg    lib)
3173266e564dSmrg      # Make sure we only generate libraries of the form `libNAME.la'.
3174266e564dSmrg      case $outputname in
3175266e564dSmrg      lib*)
3176266e564dSmrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3177266e564dSmrg	eval shared_ext=\"$shrext_cmds\"
3178266e564dSmrg	eval libname=\"$libname_spec\"
3179266e564dSmrg	;;
3180266e564dSmrg      *)
3181266e564dSmrg	if test "$module" = no; then
3182266e564dSmrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3183266e564dSmrg	  $echo "$help" 1>&2
3184266e564dSmrg	  exit $EXIT_FAILURE
3185266e564dSmrg	fi
3186266e564dSmrg	if test "$need_lib_prefix" != no; then
3187266e564dSmrg	  # Add the "lib" prefix for modules if required
3188266e564dSmrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3189266e564dSmrg	  eval shared_ext=\"$shrext_cmds\"
3190266e564dSmrg	  eval libname=\"$libname_spec\"
3191266e564dSmrg	else
3192266e564dSmrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3193266e564dSmrg	fi
3194266e564dSmrg	;;
3195266e564dSmrg      esac
3196266e564dSmrg
3197266e564dSmrg      if test -n "$objs"; then
3198266e564dSmrg	if test "$deplibs_check_method" != pass_all; then
3199266e564dSmrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3200266e564dSmrg	  exit $EXIT_FAILURE
3201266e564dSmrg	else
3202266e564dSmrg	  $echo
3203266e564dSmrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3204266e564dSmrg	  $echo "*** objects $objs is not portable!"
3205266e564dSmrg	  libobjs="$libobjs $objs"
3206266e564dSmrg	fi
3207266e564dSmrg      fi
3208266e564dSmrg
3209266e564dSmrg      if test "$dlself" != no; then
3210266e564dSmrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3211266e564dSmrg      fi
3212266e564dSmrg
3213266e564dSmrg      set dummy $rpath
3214266e564dSmrg      if test "$#" -gt 2; then
3215266e564dSmrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3216266e564dSmrg      fi
3217266e564dSmrg      install_libdir="$2"
3218266e564dSmrg
3219266e564dSmrg      oldlibs=
3220266e564dSmrg      if test -z "$rpath"; then
3221266e564dSmrg	if test "$build_libtool_libs" = yes; then
3222266e564dSmrg	  # Building a libtool convenience library.
3223266e564dSmrg	  # Some compilers have problems with a `.al' extension so
3224266e564dSmrg	  # convenience libraries should have the same extension an
3225266e564dSmrg	  # archive normally would.
3226266e564dSmrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3227266e564dSmrg	  build_libtool_libs=convenience
3228266e564dSmrg	  build_old_libs=yes
3229266e564dSmrg	fi
3230266e564dSmrg
3231266e564dSmrg	if test -n "$vinfo"; then
3232266e564dSmrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3233266e564dSmrg	fi
3234266e564dSmrg
3235266e564dSmrg	if test -n "$release"; then
3236266e564dSmrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3237266e564dSmrg	fi
3238266e564dSmrg      else
3239266e564dSmrg
3240266e564dSmrg	# Parse the version information argument.
3241266e564dSmrg	save_ifs="$IFS"; IFS=':'
3242266e564dSmrg	set dummy $vinfo 0 0 0
3243266e564dSmrg	IFS="$save_ifs"
3244266e564dSmrg
3245266e564dSmrg	if test -n "$8"; then
3246266e564dSmrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3247266e564dSmrg	  $echo "$help" 1>&2
3248266e564dSmrg	  exit $EXIT_FAILURE
3249266e564dSmrg	fi
3250266e564dSmrg
3251266e564dSmrg	# convert absolute version numbers to libtool ages
3252266e564dSmrg	# this retains compatibility with .la files and attempts
3253266e564dSmrg	# to make the code below a bit more comprehensible
3254266e564dSmrg
3255266e564dSmrg	case $vinfo_number in
3256266e564dSmrg	yes)
3257266e564dSmrg	  number_major="$2"
3258266e564dSmrg	  number_minor="$3"
3259266e564dSmrg	  number_revision="$4"
3260266e564dSmrg	  #
3261266e564dSmrg	  # There are really only two kinds -- those that
3262266e564dSmrg	  # use the current revision as the major version
3263266e564dSmrg	  # and those that subtract age and use age as
3264266e564dSmrg	  # a minor version.  But, then there is irix
3265266e564dSmrg	  # which has an extra 1 added just for fun
3266266e564dSmrg	  #
3267266e564dSmrg	  case $version_type in
3268c5629e66Smrg	  darwin|linux|osf|windows|none)
3269266e564dSmrg	    current=`expr $number_major + $number_minor`
3270266e564dSmrg	    age="$number_minor"
3271266e564dSmrg	    revision="$number_revision"
3272266e564dSmrg	    ;;
3273266e564dSmrg	  freebsd-aout|freebsd-elf|sunos)
3274266e564dSmrg	    current="$number_major"
3275266e564dSmrg	    revision="$number_minor"
3276266e564dSmrg	    age="0"
3277266e564dSmrg	    ;;
3278266e564dSmrg	  irix|nonstopux)
3279c5629e66Smrg	    current=`expr $number_major + $number_minor`
3280266e564dSmrg	    age="$number_minor"
3281266e564dSmrg	    revision="$number_minor"
3282c5629e66Smrg	    lt_irix_increment=no
3283266e564dSmrg	    ;;
3284266e564dSmrg	  esac
3285266e564dSmrg	  ;;
3286266e564dSmrg	no)
3287266e564dSmrg	  current="$2"
3288266e564dSmrg	  revision="$3"
3289266e564dSmrg	  age="$4"
3290266e564dSmrg	  ;;
3291266e564dSmrg	esac
3292266e564dSmrg
3293266e564dSmrg	# Check that each of the things are valid numbers.
3294266e564dSmrg	case $current in
3295266e564dSmrg	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]) ;;
3296266e564dSmrg	*)
3297266e564dSmrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3298266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3299266e564dSmrg	  exit $EXIT_FAILURE
3300266e564dSmrg	  ;;
3301266e564dSmrg	esac
3302266e564dSmrg
3303266e564dSmrg	case $revision in
3304266e564dSmrg	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]) ;;
3305266e564dSmrg	*)
3306266e564dSmrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3307266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3308266e564dSmrg	  exit $EXIT_FAILURE
3309266e564dSmrg	  ;;
3310266e564dSmrg	esac
3311266e564dSmrg
3312266e564dSmrg	case $age in
3313266e564dSmrg	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]) ;;
3314266e564dSmrg	*)
3315266e564dSmrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3316266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3317266e564dSmrg	  exit $EXIT_FAILURE
3318266e564dSmrg	  ;;
3319266e564dSmrg	esac
3320266e564dSmrg
3321266e564dSmrg	if test "$age" -gt "$current"; then
3322266e564dSmrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3323266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3324266e564dSmrg	  exit $EXIT_FAILURE
3325266e564dSmrg	fi
3326266e564dSmrg
3327266e564dSmrg	# Calculate the version variables.
3328266e564dSmrg	major=
3329266e564dSmrg	versuffix=
3330266e564dSmrg	verstring=
3331266e564dSmrg	case $version_type in
3332266e564dSmrg	none) ;;
3333266e564dSmrg
3334266e564dSmrg	darwin)
3335266e564dSmrg	  # Like Linux, but with the current version available in
3336266e564dSmrg	  # verstring for coding it into the library header
3337266e564dSmrg	  major=.`expr $current - $age`
3338266e564dSmrg	  versuffix="$major.$age.$revision"
3339266e564dSmrg	  # Darwin ld doesn't like 0 for these options...
3340266e564dSmrg	  minor_current=`expr $current + 1`
3341c5629e66Smrg	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3342c5629e66Smrg	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3343266e564dSmrg	  ;;
3344266e564dSmrg
3345266e564dSmrg	freebsd-aout)
3346266e564dSmrg	  major=".$current"
3347266e564dSmrg	  versuffix=".$current.$revision";
3348266e564dSmrg	  ;;
3349266e564dSmrg
3350266e564dSmrg	freebsd-elf)
3351266e564dSmrg	  major=".$current"
3352266e564dSmrg	  versuffix=".$current";
3353266e564dSmrg	  ;;
3354266e564dSmrg
3355266e564dSmrg	irix | nonstopux)
3356c5629e66Smrg	  if test "X$lt_irix_increment" = "Xno"; then
3357c5629e66Smrg	    major=`expr $current - $age`
3358c5629e66Smrg	  else
3359c5629e66Smrg	    major=`expr $current - $age + 1`
3360c5629e66Smrg	  fi
3361266e564dSmrg	  case $version_type in
3362266e564dSmrg	    nonstopux) verstring_prefix=nonstopux ;;
3363266e564dSmrg	    *)         verstring_prefix=sgi ;;
3364266e564dSmrg	  esac
3365266e564dSmrg	  verstring="$verstring_prefix$major.$revision"
3366266e564dSmrg
3367266e564dSmrg	  # Add in all the interfaces that we are compatible with.
3368266e564dSmrg	  loop=$revision
3369266e564dSmrg	  while test "$loop" -ne 0; do
3370266e564dSmrg	    iface=`expr $revision - $loop`
3371266e564dSmrg	    loop=`expr $loop - 1`
3372266e564dSmrg	    verstring="$verstring_prefix$major.$iface:$verstring"
3373266e564dSmrg	  done
3374266e564dSmrg
3375266e564dSmrg	  # Before this point, $major must not contain `.'.
3376266e564dSmrg	  major=.$major
3377266e564dSmrg	  versuffix="$major.$revision"
3378266e564dSmrg	  ;;
3379266e564dSmrg
3380266e564dSmrg	linux)
3381266e564dSmrg	  major=.`expr $current - $age`
3382266e564dSmrg	  versuffix="$major.$age.$revision"
3383266e564dSmrg	  ;;
3384266e564dSmrg
3385266e564dSmrg	osf)
3386266e564dSmrg	  major=.`expr $current - $age`
3387266e564dSmrg	  versuffix=".$current.$age.$revision"
3388266e564dSmrg	  verstring="$current.$age.$revision"
3389266e564dSmrg
3390266e564dSmrg	  # Add in all the interfaces that we are compatible with.
3391266e564dSmrg	  loop=$age
3392266e564dSmrg	  while test "$loop" -ne 0; do
3393266e564dSmrg	    iface=`expr $current - $loop`
3394266e564dSmrg	    loop=`expr $loop - 1`
3395266e564dSmrg	    verstring="$verstring:${iface}.0"
3396266e564dSmrg	  done
3397266e564dSmrg
3398266e564dSmrg	  # Make executables depend on our current version.
3399266e564dSmrg	  verstring="$verstring:${current}.0"
3400266e564dSmrg	  ;;
3401266e564dSmrg
3402266e564dSmrg	sunos)
3403266e564dSmrg	  major=".$current"
3404266e564dSmrg	  versuffix=".$current.$revision"
3405266e564dSmrg	  ;;
3406266e564dSmrg
3407266e564dSmrg	windows)
3408266e564dSmrg	  # Use '-' rather than '.', since we only want one
3409266e564dSmrg	  # extension on DOS 8.3 filesystems.
3410266e564dSmrg	  major=`expr $current - $age`
3411266e564dSmrg	  versuffix="-$major"
3412266e564dSmrg	  ;;
3413266e564dSmrg
3414266e564dSmrg	*)
3415266e564dSmrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3416266e564dSmrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3417266e564dSmrg	  exit $EXIT_FAILURE
3418266e564dSmrg	  ;;
3419266e564dSmrg	esac
3420266e564dSmrg
3421266e564dSmrg	# Clear the version info if we defaulted, and they specified a release.
3422266e564dSmrg	if test -z "$vinfo" && test -n "$release"; then
3423266e564dSmrg	  major=
3424266e564dSmrg	  case $version_type in
3425266e564dSmrg	  darwin)
3426266e564dSmrg	    # we can't check for "0.0" in archive_cmds due to quoting
3427266e564dSmrg	    # problems, so we reset it completely
3428266e564dSmrg	    verstring=
3429266e564dSmrg	    ;;
3430266e564dSmrg	  *)
3431266e564dSmrg	    verstring="0.0"
3432266e564dSmrg	    ;;
3433266e564dSmrg	  esac
3434266e564dSmrg	  if test "$need_version" = no; then
3435266e564dSmrg	    versuffix=
3436266e564dSmrg	  else
3437266e564dSmrg	    versuffix=".0.0"
3438266e564dSmrg	  fi
3439266e564dSmrg	fi
3440266e564dSmrg
3441266e564dSmrg	# Remove version info from name if versioning should be avoided
3442266e564dSmrg	if test "$avoid_version" = yes && test "$need_version" = no; then
3443266e564dSmrg	  major=
3444266e564dSmrg	  versuffix=
3445266e564dSmrg	  verstring=""
3446266e564dSmrg	fi
3447266e564dSmrg
3448266e564dSmrg	# Check to see if the archive will have undefined symbols.
3449266e564dSmrg	if test "$allow_undefined" = yes; then
3450266e564dSmrg	  if test "$allow_undefined_flag" = unsupported; then
3451266e564dSmrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3452266e564dSmrg	    build_libtool_libs=no
3453266e564dSmrg	    build_old_libs=yes
3454266e564dSmrg	  fi
3455266e564dSmrg	else
3456266e564dSmrg	  # Don't allow undefined symbols.
3457266e564dSmrg	  allow_undefined_flag="$no_undefined_flag"
3458266e564dSmrg	fi
3459266e564dSmrg      fi
3460266e564dSmrg
3461266e564dSmrg      if test "$mode" != relink; then
3462266e564dSmrg	# Remove our outputs, but don't remove object files since they
3463266e564dSmrg	# may have been created when compiling PIC objects.
3464266e564dSmrg	removelist=
3465266e564dSmrg	tempremovelist=`$echo "$output_objdir/*"`
3466266e564dSmrg	for p in $tempremovelist; do
3467266e564dSmrg	  case $p in
3468266e564dSmrg	    *.$objext)
3469266e564dSmrg	       ;;
3470266e564dSmrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3471266e564dSmrg	       if test "X$precious_files_regex" != "X"; then
3472266e564dSmrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3473266e564dSmrg	         then
3474266e564dSmrg		   continue
3475266e564dSmrg		 fi
3476266e564dSmrg	       fi
3477266e564dSmrg	       removelist="$removelist $p"
3478266e564dSmrg	       ;;
3479266e564dSmrg	    *) ;;
3480266e564dSmrg	  esac
3481266e564dSmrg	done
3482266e564dSmrg	if test -n "$removelist"; then
3483266e564dSmrg	  $show "${rm}r $removelist"
3484266e564dSmrg	  $run ${rm}r $removelist
3485266e564dSmrg	fi
3486266e564dSmrg      fi
3487266e564dSmrg
3488266e564dSmrg      # Now set the variables for building old libraries.
3489266e564dSmrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3490266e564dSmrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3491266e564dSmrg
3492266e564dSmrg	# Transform .lo files to .o files.
3493266e564dSmrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3494266e564dSmrg      fi
3495266e564dSmrg
3496266e564dSmrg      # Eliminate all temporary directories.
3497c5629e66Smrg      #for path in $notinst_path; do
3498c5629e66Smrg      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3499c5629e66Smrg      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3500c5629e66Smrg      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3501c5629e66Smrg      #done
3502266e564dSmrg
3503266e564dSmrg      if test -n "$xrpath"; then
3504266e564dSmrg	# If the user specified any rpath flags, then add them.
3505266e564dSmrg	temp_xrpath=
3506266e564dSmrg	for libdir in $xrpath; do
3507266e564dSmrg	  temp_xrpath="$temp_xrpath -R$libdir"
3508266e564dSmrg	  case "$finalize_rpath " in
3509266e564dSmrg	  *" $libdir "*) ;;
3510266e564dSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3511266e564dSmrg	  esac
3512266e564dSmrg	done
3513266e564dSmrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3514266e564dSmrg	  dependency_libs="$temp_xrpath $dependency_libs"
3515266e564dSmrg	fi
3516266e564dSmrg      fi
3517266e564dSmrg
3518266e564dSmrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
3519266e564dSmrg      old_dlfiles="$dlfiles"
3520266e564dSmrg      dlfiles=
3521266e564dSmrg      for lib in $old_dlfiles; do
3522266e564dSmrg	case " $dlprefiles $dlfiles " in
3523266e564dSmrg	*" $lib "*) ;;
3524266e564dSmrg	*) dlfiles="$dlfiles $lib" ;;
3525266e564dSmrg	esac
3526266e564dSmrg      done
3527266e564dSmrg
3528266e564dSmrg      # Make sure dlprefiles contains only unique files
3529266e564dSmrg      old_dlprefiles="$dlprefiles"
3530266e564dSmrg      dlprefiles=
3531266e564dSmrg      for lib in $old_dlprefiles; do
3532266e564dSmrg	case "$dlprefiles " in
3533266e564dSmrg	*" $lib "*) ;;
3534266e564dSmrg	*) dlprefiles="$dlprefiles $lib" ;;
3535266e564dSmrg	esac
3536266e564dSmrg      done
3537266e564dSmrg
3538266e564dSmrg      if test "$build_libtool_libs" = yes; then
3539266e564dSmrg	if test -n "$rpath"; then
3540266e564dSmrg	  case $host in
3541266e564dSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3542266e564dSmrg	    # these systems don't actually have a c library (as such)!
3543266e564dSmrg	    ;;
3544266e564dSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
3545266e564dSmrg	    # Rhapsody C library is in the System framework
3546266e564dSmrg	    deplibs="$deplibs -framework System"
3547266e564dSmrg	    ;;
3548266e564dSmrg	  *-*-netbsd*)
3549266e564dSmrg	    # Don't link with libc until the a.out ld.so is fixed.
3550266e564dSmrg	    ;;
3551266e564dSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3552266e564dSmrg	    # Do not include libc due to us having libc/libc_r.
3553266e564dSmrg	    ;;
3554266e564dSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
3555266e564dSmrg	    # Causes problems with __ctype
3556266e564dSmrg	    ;;
3557266e564dSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3558266e564dSmrg	    # Compiler inserts libc in the correct place for threads to work
3559266e564dSmrg	    ;;
3560266e564dSmrg 	  *)
3561266e564dSmrg	    # Add libc to deplibs on all other systems if necessary.
3562266e564dSmrg	    if test "$build_libtool_need_lc" = "yes"; then
3563266e564dSmrg	      deplibs="$deplibs -lc"
3564266e564dSmrg	    fi
3565266e564dSmrg	    ;;
3566266e564dSmrg	  esac
3567266e564dSmrg	fi
3568266e564dSmrg
3569266e564dSmrg	# Transform deplibs into only deplibs that can be linked in shared.
3570266e564dSmrg	name_save=$name
3571266e564dSmrg	libname_save=$libname
3572266e564dSmrg	release_save=$release
3573266e564dSmrg	versuffix_save=$versuffix
3574266e564dSmrg	major_save=$major
3575266e564dSmrg	# I'm not sure if I'm treating the release correctly.  I think
3576266e564dSmrg	# release should show up in the -l (ie -lgmp5) so we don't want to
3577266e564dSmrg	# add it in twice.  Is that correct?
3578266e564dSmrg	release=""
3579266e564dSmrg	versuffix=""
3580266e564dSmrg	major=""
3581266e564dSmrg	newdeplibs=
3582266e564dSmrg	droppeddeps=no
3583266e564dSmrg	case $deplibs_check_method in
3584266e564dSmrg	pass_all)
3585266e564dSmrg	  # Don't check for shared/static.  Everything works.
3586266e564dSmrg	  # This might be a little naive.  We might want to check
3587266e564dSmrg	  # whether the library exists or not.  But this is on
3588266e564dSmrg	  # osf3 & osf4 and I'm not really sure... Just
3589266e564dSmrg	  # implementing what was already the behavior.
3590266e564dSmrg	  newdeplibs=$deplibs
3591266e564dSmrg	  ;;
3592266e564dSmrg	test_compile)
3593266e564dSmrg	  # This code stresses the "libraries are programs" paradigm to its
3594266e564dSmrg	  # limits. Maybe even breaks it.  We compile a program, linking it
3595266e564dSmrg	  # against the deplibs as a proxy for the library.  Then we can check
3596266e564dSmrg	  # whether they linked in statically or dynamically with ldd.
3597266e564dSmrg	  $rm conftest.c
3598266e564dSmrg	  cat > conftest.c <<EOF
3599266e564dSmrg	  int main() { return 0; }
3600266e564dSmrgEOF
3601266e564dSmrg	  $rm conftest
3602c5629e66Smrg	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3603266e564dSmrg	    ldd_output=`ldd conftest`
3604266e564dSmrg	    for i in $deplibs; do
3605266e564dSmrg	      name=`expr $i : '-l\(.*\)'`
3606266e564dSmrg	      # If $name is empty we are operating on a -L argument.
3607c5629e66Smrg              if test "$name" != "" && test "$name" != "0"; then
3608266e564dSmrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3609266e564dSmrg		  case " $predeps $postdeps " in
3610266e564dSmrg		  *" $i "*)
3611266e564dSmrg		    newdeplibs="$newdeplibs $i"
3612266e564dSmrg		    i=""
3613266e564dSmrg		    ;;
3614266e564dSmrg		  esac
3615266e564dSmrg	        fi
3616266e564dSmrg		if test -n "$i" ; then
3617266e564dSmrg		  libname=`eval \\$echo \"$libname_spec\"`
3618266e564dSmrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3619266e564dSmrg		  set dummy $deplib_matches
3620266e564dSmrg		  deplib_match=$2
3621266e564dSmrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3622266e564dSmrg		    newdeplibs="$newdeplibs $i"
3623266e564dSmrg		  else
3624266e564dSmrg		    droppeddeps=yes
3625266e564dSmrg		    $echo
3626266e564dSmrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3627266e564dSmrg		    $echo "*** I have the capability to make that library automatically link in when"
3628266e564dSmrg		    $echo "*** you link to this library.  But I can only do this if you have a"
3629266e564dSmrg		    $echo "*** shared version of the library, which I believe you do not have"
3630266e564dSmrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3631266e564dSmrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3632266e564dSmrg		  fi
3633266e564dSmrg		fi
3634266e564dSmrg	      else
3635266e564dSmrg		newdeplibs="$newdeplibs $i"
3636266e564dSmrg	      fi
3637266e564dSmrg	    done
3638266e564dSmrg	  else
3639266e564dSmrg	    # Error occurred in the first compile.  Let's try to salvage
3640266e564dSmrg	    # the situation: Compile a separate program for each library.
3641266e564dSmrg	    for i in $deplibs; do
3642266e564dSmrg	      name=`expr $i : '-l\(.*\)'`
3643266e564dSmrg	      # If $name is empty we are operating on a -L argument.
3644266e564dSmrg              if test "$name" != "" && test "$name" != "0"; then
3645266e564dSmrg		$rm conftest
3646c5629e66Smrg		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3647266e564dSmrg		  ldd_output=`ldd conftest`
3648266e564dSmrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3649266e564dSmrg		    case " $predeps $postdeps " in
3650266e564dSmrg		    *" $i "*)
3651266e564dSmrg		      newdeplibs="$newdeplibs $i"
3652266e564dSmrg		      i=""
3653266e564dSmrg		      ;;
3654266e564dSmrg		    esac
3655266e564dSmrg		  fi
3656266e564dSmrg		  if test -n "$i" ; then
3657266e564dSmrg		    libname=`eval \\$echo \"$libname_spec\"`
3658266e564dSmrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3659266e564dSmrg		    set dummy $deplib_matches
3660266e564dSmrg		    deplib_match=$2
3661266e564dSmrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3662266e564dSmrg		      newdeplibs="$newdeplibs $i"
3663266e564dSmrg		    else
3664266e564dSmrg		      droppeddeps=yes
3665266e564dSmrg		      $echo
3666266e564dSmrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3667266e564dSmrg		      $echo "*** I have the capability to make that library automatically link in when"
3668266e564dSmrg		      $echo "*** you link to this library.  But I can only do this if you have a"
3669266e564dSmrg		      $echo "*** shared version of the library, which you do not appear to have"
3670266e564dSmrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3671266e564dSmrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3672266e564dSmrg		    fi
3673266e564dSmrg		  fi
3674266e564dSmrg		else
3675266e564dSmrg		  droppeddeps=yes
3676266e564dSmrg		  $echo
3677266e564dSmrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3678c5629e66Smrg		  $echo "*** make it link in!  You will probably need to install it or some"
3679266e564dSmrg		  $echo "*** library that it depends on before this library will be fully"
3680266e564dSmrg		  $echo "*** functional.  Installing it before continuing would be even better."
3681266e564dSmrg		fi
3682266e564dSmrg	      else
3683266e564dSmrg		newdeplibs="$newdeplibs $i"
3684266e564dSmrg	      fi
3685266e564dSmrg	    done
3686266e564dSmrg	  fi
3687266e564dSmrg	  ;;
3688266e564dSmrg	file_magic*)
3689266e564dSmrg	  set dummy $deplibs_check_method
3690266e564dSmrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3691266e564dSmrg	  for a_deplib in $deplibs; do
3692266e564dSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
3693266e564dSmrg	    # If $name is empty we are operating on a -L argument.
3694266e564dSmrg            if test "$name" != "" && test  "$name" != "0"; then
3695266e564dSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3696266e564dSmrg		case " $predeps $postdeps " in
3697266e564dSmrg		*" $a_deplib "*)
3698266e564dSmrg		  newdeplibs="$newdeplibs $a_deplib"
3699266e564dSmrg		  a_deplib=""
3700266e564dSmrg		  ;;
3701266e564dSmrg		esac
3702266e564dSmrg	      fi
3703266e564dSmrg	      if test -n "$a_deplib" ; then
3704266e564dSmrg		libname=`eval \\$echo \"$libname_spec\"`
3705266e564dSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3706266e564dSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3707266e564dSmrg		  for potent_lib in $potential_libs; do
3708266e564dSmrg		      # Follow soft links.
3709266e564dSmrg		      if ls -lLd "$potent_lib" 2>/dev/null \
3710266e564dSmrg			 | grep " -> " >/dev/null; then
3711266e564dSmrg			continue
3712266e564dSmrg		      fi
3713266e564dSmrg		      # The statement above tries to avoid entering an
3714266e564dSmrg		      # endless loop below, in case of cyclic links.
3715266e564dSmrg		      # We might still enter an endless loop, since a link
3716266e564dSmrg		      # loop can be closed while we follow links,
3717266e564dSmrg		      # but so what?
3718266e564dSmrg		      potlib="$potent_lib"
3719266e564dSmrg		      while test -h "$potlib" 2>/dev/null; do
3720266e564dSmrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3721266e564dSmrg			case $potliblink in
3722266e564dSmrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3723266e564dSmrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3724266e564dSmrg			esac
3725266e564dSmrg		      done
3726266e564dSmrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3727266e564dSmrg			 | ${SED} 10q \
3728266e564dSmrg			 | $EGREP "$file_magic_regex" > /dev/null; then
3729266e564dSmrg			newdeplibs="$newdeplibs $a_deplib"
3730266e564dSmrg			a_deplib=""
3731266e564dSmrg			break 2
3732266e564dSmrg		      fi
3733266e564dSmrg		  done
3734266e564dSmrg		done
3735266e564dSmrg	      fi
3736266e564dSmrg	      if test -n "$a_deplib" ; then
3737266e564dSmrg		droppeddeps=yes
3738266e564dSmrg		$echo
3739266e564dSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3740266e564dSmrg		$echo "*** I have the capability to make that library automatically link in when"
3741266e564dSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
3742266e564dSmrg		$echo "*** shared version of the library, which you do not appear to have"
3743266e564dSmrg		$echo "*** because I did check the linker path looking for a file starting"
3744266e564dSmrg		if test -z "$potlib" ; then
3745266e564dSmrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3746266e564dSmrg		else
3747266e564dSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3748266e564dSmrg		  $echo "*** using a file magic. Last file checked: $potlib"
3749266e564dSmrg		fi
3750266e564dSmrg	      fi
3751266e564dSmrg	    else
3752266e564dSmrg	      # Add a -L argument.
3753266e564dSmrg	      newdeplibs="$newdeplibs $a_deplib"
3754266e564dSmrg	    fi
3755266e564dSmrg	  done # Gone through all deplibs.
3756266e564dSmrg	  ;;
3757266e564dSmrg	match_pattern*)
3758266e564dSmrg	  set dummy $deplibs_check_method
3759266e564dSmrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3760266e564dSmrg	  for a_deplib in $deplibs; do
3761266e564dSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
3762266e564dSmrg	    # If $name is empty we are operating on a -L argument.
3763266e564dSmrg	    if test -n "$name" && test "$name" != "0"; then
3764266e564dSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3765266e564dSmrg		case " $predeps $postdeps " in
3766266e564dSmrg		*" $a_deplib "*)
3767266e564dSmrg		  newdeplibs="$newdeplibs $a_deplib"
3768266e564dSmrg		  a_deplib=""
3769266e564dSmrg		  ;;
3770266e564dSmrg		esac
3771266e564dSmrg	      fi
3772266e564dSmrg	      if test -n "$a_deplib" ; then
3773266e564dSmrg		libname=`eval \\$echo \"$libname_spec\"`
3774266e564dSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3775266e564dSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3776266e564dSmrg		  for potent_lib in $potential_libs; do
3777266e564dSmrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
3778266e564dSmrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
3779266e564dSmrg		        | ${SED} 10q \
3780266e564dSmrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
3781266e564dSmrg		      newdeplibs="$newdeplibs $a_deplib"
3782266e564dSmrg		      a_deplib=""
3783266e564dSmrg		      break 2
3784266e564dSmrg		    fi
3785266e564dSmrg		  done
3786266e564dSmrg		done
3787266e564dSmrg	      fi
3788266e564dSmrg	      if test -n "$a_deplib" ; then
3789266e564dSmrg		droppeddeps=yes
3790266e564dSmrg		$echo
3791266e564dSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3792266e564dSmrg		$echo "*** I have the capability to make that library automatically link in when"
3793266e564dSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
3794266e564dSmrg		$echo "*** shared version of the library, which you do not appear to have"
3795266e564dSmrg		$echo "*** because I did check the linker path looking for a file starting"
3796266e564dSmrg		if test -z "$potlib" ; then
3797266e564dSmrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3798266e564dSmrg		else
3799266e564dSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3800266e564dSmrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
3801266e564dSmrg		fi
3802266e564dSmrg	      fi
3803266e564dSmrg	    else
3804266e564dSmrg	      # Add a -L argument.
3805266e564dSmrg	      newdeplibs="$newdeplibs $a_deplib"
3806266e564dSmrg	    fi
3807266e564dSmrg	  done # Gone through all deplibs.
3808266e564dSmrg	  ;;
3809266e564dSmrg	none | unknown | *)
3810266e564dSmrg	  newdeplibs=""
3811266e564dSmrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3812266e564dSmrg	    -e 's/ -[LR][^ ]*//g'`
3813266e564dSmrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3814266e564dSmrg	    for i in $predeps $postdeps ; do
3815266e564dSmrg	      # can't use Xsed below, because $i might contain '/'
3816266e564dSmrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3817266e564dSmrg	    done
3818266e564dSmrg	  fi
3819266e564dSmrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3820266e564dSmrg	    | grep . >/dev/null; then
3821266e564dSmrg	    $echo
3822266e564dSmrg	    if test "X$deplibs_check_method" = "Xnone"; then
3823266e564dSmrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3824266e564dSmrg	    else
3825266e564dSmrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3826266e564dSmrg	    fi
3827266e564dSmrg	    $echo "*** All declared inter-library dependencies are being dropped."
3828266e564dSmrg	    droppeddeps=yes
3829266e564dSmrg	  fi
3830266e564dSmrg	  ;;
3831266e564dSmrg	esac
3832266e564dSmrg	versuffix=$versuffix_save
3833266e564dSmrg	major=$major_save
3834266e564dSmrg	release=$release_save
3835266e564dSmrg	libname=$libname_save
3836266e564dSmrg	name=$name_save
3837266e564dSmrg
3838266e564dSmrg	case $host in
3839266e564dSmrg	*-*-rhapsody* | *-*-darwin1.[012])
3840266e564dSmrg	  # On Rhapsody replace the C library is the System framework
3841266e564dSmrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3842266e564dSmrg	  ;;
3843266e564dSmrg	esac
3844266e564dSmrg
3845266e564dSmrg	if test "$droppeddeps" = yes; then
3846266e564dSmrg	  if test "$module" = yes; then
3847266e564dSmrg	    $echo
3848266e564dSmrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3849266e564dSmrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3850266e564dSmrg	    $echo "*** a static module, that should work as long as the dlopening"
3851266e564dSmrg	    $echo "*** application is linked with the -dlopen flag."
3852266e564dSmrg	    if test -z "$global_symbol_pipe"; then
3853266e564dSmrg	      $echo
3854266e564dSmrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
3855266e564dSmrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3856266e564dSmrg	      $echo "*** not find such a program.  So, this module is probably useless."
3857266e564dSmrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3858266e564dSmrg	    fi
3859266e564dSmrg	    if test "$build_old_libs" = no; then
3860266e564dSmrg	      oldlibs="$output_objdir/$libname.$libext"
3861266e564dSmrg	      build_libtool_libs=module
3862266e564dSmrg	      build_old_libs=yes
3863266e564dSmrg	    else
3864266e564dSmrg	      build_libtool_libs=no
3865266e564dSmrg	    fi
3866266e564dSmrg	  else
3867266e564dSmrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
3868266e564dSmrg	    $echo "*** automatically added whenever a program is linked with this library"
3869266e564dSmrg	    $echo "*** or is declared to -dlopen it."
3870266e564dSmrg
3871266e564dSmrg	    if test "$allow_undefined" = no; then
3872266e564dSmrg	      $echo
3873266e564dSmrg	      $echo "*** Since this library must not contain undefined symbols,"
3874266e564dSmrg	      $echo "*** because either the platform does not support them or"
3875266e564dSmrg	      $echo "*** it was explicitly requested with -no-undefined,"
3876266e564dSmrg	      $echo "*** libtool will only create a static version of it."
3877266e564dSmrg	      if test "$build_old_libs" = no; then
3878266e564dSmrg		oldlibs="$output_objdir/$libname.$libext"
3879266e564dSmrg		build_libtool_libs=module
3880266e564dSmrg		build_old_libs=yes
3881266e564dSmrg	      else
3882266e564dSmrg		build_libtool_libs=no
3883266e564dSmrg	      fi
3884266e564dSmrg	    fi
3885266e564dSmrg	  fi
3886266e564dSmrg	fi
3887266e564dSmrg	# Done checking deplibs!
3888266e564dSmrg	deplibs=$newdeplibs
3889266e564dSmrg      fi
3890266e564dSmrg
3891266e564dSmrg
3892266e564dSmrg      # move library search paths that coincide with paths to not yet
3893266e564dSmrg      # installed libraries to the beginning of the library search list
3894266e564dSmrg      new_libs=
3895266e564dSmrg      for path in $notinst_path; do
3896266e564dSmrg	case " $new_libs " in
3897266e564dSmrg	*" -L$path/$objdir "*) ;;
3898266e564dSmrg	*)
3899266e564dSmrg	  case " $deplibs " in
3900266e564dSmrg	  *" -L$path/$objdir "*)
3901266e564dSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
3902266e564dSmrg	  esac
3903266e564dSmrg	  ;;
3904266e564dSmrg	esac
3905266e564dSmrg      done
3906266e564dSmrg      for deplib in $deplibs; do
3907266e564dSmrg	case $deplib in
3908266e564dSmrg	-L*)
3909266e564dSmrg	  case " $new_libs " in
3910266e564dSmrg	  *" $deplib "*) ;;
3911266e564dSmrg	  *) new_libs="$new_libs $deplib" ;;
3912266e564dSmrg	  esac
3913266e564dSmrg	  ;;
3914266e564dSmrg	*) new_libs="$new_libs $deplib" ;;
3915266e564dSmrg	esac
3916266e564dSmrg      done
3917266e564dSmrg      deplibs="$new_libs"
3918266e564dSmrg
3919266e564dSmrg
3920266e564dSmrg      # All the library-specific variables (install_libdir is set above).
3921266e564dSmrg      library_names=
3922266e564dSmrg      old_library=
3923266e564dSmrg      dlname=
3924266e564dSmrg
3925266e564dSmrg      # Test again, we may have decided not to build it any more
3926266e564dSmrg      if test "$build_libtool_libs" = yes; then
3927266e564dSmrg	if test "$hardcode_into_libs" = yes; then
3928266e564dSmrg	  # Hardcode the library paths
3929266e564dSmrg	  hardcode_libdirs=
3930266e564dSmrg	  dep_rpath=
3931266e564dSmrg	  rpath="$finalize_rpath"
3932266e564dSmrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3933266e564dSmrg	  for libdir in $rpath; do
3934266e564dSmrg	    if test -n "$hardcode_libdir_flag_spec"; then
3935266e564dSmrg	      if test -n "$hardcode_libdir_separator"; then
3936266e564dSmrg		if test -z "$hardcode_libdirs"; then
3937266e564dSmrg		  hardcode_libdirs="$libdir"
3938266e564dSmrg		else
3939266e564dSmrg		  # Just accumulate the unique libdirs.
3940266e564dSmrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3941266e564dSmrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3942266e564dSmrg		    ;;
3943266e564dSmrg		  *)
3944266e564dSmrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3945266e564dSmrg		    ;;
3946266e564dSmrg		  esac
3947266e564dSmrg		fi
3948266e564dSmrg	      else
3949266e564dSmrg		eval flag=\"$hardcode_libdir_flag_spec\"
3950266e564dSmrg		dep_rpath="$dep_rpath $flag"
3951266e564dSmrg	      fi
3952266e564dSmrg	    elif test -n "$runpath_var"; then
3953266e564dSmrg	      case "$perm_rpath " in
3954266e564dSmrg	      *" $libdir "*) ;;
3955266e564dSmrg	      *) perm_rpath="$perm_rpath $libdir" ;;
3956266e564dSmrg	      esac
3957266e564dSmrg	    fi
3958266e564dSmrg	  done
3959266e564dSmrg	  # Substitute the hardcoded libdirs into the rpath.
3960266e564dSmrg	  if test -n "$hardcode_libdir_separator" &&
3961266e564dSmrg	     test -n "$hardcode_libdirs"; then
3962266e564dSmrg	    libdir="$hardcode_libdirs"
3963266e564dSmrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3964c5629e66Smrg	      case $archive_cmds in
3965c5629e66Smrg	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
3966c5629e66Smrg	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
3967c5629e66Smrg	      esac
3968266e564dSmrg	    else
3969266e564dSmrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3970266e564dSmrg	    fi
3971266e564dSmrg	  fi
3972266e564dSmrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3973266e564dSmrg	    # We should set the runpath_var.
3974266e564dSmrg	    rpath=
3975266e564dSmrg	    for dir in $perm_rpath; do
3976266e564dSmrg	      rpath="$rpath$dir:"
3977266e564dSmrg	    done
3978266e564dSmrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3979266e564dSmrg	  fi
3980266e564dSmrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3981266e564dSmrg	fi
3982266e564dSmrg
3983266e564dSmrg	shlibpath="$finalize_shlibpath"
3984266e564dSmrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3985266e564dSmrg	if test -n "$shlibpath"; then
3986266e564dSmrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3987266e564dSmrg	fi
3988266e564dSmrg
3989266e564dSmrg	# Get the real and link names of the library.
3990266e564dSmrg	eval shared_ext=\"$shrext_cmds\"
3991266e564dSmrg	eval library_names=\"$library_names_spec\"
3992266e564dSmrg	set dummy $library_names
3993266e564dSmrg	realname="$2"
3994266e564dSmrg	shift; shift
3995266e564dSmrg
3996266e564dSmrg	if test -n "$soname_spec"; then
3997266e564dSmrg	  eval soname=\"$soname_spec\"
3998266e564dSmrg	else
3999266e564dSmrg	  soname="$realname"
4000266e564dSmrg	fi
4001266e564dSmrg	if test -z "$dlname"; then
4002266e564dSmrg	  dlname=$soname
4003266e564dSmrg	fi
4004266e564dSmrg
4005266e564dSmrg	lib="$output_objdir/$realname"
4006266e564dSmrg	linknames=
4007266e564dSmrg	for link
4008266e564dSmrg	do
4009266e564dSmrg	  linknames="$linknames $link"
4010266e564dSmrg	done
4011266e564dSmrg
4012266e564dSmrg	# Use standard objects if they are pic
4013266e564dSmrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4014266e564dSmrg
4015266e564dSmrg	# Prepare the list of exported symbols
4016266e564dSmrg	if test -z "$export_symbols"; then
4017266e564dSmrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
4018266e564dSmrg	    $show "generating symbol list for \`$libname.la'"
4019266e564dSmrg	    export_symbols="$output_objdir/$libname.exp"
4020266e564dSmrg	    $run $rm $export_symbols
4021266e564dSmrg	    cmds=$export_symbols_cmds
4022266e564dSmrg	    save_ifs="$IFS"; IFS='~'
4023266e564dSmrg	    for cmd in $cmds; do
4024266e564dSmrg	      IFS="$save_ifs"
4025266e564dSmrg	      eval cmd=\"$cmd\"
4026266e564dSmrg	      if len=`expr "X$cmd" : ".*"` &&
4027266e564dSmrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4028266e564dSmrg	        $show "$cmd"
4029266e564dSmrg	        $run eval "$cmd" || exit $?
4030266e564dSmrg	        skipped_export=false
4031266e564dSmrg	      else
4032266e564dSmrg	        # The command line is too long to execute in one step.
4033266e564dSmrg	        $show "using reloadable object file for export list..."
4034266e564dSmrg	        skipped_export=:
4035266e564dSmrg		# Break out early, otherwise skipped_export may be
4036266e564dSmrg		# set to false by a later but shorter cmd.
4037266e564dSmrg		break
4038266e564dSmrg	      fi
4039266e564dSmrg	    done
4040266e564dSmrg	    IFS="$save_ifs"
4041266e564dSmrg	    if test -n "$export_symbols_regex"; then
4042266e564dSmrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4043266e564dSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4044266e564dSmrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4045266e564dSmrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
4046266e564dSmrg	    fi
4047266e564dSmrg	  fi
4048266e564dSmrg	fi
4049266e564dSmrg
4050266e564dSmrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
4051266e564dSmrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4052266e564dSmrg	fi
4053266e564dSmrg
4054266e564dSmrg	tmp_deplibs=
4055c5629e66Smrg	inst_prefix_arg=
4056266e564dSmrg	for test_deplib in $deplibs; do
4057266e564dSmrg		case " $convenience " in
4058266e564dSmrg		*" $test_deplib "*) ;;
4059266e564dSmrg		*)
4060c5629e66Smrg			if test -n "$inst_prefix_dir" && (echo "$test_deplib" | grep -- "$inst_prefix_dir" >/dev/null); then
4061c5629e66Smrg				inst_prefix_arg="$inst_prefix_arg $test_deplib"
4062c5629e66Smrg			else
4063c5629e66Smrg				tmp_deplibs="$tmp_deplibs $test_deplib"
4064c5629e66Smrg			fi
4065266e564dSmrg			;;
4066266e564dSmrg		esac
4067266e564dSmrg	done
4068266e564dSmrg	deplibs="$tmp_deplibs"
4069c5629e66Smrg	if test -n "$inst_prefix_arg"; then
4070c5629e66Smrg		deplibs="$inst_prefix_arg $deplibs"
4071c5629e66Smrg	fi
4072266e564dSmrg
4073266e564dSmrg	if test -n "$convenience"; then
4074266e564dSmrg	  if test -n "$whole_archive_flag_spec"; then
4075266e564dSmrg	    save_libobjs=$libobjs
4076266e564dSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4077266e564dSmrg	  else
4078266e564dSmrg	    gentop="$output_objdir/${outputname}x"
4079266e564dSmrg	    generated="$generated $gentop"
4080266e564dSmrg
4081266e564dSmrg	    func_extract_archives $gentop $convenience
4082266e564dSmrg	    libobjs="$libobjs $func_extract_archives_result"
4083266e564dSmrg	  fi
4084266e564dSmrg	fi
4085266e564dSmrg	
4086266e564dSmrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4087266e564dSmrg	  eval flag=\"$thread_safe_flag_spec\"
4088266e564dSmrg	  linker_flags="$linker_flags $flag"
4089266e564dSmrg	fi
4090266e564dSmrg
4091266e564dSmrg	# Make a backup of the uninstalled library when relinking
4092266e564dSmrg	if test "$mode" = relink; then
4093266e564dSmrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4094266e564dSmrg	fi
4095266e564dSmrg
4096266e564dSmrg	# Do each of the archive commands.
4097266e564dSmrg	if test "$module" = yes && test -n "$module_cmds" ; then
4098266e564dSmrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4099266e564dSmrg	    eval test_cmds=\"$module_expsym_cmds\"
4100266e564dSmrg	    cmds=$module_expsym_cmds
4101266e564dSmrg	  else
4102266e564dSmrg	    eval test_cmds=\"$module_cmds\"
4103266e564dSmrg	    cmds=$module_cmds
4104266e564dSmrg	  fi
4105266e564dSmrg	else
4106266e564dSmrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4107266e564dSmrg	  eval test_cmds=\"$archive_expsym_cmds\"
4108266e564dSmrg	  cmds=$archive_expsym_cmds
4109266e564dSmrg	else
4110266e564dSmrg	  eval test_cmds=\"$archive_cmds\"
4111266e564dSmrg	  cmds=$archive_cmds
4112266e564dSmrg	  fi
4113266e564dSmrg	fi
4114266e564dSmrg
4115266e564dSmrg	if test "X$skipped_export" != "X:" &&
4116266e564dSmrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4117266e564dSmrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4118266e564dSmrg	  :
4119266e564dSmrg	else
4120266e564dSmrg	  # The command line is too long to link in one step, link piecewise.
4121266e564dSmrg	  $echo "creating reloadable object files..."
4122266e564dSmrg
4123266e564dSmrg	  # Save the value of $output and $libobjs because we want to
4124266e564dSmrg	  # use them later.  If we have whole_archive_flag_spec, we
4125266e564dSmrg	  # want to use save_libobjs as it was before
4126266e564dSmrg	  # whole_archive_flag_spec was expanded, because we can't
4127266e564dSmrg	  # assume the linker understands whole_archive_flag_spec.
4128266e564dSmrg	  # This may have to be revisited, in case too many
4129266e564dSmrg	  # convenience libraries get linked in and end up exceeding
4130266e564dSmrg	  # the spec.
4131266e564dSmrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4132266e564dSmrg	    save_libobjs=$libobjs
4133266e564dSmrg	  fi
4134266e564dSmrg	  save_output=$output
4135266e564dSmrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4136266e564dSmrg
4137266e564dSmrg	  # Clear the reloadable object creation command queue and
4138266e564dSmrg	  # initialize k to one.
4139266e564dSmrg	  test_cmds=
4140266e564dSmrg	  concat_cmds=
4141266e564dSmrg	  objlist=
4142266e564dSmrg	  delfiles=
4143266e564dSmrg	  last_robj=
4144266e564dSmrg	  k=1
4145266e564dSmrg	  output=$output_objdir/$output_la-${k}.$objext
4146266e564dSmrg	  # Loop over the list of objects to be linked.
4147266e564dSmrg	  for obj in $save_libobjs
4148266e564dSmrg	  do
4149266e564dSmrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4150266e564dSmrg	    if test "X$objlist" = X ||
4151266e564dSmrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4152266e564dSmrg		 test "$len" -le "$max_cmd_len"; }; then
4153266e564dSmrg	      objlist="$objlist $obj"
4154266e564dSmrg	    else
4155266e564dSmrg	      # The command $test_cmds is almost too long, add a
4156266e564dSmrg	      # command to the queue.
4157266e564dSmrg	      if test "$k" -eq 1 ; then
4158266e564dSmrg		# The first file doesn't have a previous command to add.
4159266e564dSmrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4160266e564dSmrg	      else
4161266e564dSmrg		# All subsequent reloadable object files will link in
4162266e564dSmrg		# the last one created.
4163266e564dSmrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4164266e564dSmrg	      fi
4165266e564dSmrg	      last_robj=$output_objdir/$output_la-${k}.$objext
4166266e564dSmrg	      k=`expr $k + 1`
4167266e564dSmrg	      output=$output_objdir/$output_la-${k}.$objext
4168266e564dSmrg	      objlist=$obj
4169266e564dSmrg	      len=1
4170266e564dSmrg	    fi
4171266e564dSmrg	  done
4172266e564dSmrg	  # Handle the remaining objects by creating one last
4173266e564dSmrg	  # reloadable object file.  All subsequent reloadable object
4174266e564dSmrg	  # files will link in the last one created.
4175266e564dSmrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4176266e564dSmrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4177266e564dSmrg
4178266e564dSmrg	  if ${skipped_export-false}; then
4179266e564dSmrg	    $show "generating symbol list for \`$libname.la'"
4180266e564dSmrg	    export_symbols="$output_objdir/$libname.exp"
4181266e564dSmrg	    $run $rm $export_symbols
4182266e564dSmrg	    libobjs=$output
4183266e564dSmrg	    # Append the command to create the export file.
4184266e564dSmrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4185266e564dSmrg          fi
4186266e564dSmrg
4187266e564dSmrg	  # Set up a command to remove the reloadable object files
4188266e564dSmrg	  # after they are used.
4189266e564dSmrg	  i=0
4190266e564dSmrg	  while test "$i" -lt "$k"
4191266e564dSmrg	  do
4192266e564dSmrg	    i=`expr $i + 1`
4193266e564dSmrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4194266e564dSmrg	  done
4195266e564dSmrg
4196266e564dSmrg	  $echo "creating a temporary reloadable object file: $output"
4197266e564dSmrg
4198266e564dSmrg	  # Loop through the commands generated above and execute them.
4199266e564dSmrg	  save_ifs="$IFS"; IFS='~'
4200266e564dSmrg	  for cmd in $concat_cmds; do
4201266e564dSmrg	    IFS="$save_ifs"
4202266e564dSmrg	    $show "$cmd"
4203266e564dSmrg	    $run eval "$cmd" || exit $?
4204266e564dSmrg	  done
4205266e564dSmrg	  IFS="$save_ifs"
4206266e564dSmrg
4207266e564dSmrg	  libobjs=$output
4208266e564dSmrg	  # Restore the value of output.
4209266e564dSmrg	  output=$save_output
4210266e564dSmrg
4211266e564dSmrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4212266e564dSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4213266e564dSmrg	  fi
4214266e564dSmrg	  # Expand the library linking commands again to reset the
4215266e564dSmrg	  # value of $libobjs for piecewise linking.
4216266e564dSmrg
4217266e564dSmrg	  # Do each of the archive commands.
4218266e564dSmrg	  if test "$module" = yes && test -n "$module_cmds" ; then
4219266e564dSmrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4220266e564dSmrg	      cmds=$module_expsym_cmds
4221266e564dSmrg	    else
4222266e564dSmrg	      cmds=$module_cmds
4223266e564dSmrg	    fi
4224266e564dSmrg	  else
4225266e564dSmrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4226266e564dSmrg	    cmds=$archive_expsym_cmds
4227266e564dSmrg	  else
4228266e564dSmrg	    cmds=$archive_cmds
4229266e564dSmrg	    fi
4230266e564dSmrg	  fi
4231266e564dSmrg
4232266e564dSmrg	  # Append the command to remove the reloadable object files
4233266e564dSmrg	  # to the just-reset $cmds.
4234266e564dSmrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
4235266e564dSmrg	fi
4236266e564dSmrg	save_ifs="$IFS"; IFS='~'
4237266e564dSmrg	for cmd in $cmds; do
4238266e564dSmrg	  IFS="$save_ifs"
4239266e564dSmrg	  eval cmd=\"$cmd\"
4240266e564dSmrg	  $show "$cmd"
4241266e564dSmrg	  $run eval "$cmd" || {
4242266e564dSmrg	    lt_exit=$?
4243266e564dSmrg
4244266e564dSmrg	    # Restore the uninstalled library and exit
4245266e564dSmrg	    if test "$mode" = relink; then
4246266e564dSmrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4247266e564dSmrg	    fi
4248266e564dSmrg
4249266e564dSmrg	    exit $lt_exit
4250266e564dSmrg	  }
4251266e564dSmrg	done
4252266e564dSmrg	IFS="$save_ifs"
4253266e564dSmrg
4254266e564dSmrg	# Restore the uninstalled library and exit
4255266e564dSmrg	if test "$mode" = relink; then
4256266e564dSmrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4257266e564dSmrg
4258266e564dSmrg	  if test -n "$convenience"; then
4259266e564dSmrg	    if test -z "$whole_archive_flag_spec"; then
4260266e564dSmrg	      $show "${rm}r $gentop"
4261266e564dSmrg	      $run ${rm}r "$gentop"
4262266e564dSmrg	    fi
4263266e564dSmrg	  fi
4264266e564dSmrg
4265266e564dSmrg	  exit $EXIT_SUCCESS
4266266e564dSmrg	fi
4267266e564dSmrg
4268266e564dSmrg	# Create links to the real library.
4269266e564dSmrg	for linkname in $linknames; do
4270266e564dSmrg	  if test "$realname" != "$linkname"; then
4271266e564dSmrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4272266e564dSmrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4273266e564dSmrg	  fi
4274266e564dSmrg	done
4275266e564dSmrg
4276266e564dSmrg	# If -module or -export-dynamic was specified, set the dlname.
4277266e564dSmrg	if test "$module" = yes || test "$export_dynamic" = yes; then
4278266e564dSmrg	  # On all known operating systems, these are identical.
4279266e564dSmrg	  dlname="$soname"
4280266e564dSmrg	fi
4281266e564dSmrg      fi
4282266e564dSmrg      ;;
4283266e564dSmrg
4284266e564dSmrg    obj)
4285c5629e66Smrg      case " $deplibs" in
4286c5629e66Smrg      *\ -l* | *\ -L*)
4287c5629e66Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
4288c5629e66Smrg      esac
4289266e564dSmrg
4290266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4291266e564dSmrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4292266e564dSmrg      fi
4293266e564dSmrg
4294266e564dSmrg      if test -n "$rpath"; then
4295266e564dSmrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4296266e564dSmrg      fi
4297266e564dSmrg
4298266e564dSmrg      if test -n "$xrpath"; then
4299266e564dSmrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4300266e564dSmrg      fi
4301266e564dSmrg
4302266e564dSmrg      if test -n "$vinfo"; then
4303266e564dSmrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4304266e564dSmrg      fi
4305266e564dSmrg
4306266e564dSmrg      if test -n "$release"; then
4307266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4308266e564dSmrg      fi
4309266e564dSmrg
4310266e564dSmrg      case $output in
4311266e564dSmrg      *.lo)
4312266e564dSmrg	if test -n "$objs$old_deplibs"; then
4313266e564dSmrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4314266e564dSmrg	  exit $EXIT_FAILURE
4315266e564dSmrg	fi
4316266e564dSmrg	libobj="$output"
4317266e564dSmrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4318266e564dSmrg	;;
4319266e564dSmrg      *)
4320266e564dSmrg	libobj=
4321266e564dSmrg	obj="$output"
4322266e564dSmrg	;;
4323266e564dSmrg      esac
4324266e564dSmrg
4325266e564dSmrg      # Delete the old objects.
4326266e564dSmrg      $run $rm $obj $libobj
4327266e564dSmrg
4328266e564dSmrg      # Objects from convenience libraries.  This assumes
4329266e564dSmrg      # single-version convenience libraries.  Whenever we create
4330266e564dSmrg      # different ones for PIC/non-PIC, this we'll have to duplicate
4331266e564dSmrg      # the extraction.
4332266e564dSmrg      reload_conv_objs=
4333266e564dSmrg      gentop=
4334266e564dSmrg      # reload_cmds runs $LD directly, so let us get rid of
4335c5629e66Smrg      # -Wl from whole_archive_flag_spec and hope we can get by with
4336c5629e66Smrg      # turning comma into space..
4337266e564dSmrg      wl=
4338266e564dSmrg
4339266e564dSmrg      if test -n "$convenience"; then
4340266e564dSmrg	if test -n "$whole_archive_flag_spec"; then
4341c5629e66Smrg	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
4342c5629e66Smrg	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
4343266e564dSmrg	else
4344266e564dSmrg	  gentop="$output_objdir/${obj}x"
4345266e564dSmrg	  generated="$generated $gentop"
4346266e564dSmrg
4347266e564dSmrg	  func_extract_archives $gentop $convenience
4348266e564dSmrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4349266e564dSmrg	fi
4350266e564dSmrg      fi
4351266e564dSmrg
4352266e564dSmrg      # Create the old-style object.
4353266e564dSmrg      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
4354266e564dSmrg
4355266e564dSmrg      output="$obj"
4356266e564dSmrg      cmds=$reload_cmds
4357266e564dSmrg      save_ifs="$IFS"; IFS='~'
4358266e564dSmrg      for cmd in $cmds; do
4359266e564dSmrg	IFS="$save_ifs"
4360266e564dSmrg	eval cmd=\"$cmd\"
4361266e564dSmrg	$show "$cmd"
4362266e564dSmrg	$run eval "$cmd" || exit $?
4363266e564dSmrg      done
4364266e564dSmrg      IFS="$save_ifs"
4365266e564dSmrg
4366266e564dSmrg      # Exit if we aren't doing a library object file.
4367266e564dSmrg      if test -z "$libobj"; then
4368266e564dSmrg	if test -n "$gentop"; then
4369266e564dSmrg	  $show "${rm}r $gentop"
4370266e564dSmrg	  $run ${rm}r $gentop
4371266e564dSmrg	fi
4372266e564dSmrg
4373266e564dSmrg	exit $EXIT_SUCCESS
4374266e564dSmrg      fi
4375266e564dSmrg
4376266e564dSmrg      if test "$build_libtool_libs" != yes; then
4377266e564dSmrg	if test -n "$gentop"; then
4378266e564dSmrg	  $show "${rm}r $gentop"
4379266e564dSmrg	  $run ${rm}r $gentop
4380266e564dSmrg	fi
4381266e564dSmrg
4382266e564dSmrg	# Create an invalid libtool object if no PIC, so that we don't
4383266e564dSmrg	# accidentally link it into a program.
4384266e564dSmrg	# $show "echo timestamp > $libobj"
4385266e564dSmrg	# $run eval "echo timestamp > $libobj" || exit $?
4386266e564dSmrg	exit $EXIT_SUCCESS
4387266e564dSmrg      fi
4388266e564dSmrg
4389266e564dSmrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
4390266e564dSmrg	# Only do commands if we really have different PIC objects.
4391266e564dSmrg	reload_objs="$libobjs $reload_conv_objs"
4392266e564dSmrg	output="$libobj"
4393266e564dSmrg	cmds=$reload_cmds
4394266e564dSmrg	save_ifs="$IFS"; IFS='~'
4395266e564dSmrg	for cmd in $cmds; do
4396266e564dSmrg	  IFS="$save_ifs"
4397266e564dSmrg	  eval cmd=\"$cmd\"
4398266e564dSmrg	  $show "$cmd"
4399266e564dSmrg	  $run eval "$cmd" || exit $?
4400266e564dSmrg	done
4401266e564dSmrg	IFS="$save_ifs"
4402266e564dSmrg      fi
4403266e564dSmrg
4404266e564dSmrg      if test -n "$gentop"; then
4405266e564dSmrg	$show "${rm}r $gentop"
4406266e564dSmrg	$run ${rm}r $gentop
4407266e564dSmrg      fi
4408266e564dSmrg
4409266e564dSmrg      exit $EXIT_SUCCESS
4410266e564dSmrg      ;;
4411266e564dSmrg
4412266e564dSmrg    prog)
4413266e564dSmrg      case $host in
4414266e564dSmrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4415266e564dSmrg      esac
4416266e564dSmrg      if test -n "$vinfo"; then
4417266e564dSmrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4418266e564dSmrg      fi
4419266e564dSmrg
4420266e564dSmrg      if test -n "$release"; then
4421266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4422266e564dSmrg      fi
4423266e564dSmrg
4424266e564dSmrg      if test "$preload" = yes; then
4425266e564dSmrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4426266e564dSmrg	   test "$dlopen_self_static" = unknown; then
4427266e564dSmrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4428266e564dSmrg	fi
4429266e564dSmrg      fi
4430266e564dSmrg
4431266e564dSmrg      case $host in
4432266e564dSmrg      *-*-rhapsody* | *-*-darwin1.[012])
4433266e564dSmrg	# On Rhapsody replace the C library is the System framework
4434266e564dSmrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4435266e564dSmrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4436266e564dSmrg	;;
4437266e564dSmrg      esac
4438266e564dSmrg
4439266e564dSmrg      case $host in
4440266e564dSmrg      *darwin*)
4441266e564dSmrg        # Don't allow lazy linking, it breaks C++ global constructors
4442266e564dSmrg        if test "$tagname" = CXX ; then
4443266e564dSmrg        compile_command="$compile_command ${wl}-bind_at_load"
4444266e564dSmrg        finalize_command="$finalize_command ${wl}-bind_at_load"
4445266e564dSmrg        fi
4446266e564dSmrg        ;;
4447266e564dSmrg      esac
4448266e564dSmrg
4449266e564dSmrg
4450266e564dSmrg      # move library search paths that coincide with paths to not yet
4451266e564dSmrg      # installed libraries to the beginning of the library search list
4452266e564dSmrg      new_libs=
4453266e564dSmrg      for path in $notinst_path; do
4454266e564dSmrg	case " $new_libs " in
4455266e564dSmrg	*" -L$path/$objdir "*) ;;
4456266e564dSmrg	*)
4457266e564dSmrg	  case " $compile_deplibs " in
4458266e564dSmrg	  *" -L$path/$objdir "*)
4459266e564dSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
4460266e564dSmrg	  esac
4461266e564dSmrg	  ;;
4462266e564dSmrg	esac
4463266e564dSmrg      done
4464266e564dSmrg      for deplib in $compile_deplibs; do
4465266e564dSmrg	case $deplib in
4466266e564dSmrg	-L*)
4467266e564dSmrg	  case " $new_libs " in
4468266e564dSmrg	  *" $deplib "*) ;;
4469266e564dSmrg	  *) new_libs="$new_libs $deplib" ;;
4470266e564dSmrg	  esac
4471266e564dSmrg	  ;;
4472266e564dSmrg	*) new_libs="$new_libs $deplib" ;;
4473266e564dSmrg	esac
4474266e564dSmrg      done
4475266e564dSmrg      compile_deplibs="$new_libs"
4476266e564dSmrg
4477266e564dSmrg
4478266e564dSmrg      compile_command="$compile_command $compile_deplibs"
4479266e564dSmrg      finalize_command="$finalize_command $finalize_deplibs"
4480266e564dSmrg
4481266e564dSmrg      if test -n "$rpath$xrpath"; then
4482266e564dSmrg	# If the user specified any rpath flags, then add them.
4483266e564dSmrg	for libdir in $rpath $xrpath; do
4484266e564dSmrg	  # This is the magic to use -rpath.
4485266e564dSmrg	  case "$finalize_rpath " in
4486266e564dSmrg	  *" $libdir "*) ;;
4487266e564dSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4488266e564dSmrg	  esac
4489266e564dSmrg	done
4490266e564dSmrg      fi
4491266e564dSmrg
4492266e564dSmrg      # Now hardcode the library paths
4493266e564dSmrg      rpath=
4494266e564dSmrg      hardcode_libdirs=
4495266e564dSmrg      for libdir in $compile_rpath $finalize_rpath; do
4496266e564dSmrg	if test -n "$hardcode_libdir_flag_spec"; then
4497266e564dSmrg	  if test -n "$hardcode_libdir_separator"; then
4498266e564dSmrg	    if test -z "$hardcode_libdirs"; then
4499266e564dSmrg	      hardcode_libdirs="$libdir"
4500266e564dSmrg	    else
4501266e564dSmrg	      # Just accumulate the unique libdirs.
4502266e564dSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4503266e564dSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4504266e564dSmrg		;;
4505266e564dSmrg	      *)
4506266e564dSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4507266e564dSmrg		;;
4508266e564dSmrg	      esac
4509266e564dSmrg	    fi
4510266e564dSmrg	  else
4511266e564dSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4512266e564dSmrg	    rpath="$rpath $flag"
4513266e564dSmrg	  fi
4514266e564dSmrg	elif test -n "$runpath_var"; then
4515266e564dSmrg	  case "$perm_rpath " in
4516266e564dSmrg	  *" $libdir "*) ;;
4517266e564dSmrg	  *) perm_rpath="$perm_rpath $libdir" ;;
4518266e564dSmrg	  esac
4519266e564dSmrg	fi
4520266e564dSmrg	case $host in
4521266e564dSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4522266e564dSmrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4523266e564dSmrg	  case :$dllsearchpath: in
4524266e564dSmrg	  *":$libdir:"*) ;;
4525266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
4526266e564dSmrg	  esac
4527266e564dSmrg	  case :$dllsearchpath: in
4528266e564dSmrg	  *":$testbindir:"*) ;;
4529266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4530266e564dSmrg	  esac
4531266e564dSmrg	  ;;
4532266e564dSmrg	esac
4533266e564dSmrg      done
4534266e564dSmrg      # Substitute the hardcoded libdirs into the rpath.
4535266e564dSmrg      if test -n "$hardcode_libdir_separator" &&
4536266e564dSmrg	 test -n "$hardcode_libdirs"; then
4537266e564dSmrg	libdir="$hardcode_libdirs"
4538266e564dSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4539266e564dSmrg      fi
4540266e564dSmrg      compile_rpath="$rpath"
4541266e564dSmrg
4542266e564dSmrg      rpath=
4543266e564dSmrg      hardcode_libdirs=
4544266e564dSmrg      for libdir in $finalize_rpath; do
4545266e564dSmrg	if test -n "$hardcode_libdir_flag_spec"; then
4546266e564dSmrg	  if test -n "$hardcode_libdir_separator"; then
4547266e564dSmrg	    if test -z "$hardcode_libdirs"; then
4548266e564dSmrg	      hardcode_libdirs="$libdir"
4549266e564dSmrg	    else
4550266e564dSmrg	      # Just accumulate the unique libdirs.
4551266e564dSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4552266e564dSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4553266e564dSmrg		;;
4554266e564dSmrg	      *)
4555266e564dSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4556266e564dSmrg		;;
4557266e564dSmrg	      esac
4558266e564dSmrg	    fi
4559266e564dSmrg	  else
4560266e564dSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4561266e564dSmrg	    rpath="$rpath $flag"
4562266e564dSmrg	  fi
4563266e564dSmrg	elif test -n "$runpath_var"; then
4564266e564dSmrg	  case "$finalize_perm_rpath " in
4565266e564dSmrg	  *" $libdir "*) ;;
4566266e564dSmrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4567266e564dSmrg	  esac
4568266e564dSmrg	fi
4569266e564dSmrg      done
4570266e564dSmrg      # Substitute the hardcoded libdirs into the rpath.
4571266e564dSmrg      if test -n "$hardcode_libdir_separator" &&
4572266e564dSmrg	 test -n "$hardcode_libdirs"; then
4573266e564dSmrg	libdir="$hardcode_libdirs"
4574266e564dSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4575266e564dSmrg      fi
4576266e564dSmrg      finalize_rpath="$rpath"
4577266e564dSmrg
4578266e564dSmrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4579266e564dSmrg	# Transform all the library objects into standard objects.
4580266e564dSmrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4581266e564dSmrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4582266e564dSmrg      fi
4583266e564dSmrg
4584266e564dSmrg      dlsyms=
4585266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4586266e564dSmrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4587266e564dSmrg	  dlsyms="${outputname}S.c"
4588266e564dSmrg	else
4589266e564dSmrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4590266e564dSmrg	fi
4591266e564dSmrg      fi
4592266e564dSmrg
4593266e564dSmrg      if test -n "$dlsyms"; then
4594266e564dSmrg	case $dlsyms in
4595266e564dSmrg	"") ;;
4596266e564dSmrg	*.c)
4597266e564dSmrg	  # Discover the nlist of each of the dlfiles.
4598266e564dSmrg	  nlist="$output_objdir/${outputname}.nm"
4599266e564dSmrg
4600266e564dSmrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
4601266e564dSmrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4602266e564dSmrg
4603266e564dSmrg	  # Parse the name list into a source file.
4604266e564dSmrg	  $show "creating $output_objdir/$dlsyms"
4605266e564dSmrg
4606266e564dSmrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4607266e564dSmrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4608266e564dSmrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4609266e564dSmrg
4610266e564dSmrg#ifdef __cplusplus
4611266e564dSmrgextern \"C\" {
4612266e564dSmrg#endif
4613266e564dSmrg
4614266e564dSmrg/* Prevent the only kind of declaration conflicts we can make. */
4615266e564dSmrg#define lt_preloaded_symbols some_other_symbol
4616266e564dSmrg
4617266e564dSmrg/* External symbol declarations for the compiler. */\
4618266e564dSmrg"
4619266e564dSmrg
4620266e564dSmrg	  if test "$dlself" = yes; then
4621266e564dSmrg	    $show "generating symbol list for \`$output'"
4622266e564dSmrg
4623266e564dSmrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4624266e564dSmrg
4625266e564dSmrg	    # Add our own program objects to the symbol list.
4626266e564dSmrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4627266e564dSmrg	    for arg in $progfiles; do
4628266e564dSmrg	      $show "extracting global C symbols from \`$arg'"
4629266e564dSmrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4630266e564dSmrg	    done
4631266e564dSmrg
4632266e564dSmrg	    if test -n "$exclude_expsyms"; then
4633266e564dSmrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4634266e564dSmrg	      $run eval '$mv "$nlist"T "$nlist"'
4635266e564dSmrg	    fi
4636266e564dSmrg
4637266e564dSmrg	    if test -n "$export_symbols_regex"; then
4638266e564dSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4639266e564dSmrg	      $run eval '$mv "$nlist"T "$nlist"'
4640266e564dSmrg	    fi
4641266e564dSmrg
4642266e564dSmrg	    # Prepare the list of exported symbols
4643266e564dSmrg	    if test -z "$export_symbols"; then
4644266e564dSmrg	      export_symbols="$output_objdir/$outputname.exp"
4645266e564dSmrg	      $run $rm $export_symbols
4646266e564dSmrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4647266e564dSmrg              case $host in
4648266e564dSmrg              *cygwin* | *mingw* )
4649266e564dSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4650266e564dSmrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4651266e564dSmrg                ;;
4652266e564dSmrg              esac
4653266e564dSmrg	    else
4654266e564dSmrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4655266e564dSmrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4656266e564dSmrg	      $run eval 'mv "$nlist"T "$nlist"'
4657266e564dSmrg              case $host in
4658266e564dSmrg              *cygwin* | *mingw* )
4659266e564dSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4660266e564dSmrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4661266e564dSmrg                ;;
4662266e564dSmrg              esac
4663266e564dSmrg	    fi
4664266e564dSmrg	  fi
4665266e564dSmrg
4666266e564dSmrg	  for arg in $dlprefiles; do
4667266e564dSmrg	    $show "extracting global C symbols from \`$arg'"
4668266e564dSmrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4669266e564dSmrg	    $run eval '$echo ": $name " >> "$nlist"'
4670266e564dSmrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4671266e564dSmrg	  done
4672266e564dSmrg
4673266e564dSmrg	  if test -z "$run"; then
4674266e564dSmrg	    # Make sure we have at least an empty file.
4675266e564dSmrg	    test -f "$nlist" || : > "$nlist"
4676266e564dSmrg
4677266e564dSmrg	    if test -n "$exclude_expsyms"; then
4678266e564dSmrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4679266e564dSmrg	      $mv "$nlist"T "$nlist"
4680266e564dSmrg	    fi
4681266e564dSmrg
4682266e564dSmrg	    # Try sorting and uniquifying the output.
4683266e564dSmrg	    if grep -v "^: " < "$nlist" |
4684266e564dSmrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
4685266e564dSmrg		  sort -k 3
4686266e564dSmrg		else
4687266e564dSmrg		  sort +2
4688266e564dSmrg		fi |
4689266e564dSmrg		uniq > "$nlist"S; then
4690266e564dSmrg	      :
4691266e564dSmrg	    else
4692266e564dSmrg	      grep -v "^: " < "$nlist" > "$nlist"S
4693266e564dSmrg	    fi
4694266e564dSmrg
4695266e564dSmrg	    if test -f "$nlist"S; then
4696266e564dSmrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4697266e564dSmrg	    else
4698266e564dSmrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4699266e564dSmrg	    fi
4700266e564dSmrg
4701266e564dSmrg	    $echo >> "$output_objdir/$dlsyms" "\
4702266e564dSmrg
4703266e564dSmrg#undef lt_preloaded_symbols
4704266e564dSmrg
4705266e564dSmrg#if defined (__STDC__) && __STDC__
4706266e564dSmrg# define lt_ptr void *
4707266e564dSmrg#else
4708266e564dSmrg# define lt_ptr char *
4709266e564dSmrg# define const
4710266e564dSmrg#endif
4711266e564dSmrg
4712266e564dSmrg/* The mapping between symbol names and symbols. */
4713266e564dSmrg"
4714266e564dSmrg
4715266e564dSmrg	    case $host in
4716266e564dSmrg	    *cygwin* | *mingw* )
4717266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4718266e564dSmrg/* DATA imports from DLLs on WIN32 can't be const, because
4719266e564dSmrg   runtime relocations are performed -- see ld's documentation
4720266e564dSmrg   on pseudo-relocs */
4721266e564dSmrgstruct {
4722266e564dSmrg"
4723266e564dSmrg	      ;;
4724266e564dSmrg	    * )
4725266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4726266e564dSmrgconst struct {
4727266e564dSmrg"
4728266e564dSmrg	      ;;
4729266e564dSmrg	    esac
4730266e564dSmrg
4731266e564dSmrg
4732266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4733266e564dSmrg  const char *name;
4734266e564dSmrg  lt_ptr address;
4735266e564dSmrg}
4736266e564dSmrglt_preloaded_symbols[] =
4737266e564dSmrg{\
4738266e564dSmrg"
4739266e564dSmrg
4740266e564dSmrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4741266e564dSmrg
4742266e564dSmrg	    $echo >> "$output_objdir/$dlsyms" "\
4743266e564dSmrg  {0, (lt_ptr) 0}
4744266e564dSmrg};
4745266e564dSmrg
4746266e564dSmrg/* This works around a problem in FreeBSD linker */
4747266e564dSmrg#ifdef FREEBSD_WORKAROUND
4748266e564dSmrgstatic const void *lt_preloaded_setup() {
4749266e564dSmrg  return lt_preloaded_symbols;
4750266e564dSmrg}
4751266e564dSmrg#endif
4752266e564dSmrg
4753266e564dSmrg#ifdef __cplusplus
4754266e564dSmrg}
4755266e564dSmrg#endif\
4756266e564dSmrg"
4757266e564dSmrg	  fi
4758266e564dSmrg
4759266e564dSmrg	  pic_flag_for_symtable=
4760266e564dSmrg	  case $host in
4761266e564dSmrg	  # compiling the symbol table file with pic_flag works around
4762266e564dSmrg	  # a FreeBSD bug that causes programs to crash when -lm is
4763266e564dSmrg	  # linked before any other PIC object.  But we must not use
4764266e564dSmrg	  # pic_flag when linking with -static.  The problem exists in
4765266e564dSmrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4766266e564dSmrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4767266e564dSmrg	    case "$compile_command " in
4768266e564dSmrg	    *" -static "*) ;;
4769266e564dSmrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4770266e564dSmrg	    esac;;
4771266e564dSmrg	  *-*-hpux*)
4772266e564dSmrg	    case "$compile_command " in
4773266e564dSmrg	    *" -static "*) ;;
4774266e564dSmrg	    *) pic_flag_for_symtable=" $pic_flag";;
4775266e564dSmrg	    esac
4776266e564dSmrg	  esac
4777266e564dSmrg
4778266e564dSmrg	  # Now compile the dynamic symbol file.
4779266e564dSmrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4780266e564dSmrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4781266e564dSmrg
4782266e564dSmrg	  # Clean up the generated files.
4783266e564dSmrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4784266e564dSmrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4785266e564dSmrg
4786266e564dSmrg	  # Transform the symbol file into the correct name.
4787266e564dSmrg          case $host in
4788266e564dSmrg          *cygwin* | *mingw* )
4789266e564dSmrg            if test -f "$output_objdir/${outputname}.def" ; then
4790c5629e66Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4791c5629e66Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4792266e564dSmrg            else
4793c5629e66Smrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4794c5629e66Smrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4795266e564dSmrg             fi
4796266e564dSmrg            ;;
4797266e564dSmrg          * )
4798c5629e66Smrg            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4799c5629e66Smrg            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4800266e564dSmrg            ;;
4801266e564dSmrg          esac
4802266e564dSmrg	  ;;
4803266e564dSmrg	*)
4804266e564dSmrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4805266e564dSmrg	  exit $EXIT_FAILURE
4806266e564dSmrg	  ;;
4807266e564dSmrg	esac
4808266e564dSmrg      else
4809266e564dSmrg	# We keep going just in case the user didn't refer to
4810266e564dSmrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4811266e564dSmrg	# really was required.
4812266e564dSmrg
4813266e564dSmrg	# Nullify the symbol file.
4814c5629e66Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4815c5629e66Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4816266e564dSmrg      fi
4817266e564dSmrg
4818266e564dSmrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4819266e564dSmrg	# Replace the output file specification.
4820c5629e66Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
4821266e564dSmrg	link_command="$compile_command$compile_rpath"
4822266e564dSmrg
4823266e564dSmrg	# We have no uninstalled library dependencies, so finalize right now.
4824266e564dSmrg	$show "$link_command"
4825266e564dSmrg	$run eval "$link_command"
4826266e564dSmrg	exit_status=$?
4827266e564dSmrg
4828266e564dSmrg	# Delete the generated files.
4829266e564dSmrg	if test -n "$dlsyms"; then
4830266e564dSmrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
4831266e564dSmrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
4832266e564dSmrg	fi
4833266e564dSmrg
4834266e564dSmrg	exit $exit_status
4835266e564dSmrg      fi
4836266e564dSmrg
4837266e564dSmrg      if test -n "$shlibpath_var"; then
4838266e564dSmrg	# We should set the shlibpath_var
4839266e564dSmrg	rpath=
4840266e564dSmrg	for dir in $temp_rpath; do
4841266e564dSmrg	  case $dir in
4842266e564dSmrg	  [\\/]* | [A-Za-z]:[\\/]*)
4843266e564dSmrg	    # Absolute path.
4844266e564dSmrg	    rpath="$rpath$dir:"
4845266e564dSmrg	    ;;
4846266e564dSmrg	  *)
4847266e564dSmrg	    # Relative path: add a thisdir entry.
4848266e564dSmrg	    rpath="$rpath\$thisdir/$dir:"
4849266e564dSmrg	    ;;
4850266e564dSmrg	  esac
4851266e564dSmrg	done
4852266e564dSmrg	temp_rpath="$rpath"
4853266e564dSmrg      fi
4854266e564dSmrg
4855266e564dSmrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4856266e564dSmrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4857266e564dSmrg      fi
4858266e564dSmrg      if test -n "$finalize_shlibpath"; then
4859266e564dSmrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4860266e564dSmrg      fi
4861266e564dSmrg
4862266e564dSmrg      compile_var=
4863266e564dSmrg      finalize_var=
4864266e564dSmrg      if test -n "$runpath_var"; then
4865266e564dSmrg	if test -n "$perm_rpath"; then
4866266e564dSmrg	  # We should set the runpath_var.
4867266e564dSmrg	  rpath=
4868266e564dSmrg	  for dir in $perm_rpath; do
4869266e564dSmrg	    rpath="$rpath$dir:"
4870266e564dSmrg	  done
4871266e564dSmrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4872266e564dSmrg	fi
4873266e564dSmrg	if test -n "$finalize_perm_rpath"; then
4874266e564dSmrg	  # We should set the runpath_var.
4875266e564dSmrg	  rpath=
4876266e564dSmrg	  for dir in $finalize_perm_rpath; do
4877266e564dSmrg	    rpath="$rpath$dir:"
4878266e564dSmrg	  done
4879266e564dSmrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4880266e564dSmrg	fi
4881266e564dSmrg      fi
4882266e564dSmrg
4883266e564dSmrg      if test "$no_install" = yes; then
4884266e564dSmrg	# We don't need to create a wrapper script.
4885266e564dSmrg	link_command="$compile_var$compile_command$compile_rpath"
4886266e564dSmrg	# Replace the output file specification.
4887266e564dSmrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4888266e564dSmrg	# Delete the old output file.
4889266e564dSmrg	$run $rm $output
4890266e564dSmrg	# Link the executable and exit
4891266e564dSmrg	$show "$link_command"
4892266e564dSmrg	$run eval "$link_command" || exit $?
4893266e564dSmrg	exit $EXIT_SUCCESS
4894266e564dSmrg      fi
4895266e564dSmrg
4896266e564dSmrg      if test "$hardcode_action" = relink; then
4897266e564dSmrg	# Fast installation is not supported
4898266e564dSmrg	link_command="$compile_var$compile_command$compile_rpath"
4899266e564dSmrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
4900266e564dSmrg
4901266e564dSmrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4902266e564dSmrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4903266e564dSmrg      else
4904266e564dSmrg	if test "$fast_install" != no; then
4905266e564dSmrg	  link_command="$finalize_var$compile_command$finalize_rpath"
4906266e564dSmrg	  if test "$fast_install" = yes; then
4907c5629e66Smrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
4908266e564dSmrg	  else
4909266e564dSmrg	    # fast_install is set to needless
4910266e564dSmrg	    relink_command=
4911266e564dSmrg	  fi
4912266e564dSmrg	else
4913266e564dSmrg	  link_command="$compile_var$compile_command$compile_rpath"
4914266e564dSmrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4915266e564dSmrg	fi
4916266e564dSmrg      fi
4917266e564dSmrg
4918266e564dSmrg      # Replace the output file specification.
4919266e564dSmrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4920266e564dSmrg
4921266e564dSmrg      # Delete the old output files.
4922266e564dSmrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4923266e564dSmrg
4924266e564dSmrg      $show "$link_command"
4925266e564dSmrg      $run eval "$link_command" || exit $?
4926266e564dSmrg
4927266e564dSmrg      # Now create the wrapper script.
4928266e564dSmrg      $show "creating $output"
4929266e564dSmrg
4930266e564dSmrg      # Quote the relink command for shipping.
4931266e564dSmrg      if test -n "$relink_command"; then
4932266e564dSmrg	# Preserve any variables that may affect compiler behavior
4933266e564dSmrg	for var in $variables_saved_for_relink; do
4934266e564dSmrg	  if eval test -z \"\${$var+set}\"; then
4935266e564dSmrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4936266e564dSmrg	  elif eval var_value=\$$var; test -z "$var_value"; then
4937266e564dSmrg	    relink_command="$var=; export $var; $relink_command"
4938266e564dSmrg	  else
4939266e564dSmrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4940266e564dSmrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4941266e564dSmrg	  fi
4942266e564dSmrg	done
4943266e564dSmrg	relink_command="(cd `pwd`; $relink_command)"
4944c5629e66Smrg	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
4945266e564dSmrg      fi
4946266e564dSmrg
4947266e564dSmrg      # Quote $echo for shipping.
4948266e564dSmrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4949266e564dSmrg	case $progpath in
4950266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4951266e564dSmrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4952266e564dSmrg	esac
4953266e564dSmrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4954266e564dSmrg      else
4955266e564dSmrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4956266e564dSmrg      fi
4957266e564dSmrg
4958266e564dSmrg      # Only actually do things if our run command is non-null.
4959266e564dSmrg      if test -z "$run"; then
4960266e564dSmrg	# win32 will think the script is a binary if it has
4961266e564dSmrg	# a .exe suffix, so we strip it off here.
4962266e564dSmrg	case $output in
4963266e564dSmrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4964266e564dSmrg	esac
4965266e564dSmrg	# test for cygwin because mv fails w/o .exe extensions
4966266e564dSmrg	case $host in
4967266e564dSmrg	  *cygwin*)
4968266e564dSmrg	    exeext=.exe
4969266e564dSmrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4970266e564dSmrg	  *) exeext= ;;
4971266e564dSmrg	esac
4972266e564dSmrg	case $host in
4973266e564dSmrg	  *cygwin* | *mingw* )
4974266e564dSmrg            output_name=`basename $output`
4975266e564dSmrg            output_path=`dirname $output`
4976266e564dSmrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4977266e564dSmrg            cwrapper="$output_path/$output_name.exe"
4978266e564dSmrg            $rm $cwrappersource $cwrapper
4979266e564dSmrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4980266e564dSmrg
4981266e564dSmrg	    cat > $cwrappersource <<EOF
4982266e564dSmrg
4983266e564dSmrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4984266e564dSmrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4985266e564dSmrg
4986266e564dSmrg   The $output program cannot be directly executed until all the libtool
4987266e564dSmrg   libraries that it depends on are installed.
4988266e564dSmrg
4989266e564dSmrg   This wrapper executable should never be moved out of the build directory.
4990266e564dSmrg   If it is, it will not operate correctly.
4991266e564dSmrg
4992266e564dSmrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4993266e564dSmrg   but could eventually absorb all of the scripts functionality and
4994266e564dSmrg   exec $objdir/$outputname directly.
4995266e564dSmrg*/
4996266e564dSmrgEOF
4997266e564dSmrg	    cat >> $cwrappersource<<"EOF"
4998266e564dSmrg#include <stdio.h>
4999266e564dSmrg#include <stdlib.h>
5000266e564dSmrg#include <unistd.h>
5001266e564dSmrg#include <malloc.h>
5002266e564dSmrg#include <stdarg.h>
5003266e564dSmrg#include <assert.h>
5004266e564dSmrg#include <string.h>
5005266e564dSmrg#include <ctype.h>
5006266e564dSmrg#include <sys/stat.h>
5007266e564dSmrg
5008266e564dSmrg#if defined(PATH_MAX)
5009266e564dSmrg# define LT_PATHMAX PATH_MAX
5010266e564dSmrg#elif defined(MAXPATHLEN)
5011266e564dSmrg# define LT_PATHMAX MAXPATHLEN
5012266e564dSmrg#else
5013266e564dSmrg# define LT_PATHMAX 1024
5014266e564dSmrg#endif
5015266e564dSmrg
5016266e564dSmrg#ifndef DIR_SEPARATOR
5017266e564dSmrg# define DIR_SEPARATOR '/'
5018266e564dSmrg# define PATH_SEPARATOR ':'
5019266e564dSmrg#endif
5020266e564dSmrg
5021266e564dSmrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
5022266e564dSmrg  defined (__OS2__)
5023266e564dSmrg# define HAVE_DOS_BASED_FILE_SYSTEM
5024266e564dSmrg# ifndef DIR_SEPARATOR_2
5025266e564dSmrg#  define DIR_SEPARATOR_2 '\\'
5026266e564dSmrg# endif
5027266e564dSmrg# ifndef PATH_SEPARATOR_2
5028266e564dSmrg#  define PATH_SEPARATOR_2 ';'
5029266e564dSmrg# endif
5030266e564dSmrg#endif
5031266e564dSmrg
5032266e564dSmrg#ifndef DIR_SEPARATOR_2
5033266e564dSmrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
5034266e564dSmrg#else /* DIR_SEPARATOR_2 */
5035266e564dSmrg# define IS_DIR_SEPARATOR(ch) \
5036266e564dSmrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
5037266e564dSmrg#endif /* DIR_SEPARATOR_2 */
5038266e564dSmrg
5039266e564dSmrg#ifndef PATH_SEPARATOR_2
5040266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
5041266e564dSmrg#else /* PATH_SEPARATOR_2 */
5042266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
5043266e564dSmrg#endif /* PATH_SEPARATOR_2 */
5044266e564dSmrg
5045266e564dSmrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5046266e564dSmrg#define XFREE(stale) do { \
5047266e564dSmrg  if (stale) { free ((void *) stale); stale = 0; } \
5048266e564dSmrg} while (0)
5049266e564dSmrg
5050266e564dSmrg/* -DDEBUG is fairly common in CFLAGS.  */
5051266e564dSmrg#undef DEBUG
5052266e564dSmrg#if defined DEBUGWRAPPER
5053266e564dSmrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
5054266e564dSmrg#else
5055266e564dSmrg# define DEBUG(format, ...)
5056266e564dSmrg#endif
5057266e564dSmrg
5058266e564dSmrgconst char *program_name = NULL;
5059266e564dSmrg
5060266e564dSmrgvoid * xmalloc (size_t num);
5061266e564dSmrgchar * xstrdup (const char *string);
5062266e564dSmrgconst char * base_name (const char *name);
5063266e564dSmrgchar * find_executable(const char *wrapper);
5064266e564dSmrgint    check_executable(const char *path);
5065266e564dSmrgchar * strendzap(char *str, const char *pat);
5066266e564dSmrgvoid lt_fatal (const char *message, ...);
5067266e564dSmrg
5068266e564dSmrgint
5069266e564dSmrgmain (int argc, char *argv[])
5070266e564dSmrg{
5071266e564dSmrg  char **newargz;
5072266e564dSmrg  int i;
5073266e564dSmrg
5074266e564dSmrg  program_name = (char *) xstrdup (base_name (argv[0]));
5075266e564dSmrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5076266e564dSmrg  DEBUG("(main) program_name : %s\n",program_name);
5077266e564dSmrg  newargz = XMALLOC(char *, argc+2);
5078266e564dSmrgEOF
5079266e564dSmrg
5080266e564dSmrg            cat >> $cwrappersource <<EOF
5081266e564dSmrg  newargz[0] = (char *) xstrdup("$SHELL");
5082266e564dSmrgEOF
5083266e564dSmrg
5084266e564dSmrg            cat >> $cwrappersource <<"EOF"
5085266e564dSmrg  newargz[1] = find_executable(argv[0]);
5086266e564dSmrg  if (newargz[1] == NULL)
5087266e564dSmrg    lt_fatal("Couldn't find %s", argv[0]);
5088266e564dSmrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
5089266e564dSmrg  /* we know the script has the same name, without the .exe */
5090266e564dSmrg  /* so make sure newargz[1] doesn't end in .exe */
5091266e564dSmrg  strendzap(newargz[1],".exe");
5092266e564dSmrg  for (i = 1; i < argc; i++)
5093266e564dSmrg    newargz[i+1] = xstrdup(argv[i]);
5094266e564dSmrg  newargz[argc+1] = NULL;
5095266e564dSmrg
5096266e564dSmrg  for (i=0; i<argc+1; i++)
5097266e564dSmrg  {
5098266e564dSmrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5099266e564dSmrg    ;
5100266e564dSmrg  }
5101266e564dSmrg
5102266e564dSmrgEOF
5103266e564dSmrg
5104266e564dSmrg            case $host_os in
5105266e564dSmrg              mingw*)
5106266e564dSmrg                cat >> $cwrappersource <<EOF
5107266e564dSmrg  execv("$SHELL",(char const **)newargz);
5108266e564dSmrgEOF
5109266e564dSmrg              ;;
5110266e564dSmrg              *)
5111266e564dSmrg                cat >> $cwrappersource <<EOF
5112266e564dSmrg  execv("$SHELL",newargz);
5113266e564dSmrgEOF
5114266e564dSmrg              ;;
5115266e564dSmrg            esac
5116266e564dSmrg
5117266e564dSmrg            cat >> $cwrappersource <<"EOF"
5118266e564dSmrg  return 127;
5119266e564dSmrg}
5120266e564dSmrg
5121266e564dSmrgvoid *
5122266e564dSmrgxmalloc (size_t num)
5123266e564dSmrg{
5124266e564dSmrg  void * p = (void *) malloc (num);
5125266e564dSmrg  if (!p)
5126266e564dSmrg    lt_fatal ("Memory exhausted");
5127266e564dSmrg
5128266e564dSmrg  return p;
5129266e564dSmrg}
5130266e564dSmrg
5131266e564dSmrgchar *
5132266e564dSmrgxstrdup (const char *string)
5133266e564dSmrg{
5134266e564dSmrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5135266e564dSmrg;
5136266e564dSmrg}
5137266e564dSmrg
5138266e564dSmrgconst char *
5139266e564dSmrgbase_name (const char *name)
5140266e564dSmrg{
5141266e564dSmrg  const char *base;
5142266e564dSmrg
5143266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5144266e564dSmrg  /* Skip over the disk name in MSDOS pathnames. */
5145266e564dSmrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5146266e564dSmrg    name += 2;
5147266e564dSmrg#endif
5148266e564dSmrg
5149266e564dSmrg  for (base = name; *name; name++)
5150266e564dSmrg    if (IS_DIR_SEPARATOR (*name))
5151266e564dSmrg      base = name + 1;
5152266e564dSmrg  return base;
5153266e564dSmrg}
5154266e564dSmrg
5155266e564dSmrgint
5156266e564dSmrgcheck_executable(const char * path)
5157266e564dSmrg{
5158266e564dSmrg  struct stat st;
5159266e564dSmrg
5160266e564dSmrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5161266e564dSmrg  if ((!path) || (!*path))
5162266e564dSmrg    return 0;
5163266e564dSmrg
5164266e564dSmrg  if ((stat (path, &st) >= 0) &&
5165266e564dSmrg      (
5166266e564dSmrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5167266e564dSmrg#if defined (S_IXOTH)
5168266e564dSmrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5169266e564dSmrg#endif
5170266e564dSmrg#if defined (S_IXGRP)
5171266e564dSmrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5172266e564dSmrg#endif
5173266e564dSmrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
5174266e564dSmrg      )
5175266e564dSmrg    return 1;
5176266e564dSmrg  else
5177266e564dSmrg    return 0;
5178266e564dSmrg}
5179266e564dSmrg
5180266e564dSmrg/* Searches for the full path of the wrapper.  Returns
5181266e564dSmrg   newly allocated full path name if found, NULL otherwise */
5182266e564dSmrgchar *
5183266e564dSmrgfind_executable (const char* wrapper)
5184266e564dSmrg{
5185266e564dSmrg  int has_slash = 0;
5186266e564dSmrg  const char* p;
5187266e564dSmrg  const char* p_next;
5188266e564dSmrg  /* static buffer for getcwd */
5189266e564dSmrg  char tmp[LT_PATHMAX + 1];
5190266e564dSmrg  int tmp_len;
5191266e564dSmrg  char* concat_name;
5192266e564dSmrg
5193266e564dSmrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5194266e564dSmrg
5195266e564dSmrg  if ((wrapper == NULL) || (*wrapper == '\0'))
5196266e564dSmrg    return NULL;
5197266e564dSmrg
5198266e564dSmrg  /* Absolute path? */
5199266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5200266e564dSmrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5201266e564dSmrg  {
5202266e564dSmrg    concat_name = xstrdup (wrapper);
5203266e564dSmrg    if (check_executable(concat_name))
5204266e564dSmrg      return concat_name;
5205266e564dSmrg    XFREE(concat_name);
5206266e564dSmrg  }
5207266e564dSmrg  else
5208266e564dSmrg  {
5209266e564dSmrg#endif
5210266e564dSmrg    if (IS_DIR_SEPARATOR (wrapper[0]))
5211266e564dSmrg    {
5212266e564dSmrg      concat_name = xstrdup (wrapper);
5213266e564dSmrg      if (check_executable(concat_name))
5214266e564dSmrg        return concat_name;
5215266e564dSmrg      XFREE(concat_name);
5216266e564dSmrg    }
5217266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5218266e564dSmrg  }
5219266e564dSmrg#endif
5220266e564dSmrg
5221266e564dSmrg  for (p = wrapper; *p; p++)
5222266e564dSmrg    if (*p == '/')
5223266e564dSmrg    {
5224266e564dSmrg      has_slash = 1;
5225266e564dSmrg      break;
5226266e564dSmrg    }
5227266e564dSmrg  if (!has_slash)
5228266e564dSmrg  {
5229266e564dSmrg    /* no slashes; search PATH */
5230266e564dSmrg    const char* path = getenv ("PATH");
5231266e564dSmrg    if (path != NULL)
5232266e564dSmrg    {
5233266e564dSmrg      for (p = path; *p; p = p_next)
5234266e564dSmrg      {
5235266e564dSmrg        const char* q;
5236266e564dSmrg        size_t p_len;
5237266e564dSmrg        for (q = p; *q; q++)
5238266e564dSmrg          if (IS_PATH_SEPARATOR(*q))
5239266e564dSmrg            break;
5240266e564dSmrg        p_len = q - p;
5241266e564dSmrg        p_next = (*q == '\0' ? q : q + 1);
5242266e564dSmrg        if (p_len == 0)
5243266e564dSmrg        {
5244266e564dSmrg          /* empty path: current directory */
5245266e564dSmrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
5246266e564dSmrg            lt_fatal ("getcwd failed");
5247266e564dSmrg          tmp_len = strlen(tmp);
5248266e564dSmrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5249266e564dSmrg          memcpy (concat_name, tmp, tmp_len);
5250266e564dSmrg          concat_name[tmp_len] = '/';
5251266e564dSmrg          strcpy (concat_name + tmp_len + 1, wrapper);
5252266e564dSmrg        }
5253266e564dSmrg        else
5254266e564dSmrg        {
5255266e564dSmrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5256266e564dSmrg          memcpy (concat_name, p, p_len);
5257266e564dSmrg          concat_name[p_len] = '/';
5258266e564dSmrg          strcpy (concat_name + p_len + 1, wrapper);
5259266e564dSmrg        }
5260266e564dSmrg        if (check_executable(concat_name))
5261266e564dSmrg          return concat_name;
5262266e564dSmrg        XFREE(concat_name);
5263266e564dSmrg      }
5264266e564dSmrg    }
5265266e564dSmrg    /* not found in PATH; assume curdir */
5266266e564dSmrg  }
5267266e564dSmrg  /* Relative path | not found in path: prepend cwd */
5268266e564dSmrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
5269266e564dSmrg    lt_fatal ("getcwd failed");
5270266e564dSmrg  tmp_len = strlen(tmp);
5271266e564dSmrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5272266e564dSmrg  memcpy (concat_name, tmp, tmp_len);
5273266e564dSmrg  concat_name[tmp_len] = '/';
5274266e564dSmrg  strcpy (concat_name + tmp_len + 1, wrapper);
5275266e564dSmrg
5276266e564dSmrg  if (check_executable(concat_name))
5277266e564dSmrg    return concat_name;
5278266e564dSmrg  XFREE(concat_name);
5279266e564dSmrg  return NULL;
5280266e564dSmrg}
5281266e564dSmrg
5282266e564dSmrgchar *
5283266e564dSmrgstrendzap(char *str, const char *pat)
5284266e564dSmrg{
5285266e564dSmrg  size_t len, patlen;
5286266e564dSmrg
5287266e564dSmrg  assert(str != NULL);
5288266e564dSmrg  assert(pat != NULL);
5289266e564dSmrg
5290266e564dSmrg  len = strlen(str);
5291266e564dSmrg  patlen = strlen(pat);
5292266e564dSmrg
5293266e564dSmrg  if (patlen <= len)
5294266e564dSmrg  {
5295266e564dSmrg    str += len - patlen;
5296266e564dSmrg    if (strcmp(str, pat) == 0)
5297266e564dSmrg      *str = '\0';
5298266e564dSmrg  }
5299266e564dSmrg  return str;
5300266e564dSmrg}
5301266e564dSmrg
5302266e564dSmrgstatic void
5303266e564dSmrglt_error_core (int exit_status, const char * mode,
5304266e564dSmrg          const char * message, va_list ap)
5305266e564dSmrg{
5306266e564dSmrg  fprintf (stderr, "%s: %s: ", program_name, mode);
5307266e564dSmrg  vfprintf (stderr, message, ap);
5308266e564dSmrg  fprintf (stderr, ".\n");
5309266e564dSmrg
5310266e564dSmrg  if (exit_status >= 0)
5311266e564dSmrg    exit (exit_status);
5312266e564dSmrg}
5313266e564dSmrg
5314266e564dSmrgvoid
5315266e564dSmrglt_fatal (const char *message, ...)
5316266e564dSmrg{
5317266e564dSmrg  va_list ap;
5318266e564dSmrg  va_start (ap, message);
5319266e564dSmrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5320266e564dSmrg  va_end (ap);
5321266e564dSmrg}
5322266e564dSmrgEOF
5323266e564dSmrg          # we should really use a build-platform specific compiler
5324266e564dSmrg          # here, but OTOH, the wrappers (shell script and this C one)
5325266e564dSmrg          # are only useful if you want to execute the "real" binary.
5326266e564dSmrg          # Since the "real" binary is built for $host, then this
5327266e564dSmrg          # wrapper might as well be built for $host, too.
5328266e564dSmrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5329266e564dSmrg          ;;
5330266e564dSmrg        esac
5331266e564dSmrg        $rm $output
5332266e564dSmrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5333266e564dSmrg
5334266e564dSmrg	$echo > $output "\
5335266e564dSmrg#! $SHELL
5336266e564dSmrg
5337266e564dSmrg# $output - temporary wrapper script for $objdir/$outputname
5338266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5339266e564dSmrg#
5340266e564dSmrg# The $output program cannot be directly executed until all the libtool
5341266e564dSmrg# libraries that it depends on are installed.
5342266e564dSmrg#
5343266e564dSmrg# This wrapper script should never be moved out of the build directory.
5344266e564dSmrg# If it is, it will not operate correctly.
5345266e564dSmrg
5346266e564dSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
5347266e564dSmrg# metacharacters that are still active within double-quoted strings.
5348266e564dSmrgXsed='${SED} -e 1s/^X//'
5349266e564dSmrgsed_quote_subst='$sed_quote_subst'
5350266e564dSmrg
5351c5629e66Smrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5352c5629e66Smrgif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5353c5629e66Smrg  emulate sh
5354c5629e66Smrg  NULLCMD=:
5355c5629e66Smrg  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5356c5629e66Smrg  # is contrary to our usage.  Disable this feature.
5357c5629e66Smrg  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5358c5629e66Smrg  setopt NO_GLOB_SUBST
5359c5629e66Smrgelse
5360c5629e66Smrg  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5361c5629e66Smrgfi
5362c5629e66SmrgBIN_SH=xpg4; export BIN_SH # for Tru64
5363c5629e66SmrgDUALCASE=1; export DUALCASE # for MKS sh
5364c5629e66Smrg
5365266e564dSmrg# The HP-UX ksh and POSIX shell print the target directory to stdout
5366266e564dSmrg# if CDPATH is set.
5367266e564dSmrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5368266e564dSmrg
5369266e564dSmrgrelink_command=\"$relink_command\"
5370266e564dSmrg
5371266e564dSmrg# This environment variable determines our operation mode.
5372266e564dSmrgif test \"\$libtool_install_magic\" = \"$magic\"; then
5373266e564dSmrg  # install mode needs the following variable:
5374266e564dSmrg  notinst_deplibs='$notinst_deplibs'
5375266e564dSmrgelse
5376266e564dSmrg  # When we are sourced in execute mode, \$file and \$echo are already set.
5377266e564dSmrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5378266e564dSmrg    echo=\"$qecho\"
5379266e564dSmrg    file=\"\$0\"
5380266e564dSmrg    # Make sure echo works.
5381266e564dSmrg    if test \"X\$1\" = X--no-reexec; then
5382266e564dSmrg      # Discard the --no-reexec flag, and continue.
5383266e564dSmrg      shift
5384266e564dSmrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5385266e564dSmrg      # Yippee, \$echo works!
5386266e564dSmrg      :
5387266e564dSmrg    else
5388266e564dSmrg      # Restart under the correct shell, and then maybe \$echo will work.
5389266e564dSmrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5390266e564dSmrg    fi
5391266e564dSmrg  fi\
5392266e564dSmrg"
5393266e564dSmrg	$echo >> $output "\
5394266e564dSmrg
5395266e564dSmrg  # Find the directory that this script lives in.
5396266e564dSmrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5397266e564dSmrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5398266e564dSmrg
5399266e564dSmrg  # Follow symbolic links until we get to the real thisdir.
5400266e564dSmrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5401266e564dSmrg  while test -n \"\$file\"; do
5402266e564dSmrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5403266e564dSmrg
5404266e564dSmrg    # If there was a directory component, then change thisdir.
5405266e564dSmrg    if test \"x\$destdir\" != \"x\$file\"; then
5406266e564dSmrg      case \"\$destdir\" in
5407266e564dSmrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5408266e564dSmrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
5409266e564dSmrg      esac
5410266e564dSmrg    fi
5411266e564dSmrg
5412266e564dSmrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5413266e564dSmrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5414266e564dSmrg  done
5415266e564dSmrg
5416266e564dSmrg  # Try to get the absolute directory name.
5417266e564dSmrg  absdir=\`cd \"\$thisdir\" && pwd\`
5418266e564dSmrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5419266e564dSmrg"
5420266e564dSmrg
5421266e564dSmrg	if test "$fast_install" = yes; then
5422266e564dSmrg	  $echo >> $output "\
5423266e564dSmrg  program=lt-'$outputname'$exeext
5424266e564dSmrg  progdir=\"\$thisdir/$objdir\"
5425266e564dSmrg
5426266e564dSmrg  if test ! -f \"\$progdir/\$program\" || \\
5427266e564dSmrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5428266e564dSmrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5429266e564dSmrg
5430266e564dSmrg    file=\"\$\$-\$program\"
5431266e564dSmrg
5432266e564dSmrg    if test ! -d \"\$progdir\"; then
5433266e564dSmrg      $mkdir \"\$progdir\"
5434266e564dSmrg    else
5435266e564dSmrg      $rm \"\$progdir/\$file\"
5436266e564dSmrg    fi"
5437266e564dSmrg
5438266e564dSmrg	  $echo >> $output "\
5439266e564dSmrg
5440266e564dSmrg    # relink executable if necessary
5441266e564dSmrg    if test -n \"\$relink_command\"; then
5442266e564dSmrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5443266e564dSmrg      else
5444266e564dSmrg	$echo \"\$relink_command_output\" >&2
5445266e564dSmrg	$rm \"\$progdir/\$file\"
5446266e564dSmrg	exit $EXIT_FAILURE
5447266e564dSmrg      fi
5448266e564dSmrg    fi
5449266e564dSmrg
5450266e564dSmrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5451266e564dSmrg    { $rm \"\$progdir/\$program\";
5452266e564dSmrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5453266e564dSmrg    $rm \"\$progdir/\$file\"
5454266e564dSmrg  fi"
5455266e564dSmrg	else
5456266e564dSmrg	  $echo >> $output "\
5457266e564dSmrg  program='$outputname'
5458266e564dSmrg  progdir=\"\$thisdir/$objdir\"
5459266e564dSmrg"
5460266e564dSmrg	fi
5461266e564dSmrg
5462266e564dSmrg	$echo >> $output "\
5463266e564dSmrg
5464266e564dSmrg  if test -f \"\$progdir/\$program\"; then"
5465266e564dSmrg
5466266e564dSmrg	# Export our shlibpath_var if we have one.
5467266e564dSmrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5468266e564dSmrg	  $echo >> $output "\
5469266e564dSmrg    # Add our own library path to $shlibpath_var
5470266e564dSmrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5471266e564dSmrg
5472266e564dSmrg    # Some systems cannot cope with colon-terminated $shlibpath_var
5473266e564dSmrg    # The second colon is a workaround for a bug in BeOS R4 sed
5474266e564dSmrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5475266e564dSmrg
5476266e564dSmrg    export $shlibpath_var
5477266e564dSmrg"
5478266e564dSmrg	fi
5479266e564dSmrg
5480266e564dSmrg	# fixup the dll searchpath if we need to.
5481266e564dSmrg	if test -n "$dllsearchpath"; then
5482266e564dSmrg	  $echo >> $output "\
5483266e564dSmrg    # Add the dll search path components to the executable PATH
5484266e564dSmrg    PATH=$dllsearchpath:\$PATH
5485266e564dSmrg"
5486266e564dSmrg	fi
5487266e564dSmrg
5488266e564dSmrg	$echo >> $output "\
5489266e564dSmrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5490266e564dSmrg      # Run the actual program with our arguments.
5491266e564dSmrg"
5492266e564dSmrg	case $host in
5493266e564dSmrg	# Backslashes separate directories on plain windows
5494266e564dSmrg	*-*-mingw | *-*-os2*)
5495266e564dSmrg	  $echo >> $output "\
5496266e564dSmrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5497266e564dSmrg"
5498266e564dSmrg	  ;;
5499266e564dSmrg
5500266e564dSmrg	*)
5501266e564dSmrg	  $echo >> $output "\
5502266e564dSmrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5503266e564dSmrg"
5504266e564dSmrg	  ;;
5505266e564dSmrg	esac
5506266e564dSmrg	$echo >> $output "\
5507c5629e66Smrg      \$echo \"\$0: cannot exec \$program \$*\"
5508266e564dSmrg      exit $EXIT_FAILURE
5509266e564dSmrg    fi
5510266e564dSmrg  else
5511266e564dSmrg    # The program doesn't exist.
5512266e564dSmrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5513266e564dSmrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5514266e564dSmrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5515266e564dSmrg    exit $EXIT_FAILURE
5516266e564dSmrg  fi
5517266e564dSmrgfi\
5518266e564dSmrg"
5519266e564dSmrg	chmod +x $output
5520266e564dSmrg      fi
5521266e564dSmrg      exit $EXIT_SUCCESS
5522266e564dSmrg      ;;
5523266e564dSmrg    esac
5524266e564dSmrg
5525266e564dSmrg    # See if we need to build an old-fashioned archive.
5526266e564dSmrg    for oldlib in $oldlibs; do
5527266e564dSmrg
5528266e564dSmrg      if test "$build_libtool_libs" = convenience; then
5529266e564dSmrg	oldobjs="$libobjs_save"
5530266e564dSmrg	addlibs="$convenience"
5531266e564dSmrg	build_libtool_libs=no
5532266e564dSmrg      else
5533266e564dSmrg	if test "$build_libtool_libs" = module; then
5534266e564dSmrg	  oldobjs="$libobjs_save"
5535266e564dSmrg	  build_libtool_libs=no
5536266e564dSmrg	else
5537266e564dSmrg	  oldobjs="$old_deplibs $non_pic_objects"
5538266e564dSmrg	fi
5539266e564dSmrg	addlibs="$old_convenience"
5540266e564dSmrg      fi
5541266e564dSmrg
5542266e564dSmrg      if test -n "$addlibs"; then
5543266e564dSmrg	gentop="$output_objdir/${outputname}x"
5544266e564dSmrg	generated="$generated $gentop"
5545266e564dSmrg
5546266e564dSmrg	func_extract_archives $gentop $addlibs
5547266e564dSmrg	oldobjs="$oldobjs $func_extract_archives_result"
5548266e564dSmrg      fi
5549266e564dSmrg
5550266e564dSmrg      # Do each command in the archive commands.
5551266e564dSmrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5552266e564dSmrg       cmds=$old_archive_from_new_cmds
5553266e564dSmrg      else
5554266e564dSmrg	# POSIX demands no paths to be encoded in archives.  We have
5555266e564dSmrg	# to avoid creating archives with duplicate basenames if we
5556266e564dSmrg	# might have to extract them afterwards, e.g., when creating a
5557266e564dSmrg	# static archive out of a convenience library, or when linking
5558266e564dSmrg	# the entirety of a libtool archive into another (currently
5559266e564dSmrg	# not supported by libtool).
5560266e564dSmrg	if (for obj in $oldobjs
5561266e564dSmrg	    do
5562266e564dSmrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5563266e564dSmrg	    done | sort | sort -uc >/dev/null 2>&1); then
5564266e564dSmrg	  :
5565266e564dSmrg	else
5566266e564dSmrg	  $echo "copying selected object files to avoid basename conflicts..."
5567266e564dSmrg
5568266e564dSmrg	  if test -z "$gentop"; then
5569266e564dSmrg	    gentop="$output_objdir/${outputname}x"
5570266e564dSmrg	    generated="$generated $gentop"
5571266e564dSmrg
5572266e564dSmrg	    $show "${rm}r $gentop"
5573266e564dSmrg	    $run ${rm}r "$gentop"
5574266e564dSmrg	    $show "$mkdir $gentop"
5575266e564dSmrg	    $run $mkdir "$gentop"
5576266e564dSmrg	    exit_status=$?
5577266e564dSmrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5578266e564dSmrg	      exit $exit_status
5579266e564dSmrg	    fi
5580266e564dSmrg	  fi
5581266e564dSmrg
5582266e564dSmrg	  save_oldobjs=$oldobjs
5583266e564dSmrg	  oldobjs=
5584266e564dSmrg	  counter=1
5585266e564dSmrg	  for obj in $save_oldobjs
5586266e564dSmrg	  do
5587266e564dSmrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5588266e564dSmrg	    case " $oldobjs " in
5589266e564dSmrg	    " ") oldobjs=$obj ;;
5590266e564dSmrg	    *[\ /]"$objbase "*)
5591266e564dSmrg	      while :; do
5592266e564dSmrg		# Make sure we don't pick an alternate name that also
5593266e564dSmrg		# overlaps.
5594266e564dSmrg		newobj=lt$counter-$objbase
5595266e564dSmrg		counter=`expr $counter + 1`
5596266e564dSmrg		case " $oldobjs " in
5597266e564dSmrg		*[\ /]"$newobj "*) ;;
5598266e564dSmrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5599266e564dSmrg		esac
5600266e564dSmrg	      done
5601266e564dSmrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5602266e564dSmrg	      $run ln "$obj" "$gentop/$newobj" ||
5603266e564dSmrg	      $run cp "$obj" "$gentop/$newobj"
5604266e564dSmrg	      oldobjs="$oldobjs $gentop/$newobj"
5605266e564dSmrg	      ;;
5606266e564dSmrg	    *) oldobjs="$oldobjs $obj" ;;
5607266e564dSmrg	    esac
5608266e564dSmrg	  done
5609266e564dSmrg	fi
5610266e564dSmrg
5611266e564dSmrg	eval cmds=\"$old_archive_cmds\"
5612266e564dSmrg
5613266e564dSmrg	if len=`expr "X$cmds" : ".*"` &&
5614266e564dSmrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5615266e564dSmrg	  cmds=$old_archive_cmds
5616266e564dSmrg	else
5617266e564dSmrg	  # the command line is too long to link in one step, link in parts
5618266e564dSmrg	  $echo "using piecewise archive linking..."
5619266e564dSmrg	  save_RANLIB=$RANLIB
5620266e564dSmrg	  RANLIB=:
5621266e564dSmrg	  objlist=
5622266e564dSmrg	  concat_cmds=
5623266e564dSmrg	  save_oldobjs=$oldobjs
5624266e564dSmrg
5625266e564dSmrg	  # Is there a better way of finding the last object in the list?
5626266e564dSmrg	  for obj in $save_oldobjs
5627266e564dSmrg	  do
5628266e564dSmrg	    last_oldobj=$obj
5629266e564dSmrg	  done
5630266e564dSmrg	  for obj in $save_oldobjs
5631266e564dSmrg	  do
5632266e564dSmrg	    oldobjs="$objlist $obj"
5633266e564dSmrg	    objlist="$objlist $obj"
5634266e564dSmrg	    eval test_cmds=\"$old_archive_cmds\"
5635266e564dSmrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5636266e564dSmrg	       test "$len" -le "$max_cmd_len"; then
5637266e564dSmrg	      :
5638266e564dSmrg	    else
5639266e564dSmrg	      # the above command should be used before it gets too long
5640266e564dSmrg	      oldobjs=$objlist
5641266e564dSmrg	      if test "$obj" = "$last_oldobj" ; then
5642266e564dSmrg	        RANLIB=$save_RANLIB
5643266e564dSmrg	      fi
5644266e564dSmrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5645266e564dSmrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5646266e564dSmrg	      objlist=
5647266e564dSmrg	    fi
5648266e564dSmrg	  done
5649266e564dSmrg	  RANLIB=$save_RANLIB
5650266e564dSmrg	  oldobjs=$objlist
5651266e564dSmrg	  if test "X$oldobjs" = "X" ; then
5652266e564dSmrg	    eval cmds=\"\$concat_cmds\"
5653266e564dSmrg	  else
5654266e564dSmrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5655266e564dSmrg	  fi
5656266e564dSmrg	fi
5657266e564dSmrg      fi
5658266e564dSmrg      save_ifs="$IFS"; IFS='~'
5659266e564dSmrg      for cmd in $cmds; do
5660266e564dSmrg        eval cmd=\"$cmd\"
5661266e564dSmrg	IFS="$save_ifs"
5662266e564dSmrg	$show "$cmd"
5663266e564dSmrg	$run eval "$cmd" || exit $?
5664266e564dSmrg      done
5665266e564dSmrg      IFS="$save_ifs"
5666266e564dSmrg    done
5667266e564dSmrg
5668266e564dSmrg    if test -n "$generated"; then
5669266e564dSmrg      $show "${rm}r$generated"
5670266e564dSmrg      $run ${rm}r$generated
5671266e564dSmrg    fi
5672266e564dSmrg
5673266e564dSmrg    # Now create the libtool archive.
5674266e564dSmrg    case $output in
5675266e564dSmrg    *.la)
5676266e564dSmrg      old_library=
5677266e564dSmrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
5678266e564dSmrg      $show "creating $output"
5679266e564dSmrg
5680266e564dSmrg      # Preserve any variables that may affect compiler behavior
5681266e564dSmrg      for var in $variables_saved_for_relink; do
5682266e564dSmrg	if eval test -z \"\${$var+set}\"; then
5683266e564dSmrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5684266e564dSmrg	elif eval var_value=\$$var; test -z "$var_value"; then
5685266e564dSmrg	  relink_command="$var=; export $var; $relink_command"
5686266e564dSmrg	else
5687266e564dSmrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5688266e564dSmrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5689266e564dSmrg	fi
5690266e564dSmrg      done
5691266e564dSmrg      # Quote the link command for shipping.
5692266e564dSmrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5693c5629e66Smrg      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
5694266e564dSmrg      if test "$hardcode_automatic" = yes ; then
5695266e564dSmrg	relink_command=
5696266e564dSmrg      fi
5697266e564dSmrg
5698266e564dSmrg
5699266e564dSmrg      # Only create the output if not a dry run.
5700266e564dSmrg      if test -z "$run"; then
5701266e564dSmrg	for installed in no yes; do
5702266e564dSmrg	  if test "$installed" = yes; then
5703266e564dSmrg	    if test -z "$install_libdir"; then
5704266e564dSmrg	      break
5705266e564dSmrg	    fi
5706266e564dSmrg	    output="$output_objdir/$outputname"i
5707266e564dSmrg	    # Replace all uninstalled libtool libraries with the installed ones
5708266e564dSmrg	    newdependency_libs=
5709266e564dSmrg	    for deplib in $dependency_libs; do
5710266e564dSmrg	      case $deplib in
5711266e564dSmrg	      *.la)
5712266e564dSmrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5713266e564dSmrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5714266e564dSmrg		if test -z "$libdir"; then
5715266e564dSmrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5716266e564dSmrg		  exit $EXIT_FAILURE
5717266e564dSmrg		fi
5718266e564dSmrg		newdependency_libs="$newdependency_libs $libdir/$name"
5719266e564dSmrg		;;
5720266e564dSmrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5721266e564dSmrg	      esac
5722266e564dSmrg	    done
5723266e564dSmrg	    dependency_libs="$newdependency_libs"
5724266e564dSmrg	    newdlfiles=
5725266e564dSmrg	    for lib in $dlfiles; do
5726266e564dSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5727266e564dSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5728266e564dSmrg	      if test -z "$libdir"; then
5729266e564dSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5730266e564dSmrg		exit $EXIT_FAILURE
5731266e564dSmrg	      fi
5732266e564dSmrg	      newdlfiles="$newdlfiles $libdir/$name"
5733266e564dSmrg	    done
5734266e564dSmrg	    dlfiles="$newdlfiles"
5735266e564dSmrg	    newdlprefiles=
5736266e564dSmrg	    for lib in $dlprefiles; do
5737266e564dSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5738266e564dSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5739266e564dSmrg	      if test -z "$libdir"; then
5740266e564dSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5741266e564dSmrg		exit $EXIT_FAILURE
5742266e564dSmrg	      fi
5743266e564dSmrg	      newdlprefiles="$newdlprefiles $libdir/$name"
5744266e564dSmrg	    done
5745266e564dSmrg	    dlprefiles="$newdlprefiles"
5746266e564dSmrg	  else
5747266e564dSmrg	    newdlfiles=
5748266e564dSmrg	    for lib in $dlfiles; do
5749266e564dSmrg	      case $lib in
5750266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5751266e564dSmrg		*) abs=`pwd`"/$lib" ;;
5752266e564dSmrg	      esac
5753266e564dSmrg	      newdlfiles="$newdlfiles $abs"
5754266e564dSmrg	    done
5755266e564dSmrg	    dlfiles="$newdlfiles"
5756266e564dSmrg	    newdlprefiles=
5757266e564dSmrg	    for lib in $dlprefiles; do
5758266e564dSmrg	      case $lib in
5759266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5760266e564dSmrg		*) abs=`pwd`"/$lib" ;;
5761266e564dSmrg	      esac
5762266e564dSmrg	      newdlprefiles="$newdlprefiles $abs"
5763266e564dSmrg	    done
5764266e564dSmrg	    dlprefiles="$newdlprefiles"
5765266e564dSmrg	  fi
5766266e564dSmrg	  $rm $output
5767266e564dSmrg	  # place dlname in correct position for cygwin
5768266e564dSmrg	  tdlname=$dlname
5769266e564dSmrg	  case $host,$output,$installed,$module,$dlname in
5770266e564dSmrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5771266e564dSmrg	  esac
5772266e564dSmrg	  $echo > $output "\
5773266e564dSmrg# $outputname - a libtool library file
5774266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5775266e564dSmrg#
5776266e564dSmrg# Please DO NOT delete this file!
5777266e564dSmrg# It is necessary for linking the library.
5778266e564dSmrg
5779266e564dSmrg# The name that we can dlopen(3).
5780266e564dSmrgdlname='$tdlname'
5781266e564dSmrg
5782266e564dSmrg# Names of this library.
5783266e564dSmrglibrary_names='$library_names'
5784266e564dSmrg
5785266e564dSmrg# The name of the static archive.
5786266e564dSmrgold_library='$old_library'
5787266e564dSmrg
5788266e564dSmrg# Libraries that this one depends upon.
5789266e564dSmrgdependency_libs='$dependency_libs'
5790266e564dSmrg
5791266e564dSmrg# Version information for $libname.
5792266e564dSmrgcurrent=$current
5793266e564dSmrgage=$age
5794266e564dSmrgrevision=$revision
5795266e564dSmrg
5796266e564dSmrg# Is this an already installed library?
5797266e564dSmrginstalled=$installed
5798266e564dSmrg
5799266e564dSmrg# Should we warn about portability when linking against -modules?
5800266e564dSmrgshouldnotlink=$module
5801266e564dSmrg
5802266e564dSmrg# Files to dlopen/dlpreopen
5803266e564dSmrgdlopen='$dlfiles'
5804266e564dSmrgdlpreopen='$dlprefiles'
5805266e564dSmrg
5806266e564dSmrg# Directory that this library needs to be installed in:
5807266e564dSmrglibdir='$install_libdir'"
5808266e564dSmrg	  if test "$installed" = no && test "$need_relink" = yes; then
5809266e564dSmrg	    $echo >> $output "\
5810266e564dSmrgrelink_command=\"$relink_command\""
5811266e564dSmrg	  fi
5812266e564dSmrg	done
5813266e564dSmrg      fi
5814266e564dSmrg
5815266e564dSmrg      # Do a symbolic link so that the libtool archive can be found in
5816266e564dSmrg      # LD_LIBRARY_PATH before the program is installed.
5817266e564dSmrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5818266e564dSmrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5819266e564dSmrg      ;;
5820266e564dSmrg    esac
5821266e564dSmrg    exit $EXIT_SUCCESS
5822266e564dSmrg    ;;
5823266e564dSmrg
5824266e564dSmrg  # libtool install mode
5825266e564dSmrg  install)
5826266e564dSmrg    modename="$modename: install"
5827266e564dSmrg
5828266e564dSmrg    # There may be an optional sh(1) argument at the beginning of
5829266e564dSmrg    # install_prog (especially on Windows NT).
5830266e564dSmrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5831266e564dSmrg       # Allow the use of GNU shtool's install command.
5832266e564dSmrg       $echo "X$nonopt" | grep shtool > /dev/null; then
5833266e564dSmrg      # Aesthetically quote it.
5834266e564dSmrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5835266e564dSmrg      case $arg in
5836266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5837266e564dSmrg	arg="\"$arg\""
5838266e564dSmrg	;;
5839266e564dSmrg      esac
5840266e564dSmrg      install_prog="$arg "
5841266e564dSmrg      arg="$1"
5842266e564dSmrg      shift
5843266e564dSmrg    else
5844266e564dSmrg      install_prog=
5845266e564dSmrg      arg=$nonopt
5846266e564dSmrg    fi
5847266e564dSmrg
5848266e564dSmrg    # The real first argument should be the name of the installation program.
5849266e564dSmrg    # Aesthetically quote it.
5850266e564dSmrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5851266e564dSmrg    case $arg in
5852266e564dSmrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5853266e564dSmrg      arg="\"$arg\""
5854266e564dSmrg      ;;
5855266e564dSmrg    esac
5856266e564dSmrg    install_prog="$install_prog$arg"
5857266e564dSmrg
5858266e564dSmrg    # We need to accept at least all the BSD install flags.
5859266e564dSmrg    dest=
5860266e564dSmrg    files=
5861266e564dSmrg    opts=
5862266e564dSmrg    prev=
5863266e564dSmrg    install_type=
5864266e564dSmrg    isdir=no
5865266e564dSmrg    stripme=
5866266e564dSmrg    for arg
5867266e564dSmrg    do
5868266e564dSmrg      if test -n "$dest"; then
5869266e564dSmrg	files="$files $dest"
5870266e564dSmrg	dest=$arg
5871266e564dSmrg	continue
5872266e564dSmrg      fi
5873266e564dSmrg
5874266e564dSmrg      case $arg in
5875266e564dSmrg      -d) isdir=yes ;;
5876266e564dSmrg      -f) 
5877266e564dSmrg      	case " $install_prog " in
5878266e564dSmrg	*[\\\ /]cp\ *) ;;
5879266e564dSmrg	*) prev=$arg ;;
5880266e564dSmrg	esac
5881266e564dSmrg	;;
5882266e564dSmrg      -g | -m | -o) prev=$arg ;;
5883266e564dSmrg      -s)
5884266e564dSmrg	stripme=" -s"
5885266e564dSmrg	continue
5886266e564dSmrg	;;
5887266e564dSmrg      -*)
5888266e564dSmrg	;;
5889266e564dSmrg      *)
5890266e564dSmrg	# If the previous option needed an argument, then skip it.
5891266e564dSmrg	if test -n "$prev"; then
5892266e564dSmrg	  prev=
5893266e564dSmrg	else
5894266e564dSmrg	  dest=$arg
5895266e564dSmrg	  continue
5896266e564dSmrg	fi
5897266e564dSmrg	;;
5898266e564dSmrg      esac
5899266e564dSmrg
5900266e564dSmrg      # Aesthetically quote the argument.
5901266e564dSmrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5902266e564dSmrg      case $arg in
5903266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5904266e564dSmrg	arg="\"$arg\""
5905266e564dSmrg	;;
5906266e564dSmrg      esac
5907266e564dSmrg      install_prog="$install_prog $arg"
5908266e564dSmrg    done
5909266e564dSmrg
5910266e564dSmrg    if test -z "$install_prog"; then
5911266e564dSmrg      $echo "$modename: you must specify an install program" 1>&2
5912266e564dSmrg      $echo "$help" 1>&2
5913266e564dSmrg      exit $EXIT_FAILURE
5914266e564dSmrg    fi
5915266e564dSmrg
5916266e564dSmrg    if test -n "$prev"; then
5917266e564dSmrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5918266e564dSmrg      $echo "$help" 1>&2
5919266e564dSmrg      exit $EXIT_FAILURE
5920266e564dSmrg    fi
5921266e564dSmrg
5922266e564dSmrg    if test -z "$files"; then
5923266e564dSmrg      if test -z "$dest"; then
5924266e564dSmrg	$echo "$modename: no file or destination specified" 1>&2
5925266e564dSmrg      else
5926266e564dSmrg	$echo "$modename: you must specify a destination" 1>&2
5927266e564dSmrg      fi
5928266e564dSmrg      $echo "$help" 1>&2
5929266e564dSmrg      exit $EXIT_FAILURE
5930266e564dSmrg    fi
5931266e564dSmrg
5932266e564dSmrg    # Strip any trailing slash from the destination.
5933266e564dSmrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5934266e564dSmrg
5935266e564dSmrg    # Check to see that the destination is a directory.
5936266e564dSmrg    test -d "$dest" && isdir=yes
5937266e564dSmrg    if test "$isdir" = yes; then
5938266e564dSmrg      destdir="$dest"
5939266e564dSmrg      destname=
5940266e564dSmrg    else
5941266e564dSmrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5942266e564dSmrg      test "X$destdir" = "X$dest" && destdir=.
5943266e564dSmrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5944266e564dSmrg
5945266e564dSmrg      # Not a directory, so check to see that there is only one file specified.
5946266e564dSmrg      set dummy $files
5947266e564dSmrg      if test "$#" -gt 2; then
5948266e564dSmrg	$echo "$modename: \`$dest' is not a directory" 1>&2
5949266e564dSmrg	$echo "$help" 1>&2
5950266e564dSmrg	exit $EXIT_FAILURE
5951266e564dSmrg      fi
5952266e564dSmrg    fi
5953266e564dSmrg    case $destdir in
5954266e564dSmrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
5955266e564dSmrg    *)
5956266e564dSmrg      for file in $files; do
5957266e564dSmrg	case $file in
5958266e564dSmrg	*.lo) ;;
5959266e564dSmrg	*)
5960266e564dSmrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5961266e564dSmrg	  $echo "$help" 1>&2
5962266e564dSmrg	  exit $EXIT_FAILURE
5963266e564dSmrg	  ;;
5964266e564dSmrg	esac
5965266e564dSmrg      done
5966266e564dSmrg      ;;
5967266e564dSmrg    esac
5968266e564dSmrg
5969266e564dSmrg    # This variable tells wrapper scripts just to set variables rather
5970266e564dSmrg    # than running their programs.
5971266e564dSmrg    libtool_install_magic="$magic"
5972266e564dSmrg
5973266e564dSmrg    staticlibs=
5974266e564dSmrg    future_libdirs=
5975266e564dSmrg    current_libdirs=
5976266e564dSmrg    for file in $files; do
5977266e564dSmrg
5978266e564dSmrg      # Do each installation.
5979266e564dSmrg      case $file in
5980266e564dSmrg      *.$libext)
5981266e564dSmrg	# Do the static libraries later.
5982266e564dSmrg	staticlibs="$staticlibs $file"
5983266e564dSmrg	;;
5984266e564dSmrg
5985266e564dSmrg      *.la)
5986266e564dSmrg	# Check to see that this really is a libtool archive.
5987266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5988266e564dSmrg	else
5989266e564dSmrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5990266e564dSmrg	  $echo "$help" 1>&2
5991266e564dSmrg	  exit $EXIT_FAILURE
5992266e564dSmrg	fi
5993266e564dSmrg
5994266e564dSmrg	library_names=
5995266e564dSmrg	old_library=
5996266e564dSmrg	relink_command=
5997266e564dSmrg	# If there is no directory component, then add one.
5998266e564dSmrg	case $file in
5999266e564dSmrg	*/* | *\\*) . $file ;;
6000266e564dSmrg	*) . ./$file ;;
6001266e564dSmrg	esac
6002266e564dSmrg
6003266e564dSmrg	# Add the libdir to current_libdirs if it is the destination.
6004266e564dSmrg	if test "X$destdir" = "X$libdir"; then
6005266e564dSmrg	  case "$current_libdirs " in
6006266e564dSmrg	  *" $libdir "*) ;;
6007266e564dSmrg	  *) current_libdirs="$current_libdirs $libdir" ;;
6008266e564dSmrg	  esac
6009266e564dSmrg	else
6010266e564dSmrg	  # Note the libdir as a future libdir.
6011266e564dSmrg	  case "$future_libdirs " in
6012266e564dSmrg	  *" $libdir "*) ;;
6013266e564dSmrg	  *) future_libdirs="$future_libdirs $libdir" ;;
6014266e564dSmrg	  esac
6015266e564dSmrg	fi
6016266e564dSmrg
6017266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
6018266e564dSmrg	test "X$dir" = "X$file/" && dir=
6019266e564dSmrg	dir="$dir$objdir"
6020266e564dSmrg
6021266e564dSmrg	if test -n "$relink_command"; then
6022266e564dSmrg	  # Determine the prefix the user has applied to our future dir.
6023266e564dSmrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
6024266e564dSmrg
6025266e564dSmrg	  # Don't allow the user to place us outside of our expected
6026266e564dSmrg	  # location b/c this prevents finding dependent libraries that
6027266e564dSmrg	  # are installed to the same prefix.
6028266e564dSmrg	  # At present, this check doesn't affect windows .dll's that
6029266e564dSmrg	  # are installed into $libdir/../bin (currently, that works fine)
6030266e564dSmrg	  # but it's something to keep an eye on.
6031266e564dSmrg	  if test "$inst_prefix_dir" = "$destdir"; then
6032266e564dSmrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
6033266e564dSmrg	    exit $EXIT_FAILURE
6034266e564dSmrg	  fi
6035266e564dSmrg
6036266e564dSmrg	  if test -n "$inst_prefix_dir"; then
6037266e564dSmrg	    # Stick the inst_prefix_dir data into the link command.
6038c5629e66Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
6039266e564dSmrg	  else
6040c5629e66Smrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
6041266e564dSmrg	  fi
6042266e564dSmrg
6043266e564dSmrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
6044266e564dSmrg	  $show "$relink_command"
6045266e564dSmrg	  if $run eval "$relink_command"; then :
6046266e564dSmrg	  else
6047266e564dSmrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6048266e564dSmrg	    exit $EXIT_FAILURE
6049266e564dSmrg	  fi
6050266e564dSmrg	fi
6051266e564dSmrg
6052266e564dSmrg	# See the names of the shared library.
6053266e564dSmrg	set dummy $library_names
6054266e564dSmrg	if test -n "$2"; then
6055266e564dSmrg	  realname="$2"
6056266e564dSmrg	  shift
6057266e564dSmrg	  shift
6058266e564dSmrg
6059266e564dSmrg	  srcname="$realname"
6060266e564dSmrg	  test -n "$relink_command" && srcname="$realname"T
6061266e564dSmrg
6062266e564dSmrg	  # Install the shared library and build the symlinks.
6063266e564dSmrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
6064266e564dSmrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
6065266e564dSmrg	  if test -n "$stripme" && test -n "$striplib"; then
6066266e564dSmrg	    $show "$striplib $destdir/$realname"
6067266e564dSmrg	    $run eval "$striplib $destdir/$realname" || exit $?
6068266e564dSmrg	  fi
6069266e564dSmrg
6070266e564dSmrg	  if test "$#" -gt 0; then
6071266e564dSmrg	    # Delete the old symlinks, and create new ones.
6072266e564dSmrg	    # Try `ln -sf' first, because the `ln' binary might depend on
6073266e564dSmrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
6074266e564dSmrg	    # so we also need to try rm && ln -s.
6075266e564dSmrg	    for linkname
6076266e564dSmrg	    do
6077266e564dSmrg	      if test "$linkname" != "$realname"; then
6078266e564dSmrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6079266e564dSmrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6080266e564dSmrg	      fi
6081266e564dSmrg	    done
6082266e564dSmrg	  fi
6083266e564dSmrg
6084266e564dSmrg	  # Do each command in the postinstall commands.
6085266e564dSmrg	  lib="$destdir/$realname"
6086266e564dSmrg	  cmds=$postinstall_cmds
6087266e564dSmrg	  save_ifs="$IFS"; IFS='~'
6088266e564dSmrg	  for cmd in $cmds; do
6089266e564dSmrg	    IFS="$save_ifs"
6090266e564dSmrg	    eval cmd=\"$cmd\"
6091266e564dSmrg	    $show "$cmd"
6092266e564dSmrg	    $run eval "$cmd" || {
6093266e564dSmrg	      lt_exit=$?
6094266e564dSmrg
6095266e564dSmrg	      # Restore the uninstalled library and exit
6096266e564dSmrg	      if test "$mode" = relink; then
6097266e564dSmrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6098266e564dSmrg	      fi
6099266e564dSmrg
6100266e564dSmrg	      exit $lt_exit
6101266e564dSmrg	    }
6102266e564dSmrg	  done
6103266e564dSmrg	  IFS="$save_ifs"
6104266e564dSmrg	fi
6105266e564dSmrg
6106266e564dSmrg	# Install the pseudo-library for information purposes.
6107266e564dSmrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6108266e564dSmrg	instname="$dir/$name"i
6109266e564dSmrg	$show "$install_prog $instname $destdir/$name"
6110266e564dSmrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
6111266e564dSmrg
6112266e564dSmrg	# Maybe install the static library, too.
6113266e564dSmrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6114266e564dSmrg	;;
6115266e564dSmrg
6116266e564dSmrg      *.lo)
6117266e564dSmrg	# Install (i.e. copy) a libtool object.
6118266e564dSmrg
6119266e564dSmrg	# Figure out destination file name, if it wasn't already specified.
6120266e564dSmrg	if test -n "$destname"; then
6121266e564dSmrg	  destfile="$destdir/$destname"
6122266e564dSmrg	else
6123266e564dSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6124266e564dSmrg	  destfile="$destdir/$destfile"
6125266e564dSmrg	fi
6126266e564dSmrg
6127266e564dSmrg	# Deduce the name of the destination old-style object file.
6128266e564dSmrg	case $destfile in
6129266e564dSmrg	*.lo)
6130266e564dSmrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6131266e564dSmrg	  ;;
6132266e564dSmrg	*.$objext)
6133266e564dSmrg	  staticdest="$destfile"
6134266e564dSmrg	  destfile=
6135266e564dSmrg	  ;;
6136266e564dSmrg	*)
6137266e564dSmrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6138266e564dSmrg	  $echo "$help" 1>&2
6139266e564dSmrg	  exit $EXIT_FAILURE
6140266e564dSmrg	  ;;
6141266e564dSmrg	esac
6142266e564dSmrg
6143266e564dSmrg	# Install the libtool object if requested.
6144266e564dSmrg	if test -n "$destfile"; then
6145266e564dSmrg	  $show "$install_prog $file $destfile"
6146266e564dSmrg	  $run eval "$install_prog $file $destfile" || exit $?
6147266e564dSmrg	fi
6148266e564dSmrg
6149266e564dSmrg	# Install the old object if enabled.
6150266e564dSmrg	if test "$build_old_libs" = yes; then
6151266e564dSmrg	  # Deduce the name of the old-style object file.
6152266e564dSmrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6153266e564dSmrg
6154266e564dSmrg	  $show "$install_prog $staticobj $staticdest"
6155266e564dSmrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6156266e564dSmrg	fi
6157266e564dSmrg	exit $EXIT_SUCCESS
6158266e564dSmrg	;;
6159266e564dSmrg
6160266e564dSmrg      *)
6161266e564dSmrg	# Figure out destination file name, if it wasn't already specified.
6162266e564dSmrg	if test -n "$destname"; then
6163266e564dSmrg	  destfile="$destdir/$destname"
6164266e564dSmrg	else
6165266e564dSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6166266e564dSmrg	  destfile="$destdir/$destfile"
6167266e564dSmrg	fi
6168266e564dSmrg
6169266e564dSmrg	# If the file is missing, and there is a .exe on the end, strip it
6170266e564dSmrg	# because it is most likely a libtool script we actually want to
6171266e564dSmrg	# install
6172266e564dSmrg	stripped_ext=""
6173266e564dSmrg	case $file in
6174266e564dSmrg	  *.exe)
6175266e564dSmrg	    if test ! -f "$file"; then
6176266e564dSmrg	      file=`$echo $file|${SED} 's,.exe$,,'`
6177266e564dSmrg	      stripped_ext=".exe"
6178266e564dSmrg	    fi
6179266e564dSmrg	    ;;
6180266e564dSmrg	esac
6181266e564dSmrg
6182266e564dSmrg	# Do a test to see if this is really a libtool program.
6183266e564dSmrg	case $host in
6184266e564dSmrg	*cygwin*|*mingw*)
6185266e564dSmrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6186266e564dSmrg	    ;;
6187266e564dSmrg	*)
6188266e564dSmrg	    wrapper=$file
6189266e564dSmrg	    ;;
6190266e564dSmrg	esac
6191266e564dSmrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6192266e564dSmrg	  notinst_deplibs=
6193266e564dSmrg	  relink_command=
6194266e564dSmrg
6195266e564dSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6196266e564dSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6197266e564dSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6198266e564dSmrg	  # `FILE.' does not work on cygwin managed mounts.
6199266e564dSmrg	  #
6200266e564dSmrg	  # If there is no directory component, then add one.
6201266e564dSmrg	  case $wrapper in
6202266e564dSmrg	  */* | *\\*) . ${wrapper} ;;
6203266e564dSmrg	  *) . ./${wrapper} ;;
6204266e564dSmrg	  esac
6205266e564dSmrg
6206266e564dSmrg	  # Check the variables that should have been set.
6207266e564dSmrg	  if test -z "$notinst_deplibs"; then
6208266e564dSmrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6209266e564dSmrg	    exit $EXIT_FAILURE
6210266e564dSmrg	  fi
6211266e564dSmrg
6212266e564dSmrg	  finalize=yes
6213266e564dSmrg	  for lib in $notinst_deplibs; do
6214266e564dSmrg	    # Check to see that each library is installed.
6215266e564dSmrg	    libdir=
6216266e564dSmrg	    if test -f "$lib"; then
6217266e564dSmrg	      # If there is no directory component, then add one.
6218266e564dSmrg	      case $lib in
6219266e564dSmrg	      */* | *\\*) . $lib ;;
6220266e564dSmrg	      *) . ./$lib ;;
6221266e564dSmrg	      esac
6222266e564dSmrg	    fi
6223266e564dSmrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6224266e564dSmrg	    if test -n "$libdir" && test ! -f "$libfile"; then
6225266e564dSmrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6226266e564dSmrg	      finalize=no
6227266e564dSmrg	    fi
6228266e564dSmrg	  done
6229266e564dSmrg
6230266e564dSmrg	  relink_command=
6231266e564dSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6232266e564dSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6233266e564dSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6234266e564dSmrg	  # `FILE.' does not work on cygwin managed mounts.
6235266e564dSmrg	  #
6236266e564dSmrg	  # If there is no directory component, then add one.
6237266e564dSmrg	  case $wrapper in
6238266e564dSmrg	  */* | *\\*) . ${wrapper} ;;
6239266e564dSmrg	  *) . ./${wrapper} ;;
6240266e564dSmrg	  esac
6241266e564dSmrg
6242266e564dSmrg	  outputname=
6243266e564dSmrg	  if test "$fast_install" = no && test -n "$relink_command"; then
6244266e564dSmrg	    if test "$finalize" = yes && test -z "$run"; then
6245266e564dSmrg	      tmpdir=`func_mktempdir`
6246266e564dSmrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6247266e564dSmrg	      outputname="$tmpdir/$file"
6248266e564dSmrg	      # Replace the output file specification.
6249c5629e66Smrg	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
6250266e564dSmrg
6251266e564dSmrg	      $show "$relink_command"
6252266e564dSmrg	      if $run eval "$relink_command"; then :
6253266e564dSmrg	      else
6254266e564dSmrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6255266e564dSmrg		${rm}r "$tmpdir"
6256266e564dSmrg		continue
6257266e564dSmrg	      fi
6258266e564dSmrg	      file="$outputname"
6259266e564dSmrg	    else
6260266e564dSmrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6261266e564dSmrg	    fi
6262266e564dSmrg	  else
6263266e564dSmrg	    # Install the binary that we compiled earlier.
6264266e564dSmrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6265266e564dSmrg	  fi
6266266e564dSmrg	fi
6267266e564dSmrg
6268266e564dSmrg	# remove .exe since cygwin /usr/bin/install will append another
6269266e564dSmrg	# one anyway 
6270266e564dSmrg	case $install_prog,$host in
6271266e564dSmrg	*/usr/bin/install*,*cygwin*)
6272266e564dSmrg	  case $file:$destfile in
6273266e564dSmrg	  *.exe:*.exe)
6274266e564dSmrg	    # this is ok
6275266e564dSmrg	    ;;
6276266e564dSmrg	  *.exe:*)
6277266e564dSmrg	    destfile=$destfile.exe
6278266e564dSmrg	    ;;
6279266e564dSmrg	  *:*.exe)
6280266e564dSmrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6281266e564dSmrg	    ;;
6282266e564dSmrg	  esac
6283266e564dSmrg	  ;;
6284266e564dSmrg	esac
6285266e564dSmrg	$show "$install_prog$stripme $file $destfile"
6286266e564dSmrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6287266e564dSmrg	test -n "$outputname" && ${rm}r "$tmpdir"
6288266e564dSmrg	;;
6289266e564dSmrg      esac
6290266e564dSmrg    done
6291266e564dSmrg
6292266e564dSmrg    for file in $staticlibs; do
6293266e564dSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6294266e564dSmrg
6295266e564dSmrg      # Set up the ranlib parameters.
6296266e564dSmrg      oldlib="$destdir/$name"
6297266e564dSmrg
6298266e564dSmrg      $show "$install_prog $file $oldlib"
6299266e564dSmrg      $run eval "$install_prog \$file \$oldlib" || exit $?
6300266e564dSmrg
6301266e564dSmrg      if test -n "$stripme" && test -n "$old_striplib"; then
6302266e564dSmrg	$show "$old_striplib $oldlib"
6303266e564dSmrg	$run eval "$old_striplib $oldlib" || exit $?
6304266e564dSmrg      fi
6305266e564dSmrg
6306266e564dSmrg      # Do each command in the postinstall commands.
6307266e564dSmrg      cmds=$old_postinstall_cmds
6308266e564dSmrg      save_ifs="$IFS"; IFS='~'
6309266e564dSmrg      for cmd in $cmds; do
6310266e564dSmrg	IFS="$save_ifs"
6311266e564dSmrg	eval cmd=\"$cmd\"
6312266e564dSmrg	$show "$cmd"
6313266e564dSmrg	$run eval "$cmd" || exit $?
6314266e564dSmrg      done
6315266e564dSmrg      IFS="$save_ifs"
6316266e564dSmrg    done
6317266e564dSmrg
6318266e564dSmrg    if test -n "$future_libdirs"; then
6319266e564dSmrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6320266e564dSmrg    fi
6321266e564dSmrg
6322266e564dSmrg    if test -n "$current_libdirs"; then
6323266e564dSmrg      # Maybe just do a dry run.
6324266e564dSmrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
6325266e564dSmrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6326266e564dSmrg    else
6327266e564dSmrg      exit $EXIT_SUCCESS
6328266e564dSmrg    fi
6329266e564dSmrg    ;;
6330266e564dSmrg
6331266e564dSmrg  # libtool finish mode
6332266e564dSmrg  finish)
6333266e564dSmrg    modename="$modename: finish"
6334266e564dSmrg    libdirs="$nonopt"
6335266e564dSmrg    admincmds=
6336266e564dSmrg
6337266e564dSmrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6338266e564dSmrg      for dir
6339266e564dSmrg      do
6340266e564dSmrg	libdirs="$libdirs $dir"
6341266e564dSmrg      done
6342266e564dSmrg
6343266e564dSmrg      for libdir in $libdirs; do
6344266e564dSmrg	if test -n "$finish_cmds"; then
6345266e564dSmrg	  # Do each command in the finish commands.
6346266e564dSmrg	  cmds=$finish_cmds
6347266e564dSmrg	  save_ifs="$IFS"; IFS='~'
6348266e564dSmrg	  for cmd in $cmds; do
6349266e564dSmrg	    IFS="$save_ifs"
6350266e564dSmrg	    eval cmd=\"$cmd\"
6351266e564dSmrg	    $show "$cmd"
6352266e564dSmrg	    $run eval "$cmd" || admincmds="$admincmds
6353266e564dSmrg       $cmd"
6354266e564dSmrg	  done
6355266e564dSmrg	  IFS="$save_ifs"
6356266e564dSmrg	fi
6357266e564dSmrg	if test -n "$finish_eval"; then
6358266e564dSmrg	  # Do the single finish_eval.
6359266e564dSmrg	  eval cmds=\"$finish_eval\"
6360266e564dSmrg	  $run eval "$cmds" || admincmds="$admincmds
6361266e564dSmrg       $cmds"
6362266e564dSmrg	fi
6363266e564dSmrg      done
6364266e564dSmrg    fi
6365266e564dSmrg
6366266e564dSmrg    # Exit here if they wanted silent mode.
6367266e564dSmrg    test "$show" = : && exit $EXIT_SUCCESS
6368266e564dSmrg
6369266e564dSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
6370266e564dSmrg    $echo "Libraries have been installed in:"
6371266e564dSmrg    for libdir in $libdirs; do
6372266e564dSmrg      $echo "   $libdir"
6373266e564dSmrg    done
6374266e564dSmrg    $echo
6375266e564dSmrg    $echo "If you ever happen to want to link against installed libraries"
6376266e564dSmrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6377266e564dSmrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6378266e564dSmrg    $echo "flag during linking and do at least one of the following:"
6379266e564dSmrg    if test -n "$shlibpath_var"; then
6380266e564dSmrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6381266e564dSmrg      $echo "     during execution"
6382266e564dSmrg    fi
6383266e564dSmrg    if test -n "$runpath_var"; then
6384266e564dSmrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6385266e564dSmrg      $echo "     during linking"
6386266e564dSmrg    fi
6387266e564dSmrg    if test -n "$hardcode_libdir_flag_spec"; then
6388266e564dSmrg      libdir=LIBDIR
6389266e564dSmrg      eval flag=\"$hardcode_libdir_flag_spec\"
6390266e564dSmrg
6391266e564dSmrg      $echo "   - use the \`$flag' linker flag"
6392266e564dSmrg    fi
6393266e564dSmrg    if test -n "$admincmds"; then
6394266e564dSmrg      $echo "   - have your system administrator run these commands:$admincmds"
6395266e564dSmrg    fi
6396266e564dSmrg    if test -f /etc/ld.so.conf; then
6397266e564dSmrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6398266e564dSmrg    fi
6399266e564dSmrg    $echo
6400266e564dSmrg    $echo "See any operating system documentation about shared libraries for"
6401266e564dSmrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6402266e564dSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
6403266e564dSmrg    exit $EXIT_SUCCESS
6404266e564dSmrg    ;;
6405266e564dSmrg
6406266e564dSmrg  # libtool execute mode
6407266e564dSmrg  execute)
6408266e564dSmrg    modename="$modename: execute"
6409266e564dSmrg
6410266e564dSmrg    # The first argument is the command name.
6411266e564dSmrg    cmd="$nonopt"
6412266e564dSmrg    if test -z "$cmd"; then
6413266e564dSmrg      $echo "$modename: you must specify a COMMAND" 1>&2
6414266e564dSmrg      $echo "$help"
6415266e564dSmrg      exit $EXIT_FAILURE
6416266e564dSmrg    fi
6417266e564dSmrg
6418266e564dSmrg    # Handle -dlopen flags immediately.
6419266e564dSmrg    for file in $execute_dlfiles; do
6420266e564dSmrg      if test ! -f "$file"; then
6421266e564dSmrg	$echo "$modename: \`$file' is not a file" 1>&2
6422266e564dSmrg	$echo "$help" 1>&2
6423266e564dSmrg	exit $EXIT_FAILURE
6424266e564dSmrg      fi
6425266e564dSmrg
6426266e564dSmrg      dir=
6427266e564dSmrg      case $file in
6428266e564dSmrg      *.la)
6429266e564dSmrg	# Check to see that this really is a libtool archive.
6430266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6431266e564dSmrg	else
6432266e564dSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6433266e564dSmrg	  $echo "$help" 1>&2
6434266e564dSmrg	  exit $EXIT_FAILURE
6435266e564dSmrg	fi
6436266e564dSmrg
6437266e564dSmrg	# Read the libtool library.
6438266e564dSmrg	dlname=
6439266e564dSmrg	library_names=
6440266e564dSmrg
6441266e564dSmrg	# If there is no directory component, then add one.
6442266e564dSmrg	case $file in
6443266e564dSmrg	*/* | *\\*) . $file ;;
6444266e564dSmrg	*) . ./$file ;;
6445266e564dSmrg	esac
6446266e564dSmrg
6447266e564dSmrg	# Skip this library if it cannot be dlopened.
6448266e564dSmrg	if test -z "$dlname"; then
6449266e564dSmrg	  # Warn if it was a shared library.
6450266e564dSmrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6451266e564dSmrg	  continue
6452266e564dSmrg	fi
6453266e564dSmrg
6454266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6455266e564dSmrg	test "X$dir" = "X$file" && dir=.
6456266e564dSmrg
6457266e564dSmrg	if test -f "$dir/$objdir/$dlname"; then
6458266e564dSmrg	  dir="$dir/$objdir"
6459266e564dSmrg	else
6460c5629e66Smrg	  if test ! -f "$dir/$dlname"; then
6461c5629e66Smrg	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6462c5629e66Smrg	    exit $EXIT_FAILURE
6463c5629e66Smrg	  fi
6464266e564dSmrg	fi
6465266e564dSmrg	;;
6466266e564dSmrg
6467266e564dSmrg      *.lo)
6468266e564dSmrg	# Just add the directory containing the .lo file.
6469266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6470266e564dSmrg	test "X$dir" = "X$file" && dir=.
6471266e564dSmrg	;;
6472266e564dSmrg
6473266e564dSmrg      *)
6474266e564dSmrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6475266e564dSmrg	continue
6476266e564dSmrg	;;
6477266e564dSmrg      esac
6478266e564dSmrg
6479266e564dSmrg      # Get the absolute pathname.
6480266e564dSmrg      absdir=`cd "$dir" && pwd`
6481266e564dSmrg      test -n "$absdir" && dir="$absdir"
6482266e564dSmrg
6483266e564dSmrg      # Now add the directory to shlibpath_var.
6484266e564dSmrg      if eval "test -z \"\$$shlibpath_var\""; then
6485266e564dSmrg	eval "$shlibpath_var=\"\$dir\""
6486266e564dSmrg      else
6487266e564dSmrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6488266e564dSmrg      fi
6489266e564dSmrg    done
6490266e564dSmrg
6491266e564dSmrg    # This variable tells wrapper scripts just to set shlibpath_var
6492266e564dSmrg    # rather than running their programs.
6493266e564dSmrg    libtool_execute_magic="$magic"
6494266e564dSmrg
6495266e564dSmrg    # Check if any of the arguments is a wrapper script.
6496266e564dSmrg    args=
6497266e564dSmrg    for file
6498266e564dSmrg    do
6499266e564dSmrg      case $file in
6500266e564dSmrg      -*) ;;
6501266e564dSmrg      *)
6502266e564dSmrg	# Do a test to see if this is really a libtool program.
6503266e564dSmrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6504266e564dSmrg	  # If there is no directory component, then add one.
6505266e564dSmrg	  case $file in
6506266e564dSmrg	  */* | *\\*) . $file ;;
6507266e564dSmrg	  *) . ./$file ;;
6508266e564dSmrg	  esac
6509266e564dSmrg
6510266e564dSmrg	  # Transform arg to wrapped name.
6511266e564dSmrg	  file="$progdir/$program"
6512266e564dSmrg	fi
6513266e564dSmrg	;;
6514266e564dSmrg      esac
6515266e564dSmrg      # Quote arguments (to preserve shell metacharacters).
6516266e564dSmrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6517266e564dSmrg      args="$args \"$file\""
6518266e564dSmrg    done
6519266e564dSmrg
6520266e564dSmrg    if test -z "$run"; then
6521266e564dSmrg      if test -n "$shlibpath_var"; then
6522266e564dSmrg	# Export the shlibpath_var.
6523266e564dSmrg	eval "export $shlibpath_var"
6524266e564dSmrg      fi
6525266e564dSmrg
6526266e564dSmrg      # Restore saved environment variables
6527c5629e66Smrg      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
6528c5629e66Smrg      do
6529c5629e66Smrg	eval "if test \"\${save_$lt_var+set}\" = set; then
6530c5629e66Smrg		$lt_var=\$save_$lt_var; export $lt_var
6531c5629e66Smrg	      fi"
6532c5629e66Smrg      done
6533266e564dSmrg
6534266e564dSmrg      # Now prepare to actually exec the command.
6535266e564dSmrg      exec_cmd="\$cmd$args"
6536266e564dSmrg    else
6537266e564dSmrg      # Display what would be done.
6538266e564dSmrg      if test -n "$shlibpath_var"; then
6539266e564dSmrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6540266e564dSmrg	$echo "export $shlibpath_var"
6541266e564dSmrg      fi
6542266e564dSmrg      $echo "$cmd$args"
6543266e564dSmrg      exit $EXIT_SUCCESS
6544266e564dSmrg    fi
6545266e564dSmrg    ;;
6546266e564dSmrg
6547266e564dSmrg  # libtool clean and uninstall mode
6548266e564dSmrg  clean | uninstall)
6549266e564dSmrg    modename="$modename: $mode"
6550266e564dSmrg    rm="$nonopt"
6551266e564dSmrg    files=
6552266e564dSmrg    rmforce=
6553266e564dSmrg    exit_status=0
6554266e564dSmrg
6555266e564dSmrg    # This variable tells wrapper scripts just to set variables rather
6556266e564dSmrg    # than running their programs.
6557266e564dSmrg    libtool_install_magic="$magic"
6558266e564dSmrg
6559266e564dSmrg    for arg
6560266e564dSmrg    do
6561266e564dSmrg      case $arg in
6562266e564dSmrg      -f) rm="$rm $arg"; rmforce=yes ;;
6563266e564dSmrg      -*) rm="$rm $arg" ;;
6564266e564dSmrg      *) files="$files $arg" ;;
6565266e564dSmrg      esac
6566266e564dSmrg    done
6567266e564dSmrg
6568266e564dSmrg    if test -z "$rm"; then
6569266e564dSmrg      $echo "$modename: you must specify an RM program" 1>&2
6570266e564dSmrg      $echo "$help" 1>&2
6571266e564dSmrg      exit $EXIT_FAILURE
6572266e564dSmrg    fi
6573266e564dSmrg
6574266e564dSmrg    rmdirs=
6575266e564dSmrg
6576266e564dSmrg    origobjdir="$objdir"
6577266e564dSmrg    for file in $files; do
6578266e564dSmrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6579266e564dSmrg      if test "X$dir" = "X$file"; then
6580266e564dSmrg	dir=.
6581266e564dSmrg	objdir="$origobjdir"
6582266e564dSmrg      else
6583266e564dSmrg	objdir="$dir/$origobjdir"
6584266e564dSmrg      fi
6585266e564dSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6586266e564dSmrg      test "$mode" = uninstall && objdir="$dir"
6587266e564dSmrg
6588266e564dSmrg      # Remember objdir for removal later, being careful to avoid duplicates
6589266e564dSmrg      if test "$mode" = clean; then
6590266e564dSmrg	case " $rmdirs " in
6591266e564dSmrg	  *" $objdir "*) ;;
6592266e564dSmrg	  *) rmdirs="$rmdirs $objdir" ;;
6593266e564dSmrg	esac
6594266e564dSmrg      fi
6595266e564dSmrg
6596266e564dSmrg      # Don't error if the file doesn't exist and rm -f was used.
6597266e564dSmrg      if (test -L "$file") >/dev/null 2>&1 \
6598266e564dSmrg	|| (test -h "$file") >/dev/null 2>&1 \
6599266e564dSmrg	|| test -f "$file"; then
6600266e564dSmrg	:
6601266e564dSmrg      elif test -d "$file"; then
6602266e564dSmrg	exit_status=1
6603266e564dSmrg	continue
6604266e564dSmrg      elif test "$rmforce" = yes; then
6605266e564dSmrg	continue
6606266e564dSmrg      fi
6607266e564dSmrg
6608266e564dSmrg      rmfiles="$file"
6609266e564dSmrg
6610266e564dSmrg      case $name in
6611266e564dSmrg      *.la)
6612266e564dSmrg	# Possibly a libtool archive, so verify it.
6613266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6614266e564dSmrg	  . $dir/$name
6615266e564dSmrg
6616266e564dSmrg	  # Delete the libtool libraries and symlinks.
6617266e564dSmrg	  for n in $library_names; do
6618266e564dSmrg	    rmfiles="$rmfiles $objdir/$n"
6619266e564dSmrg	  done
6620266e564dSmrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6621266e564dSmrg
6622266e564dSmrg	  case "$mode" in
6623266e564dSmrg	  clean)
6624266e564dSmrg	    case "  $library_names " in
6625266e564dSmrg	    # "  " in the beginning catches empty $dlname
6626266e564dSmrg	    *" $dlname "*) ;;
6627266e564dSmrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6628266e564dSmrg	    esac
6629266e564dSmrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6630266e564dSmrg	    ;;
6631266e564dSmrg	  uninstall)
6632266e564dSmrg	    if test -n "$library_names"; then
6633266e564dSmrg	      # Do each command in the postuninstall commands.
6634266e564dSmrg	      cmds=$postuninstall_cmds
6635266e564dSmrg	      save_ifs="$IFS"; IFS='~'
6636266e564dSmrg	      for cmd in $cmds; do
6637266e564dSmrg		IFS="$save_ifs"
6638266e564dSmrg		eval cmd=\"$cmd\"
6639266e564dSmrg		$show "$cmd"
6640266e564dSmrg		$run eval "$cmd"
6641266e564dSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6642266e564dSmrg		  exit_status=1
6643266e564dSmrg		fi
6644266e564dSmrg	      done
6645266e564dSmrg	      IFS="$save_ifs"
6646266e564dSmrg	    fi
6647266e564dSmrg
6648266e564dSmrg	    if test -n "$old_library"; then
6649266e564dSmrg	      # Do each command in the old_postuninstall commands.
6650266e564dSmrg	      cmds=$old_postuninstall_cmds
6651266e564dSmrg	      save_ifs="$IFS"; IFS='~'
6652266e564dSmrg	      for cmd in $cmds; do
6653266e564dSmrg		IFS="$save_ifs"
6654266e564dSmrg		eval cmd=\"$cmd\"
6655266e564dSmrg		$show "$cmd"
6656266e564dSmrg		$run eval "$cmd"
6657266e564dSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6658266e564dSmrg		  exit_status=1
6659266e564dSmrg		fi
6660266e564dSmrg	      done
6661266e564dSmrg	      IFS="$save_ifs"
6662266e564dSmrg	    fi
6663266e564dSmrg	    # FIXME: should reinstall the best remaining shared library.
6664266e564dSmrg	    ;;
6665266e564dSmrg	  esac
6666266e564dSmrg	fi
6667266e564dSmrg	;;
6668266e564dSmrg
6669266e564dSmrg      *.lo)
6670266e564dSmrg	# Possibly a libtool object, so verify it.
6671266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6672266e564dSmrg
6673266e564dSmrg	  # Read the .lo file
6674266e564dSmrg	  . $dir/$name
6675266e564dSmrg
6676266e564dSmrg	  # Add PIC object to the list of files to remove.
6677266e564dSmrg	  if test -n "$pic_object" \
6678266e564dSmrg	     && test "$pic_object" != none; then
6679266e564dSmrg	    rmfiles="$rmfiles $dir/$pic_object"
6680266e564dSmrg	  fi
6681266e564dSmrg
6682266e564dSmrg	  # Add non-PIC object to the list of files to remove.
6683266e564dSmrg	  if test -n "$non_pic_object" \
6684266e564dSmrg	     && test "$non_pic_object" != none; then
6685266e564dSmrg	    rmfiles="$rmfiles $dir/$non_pic_object"
6686266e564dSmrg	  fi
6687266e564dSmrg	fi
6688266e564dSmrg	;;
6689266e564dSmrg
6690266e564dSmrg      *)
6691266e564dSmrg	if test "$mode" = clean ; then
6692266e564dSmrg	  noexename=$name
6693266e564dSmrg	  case $file in
6694266e564dSmrg	  *.exe)
6695266e564dSmrg	    file=`$echo $file|${SED} 's,.exe$,,'`
6696266e564dSmrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6697266e564dSmrg	    # $file with .exe has already been added to rmfiles,
6698266e564dSmrg	    # add $file without .exe
6699266e564dSmrg	    rmfiles="$rmfiles $file"
6700266e564dSmrg	    ;;
6701266e564dSmrg	  esac
6702266e564dSmrg	  # Do a test to see if this is a libtool program.
6703266e564dSmrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6704266e564dSmrg	    relink_command=
6705266e564dSmrg	    . $dir/$noexename
6706266e564dSmrg
6707266e564dSmrg	    # note $name still contains .exe if it was in $file originally
6708266e564dSmrg	    # as does the version of $file that was added into $rmfiles
6709266e564dSmrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6710266e564dSmrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
6711266e564dSmrg	      rmfiles="$rmfiles $objdir/lt-$name"
6712266e564dSmrg	    fi
6713266e564dSmrg	    if test "X$noexename" != "X$name" ; then
6714266e564dSmrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6715266e564dSmrg	    fi
6716266e564dSmrg	  fi
6717266e564dSmrg	fi
6718266e564dSmrg	;;
6719266e564dSmrg      esac
6720266e564dSmrg      $show "$rm $rmfiles"
6721266e564dSmrg      $run $rm $rmfiles || exit_status=1
6722266e564dSmrg    done
6723266e564dSmrg    objdir="$origobjdir"
6724266e564dSmrg
6725266e564dSmrg    # Try to remove the ${objdir}s in the directories where we deleted files
6726266e564dSmrg    for dir in $rmdirs; do
6727266e564dSmrg      if test -d "$dir"; then
6728266e564dSmrg	$show "rmdir $dir"
6729266e564dSmrg	$run rmdir $dir >/dev/null 2>&1
6730266e564dSmrg      fi
6731266e564dSmrg    done
6732266e564dSmrg
6733266e564dSmrg    exit $exit_status
6734266e564dSmrg    ;;
6735266e564dSmrg
6736266e564dSmrg  "")
6737266e564dSmrg    $echo "$modename: you must specify a MODE" 1>&2
6738266e564dSmrg    $echo "$generic_help" 1>&2
6739266e564dSmrg    exit $EXIT_FAILURE
6740266e564dSmrg    ;;
6741266e564dSmrg  esac
6742266e564dSmrg
6743266e564dSmrg  if test -z "$exec_cmd"; then
6744266e564dSmrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6745266e564dSmrg    $echo "$generic_help" 1>&2
6746266e564dSmrg    exit $EXIT_FAILURE
6747266e564dSmrg  fi
6748266e564dSmrgfi # test -z "$show_help"
6749266e564dSmrg
6750266e564dSmrgif test -n "$exec_cmd"; then
6751266e564dSmrg  eval exec $exec_cmd
6752266e564dSmrg  exit $EXIT_FAILURE
6753266e564dSmrgfi
6754266e564dSmrg
6755266e564dSmrg# We need to display help for each of the modes.
6756266e564dSmrgcase $mode in
6757266e564dSmrg"") $echo \
6758266e564dSmrg"Usage: $modename [OPTION]... [MODE-ARG]...
6759266e564dSmrg
6760266e564dSmrgProvide generalized library-building support services.
6761266e564dSmrg
6762266e564dSmrg    --config          show all configuration variables
6763266e564dSmrg    --debug           enable verbose shell tracing
6764266e564dSmrg-n, --dry-run         display commands without modifying any files
6765266e564dSmrg    --features        display basic configuration information and exit
6766266e564dSmrg    --finish          same as \`--mode=finish'
6767266e564dSmrg    --help            display this help message and exit
6768266e564dSmrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6769266e564dSmrg    --quiet           same as \`--silent'
6770266e564dSmrg    --silent          don't print informational messages
6771266e564dSmrg    --tag=TAG         use configuration variables from tag TAG
6772266e564dSmrg    --version         print version information
6773266e564dSmrg
6774266e564dSmrgMODE must be one of the following:
6775266e564dSmrg
6776266e564dSmrg      clean           remove files from the build directory
6777266e564dSmrg      compile         compile a source file into a libtool object
6778266e564dSmrg      execute         automatically set library path, then run a program
6779266e564dSmrg      finish          complete the installation of libtool libraries
6780266e564dSmrg      install         install libraries or executables
6781266e564dSmrg      link            create a library or an executable
6782266e564dSmrg      uninstall       remove libraries from an installed directory
6783266e564dSmrg
6784266e564dSmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6785266e564dSmrga more detailed description of MODE.
6786266e564dSmrg
6787266e564dSmrgReport bugs to <bug-libtool@gnu.org>."
6788266e564dSmrg  exit $EXIT_SUCCESS
6789266e564dSmrg  ;;
6790266e564dSmrg
6791266e564dSmrgclean)
6792266e564dSmrg  $echo \
6793266e564dSmrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6794266e564dSmrg
6795266e564dSmrgRemove files from the build directory.
6796266e564dSmrg
6797266e564dSmrgRM is the name of the program to use to delete files associated with each FILE
6798266e564dSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6799266e564dSmrgto RM.
6800266e564dSmrg
6801266e564dSmrgIf FILE is a libtool library, object or program, all the files associated
6802266e564dSmrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6803266e564dSmrg  ;;
6804266e564dSmrg
6805266e564dSmrgcompile)
6806266e564dSmrg  $echo \
6807266e564dSmrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6808266e564dSmrg
6809266e564dSmrgCompile a source file into a libtool library object.
6810266e564dSmrg
6811266e564dSmrgThis mode accepts the following additional options:
6812266e564dSmrg
6813266e564dSmrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6814266e564dSmrg  -prefer-pic       try to building PIC objects only
6815266e564dSmrg  -prefer-non-pic   try to building non-PIC objects only
6816266e564dSmrg  -static           always build a \`.o' file suitable for static linking
6817266e564dSmrg
6818266e564dSmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6819266e564dSmrgfrom the given SOURCEFILE.
6820266e564dSmrg
6821266e564dSmrgThe output file name is determined by removing the directory component from
6822266e564dSmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
6823266e564dSmrglibrary object suffix, \`.lo'."
6824266e564dSmrg  ;;
6825266e564dSmrg
6826266e564dSmrgexecute)
6827266e564dSmrg  $echo \
6828266e564dSmrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6829266e564dSmrg
6830266e564dSmrgAutomatically set library path, then run a program.
6831266e564dSmrg
6832266e564dSmrgThis mode accepts the following additional options:
6833266e564dSmrg
6834266e564dSmrg  -dlopen FILE      add the directory containing FILE to the library path
6835266e564dSmrg
6836266e564dSmrgThis mode sets the library path environment variable according to \`-dlopen'
6837266e564dSmrgflags.
6838266e564dSmrg
6839266e564dSmrgIf any of the ARGS are libtool executable wrappers, then they are translated
6840266e564dSmrginto their corresponding uninstalled binary, and any of their required library
6841266e564dSmrgdirectories are added to the library path.
6842266e564dSmrg
6843266e564dSmrgThen, COMMAND is executed, with ARGS as arguments."
6844266e564dSmrg  ;;
6845266e564dSmrg
6846266e564dSmrgfinish)
6847266e564dSmrg  $echo \
6848266e564dSmrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6849266e564dSmrg
6850266e564dSmrgComplete the installation of libtool libraries.
6851266e564dSmrg
6852266e564dSmrgEach LIBDIR is a directory that contains libtool libraries.
6853266e564dSmrg
6854266e564dSmrgThe commands that this mode executes may require superuser privileges.  Use
6855266e564dSmrgthe \`--dry-run' option if you just want to see what would be executed."
6856266e564dSmrg  ;;
6857266e564dSmrg
6858266e564dSmrginstall)
6859266e564dSmrg  $echo \
6860266e564dSmrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6861266e564dSmrg
6862266e564dSmrgInstall executables or libraries.
6863266e564dSmrg
6864266e564dSmrgINSTALL-COMMAND is the installation command.  The first component should be
6865266e564dSmrgeither the \`install' or \`cp' program.
6866266e564dSmrg
6867266e564dSmrgThe rest of the components are interpreted as arguments to that command (only
6868266e564dSmrgBSD-compatible install options are recognized)."
6869266e564dSmrg  ;;
6870266e564dSmrg
6871266e564dSmrglink)
6872266e564dSmrg  $echo \
6873266e564dSmrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6874266e564dSmrg
6875266e564dSmrgLink object files or libraries together to form another library, or to
6876266e564dSmrgcreate an executable program.
6877266e564dSmrg
6878266e564dSmrgLINK-COMMAND is a command using the C compiler that you would use to create
6879266e564dSmrga program from several object files.
6880266e564dSmrg
6881266e564dSmrgThe following components of LINK-COMMAND are treated specially:
6882266e564dSmrg
6883266e564dSmrg  -all-static       do not do any dynamic linking at all
6884266e564dSmrg  -avoid-version    do not add a version suffix if possible
6885266e564dSmrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6886266e564dSmrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6887266e564dSmrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6888266e564dSmrg  -export-symbols SYMFILE
6889c5629e66Smrg                    try to export only the symbols listed in SYMFILE
6890266e564dSmrg  -export-symbols-regex REGEX
6891c5629e66Smrg                    try to export only the symbols matching REGEX
6892266e564dSmrg  -LLIBDIR          search LIBDIR for required installed libraries
6893266e564dSmrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
6894266e564dSmrg  -module           build a library that can dlopened
6895266e564dSmrg  -no-fast-install  disable the fast-install mode
6896266e564dSmrg  -no-install       link a not-installable executable
6897266e564dSmrg  -no-undefined     declare that a library does not refer to external symbols
6898266e564dSmrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6899266e564dSmrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
6900266e564dSmrg  -precious-files-regex REGEX
6901266e564dSmrg                    don't remove output files matching REGEX
6902266e564dSmrg  -release RELEASE  specify package release information
6903266e564dSmrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6904266e564dSmrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6905c5629e66Smrg  -static           do not do any dynamic linking of uninstalled libtool libraries
6906c5629e66Smrg  -static-libtool-libs
6907c5629e66Smrg                    do not do any dynamic linking of libtool libraries
6908266e564dSmrg  -version-info CURRENT[:REVISION[:AGE]]
6909c5629e66Smrg                    specify library version info [each variable defaults to 0]
6910266e564dSmrg
6911266e564dSmrgAll other options (arguments beginning with \`-') are ignored.
6912266e564dSmrg
6913266e564dSmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
6914266e564dSmrgtreated as uninstalled libtool libraries, other files are standard or library
6915266e564dSmrgobject files.
6916266e564dSmrg
6917266e564dSmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6918266e564dSmrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
6919266e564dSmrgrequired, except when creating a convenience library.
6920266e564dSmrg
6921266e564dSmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6922266e564dSmrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
6923266e564dSmrg
6924266e564dSmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6925266e564dSmrgis created, otherwise an executable program is created."
6926266e564dSmrg  ;;
6927266e564dSmrg
6928266e564dSmrguninstall)
6929266e564dSmrg  $echo \
6930266e564dSmrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6931266e564dSmrg
6932266e564dSmrgRemove libraries from an installation directory.
6933266e564dSmrg
6934266e564dSmrgRM is the name of the program to use to delete files associated with each FILE
6935266e564dSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6936266e564dSmrgto RM.
6937266e564dSmrg
6938266e564dSmrgIf FILE is a libtool library, all the files associated with it are deleted.
6939266e564dSmrgOtherwise, only FILE itself is deleted using RM."
6940266e564dSmrg  ;;
6941266e564dSmrg
6942266e564dSmrg*)
6943266e564dSmrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6944266e564dSmrg  $echo "$help" 1>&2
6945266e564dSmrg  exit $EXIT_FAILURE
6946266e564dSmrg  ;;
6947266e564dSmrgesac
6948266e564dSmrg
6949266e564dSmrg$echo
6950266e564dSmrg$echo "Try \`$modename --help' for more information about other modes."
6951266e564dSmrg
6952266e564dSmrgexit $?
6953266e564dSmrg
6954266e564dSmrg# The TAGs below are defined such that we never get into a situation
6955266e564dSmrg# in which we disable both kinds of libraries.  Given conflicting
6956266e564dSmrg# choices, we go for a static library, that is the most portable,
6957266e564dSmrg# since we can't tell whether shared libraries were disabled because
6958266e564dSmrg# the user asked for that or because the platform doesn't support
6959266e564dSmrg# them.  This is particularly important on AIX, because we don't
6960266e564dSmrg# support having both static and shared libraries enabled at the same
6961266e564dSmrg# time on that platform, so we default to a shared-only configuration.
6962266e564dSmrg# If a disable-shared tag is given, we'll fallback to a static-only
6963266e564dSmrg# configuration.  But we'll never go from static-only to shared-only.
6964266e564dSmrg
6965266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6966266e564dSmrgdisable_libs=shared
6967266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-shared
6968266e564dSmrg
6969266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6970266e564dSmrgdisable_libs=static
6971266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-static
6972266e564dSmrg
6973266e564dSmrg# Local Variables:
6974266e564dSmrg# mode:shell-script
6975266e564dSmrg# sh-indentation:2
6976266e564dSmrg# End:
6977