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