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