ltmain.sh revision 357bfbb2
1357bfbb2Smrg# ltmain.sh - Provide generalized library-building support services.
2357bfbb2Smrg# NOTE: Changing this file will not affect anything until you rerun configure.
3357bfbb2Smrg#
4357bfbb2Smrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5357bfbb2Smrg# Free Software Foundation, Inc.
6357bfbb2Smrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7357bfbb2Smrg#
8357bfbb2Smrg# This program is free software; you can redistribute it and/or modify
9357bfbb2Smrg# it under the terms of the GNU General Public License as published by
10357bfbb2Smrg# the Free Software Foundation; either version 2 of the License, or
11357bfbb2Smrg# (at your option) any later version.
12357bfbb2Smrg#
13357bfbb2Smrg# This program is distributed in the hope that it will be useful, but
14357bfbb2Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
15357bfbb2Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16357bfbb2Smrg# General Public License for more details.
17357bfbb2Smrg#
18357bfbb2Smrg# You should have received a copy of the GNU General Public License
19357bfbb2Smrg# along with this program; if not, write to the Free Software
20357bfbb2Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21357bfbb2Smrg#
22357bfbb2Smrg# As a special exception to the GNU General Public License, if you
23357bfbb2Smrg# distribute this file as part of a program that contains a
24357bfbb2Smrg# configuration script generated by Autoconf, you may include it under
25357bfbb2Smrg# the same distribution terms that you use for the rest of that program.
26357bfbb2Smrg
27357bfbb2Smrgbasename="s,^.*/,,g"
28357bfbb2Smrg
29357bfbb2Smrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30357bfbb2Smrg# is ksh but when the shell is invoked as "sh" and the current value of
31357bfbb2Smrg# the _XPG environment variable is not equal to 1 (one), the special
32357bfbb2Smrg# positional parameter $0, within a function call, is the name of the
33357bfbb2Smrg# function.
34357bfbb2Smrgprogpath="$0"
35357bfbb2Smrg
36357bfbb2Smrg# The name of this program:
37357bfbb2Smrgprogname=`echo "$progpath" | $SED $basename`
38357bfbb2Smrgmodename="$progname"
39357bfbb2Smrg
40357bfbb2Smrg# Global variables:
41357bfbb2SmrgEXIT_SUCCESS=0
42357bfbb2SmrgEXIT_FAILURE=1
43357bfbb2Smrg
44357bfbb2SmrgPROGRAM=ltmain.sh
45357bfbb2SmrgPACKAGE=libtool
46357bfbb2SmrgVERSION=1.5.22
47357bfbb2SmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
48357bfbb2Smrg
49357bfbb2Smrg# See if we are running on zsh, and set the options which allow our
50357bfbb2Smrg# commands through without removal of \ escapes.
51357bfbb2Smrgif test -n "${ZSH_VERSION+set}" ; then
52357bfbb2Smrg  setopt NO_GLOB_SUBST
53357bfbb2Smrgfi
54357bfbb2Smrg
55357bfbb2Smrg# Check that we have a working $echo.
56357bfbb2Smrgif test "X$1" = X--no-reexec; then
57357bfbb2Smrg  # Discard the --no-reexec flag, and continue.
58357bfbb2Smrg  shift
59357bfbb2Smrgelif test "X$1" = X--fallback-echo; then
60357bfbb2Smrg  # Avoid inline document here, it may be left over
61357bfbb2Smrg  :
62357bfbb2Smrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63357bfbb2Smrg  # Yippee, $echo works!
64357bfbb2Smrg  :
65357bfbb2Smrgelse
66357bfbb2Smrg  # Restart under the correct shell, and then maybe $echo will work.
67357bfbb2Smrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68357bfbb2Smrgfi
69357bfbb2Smrg
70357bfbb2Smrgif test "X$1" = X--fallback-echo; then
71357bfbb2Smrg  # used as fallback echo
72357bfbb2Smrg  shift
73357bfbb2Smrg  cat <<EOF
74357bfbb2Smrg$*
75357bfbb2SmrgEOF
76357bfbb2Smrg  exit $EXIT_SUCCESS
77357bfbb2Smrgfi
78357bfbb2Smrg
79357bfbb2Smrgdefault_mode=
80357bfbb2Smrghelp="Try \`$progname --help' for more information."
81357bfbb2Smrgmagic="%%%MAGIC variable%%%"
82357bfbb2Smrgmkdir="mkdir"
83357bfbb2Smrgmv="mv -f"
84357bfbb2Smrgrm="rm -f"
85357bfbb2Smrg
86357bfbb2Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
87357bfbb2Smrg# metacharacters that are still active within double-quoted strings.
88357bfbb2SmrgXsed="${SED}"' -e 1s/^X//'
89357bfbb2Smrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90357bfbb2Smrg# test EBCDIC or ASCII
91357bfbb2Smrgcase `echo X|tr X '\101'` in
92357bfbb2Smrg A) # ASCII based system
93357bfbb2Smrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94357bfbb2Smrg  SP2NL='tr \040 \012'
95357bfbb2Smrg  NL2SP='tr \015\012 \040\040'
96357bfbb2Smrg  ;;
97357bfbb2Smrg *) # EBCDIC based system
98357bfbb2Smrg  SP2NL='tr \100 \n'
99357bfbb2Smrg  NL2SP='tr \r\n \100\100'
100357bfbb2Smrg  ;;
101357bfbb2Smrgesac
102357bfbb2Smrg
103357bfbb2Smrg# NLS nuisances.
104357bfbb2Smrg# Only set LANG and LC_ALL to C if already set.
105357bfbb2Smrg# These must not be set unconditionally because not all systems understand
106357bfbb2Smrg# e.g. LANG=C (notably SCO).
107357bfbb2Smrg# We save the old values to restore during execute mode.
108357bfbb2Smrgif test "${LC_ALL+set}" = set; then
109357bfbb2Smrg  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110357bfbb2Smrgfi
111357bfbb2Smrgif test "${LANG+set}" = set; then
112357bfbb2Smrg  save_LANG="$LANG"; LANG=C; export LANG
113357bfbb2Smrgfi
114357bfbb2Smrg
115357bfbb2Smrg# Make sure IFS has a sensible default
116357bfbb2Smrglt_nl='
117357bfbb2Smrg'
118357bfbb2SmrgIFS=" 	$lt_nl"
119357bfbb2Smrg
120357bfbb2Smrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121357bfbb2Smrg  $echo "$modename: not configured to build any kind of library" 1>&2
122357bfbb2Smrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
123357bfbb2Smrg  exit $EXIT_FAILURE
124357bfbb2Smrgfi
125357bfbb2Smrg
126357bfbb2Smrg# Global variables.
127357bfbb2Smrgmode=$default_mode
128357bfbb2Smrgnonopt=
129357bfbb2Smrgprev=
130357bfbb2Smrgprevopt=
131357bfbb2Smrgrun=
132357bfbb2Smrgshow="$echo"
133357bfbb2Smrgshow_help=
134357bfbb2Smrgexecute_dlfiles=
135357bfbb2Smrgduplicate_deps=no
136357bfbb2Smrgpreserve_args=
137357bfbb2Smrglo2o="s/\\.lo\$/.${objext}/"
138357bfbb2Smrgo2lo="s/\\.${objext}\$/.lo/"
139357bfbb2Smrg
140357bfbb2Smrg#####################################
141357bfbb2Smrg# Shell function definitions:
142357bfbb2Smrg# This seems to be the best place for them
143357bfbb2Smrg
144357bfbb2Smrg# func_mktempdir [string]
145357bfbb2Smrg# Make a temporary directory that won't clash with other running
146357bfbb2Smrg# libtool processes, and avoids race conditions if possible.  If
147357bfbb2Smrg# given, STRING is the basename for that directory.
148357bfbb2Smrgfunc_mktempdir ()
149357bfbb2Smrg{
150357bfbb2Smrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
151357bfbb2Smrg
152357bfbb2Smrg    if test "$run" = ":"; then
153357bfbb2Smrg      # Return a directory name, but don't create it in dry-run mode
154357bfbb2Smrg      my_tmpdir="${my_template}-$$"
155357bfbb2Smrg    else
156357bfbb2Smrg
157357bfbb2Smrg      # If mktemp works, use that first and foremost
158357bfbb2Smrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
159357bfbb2Smrg
160357bfbb2Smrg      if test ! -d "$my_tmpdir"; then
161357bfbb2Smrg	# Failing that, at least try and use $RANDOM to avoid a race
162357bfbb2Smrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
163357bfbb2Smrg
164357bfbb2Smrg	save_mktempdir_umask=`umask`
165357bfbb2Smrg	umask 0077
166357bfbb2Smrg	$mkdir "$my_tmpdir"
167357bfbb2Smrg	umask $save_mktempdir_umask
168357bfbb2Smrg      fi
169357bfbb2Smrg
170357bfbb2Smrg      # If we're not in dry-run mode, bomb out on failure
171357bfbb2Smrg      test -d "$my_tmpdir" || {
172357bfbb2Smrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
173357bfbb2Smrg	exit $EXIT_FAILURE
174357bfbb2Smrg      }
175357bfbb2Smrg    fi
176357bfbb2Smrg
177357bfbb2Smrg    $echo "X$my_tmpdir" | $Xsed
178357bfbb2Smrg}
179357bfbb2Smrg
180357bfbb2Smrg
181357bfbb2Smrg# func_win32_libid arg
182357bfbb2Smrg# return the library type of file 'arg'
183357bfbb2Smrg#
184357bfbb2Smrg# Need a lot of goo to handle *both* DLLs and import libs
185357bfbb2Smrg# Has to be a shell function in order to 'eat' the argument
186357bfbb2Smrg# that is supplied when $file_magic_command is called.
187357bfbb2Smrgfunc_win32_libid ()
188357bfbb2Smrg{
189357bfbb2Smrg  win32_libid_type="unknown"
190357bfbb2Smrg  win32_fileres=`file -L $1 2>/dev/null`
191357bfbb2Smrg  case $win32_fileres in
192357bfbb2Smrg  *ar\ archive\ import\ library*) # definitely import
193357bfbb2Smrg    win32_libid_type="x86 archive import"
194357bfbb2Smrg    ;;
195357bfbb2Smrg  *ar\ archive*) # could be an import, or static
196357bfbb2Smrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
197357bfbb2Smrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198357bfbb2Smrg      win32_nmres=`eval $NM -f posix -A $1 | \
199357bfbb2Smrg	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200357bfbb2Smrg      case $win32_nmres in
201357bfbb2Smrg      import*)  win32_libid_type="x86 archive import";;
202357bfbb2Smrg      *)        win32_libid_type="x86 archive static";;
203357bfbb2Smrg      esac
204357bfbb2Smrg    fi
205357bfbb2Smrg    ;;
206357bfbb2Smrg  *DLL*)
207357bfbb2Smrg    win32_libid_type="x86 DLL"
208357bfbb2Smrg    ;;
209357bfbb2Smrg  *executable*) # but shell scripts are "executable" too...
210357bfbb2Smrg    case $win32_fileres in
211357bfbb2Smrg    *MS\ Windows\ PE\ Intel*)
212357bfbb2Smrg      win32_libid_type="x86 DLL"
213357bfbb2Smrg      ;;
214357bfbb2Smrg    esac
215357bfbb2Smrg    ;;
216357bfbb2Smrg  esac
217357bfbb2Smrg  $echo $win32_libid_type
218357bfbb2Smrg}
219357bfbb2Smrg
220357bfbb2Smrg
221357bfbb2Smrg# func_infer_tag arg
222357bfbb2Smrg# Infer tagged configuration to use if any are available and
223357bfbb2Smrg# if one wasn't chosen via the "--tag" command line option.
224357bfbb2Smrg# Only attempt this if the compiler in the base compile
225357bfbb2Smrg# command doesn't match the default compiler.
226357bfbb2Smrg# arg is usually of the form 'gcc ...'
227357bfbb2Smrgfunc_infer_tag ()
228357bfbb2Smrg{
229357bfbb2Smrg    if test -n "$available_tags" && test -z "$tagname"; then
230357bfbb2Smrg      CC_quoted=
231357bfbb2Smrg      for arg in $CC; do
232357bfbb2Smrg	case $arg in
233357bfbb2Smrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
234357bfbb2Smrg	  arg="\"$arg\""
235357bfbb2Smrg	  ;;
236357bfbb2Smrg	esac
237357bfbb2Smrg	CC_quoted="$CC_quoted $arg"
238357bfbb2Smrg      done
239357bfbb2Smrg      case $@ in
240357bfbb2Smrg      # Blanks in the command may have been stripped by the calling shell,
241357bfbb2Smrg      # but not from the CC environment variable when configure was run.
242357bfbb2Smrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
243357bfbb2Smrg      # Blanks at the start of $base_compile will cause this to fail
244357bfbb2Smrg      # if we don't check for them as well.
245357bfbb2Smrg      *)
246357bfbb2Smrg	for z in $available_tags; do
247357bfbb2Smrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248357bfbb2Smrg	    # Evaluate the configuration.
249357bfbb2Smrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250357bfbb2Smrg	    CC_quoted=
251357bfbb2Smrg	    for arg in $CC; do
252357bfbb2Smrg	    # Double-quote args containing other shell metacharacters.
253357bfbb2Smrg	    case $arg in
254357bfbb2Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
255357bfbb2Smrg	      arg="\"$arg\""
256357bfbb2Smrg	      ;;
257357bfbb2Smrg	    esac
258357bfbb2Smrg	    CC_quoted="$CC_quoted $arg"
259357bfbb2Smrg	  done
260357bfbb2Smrg	    case "$@ " in
261357bfbb2Smrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
262357bfbb2Smrg	      # The compiler in the base compile command matches
263357bfbb2Smrg	      # the one in the tagged configuration.
264357bfbb2Smrg	      # Assume this is the tagged configuration we want.
265357bfbb2Smrg	      tagname=$z
266357bfbb2Smrg	      break
267357bfbb2Smrg	      ;;
268357bfbb2Smrg	    esac
269357bfbb2Smrg	  fi
270357bfbb2Smrg	done
271357bfbb2Smrg	# If $tagname still isn't set, then no tagged configuration
272357bfbb2Smrg	# was found and let the user know that the "--tag" command
273357bfbb2Smrg	# line option must be used.
274357bfbb2Smrg	if test -z "$tagname"; then
275357bfbb2Smrg	  $echo "$modename: unable to infer tagged configuration"
276357bfbb2Smrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
277357bfbb2Smrg	  exit $EXIT_FAILURE
278357bfbb2Smrg#        else
279357bfbb2Smrg#          $echo "$modename: using $tagname tagged configuration"
280357bfbb2Smrg	fi
281357bfbb2Smrg	;;
282357bfbb2Smrg      esac
283357bfbb2Smrg    fi
284357bfbb2Smrg}
285357bfbb2Smrg
286357bfbb2Smrg
287357bfbb2Smrg# func_extract_an_archive dir oldlib
288357bfbb2Smrgfunc_extract_an_archive ()
289357bfbb2Smrg{
290357bfbb2Smrg    f_ex_an_ar_dir="$1"; shift
291357bfbb2Smrg    f_ex_an_ar_oldlib="$1"
292357bfbb2Smrg
293357bfbb2Smrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294357bfbb2Smrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295357bfbb2Smrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296357bfbb2Smrg     :
297357bfbb2Smrg    else
298357bfbb2Smrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299357bfbb2Smrg      exit $EXIT_FAILURE
300357bfbb2Smrg    fi
301357bfbb2Smrg}
302357bfbb2Smrg
303357bfbb2Smrg# func_extract_archives gentop oldlib ...
304357bfbb2Smrgfunc_extract_archives ()
305357bfbb2Smrg{
306357bfbb2Smrg    my_gentop="$1"; shift
307357bfbb2Smrg    my_oldlibs=${1+"$@"}
308357bfbb2Smrg    my_oldobjs=""
309357bfbb2Smrg    my_xlib=""
310357bfbb2Smrg    my_xabs=""
311357bfbb2Smrg    my_xdir=""
312357bfbb2Smrg    my_status=""
313357bfbb2Smrg
314357bfbb2Smrg    $show "${rm}r $my_gentop"
315357bfbb2Smrg    $run ${rm}r "$my_gentop"
316357bfbb2Smrg    $show "$mkdir $my_gentop"
317357bfbb2Smrg    $run $mkdir "$my_gentop"
318357bfbb2Smrg    my_status=$?
319357bfbb2Smrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320357bfbb2Smrg      exit $my_status
321357bfbb2Smrg    fi
322357bfbb2Smrg
323357bfbb2Smrg    for my_xlib in $my_oldlibs; do
324357bfbb2Smrg      # Extract the objects.
325357bfbb2Smrg      case $my_xlib in
326357bfbb2Smrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327357bfbb2Smrg	*) my_xabs=`pwd`"/$my_xlib" ;;
328357bfbb2Smrg      esac
329357bfbb2Smrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330357bfbb2Smrg      my_xdir="$my_gentop/$my_xlib"
331357bfbb2Smrg
332357bfbb2Smrg      $show "${rm}r $my_xdir"
333357bfbb2Smrg      $run ${rm}r "$my_xdir"
334357bfbb2Smrg      $show "$mkdir $my_xdir"
335357bfbb2Smrg      $run $mkdir "$my_xdir"
336357bfbb2Smrg      exit_status=$?
337357bfbb2Smrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338357bfbb2Smrg	exit $exit_status
339357bfbb2Smrg      fi
340357bfbb2Smrg      case $host in
341357bfbb2Smrg      *-darwin*)
342357bfbb2Smrg	$show "Extracting $my_xabs"
343357bfbb2Smrg	# Do not bother doing anything if just a dry run
344357bfbb2Smrg	if test -z "$run"; then
345357bfbb2Smrg	  darwin_orig_dir=`pwd`
346357bfbb2Smrg	  cd $my_xdir || exit $?
347357bfbb2Smrg	  darwin_archive=$my_xabs
348357bfbb2Smrg	  darwin_curdir=`pwd`
349357bfbb2Smrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350357bfbb2Smrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351357bfbb2Smrg	  if test -n "$darwin_arches"; then 
352357bfbb2Smrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353357bfbb2Smrg	    darwin_arch=
354357bfbb2Smrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
355357bfbb2Smrg	    for darwin_arch in  $darwin_arches ; do
356357bfbb2Smrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357357bfbb2Smrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358357bfbb2Smrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359357bfbb2Smrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360357bfbb2Smrg	      cd "$darwin_curdir"
361357bfbb2Smrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362357bfbb2Smrg	    done # $darwin_arches
363357bfbb2Smrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364357bfbb2Smrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365357bfbb2Smrg	    darwin_file=
366357bfbb2Smrg	    darwin_files=
367357bfbb2Smrg	    for darwin_file in $darwin_filelist; do
368357bfbb2Smrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369357bfbb2Smrg	      lipo -create -output "$darwin_file" $darwin_files
370357bfbb2Smrg	    done # $darwin_filelist
371357bfbb2Smrg	    ${rm}r unfat-$$
372357bfbb2Smrg	    cd "$darwin_orig_dir"
373357bfbb2Smrg	  else
374357bfbb2Smrg	    cd "$darwin_orig_dir"
375357bfbb2Smrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
376357bfbb2Smrg	  fi # $darwin_arches
377357bfbb2Smrg	fi # $run
378357bfbb2Smrg	;;
379357bfbb2Smrg      *)
380357bfbb2Smrg        func_extract_an_archive "$my_xdir" "$my_xabs"
381357bfbb2Smrg        ;;
382357bfbb2Smrg      esac
383357bfbb2Smrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384357bfbb2Smrg    done
385357bfbb2Smrg    func_extract_archives_result="$my_oldobjs"
386357bfbb2Smrg}
387357bfbb2Smrg# End of Shell function definitions
388357bfbb2Smrg#####################################
389357bfbb2Smrg
390357bfbb2Smrg# Darwin sucks
391357bfbb2Smrgeval std_shrext=\"$shrext_cmds\"
392357bfbb2Smrg
393357bfbb2Smrgdisable_libs=no
394357bfbb2Smrg
395357bfbb2Smrg# Parse our command line options once, thoroughly.
396357bfbb2Smrgwhile test "$#" -gt 0
397357bfbb2Smrgdo
398357bfbb2Smrg  arg="$1"
399357bfbb2Smrg  shift
400357bfbb2Smrg
401357bfbb2Smrg  case $arg in
402357bfbb2Smrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403357bfbb2Smrg  *) optarg= ;;
404357bfbb2Smrg  esac
405357bfbb2Smrg
406357bfbb2Smrg  # If the previous option needs an argument, assign it.
407357bfbb2Smrg  if test -n "$prev"; then
408357bfbb2Smrg    case $prev in
409357bfbb2Smrg    execute_dlfiles)
410357bfbb2Smrg      execute_dlfiles="$execute_dlfiles $arg"
411357bfbb2Smrg      ;;
412357bfbb2Smrg    tag)
413357bfbb2Smrg      tagname="$arg"
414357bfbb2Smrg      preserve_args="${preserve_args}=$arg"
415357bfbb2Smrg
416357bfbb2Smrg      # Check whether tagname contains only valid characters
417357bfbb2Smrg      case $tagname in
418357bfbb2Smrg      *[!-_A-Za-z0-9,/]*)
419357bfbb2Smrg	$echo "$progname: invalid tag name: $tagname" 1>&2
420357bfbb2Smrg	exit $EXIT_FAILURE
421357bfbb2Smrg	;;
422357bfbb2Smrg      esac
423357bfbb2Smrg
424357bfbb2Smrg      case $tagname in
425357bfbb2Smrg      CC)
426357bfbb2Smrg	# Don't test for the "default" C tag, as we know, it's there, but
427357bfbb2Smrg	# not specially marked.
428357bfbb2Smrg	;;
429357bfbb2Smrg      *)
430357bfbb2Smrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431357bfbb2Smrg	  taglist="$taglist $tagname"
432357bfbb2Smrg	  # Evaluate the configuration.
433357bfbb2Smrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434357bfbb2Smrg	else
435357bfbb2Smrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
436357bfbb2Smrg	fi
437357bfbb2Smrg	;;
438357bfbb2Smrg      esac
439357bfbb2Smrg      ;;
440357bfbb2Smrg    *)
441357bfbb2Smrg      eval "$prev=\$arg"
442357bfbb2Smrg      ;;
443357bfbb2Smrg    esac
444357bfbb2Smrg
445357bfbb2Smrg    prev=
446357bfbb2Smrg    prevopt=
447357bfbb2Smrg    continue
448357bfbb2Smrg  fi
449357bfbb2Smrg
450357bfbb2Smrg  # Have we seen a non-optional argument yet?
451357bfbb2Smrg  case $arg in
452357bfbb2Smrg  --help)
453357bfbb2Smrg    show_help=yes
454357bfbb2Smrg    ;;
455357bfbb2Smrg
456357bfbb2Smrg  --version)
457357bfbb2Smrg    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458357bfbb2Smrg    $echo
459357bfbb2Smrg    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
460357bfbb2Smrg    $echo "This is free software; see the source for copying conditions.  There is NO"
461357bfbb2Smrg    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462357bfbb2Smrg    exit $?
463357bfbb2Smrg    ;;
464357bfbb2Smrg
465357bfbb2Smrg  --config)
466357bfbb2Smrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467357bfbb2Smrg    # Now print the configurations for the tags.
468357bfbb2Smrg    for tagname in $taglist; do
469357bfbb2Smrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470357bfbb2Smrg    done
471357bfbb2Smrg    exit $?
472357bfbb2Smrg    ;;
473357bfbb2Smrg
474357bfbb2Smrg  --debug)
475357bfbb2Smrg    $echo "$progname: enabling shell trace mode"
476357bfbb2Smrg    set -x
477357bfbb2Smrg    preserve_args="$preserve_args $arg"
478357bfbb2Smrg    ;;
479357bfbb2Smrg
480357bfbb2Smrg  --dry-run | -n)
481357bfbb2Smrg    run=:
482357bfbb2Smrg    ;;
483357bfbb2Smrg
484357bfbb2Smrg  --features)
485357bfbb2Smrg    $echo "host: $host"
486357bfbb2Smrg    if test "$build_libtool_libs" = yes; then
487357bfbb2Smrg      $echo "enable shared libraries"
488357bfbb2Smrg    else
489357bfbb2Smrg      $echo "disable shared libraries"
490357bfbb2Smrg    fi
491357bfbb2Smrg    if test "$build_old_libs" = yes; then
492357bfbb2Smrg      $echo "enable static libraries"
493357bfbb2Smrg    else
494357bfbb2Smrg      $echo "disable static libraries"
495357bfbb2Smrg    fi
496357bfbb2Smrg    exit $?
497357bfbb2Smrg    ;;
498357bfbb2Smrg
499357bfbb2Smrg  --finish) mode="finish" ;;
500357bfbb2Smrg
501357bfbb2Smrg  --mode) prevopt="--mode" prev=mode ;;
502357bfbb2Smrg  --mode=*) mode="$optarg" ;;
503357bfbb2Smrg
504357bfbb2Smrg  --preserve-dup-deps) duplicate_deps="yes" ;;
505357bfbb2Smrg
506357bfbb2Smrg  --quiet | --silent)
507357bfbb2Smrg    show=:
508357bfbb2Smrg    preserve_args="$preserve_args $arg"
509357bfbb2Smrg    ;;
510357bfbb2Smrg
511357bfbb2Smrg  --tag)
512357bfbb2Smrg    prevopt="--tag"
513357bfbb2Smrg    prev=tag
514357bfbb2Smrg    preserve_args="$preserve_args --tag"
515357bfbb2Smrg    ;;
516357bfbb2Smrg  --tag=*)
517357bfbb2Smrg    set tag "$optarg" ${1+"$@"}
518357bfbb2Smrg    shift
519357bfbb2Smrg    prev=tag
520357bfbb2Smrg    preserve_args="$preserve_args --tag"
521357bfbb2Smrg    ;;
522357bfbb2Smrg
523357bfbb2Smrg  -dlopen)
524357bfbb2Smrg    prevopt="-dlopen"
525357bfbb2Smrg    prev=execute_dlfiles
526357bfbb2Smrg    ;;
527357bfbb2Smrg
528357bfbb2Smrg  -*)
529357bfbb2Smrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
530357bfbb2Smrg    $echo "$help" 1>&2
531357bfbb2Smrg    exit $EXIT_FAILURE
532357bfbb2Smrg    ;;
533357bfbb2Smrg
534357bfbb2Smrg  *)
535357bfbb2Smrg    nonopt="$arg"
536357bfbb2Smrg    break
537357bfbb2Smrg    ;;
538357bfbb2Smrg  esac
539357bfbb2Smrgdone
540357bfbb2Smrg
541357bfbb2Smrgif test -n "$prevopt"; then
542357bfbb2Smrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543357bfbb2Smrg  $echo "$help" 1>&2
544357bfbb2Smrg  exit $EXIT_FAILURE
545357bfbb2Smrgfi
546357bfbb2Smrg
547357bfbb2Smrgcase $disable_libs in
548357bfbb2Smrgno) 
549357bfbb2Smrg  ;;
550357bfbb2Smrgshared)
551357bfbb2Smrg  build_libtool_libs=no
552357bfbb2Smrg  build_old_libs=yes
553357bfbb2Smrg  ;;
554357bfbb2Smrgstatic)
555357bfbb2Smrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556357bfbb2Smrg  ;;
557357bfbb2Smrgesac
558357bfbb2Smrg
559357bfbb2Smrg# If this variable is set in any of the actions, the command in it
560357bfbb2Smrg# will be execed at the end.  This prevents here-documents from being
561357bfbb2Smrg# left over by shells.
562357bfbb2Smrgexec_cmd=
563357bfbb2Smrg
564357bfbb2Smrgif test -z "$show_help"; then
565357bfbb2Smrg
566357bfbb2Smrg  # Infer the operation mode.
567357bfbb2Smrg  if test -z "$mode"; then
568357bfbb2Smrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569357bfbb2Smrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570357bfbb2Smrg    case $nonopt in
571357bfbb2Smrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572357bfbb2Smrg      mode=link
573357bfbb2Smrg      for arg
574357bfbb2Smrg      do
575357bfbb2Smrg	case $arg in
576357bfbb2Smrg	-c)
577357bfbb2Smrg	   mode=compile
578357bfbb2Smrg	   break
579357bfbb2Smrg	   ;;
580357bfbb2Smrg	esac
581357bfbb2Smrg      done
582357bfbb2Smrg      ;;
583357bfbb2Smrg    *db | *dbx | *strace | *truss)
584357bfbb2Smrg      mode=execute
585357bfbb2Smrg      ;;
586357bfbb2Smrg    *install*|cp|mv)
587357bfbb2Smrg      mode=install
588357bfbb2Smrg      ;;
589357bfbb2Smrg    *rm)
590357bfbb2Smrg      mode=uninstall
591357bfbb2Smrg      ;;
592357bfbb2Smrg    *)
593357bfbb2Smrg      # If we have no mode, but dlfiles were specified, then do execute mode.
594357bfbb2Smrg      test -n "$execute_dlfiles" && mode=execute
595357bfbb2Smrg
596357bfbb2Smrg      # Just use the default operation mode.
597357bfbb2Smrg      if test -z "$mode"; then
598357bfbb2Smrg	if test -n "$nonopt"; then
599357bfbb2Smrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600357bfbb2Smrg	else
601357bfbb2Smrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602357bfbb2Smrg	fi
603357bfbb2Smrg      fi
604357bfbb2Smrg      ;;
605357bfbb2Smrg    esac
606357bfbb2Smrg  fi
607357bfbb2Smrg
608357bfbb2Smrg  # Only execute mode is allowed to have -dlopen flags.
609357bfbb2Smrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
610357bfbb2Smrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611357bfbb2Smrg    $echo "$help" 1>&2
612357bfbb2Smrg    exit $EXIT_FAILURE
613357bfbb2Smrg  fi
614357bfbb2Smrg
615357bfbb2Smrg  # Change the help message to a mode-specific one.
616357bfbb2Smrg  generic_help="$help"
617357bfbb2Smrg  help="Try \`$modename --help --mode=$mode' for more information."
618357bfbb2Smrg
619357bfbb2Smrg  # These modes are in order of execution frequency so that they run quickly.
620357bfbb2Smrg  case $mode in
621357bfbb2Smrg  # libtool compile mode
622357bfbb2Smrg  compile)
623357bfbb2Smrg    modename="$modename: compile"
624357bfbb2Smrg    # Get the compilation command and the source file.
625357bfbb2Smrg    base_compile=
626357bfbb2Smrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
627357bfbb2Smrg    suppress_opt=yes
628357bfbb2Smrg    suppress_output=
629357bfbb2Smrg    arg_mode=normal
630357bfbb2Smrg    libobj=
631357bfbb2Smrg    later=
632357bfbb2Smrg
633357bfbb2Smrg    for arg
634357bfbb2Smrg    do
635357bfbb2Smrg      case $arg_mode in
636357bfbb2Smrg      arg  )
637357bfbb2Smrg	# do not "continue".  Instead, add this to base_compile
638357bfbb2Smrg	lastarg="$arg"
639357bfbb2Smrg	arg_mode=normal
640357bfbb2Smrg	;;
641357bfbb2Smrg
642357bfbb2Smrg      target )
643357bfbb2Smrg	libobj="$arg"
644357bfbb2Smrg	arg_mode=normal
645357bfbb2Smrg	continue
646357bfbb2Smrg	;;
647357bfbb2Smrg
648357bfbb2Smrg      normal )
649357bfbb2Smrg	# Accept any command-line options.
650357bfbb2Smrg	case $arg in
651357bfbb2Smrg	-o)
652357bfbb2Smrg	  if test -n "$libobj" ; then
653357bfbb2Smrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
654357bfbb2Smrg	    exit $EXIT_FAILURE
655357bfbb2Smrg	  fi
656357bfbb2Smrg	  arg_mode=target
657357bfbb2Smrg	  continue
658357bfbb2Smrg	  ;;
659357bfbb2Smrg
660357bfbb2Smrg	-static | -prefer-pic | -prefer-non-pic)
661357bfbb2Smrg	  later="$later $arg"
662357bfbb2Smrg	  continue
663357bfbb2Smrg	  ;;
664357bfbb2Smrg
665357bfbb2Smrg	-no-suppress)
666357bfbb2Smrg	  suppress_opt=no
667357bfbb2Smrg	  continue
668357bfbb2Smrg	  ;;
669357bfbb2Smrg
670357bfbb2Smrg	-Xcompiler)
671357bfbb2Smrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
672357bfbb2Smrg	  continue      #  The current "srcfile" will either be retained or
673357bfbb2Smrg	  ;;            #  replaced later.  I would guess that would be a bug.
674357bfbb2Smrg
675357bfbb2Smrg	-Wc,*)
676357bfbb2Smrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
677357bfbb2Smrg	  lastarg=
678357bfbb2Smrg	  save_ifs="$IFS"; IFS=','
679357bfbb2Smrg 	  for arg in $args; do
680357bfbb2Smrg	    IFS="$save_ifs"
681357bfbb2Smrg
682357bfbb2Smrg	    # Double-quote args containing other shell metacharacters.
683357bfbb2Smrg	    # Many Bourne shells cannot handle close brackets correctly
684357bfbb2Smrg	    # in scan sets, so we specify it separately.
685357bfbb2Smrg	    case $arg in
686357bfbb2Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
687357bfbb2Smrg	      arg="\"$arg\""
688357bfbb2Smrg	      ;;
689357bfbb2Smrg	    esac
690357bfbb2Smrg	    lastarg="$lastarg $arg"
691357bfbb2Smrg	  done
692357bfbb2Smrg	  IFS="$save_ifs"
693357bfbb2Smrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
694357bfbb2Smrg
695357bfbb2Smrg	  # Add the arguments to base_compile.
696357bfbb2Smrg	  base_compile="$base_compile $lastarg"
697357bfbb2Smrg	  continue
698357bfbb2Smrg	  ;;
699357bfbb2Smrg
700357bfbb2Smrg	* )
701357bfbb2Smrg	  # Accept the current argument as the source file.
702357bfbb2Smrg	  # The previous "srcfile" becomes the current argument.
703357bfbb2Smrg	  #
704357bfbb2Smrg	  lastarg="$srcfile"
705357bfbb2Smrg	  srcfile="$arg"
706357bfbb2Smrg	  ;;
707357bfbb2Smrg	esac  #  case $arg
708357bfbb2Smrg	;;
709357bfbb2Smrg      esac    #  case $arg_mode
710357bfbb2Smrg
711357bfbb2Smrg      # Aesthetically quote the previous argument.
712357bfbb2Smrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
713357bfbb2Smrg
714357bfbb2Smrg      case $lastarg in
715357bfbb2Smrg      # Double-quote args containing other shell metacharacters.
716357bfbb2Smrg      # Many Bourne shells cannot handle close brackets correctly
717357bfbb2Smrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
718357bfbb2Smrg      # in scan sets (worked around with variable expansion),
719357bfbb2Smrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
720357bfbb2Smrg      # at all, so we specify them separately.
721357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722357bfbb2Smrg	lastarg="\"$lastarg\""
723357bfbb2Smrg	;;
724357bfbb2Smrg      esac
725357bfbb2Smrg
726357bfbb2Smrg      base_compile="$base_compile $lastarg"
727357bfbb2Smrg    done # for arg
728357bfbb2Smrg
729357bfbb2Smrg    case $arg_mode in
730357bfbb2Smrg    arg)
731357bfbb2Smrg      $echo "$modename: you must specify an argument for -Xcompile"
732357bfbb2Smrg      exit $EXIT_FAILURE
733357bfbb2Smrg      ;;
734357bfbb2Smrg    target)
735357bfbb2Smrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
736357bfbb2Smrg      exit $EXIT_FAILURE
737357bfbb2Smrg      ;;
738357bfbb2Smrg    *)
739357bfbb2Smrg      # Get the name of the library object.
740357bfbb2Smrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
741357bfbb2Smrg      ;;
742357bfbb2Smrg    esac
743357bfbb2Smrg
744357bfbb2Smrg    # Recognize several different file suffixes.
745357bfbb2Smrg    # If the user specifies -o file.o, it is replaced with file.lo
746357bfbb2Smrg    xform='[cCFSifmso]'
747357bfbb2Smrg    case $libobj in
748357bfbb2Smrg    *.ada) xform=ada ;;
749357bfbb2Smrg    *.adb) xform=adb ;;
750357bfbb2Smrg    *.ads) xform=ads ;;
751357bfbb2Smrg    *.asm) xform=asm ;;
752357bfbb2Smrg    *.c++) xform=c++ ;;
753357bfbb2Smrg    *.cc) xform=cc ;;
754357bfbb2Smrg    *.ii) xform=ii ;;
755357bfbb2Smrg    *.class) xform=class ;;
756357bfbb2Smrg    *.cpp) xform=cpp ;;
757357bfbb2Smrg    *.cxx) xform=cxx ;;
758357bfbb2Smrg    *.f90) xform=f90 ;;
759357bfbb2Smrg    *.for) xform=for ;;
760357bfbb2Smrg    *.java) xform=java ;;
761357bfbb2Smrg    esac
762357bfbb2Smrg
763357bfbb2Smrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764357bfbb2Smrg
765357bfbb2Smrg    case $libobj in
766357bfbb2Smrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
767357bfbb2Smrg    *)
768357bfbb2Smrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
769357bfbb2Smrg      exit $EXIT_FAILURE
770357bfbb2Smrg      ;;
771357bfbb2Smrg    esac
772357bfbb2Smrg
773357bfbb2Smrg    func_infer_tag $base_compile
774357bfbb2Smrg
775357bfbb2Smrg    for arg in $later; do
776357bfbb2Smrg      case $arg in
777357bfbb2Smrg      -static)
778357bfbb2Smrg	build_old_libs=yes
779357bfbb2Smrg	continue
780357bfbb2Smrg	;;
781357bfbb2Smrg
782357bfbb2Smrg      -prefer-pic)
783357bfbb2Smrg	pic_mode=yes
784357bfbb2Smrg	continue
785357bfbb2Smrg	;;
786357bfbb2Smrg
787357bfbb2Smrg      -prefer-non-pic)
788357bfbb2Smrg	pic_mode=no
789357bfbb2Smrg	continue
790357bfbb2Smrg	;;
791357bfbb2Smrg      esac
792357bfbb2Smrg    done
793357bfbb2Smrg
794357bfbb2Smrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
795357bfbb2Smrg    case $qlibobj in
796357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
797357bfbb2Smrg	qlibobj="\"$qlibobj\"" ;;
798357bfbb2Smrg    esac
799357bfbb2Smrg    test "X$libobj" != "X$qlibobj" \
800357bfbb2Smrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
801357bfbb2Smrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802357bfbb2Smrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803357bfbb2Smrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804357bfbb2Smrg    if test "X$xdir" = "X$obj"; then
805357bfbb2Smrg      xdir=
806357bfbb2Smrg    else
807357bfbb2Smrg      xdir=$xdir/
808357bfbb2Smrg    fi
809357bfbb2Smrg    lobj=${xdir}$objdir/$objname
810357bfbb2Smrg
811357bfbb2Smrg    if test -z "$base_compile"; then
812357bfbb2Smrg      $echo "$modename: you must specify a compilation command" 1>&2
813357bfbb2Smrg      $echo "$help" 1>&2
814357bfbb2Smrg      exit $EXIT_FAILURE
815357bfbb2Smrg    fi
816357bfbb2Smrg
817357bfbb2Smrg    # Delete any leftover library objects.
818357bfbb2Smrg    if test "$build_old_libs" = yes; then
819357bfbb2Smrg      removelist="$obj $lobj $libobj ${libobj}T"
820357bfbb2Smrg    else
821357bfbb2Smrg      removelist="$lobj $libobj ${libobj}T"
822357bfbb2Smrg    fi
823357bfbb2Smrg
824357bfbb2Smrg    $run $rm $removelist
825357bfbb2Smrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826357bfbb2Smrg
827357bfbb2Smrg    # On Cygwin there's no "real" PIC flag so we must build both object types
828357bfbb2Smrg    case $host_os in
829357bfbb2Smrg    cygwin* | mingw* | pw32* | os2*)
830357bfbb2Smrg      pic_mode=default
831357bfbb2Smrg      ;;
832357bfbb2Smrg    esac
833357bfbb2Smrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
834357bfbb2Smrg      # non-PIC code in shared libraries is not supported
835357bfbb2Smrg      pic_mode=default
836357bfbb2Smrg    fi
837357bfbb2Smrg
838357bfbb2Smrg    # Calculate the filename of the output object if compiler does
839357bfbb2Smrg    # not support -o with -c
840357bfbb2Smrg    if test "$compiler_c_o" = no; then
841357bfbb2Smrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842357bfbb2Smrg      lockfile="$output_obj.lock"
843357bfbb2Smrg      removelist="$removelist $output_obj $lockfile"
844357bfbb2Smrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845357bfbb2Smrg    else
846357bfbb2Smrg      output_obj=
847357bfbb2Smrg      need_locks=no
848357bfbb2Smrg      lockfile=
849357bfbb2Smrg    fi
850357bfbb2Smrg
851357bfbb2Smrg    # Lock this critical section if it is needed
852357bfbb2Smrg    # We use this script file to make the link, it avoids creating a new file
853357bfbb2Smrg    if test "$need_locks" = yes; then
854357bfbb2Smrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
855357bfbb2Smrg	$show "Waiting for $lockfile to be removed"
856357bfbb2Smrg	sleep 2
857357bfbb2Smrg      done
858357bfbb2Smrg    elif test "$need_locks" = warn; then
859357bfbb2Smrg      if test -f "$lockfile"; then
860357bfbb2Smrg	$echo "\
861357bfbb2Smrg*** ERROR, $lockfile exists and contains:
862357bfbb2Smrg`cat $lockfile 2>/dev/null`
863357bfbb2Smrg
864357bfbb2SmrgThis indicates that another process is trying to use the same
865357bfbb2Smrgtemporary object file, and libtool could not work around it because
866357bfbb2Smrgyour compiler does not support \`-c' and \`-o' together.  If you
867357bfbb2Smrgrepeat this compilation, it may succeed, by chance, but you had better
868357bfbb2Smrgavoid parallel builds (make -j) in this platform, or get a better
869357bfbb2Smrgcompiler."
870357bfbb2Smrg
871357bfbb2Smrg	$run $rm $removelist
872357bfbb2Smrg	exit $EXIT_FAILURE
873357bfbb2Smrg      fi
874357bfbb2Smrg      $echo "$srcfile" > "$lockfile"
875357bfbb2Smrg    fi
876357bfbb2Smrg
877357bfbb2Smrg    if test -n "$fix_srcfile_path"; then
878357bfbb2Smrg      eval srcfile=\"$fix_srcfile_path\"
879357bfbb2Smrg    fi
880357bfbb2Smrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
881357bfbb2Smrg    case $qsrcfile in
882357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
883357bfbb2Smrg      qsrcfile="\"$qsrcfile\"" ;;
884357bfbb2Smrg    esac
885357bfbb2Smrg
886357bfbb2Smrg    $run $rm "$libobj" "${libobj}T"
887357bfbb2Smrg
888357bfbb2Smrg    # Create a libtool object file (analogous to a ".la" file),
889357bfbb2Smrg    # but don't create it if we're doing a dry run.
890357bfbb2Smrg    test -z "$run" && cat > ${libobj}T <<EOF
891357bfbb2Smrg# $libobj - a libtool object file
892357bfbb2Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893357bfbb2Smrg#
894357bfbb2Smrg# Please DO NOT delete this file!
895357bfbb2Smrg# It is necessary for linking the library.
896357bfbb2Smrg
897357bfbb2Smrg# Name of the PIC object.
898357bfbb2SmrgEOF
899357bfbb2Smrg
900357bfbb2Smrg    # Only build a PIC object if we are building libtool libraries.
901357bfbb2Smrg    if test "$build_libtool_libs" = yes; then
902357bfbb2Smrg      # Without this assignment, base_compile gets emptied.
903357bfbb2Smrg      fbsd_hideous_sh_bug=$base_compile
904357bfbb2Smrg
905357bfbb2Smrg      if test "$pic_mode" != no; then
906357bfbb2Smrg	command="$base_compile $qsrcfile $pic_flag"
907357bfbb2Smrg      else
908357bfbb2Smrg	# Don't build PIC code
909357bfbb2Smrg	command="$base_compile $qsrcfile"
910357bfbb2Smrg      fi
911357bfbb2Smrg
912357bfbb2Smrg      if test ! -d "${xdir}$objdir"; then
913357bfbb2Smrg	$show "$mkdir ${xdir}$objdir"
914357bfbb2Smrg	$run $mkdir ${xdir}$objdir
915357bfbb2Smrg	exit_status=$?
916357bfbb2Smrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917357bfbb2Smrg	  exit $exit_status
918357bfbb2Smrg	fi
919357bfbb2Smrg      fi
920357bfbb2Smrg
921357bfbb2Smrg      if test -z "$output_obj"; then
922357bfbb2Smrg	# Place PIC objects in $objdir
923357bfbb2Smrg	command="$command -o $lobj"
924357bfbb2Smrg      fi
925357bfbb2Smrg
926357bfbb2Smrg      $run $rm "$lobj" "$output_obj"
927357bfbb2Smrg
928357bfbb2Smrg      $show "$command"
929357bfbb2Smrg      if $run eval "$command"; then :
930357bfbb2Smrg      else
931357bfbb2Smrg	test -n "$output_obj" && $run $rm $removelist
932357bfbb2Smrg	exit $EXIT_FAILURE
933357bfbb2Smrg      fi
934357bfbb2Smrg
935357bfbb2Smrg      if test "$need_locks" = warn &&
936357bfbb2Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937357bfbb2Smrg	$echo "\
938357bfbb2Smrg*** ERROR, $lockfile contains:
939357bfbb2Smrg`cat $lockfile 2>/dev/null`
940357bfbb2Smrg
941357bfbb2Smrgbut it should contain:
942357bfbb2Smrg$srcfile
943357bfbb2Smrg
944357bfbb2SmrgThis indicates that another process is trying to use the same
945357bfbb2Smrgtemporary object file, and libtool could not work around it because
946357bfbb2Smrgyour compiler does not support \`-c' and \`-o' together.  If you
947357bfbb2Smrgrepeat this compilation, it may succeed, by chance, but you had better
948357bfbb2Smrgavoid parallel builds (make -j) in this platform, or get a better
949357bfbb2Smrgcompiler."
950357bfbb2Smrg
951357bfbb2Smrg	$run $rm $removelist
952357bfbb2Smrg	exit $EXIT_FAILURE
953357bfbb2Smrg      fi
954357bfbb2Smrg
955357bfbb2Smrg      # Just move the object if needed, then go on to compile the next one
956357bfbb2Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957357bfbb2Smrg	$show "$mv $output_obj $lobj"
958357bfbb2Smrg	if $run $mv $output_obj $lobj; then :
959357bfbb2Smrg	else
960357bfbb2Smrg	  error=$?
961357bfbb2Smrg	  $run $rm $removelist
962357bfbb2Smrg	  exit $error
963357bfbb2Smrg	fi
964357bfbb2Smrg      fi
965357bfbb2Smrg
966357bfbb2Smrg      # Append the name of the PIC object to the libtool object file.
967357bfbb2Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
968357bfbb2Smrgpic_object='$objdir/$objname'
969357bfbb2Smrg
970357bfbb2SmrgEOF
971357bfbb2Smrg
972357bfbb2Smrg      # Allow error messages only from the first compilation.
973357bfbb2Smrg      if test "$suppress_opt" = yes; then
974357bfbb2Smrg        suppress_output=' >/dev/null 2>&1'
975357bfbb2Smrg      fi
976357bfbb2Smrg    else
977357bfbb2Smrg      # No PIC object so indicate it doesn't exist in the libtool
978357bfbb2Smrg      # object file.
979357bfbb2Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
980357bfbb2Smrgpic_object=none
981357bfbb2Smrg
982357bfbb2SmrgEOF
983357bfbb2Smrg    fi
984357bfbb2Smrg
985357bfbb2Smrg    # Only build a position-dependent object if we build old libraries.
986357bfbb2Smrg    if test "$build_old_libs" = yes; then
987357bfbb2Smrg      if test "$pic_mode" != yes; then
988357bfbb2Smrg	# Don't build PIC code
989357bfbb2Smrg	command="$base_compile $qsrcfile"
990357bfbb2Smrg      else
991357bfbb2Smrg	command="$base_compile $qsrcfile $pic_flag"
992357bfbb2Smrg      fi
993357bfbb2Smrg      if test "$compiler_c_o" = yes; then
994357bfbb2Smrg	command="$command -o $obj"
995357bfbb2Smrg      fi
996357bfbb2Smrg
997357bfbb2Smrg      # Suppress compiler output if we already did a PIC compilation.
998357bfbb2Smrg      command="$command$suppress_output"
999357bfbb2Smrg      $run $rm "$obj" "$output_obj"
1000357bfbb2Smrg      $show "$command"
1001357bfbb2Smrg      if $run eval "$command"; then :
1002357bfbb2Smrg      else
1003357bfbb2Smrg	$run $rm $removelist
1004357bfbb2Smrg	exit $EXIT_FAILURE
1005357bfbb2Smrg      fi
1006357bfbb2Smrg
1007357bfbb2Smrg      if test "$need_locks" = warn &&
1008357bfbb2Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009357bfbb2Smrg	$echo "\
1010357bfbb2Smrg*** ERROR, $lockfile contains:
1011357bfbb2Smrg`cat $lockfile 2>/dev/null`
1012357bfbb2Smrg
1013357bfbb2Smrgbut it should contain:
1014357bfbb2Smrg$srcfile
1015357bfbb2Smrg
1016357bfbb2SmrgThis indicates that another process is trying to use the same
1017357bfbb2Smrgtemporary object file, and libtool could not work around it because
1018357bfbb2Smrgyour compiler does not support \`-c' and \`-o' together.  If you
1019357bfbb2Smrgrepeat this compilation, it may succeed, by chance, but you had better
1020357bfbb2Smrgavoid parallel builds (make -j) in this platform, or get a better
1021357bfbb2Smrgcompiler."
1022357bfbb2Smrg
1023357bfbb2Smrg	$run $rm $removelist
1024357bfbb2Smrg	exit $EXIT_FAILURE
1025357bfbb2Smrg      fi
1026357bfbb2Smrg
1027357bfbb2Smrg      # Just move the object if needed
1028357bfbb2Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029357bfbb2Smrg	$show "$mv $output_obj $obj"
1030357bfbb2Smrg	if $run $mv $output_obj $obj; then :
1031357bfbb2Smrg	else
1032357bfbb2Smrg	  error=$?
1033357bfbb2Smrg	  $run $rm $removelist
1034357bfbb2Smrg	  exit $error
1035357bfbb2Smrg	fi
1036357bfbb2Smrg      fi
1037357bfbb2Smrg
1038357bfbb2Smrg      # Append the name of the non-PIC object the libtool object file.
1039357bfbb2Smrg      # Only append if the libtool object file exists.
1040357bfbb2Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
1041357bfbb2Smrg# Name of the non-PIC object.
1042357bfbb2Smrgnon_pic_object='$objname'
1043357bfbb2Smrg
1044357bfbb2SmrgEOF
1045357bfbb2Smrg    else
1046357bfbb2Smrg      # Append the name of the non-PIC object the libtool object file.
1047357bfbb2Smrg      # Only append if the libtool object file exists.
1048357bfbb2Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
1049357bfbb2Smrg# Name of the non-PIC object.
1050357bfbb2Smrgnon_pic_object=none
1051357bfbb2Smrg
1052357bfbb2SmrgEOF
1053357bfbb2Smrg    fi
1054357bfbb2Smrg
1055357bfbb2Smrg    $run $mv "${libobj}T" "${libobj}"
1056357bfbb2Smrg
1057357bfbb2Smrg    # Unlock the critical section if it was locked
1058357bfbb2Smrg    if test "$need_locks" != no; then
1059357bfbb2Smrg      $run $rm "$lockfile"
1060357bfbb2Smrg    fi
1061357bfbb2Smrg
1062357bfbb2Smrg    exit $EXIT_SUCCESS
1063357bfbb2Smrg    ;;
1064357bfbb2Smrg
1065357bfbb2Smrg  # libtool link mode
1066357bfbb2Smrg  link | relink)
1067357bfbb2Smrg    modename="$modename: link"
1068357bfbb2Smrg    case $host in
1069357bfbb2Smrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1070357bfbb2Smrg      # It is impossible to link a dll without this setting, and
1071357bfbb2Smrg      # we shouldn't force the makefile maintainer to figure out
1072357bfbb2Smrg      # which system we are compiling for in order to pass an extra
1073357bfbb2Smrg      # flag for every libtool invocation.
1074357bfbb2Smrg      # allow_undefined=no
1075357bfbb2Smrg
1076357bfbb2Smrg      # FIXME: Unfortunately, there are problems with the above when trying
1077357bfbb2Smrg      # to make a dll which has undefined symbols, in which case not
1078357bfbb2Smrg      # even a static library is built.  For now, we need to specify
1079357bfbb2Smrg      # -no-undefined on the libtool link line when we can be certain
1080357bfbb2Smrg      # that all symbols are satisfied, otherwise we get a static library.
1081357bfbb2Smrg      allow_undefined=yes
1082357bfbb2Smrg      ;;
1083357bfbb2Smrg    *)
1084357bfbb2Smrg      allow_undefined=yes
1085357bfbb2Smrg      ;;
1086357bfbb2Smrg    esac
1087357bfbb2Smrg    libtool_args="$nonopt"
1088357bfbb2Smrg    base_compile="$nonopt $@"
1089357bfbb2Smrg    compile_command="$nonopt"
1090357bfbb2Smrg    finalize_command="$nonopt"
1091357bfbb2Smrg
1092357bfbb2Smrg    compile_rpath=
1093357bfbb2Smrg    finalize_rpath=
1094357bfbb2Smrg    compile_shlibpath=
1095357bfbb2Smrg    finalize_shlibpath=
1096357bfbb2Smrg    convenience=
1097357bfbb2Smrg    old_convenience=
1098357bfbb2Smrg    deplibs=
1099357bfbb2Smrg    old_deplibs=
1100357bfbb2Smrg    compiler_flags=
1101357bfbb2Smrg    linker_flags=
1102357bfbb2Smrg    dllsearchpath=
1103357bfbb2Smrg    lib_search_path=`pwd`
1104357bfbb2Smrg    inst_prefix_dir=
1105357bfbb2Smrg
1106357bfbb2Smrg    avoid_version=no
1107357bfbb2Smrg    dlfiles=
1108357bfbb2Smrg    dlprefiles=
1109357bfbb2Smrg    dlself=no
1110357bfbb2Smrg    export_dynamic=no
1111357bfbb2Smrg    export_symbols=
1112357bfbb2Smrg    export_symbols_regex=
1113357bfbb2Smrg    generated=
1114357bfbb2Smrg    libobjs=
1115357bfbb2Smrg    ltlibs=
1116357bfbb2Smrg    module=no
1117357bfbb2Smrg    no_install=no
1118357bfbb2Smrg    objs=
1119357bfbb2Smrg    non_pic_objects=
1120357bfbb2Smrg    notinst_path= # paths that contain not-installed libtool libraries
1121357bfbb2Smrg    precious_files_regex=
1122357bfbb2Smrg    prefer_static_libs=no
1123357bfbb2Smrg    preload=no
1124357bfbb2Smrg    prev=
1125357bfbb2Smrg    prevarg=
1126357bfbb2Smrg    release=
1127357bfbb2Smrg    rpath=
1128357bfbb2Smrg    xrpath=
1129357bfbb2Smrg    perm_rpath=
1130357bfbb2Smrg    temp_rpath=
1131357bfbb2Smrg    thread_safe=no
1132357bfbb2Smrg    vinfo=
1133357bfbb2Smrg    vinfo_number=no
1134357bfbb2Smrg
1135357bfbb2Smrg    func_infer_tag $base_compile
1136357bfbb2Smrg
1137357bfbb2Smrg    # We need to know -static, to get the right output filenames.
1138357bfbb2Smrg    for arg
1139357bfbb2Smrg    do
1140357bfbb2Smrg      case $arg in
1141357bfbb2Smrg      -all-static | -static)
1142357bfbb2Smrg	if test "X$arg" = "X-all-static"; then
1143357bfbb2Smrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144357bfbb2Smrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1145357bfbb2Smrg	  fi
1146357bfbb2Smrg	  if test -n "$link_static_flag"; then
1147357bfbb2Smrg	    dlopen_self=$dlopen_self_static
1148357bfbb2Smrg	  fi
1149357bfbb2Smrg	  prefer_static_libs=yes
1150357bfbb2Smrg	else
1151357bfbb2Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152357bfbb2Smrg	    dlopen_self=$dlopen_self_static
1153357bfbb2Smrg	  fi
1154357bfbb2Smrg	  prefer_static_libs=built
1155357bfbb2Smrg	fi
1156357bfbb2Smrg	build_libtool_libs=no
1157357bfbb2Smrg	build_old_libs=yes
1158357bfbb2Smrg	break
1159357bfbb2Smrg	;;
1160357bfbb2Smrg      esac
1161357bfbb2Smrg    done
1162357bfbb2Smrg
1163357bfbb2Smrg    # See if our shared archives depend on static archives.
1164357bfbb2Smrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1165357bfbb2Smrg
1166357bfbb2Smrg    # Go through the arguments, transforming them on the way.
1167357bfbb2Smrg    while test "$#" -gt 0; do
1168357bfbb2Smrg      arg="$1"
1169357bfbb2Smrg      shift
1170357bfbb2Smrg      case $arg in
1171357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1172357bfbb2Smrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1173357bfbb2Smrg	;;
1174357bfbb2Smrg      *) qarg=$arg ;;
1175357bfbb2Smrg      esac
1176357bfbb2Smrg      libtool_args="$libtool_args $qarg"
1177357bfbb2Smrg
1178357bfbb2Smrg      # If the previous option needs an argument, assign it.
1179357bfbb2Smrg      if test -n "$prev"; then
1180357bfbb2Smrg	case $prev in
1181357bfbb2Smrg	output)
1182357bfbb2Smrg	  compile_command="$compile_command @OUTPUT@"
1183357bfbb2Smrg	  finalize_command="$finalize_command @OUTPUT@"
1184357bfbb2Smrg	  ;;
1185357bfbb2Smrg	esac
1186357bfbb2Smrg
1187357bfbb2Smrg	case $prev in
1188357bfbb2Smrg	dlfiles|dlprefiles)
1189357bfbb2Smrg	  if test "$preload" = no; then
1190357bfbb2Smrg	    # Add the symbol object into the linking commands.
1191357bfbb2Smrg	    compile_command="$compile_command @SYMFILE@"
1192357bfbb2Smrg	    finalize_command="$finalize_command @SYMFILE@"
1193357bfbb2Smrg	    preload=yes
1194357bfbb2Smrg	  fi
1195357bfbb2Smrg	  case $arg in
1196357bfbb2Smrg	  *.la | *.lo) ;;  # We handle these cases below.
1197357bfbb2Smrg	  force)
1198357bfbb2Smrg	    if test "$dlself" = no; then
1199357bfbb2Smrg	      dlself=needless
1200357bfbb2Smrg	      export_dynamic=yes
1201357bfbb2Smrg	    fi
1202357bfbb2Smrg	    prev=
1203357bfbb2Smrg	    continue
1204357bfbb2Smrg	    ;;
1205357bfbb2Smrg	  self)
1206357bfbb2Smrg	    if test "$prev" = dlprefiles; then
1207357bfbb2Smrg	      dlself=yes
1208357bfbb2Smrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1209357bfbb2Smrg	      dlself=yes
1210357bfbb2Smrg	    else
1211357bfbb2Smrg	      dlself=needless
1212357bfbb2Smrg	      export_dynamic=yes
1213357bfbb2Smrg	    fi
1214357bfbb2Smrg	    prev=
1215357bfbb2Smrg	    continue
1216357bfbb2Smrg	    ;;
1217357bfbb2Smrg	  *)
1218357bfbb2Smrg	    if test "$prev" = dlfiles; then
1219357bfbb2Smrg	      dlfiles="$dlfiles $arg"
1220357bfbb2Smrg	    else
1221357bfbb2Smrg	      dlprefiles="$dlprefiles $arg"
1222357bfbb2Smrg	    fi
1223357bfbb2Smrg	    prev=
1224357bfbb2Smrg	    continue
1225357bfbb2Smrg	    ;;
1226357bfbb2Smrg	  esac
1227357bfbb2Smrg	  ;;
1228357bfbb2Smrg	expsyms)
1229357bfbb2Smrg	  export_symbols="$arg"
1230357bfbb2Smrg	  if test ! -f "$arg"; then
1231357bfbb2Smrg	    $echo "$modename: symbol file \`$arg' does not exist"
1232357bfbb2Smrg	    exit $EXIT_FAILURE
1233357bfbb2Smrg	  fi
1234357bfbb2Smrg	  prev=
1235357bfbb2Smrg	  continue
1236357bfbb2Smrg	  ;;
1237357bfbb2Smrg	expsyms_regex)
1238357bfbb2Smrg	  export_symbols_regex="$arg"
1239357bfbb2Smrg	  prev=
1240357bfbb2Smrg	  continue
1241357bfbb2Smrg	  ;;
1242357bfbb2Smrg	inst_prefix)
1243357bfbb2Smrg	  inst_prefix_dir="$arg"
1244357bfbb2Smrg	  prev=
1245357bfbb2Smrg	  continue
1246357bfbb2Smrg	  ;;
1247357bfbb2Smrg	precious_regex)
1248357bfbb2Smrg	  precious_files_regex="$arg"
1249357bfbb2Smrg	  prev=
1250357bfbb2Smrg	  continue
1251357bfbb2Smrg	  ;;
1252357bfbb2Smrg	release)
1253357bfbb2Smrg	  release="-$arg"
1254357bfbb2Smrg	  prev=
1255357bfbb2Smrg	  continue
1256357bfbb2Smrg	  ;;
1257357bfbb2Smrg	objectlist)
1258357bfbb2Smrg	  if test -f "$arg"; then
1259357bfbb2Smrg	    save_arg=$arg
1260357bfbb2Smrg	    moreargs=
1261357bfbb2Smrg	    for fil in `cat $save_arg`
1262357bfbb2Smrg	    do
1263357bfbb2Smrg#	      moreargs="$moreargs $fil"
1264357bfbb2Smrg	      arg=$fil
1265357bfbb2Smrg	      # A libtool-controlled object.
1266357bfbb2Smrg
1267357bfbb2Smrg	      # Check to see that this really is a libtool object.
1268357bfbb2Smrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1269357bfbb2Smrg		pic_object=
1270357bfbb2Smrg		non_pic_object=
1271357bfbb2Smrg
1272357bfbb2Smrg		# Read the .lo file
1273357bfbb2Smrg		# If there is no directory component, then add one.
1274357bfbb2Smrg		case $arg in
1275357bfbb2Smrg		*/* | *\\*) . $arg ;;
1276357bfbb2Smrg		*) . ./$arg ;;
1277357bfbb2Smrg		esac
1278357bfbb2Smrg
1279357bfbb2Smrg		if test -z "$pic_object" || \
1280357bfbb2Smrg		   test -z "$non_pic_object" ||
1281357bfbb2Smrg		   test "$pic_object" = none && \
1282357bfbb2Smrg		   test "$non_pic_object" = none; then
1283357bfbb2Smrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1284357bfbb2Smrg		  exit $EXIT_FAILURE
1285357bfbb2Smrg		fi
1286357bfbb2Smrg
1287357bfbb2Smrg		# Extract subdirectory from the argument.
1288357bfbb2Smrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1289357bfbb2Smrg		if test "X$xdir" = "X$arg"; then
1290357bfbb2Smrg		  xdir=
1291357bfbb2Smrg		else
1292357bfbb2Smrg		  xdir="$xdir/"
1293357bfbb2Smrg		fi
1294357bfbb2Smrg
1295357bfbb2Smrg		if test "$pic_object" != none; then
1296357bfbb2Smrg		  # Prepend the subdirectory the object is found in.
1297357bfbb2Smrg		  pic_object="$xdir$pic_object"
1298357bfbb2Smrg
1299357bfbb2Smrg		  if test "$prev" = dlfiles; then
1300357bfbb2Smrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1301357bfbb2Smrg		      dlfiles="$dlfiles $pic_object"
1302357bfbb2Smrg		      prev=
1303357bfbb2Smrg		      continue
1304357bfbb2Smrg		    else
1305357bfbb2Smrg		      # If libtool objects are unsupported, then we need to preload.
1306357bfbb2Smrg		      prev=dlprefiles
1307357bfbb2Smrg		    fi
1308357bfbb2Smrg		  fi
1309357bfbb2Smrg
1310357bfbb2Smrg		  # CHECK ME:  I think I busted this.  -Ossama
1311357bfbb2Smrg		  if test "$prev" = dlprefiles; then
1312357bfbb2Smrg		    # Preload the old-style object.
1313357bfbb2Smrg		    dlprefiles="$dlprefiles $pic_object"
1314357bfbb2Smrg		    prev=
1315357bfbb2Smrg		  fi
1316357bfbb2Smrg
1317357bfbb2Smrg		  # A PIC object.
1318357bfbb2Smrg		  libobjs="$libobjs $pic_object"
1319357bfbb2Smrg		  arg="$pic_object"
1320357bfbb2Smrg		fi
1321357bfbb2Smrg
1322357bfbb2Smrg		# Non-PIC object.
1323357bfbb2Smrg		if test "$non_pic_object" != none; then
1324357bfbb2Smrg		  # Prepend the subdirectory the object is found in.
1325357bfbb2Smrg		  non_pic_object="$xdir$non_pic_object"
1326357bfbb2Smrg
1327357bfbb2Smrg		  # A standard non-PIC object
1328357bfbb2Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1329357bfbb2Smrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
1330357bfbb2Smrg		    arg="$non_pic_object"
1331357bfbb2Smrg		  fi
1332357bfbb2Smrg		else
1333357bfbb2Smrg		  # If the PIC object exists, use it instead.
1334357bfbb2Smrg		  # $xdir was prepended to $pic_object above.
1335357bfbb2Smrg		  non_pic_object="$pic_object"
1336357bfbb2Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1337357bfbb2Smrg		fi
1338357bfbb2Smrg	      else
1339357bfbb2Smrg		# Only an error if not doing a dry-run.
1340357bfbb2Smrg		if test -z "$run"; then
1341357bfbb2Smrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342357bfbb2Smrg		  exit $EXIT_FAILURE
1343357bfbb2Smrg		else
1344357bfbb2Smrg		  # Dry-run case.
1345357bfbb2Smrg
1346357bfbb2Smrg		  # Extract subdirectory from the argument.
1347357bfbb2Smrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1348357bfbb2Smrg		  if test "X$xdir" = "X$arg"; then
1349357bfbb2Smrg		    xdir=
1350357bfbb2Smrg		  else
1351357bfbb2Smrg		    xdir="$xdir/"
1352357bfbb2Smrg		  fi
1353357bfbb2Smrg
1354357bfbb2Smrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1355357bfbb2Smrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1356357bfbb2Smrg		  libobjs="$libobjs $pic_object"
1357357bfbb2Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1358357bfbb2Smrg		fi
1359357bfbb2Smrg	      fi
1360357bfbb2Smrg	    done
1361357bfbb2Smrg	  else
1362357bfbb2Smrg	    $echo "$modename: link input file \`$save_arg' does not exist"
1363357bfbb2Smrg	    exit $EXIT_FAILURE
1364357bfbb2Smrg	  fi
1365357bfbb2Smrg	  arg=$save_arg
1366357bfbb2Smrg	  prev=
1367357bfbb2Smrg	  continue
1368357bfbb2Smrg	  ;;
1369357bfbb2Smrg	rpath | xrpath)
1370357bfbb2Smrg	  # We need an absolute path.
1371357bfbb2Smrg	  case $arg in
1372357bfbb2Smrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1373357bfbb2Smrg	  *)
1374357bfbb2Smrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1375357bfbb2Smrg	    exit $EXIT_FAILURE
1376357bfbb2Smrg	    ;;
1377357bfbb2Smrg	  esac
1378357bfbb2Smrg	  if test "$prev" = rpath; then
1379357bfbb2Smrg	    case "$rpath " in
1380357bfbb2Smrg	    *" $arg "*) ;;
1381357bfbb2Smrg	    *) rpath="$rpath $arg" ;;
1382357bfbb2Smrg	    esac
1383357bfbb2Smrg	  else
1384357bfbb2Smrg	    case "$xrpath " in
1385357bfbb2Smrg	    *" $arg "*) ;;
1386357bfbb2Smrg	    *) xrpath="$xrpath $arg" ;;
1387357bfbb2Smrg	    esac
1388357bfbb2Smrg	  fi
1389357bfbb2Smrg	  prev=
1390357bfbb2Smrg	  continue
1391357bfbb2Smrg	  ;;
1392357bfbb2Smrg	xcompiler)
1393357bfbb2Smrg	  compiler_flags="$compiler_flags $qarg"
1394357bfbb2Smrg	  prev=
1395357bfbb2Smrg	  compile_command="$compile_command $qarg"
1396357bfbb2Smrg	  finalize_command="$finalize_command $qarg"
1397357bfbb2Smrg	  continue
1398357bfbb2Smrg	  ;;
1399357bfbb2Smrg	xlinker)
1400357bfbb2Smrg	  linker_flags="$linker_flags $qarg"
1401357bfbb2Smrg	  compiler_flags="$compiler_flags $wl$qarg"
1402357bfbb2Smrg	  prev=
1403357bfbb2Smrg	  compile_command="$compile_command $wl$qarg"
1404357bfbb2Smrg	  finalize_command="$finalize_command $wl$qarg"
1405357bfbb2Smrg	  continue
1406357bfbb2Smrg	  ;;
1407357bfbb2Smrg	xcclinker)
1408357bfbb2Smrg	  linker_flags="$linker_flags $qarg"
1409357bfbb2Smrg	  compiler_flags="$compiler_flags $qarg"
1410357bfbb2Smrg	  prev=
1411357bfbb2Smrg	  compile_command="$compile_command $qarg"
1412357bfbb2Smrg	  finalize_command="$finalize_command $qarg"
1413357bfbb2Smrg	  continue
1414357bfbb2Smrg	  ;;
1415357bfbb2Smrg	shrext)
1416357bfbb2Smrg  	  shrext_cmds="$arg"
1417357bfbb2Smrg	  prev=
1418357bfbb2Smrg	  continue
1419357bfbb2Smrg	  ;;
1420357bfbb2Smrg	darwin_framework|darwin_framework_skip)
1421357bfbb2Smrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1422357bfbb2Smrg	  compile_command="$compile_command $arg"
1423357bfbb2Smrg	  finalize_command="$finalize_command $arg"
1424357bfbb2Smrg	  prev=
1425357bfbb2Smrg	  continue
1426357bfbb2Smrg	  ;;
1427357bfbb2Smrg	*)
1428357bfbb2Smrg	  eval "$prev=\"\$arg\""
1429357bfbb2Smrg	  prev=
1430357bfbb2Smrg	  continue
1431357bfbb2Smrg	  ;;
1432357bfbb2Smrg	esac
1433357bfbb2Smrg      fi # test -n "$prev"
1434357bfbb2Smrg
1435357bfbb2Smrg      prevarg="$arg"
1436357bfbb2Smrg
1437357bfbb2Smrg      case $arg in
1438357bfbb2Smrg      -all-static)
1439357bfbb2Smrg	if test -n "$link_static_flag"; then
1440357bfbb2Smrg	  compile_command="$compile_command $link_static_flag"
1441357bfbb2Smrg	  finalize_command="$finalize_command $link_static_flag"
1442357bfbb2Smrg	fi
1443357bfbb2Smrg	continue
1444357bfbb2Smrg	;;
1445357bfbb2Smrg
1446357bfbb2Smrg      -allow-undefined)
1447357bfbb2Smrg	# FIXME: remove this flag sometime in the future.
1448357bfbb2Smrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1449357bfbb2Smrg	continue
1450357bfbb2Smrg	;;
1451357bfbb2Smrg
1452357bfbb2Smrg      -avoid-version)
1453357bfbb2Smrg	avoid_version=yes
1454357bfbb2Smrg	continue
1455357bfbb2Smrg	;;
1456357bfbb2Smrg
1457357bfbb2Smrg      -dlopen)
1458357bfbb2Smrg	prev=dlfiles
1459357bfbb2Smrg	continue
1460357bfbb2Smrg	;;
1461357bfbb2Smrg
1462357bfbb2Smrg      -dlpreopen)
1463357bfbb2Smrg	prev=dlprefiles
1464357bfbb2Smrg	continue
1465357bfbb2Smrg	;;
1466357bfbb2Smrg
1467357bfbb2Smrg      -export-dynamic)
1468357bfbb2Smrg	export_dynamic=yes
1469357bfbb2Smrg	continue
1470357bfbb2Smrg	;;
1471357bfbb2Smrg
1472357bfbb2Smrg      -export-symbols | -export-symbols-regex)
1473357bfbb2Smrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474357bfbb2Smrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1475357bfbb2Smrg	  exit $EXIT_FAILURE
1476357bfbb2Smrg	fi
1477357bfbb2Smrg	if test "X$arg" = "X-export-symbols"; then
1478357bfbb2Smrg	  prev=expsyms
1479357bfbb2Smrg	else
1480357bfbb2Smrg	  prev=expsyms_regex
1481357bfbb2Smrg	fi
1482357bfbb2Smrg	continue
1483357bfbb2Smrg	;;
1484357bfbb2Smrg
1485357bfbb2Smrg      -framework|-arch|-isysroot)
1486357bfbb2Smrg	case " $CC " in
1487357bfbb2Smrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1488357bfbb2Smrg		prev=darwin_framework_skip ;;
1489357bfbb2Smrg	  *) compiler_flags="$compiler_flags $arg"
1490357bfbb2Smrg	     prev=darwin_framework ;;
1491357bfbb2Smrg	esac
1492357bfbb2Smrg	compile_command="$compile_command $arg"
1493357bfbb2Smrg	finalize_command="$finalize_command $arg"
1494357bfbb2Smrg	continue
1495357bfbb2Smrg	;;
1496357bfbb2Smrg
1497357bfbb2Smrg      -inst-prefix-dir)
1498357bfbb2Smrg	prev=inst_prefix
1499357bfbb2Smrg	continue
1500357bfbb2Smrg	;;
1501357bfbb2Smrg
1502357bfbb2Smrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1503357bfbb2Smrg      # so, if we see these flags be careful not to treat them like -L
1504357bfbb2Smrg      -L[A-Z][A-Z]*:*)
1505357bfbb2Smrg	case $with_gcc/$host in
1506357bfbb2Smrg	no/*-*-irix* | /*-*-irix*)
1507357bfbb2Smrg	  compile_command="$compile_command $arg"
1508357bfbb2Smrg	  finalize_command="$finalize_command $arg"
1509357bfbb2Smrg	  ;;
1510357bfbb2Smrg	esac
1511357bfbb2Smrg	continue
1512357bfbb2Smrg	;;
1513357bfbb2Smrg
1514357bfbb2Smrg      -L*)
1515357bfbb2Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1516357bfbb2Smrg	# We need an absolute path.
1517357bfbb2Smrg	case $dir in
1518357bfbb2Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1519357bfbb2Smrg	*)
1520357bfbb2Smrg	  absdir=`cd "$dir" && pwd`
1521357bfbb2Smrg	  if test -z "$absdir"; then
1522357bfbb2Smrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1523357bfbb2Smrg	    absdir="$dir"
1524357bfbb2Smrg	    notinst_path="$notinst_path $dir"
1525357bfbb2Smrg	  fi
1526357bfbb2Smrg	  dir="$absdir"
1527357bfbb2Smrg	  ;;
1528357bfbb2Smrg	esac
1529357bfbb2Smrg	case "$deplibs " in
1530357bfbb2Smrg	*" -L$dir "*) ;;
1531357bfbb2Smrg	*)
1532357bfbb2Smrg	  deplibs="$deplibs -L$dir"
1533357bfbb2Smrg	  lib_search_path="$lib_search_path $dir"
1534357bfbb2Smrg	  ;;
1535357bfbb2Smrg	esac
1536357bfbb2Smrg	case $host in
1537357bfbb2Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1538357bfbb2Smrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539357bfbb2Smrg	  case :$dllsearchpath: in
1540357bfbb2Smrg	  *":$dir:"*) ;;
1541357bfbb2Smrg	  *) dllsearchpath="$dllsearchpath:$dir";;
1542357bfbb2Smrg	  esac
1543357bfbb2Smrg	  case :$dllsearchpath: in
1544357bfbb2Smrg	  *":$testbindir:"*) ;;
1545357bfbb2Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1546357bfbb2Smrg	  esac
1547357bfbb2Smrg	  ;;
1548357bfbb2Smrg	esac
1549357bfbb2Smrg	continue
1550357bfbb2Smrg	;;
1551357bfbb2Smrg
1552357bfbb2Smrg      -l*)
1553357bfbb2Smrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554357bfbb2Smrg	  case $host in
1555357bfbb2Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1556357bfbb2Smrg	    # These systems don't actually have a C or math library (as such)
1557357bfbb2Smrg	    continue
1558357bfbb2Smrg	    ;;
1559357bfbb2Smrg	  *-*-os2*)
1560357bfbb2Smrg	    # These systems don't actually have a C library (as such)
1561357bfbb2Smrg	    test "X$arg" = "X-lc" && continue
1562357bfbb2Smrg	    ;;
1563357bfbb2Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1564357bfbb2Smrg	    # Do not include libc due to us having libc/libc_r.
1565357bfbb2Smrg	    test "X$arg" = "X-lc" && continue
1566357bfbb2Smrg	    ;;
1567357bfbb2Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
1568357bfbb2Smrg	    # Rhapsody C and math libraries are in the System framework
1569357bfbb2Smrg	    deplibs="$deplibs -framework System"
1570357bfbb2Smrg	    continue
1571357bfbb2Smrg	    ;;
1572357bfbb2Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
1573357bfbb2Smrg	    # Causes problems with __ctype
1574357bfbb2Smrg	    test "X$arg" = "X-lc" && continue
1575357bfbb2Smrg	    ;;
1576357bfbb2Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1577357bfbb2Smrg	    # Compiler inserts libc in the correct place for threads to work
1578357bfbb2Smrg	    test "X$arg" = "X-lc" && continue
1579357bfbb2Smrg	    ;;
1580357bfbb2Smrg	  esac
1581357bfbb2Smrg	elif test "X$arg" = "X-lc_r"; then
1582357bfbb2Smrg	 case $host in
1583357bfbb2Smrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1584357bfbb2Smrg	   # Do not include libc_r directly, use -pthread flag.
1585357bfbb2Smrg	   continue
1586357bfbb2Smrg	   ;;
1587357bfbb2Smrg	 esac
1588357bfbb2Smrg	fi
1589357bfbb2Smrg	deplibs="$deplibs $arg"
1590357bfbb2Smrg	continue
1591357bfbb2Smrg	;;
1592357bfbb2Smrg
1593357bfbb2Smrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594357bfbb2Smrg      # classes, name mangling, and exception handling.
1595357bfbb2Smrg      -model)
1596357bfbb2Smrg	compile_command="$compile_command $arg"
1597357bfbb2Smrg	compiler_flags="$compiler_flags $arg"
1598357bfbb2Smrg	finalize_command="$finalize_command $arg"
1599357bfbb2Smrg	prev=xcompiler
1600357bfbb2Smrg	continue
1601357bfbb2Smrg	;;
1602357bfbb2Smrg
1603357bfbb2Smrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1604357bfbb2Smrg	compiler_flags="$compiler_flags $arg"
1605357bfbb2Smrg	compile_command="$compile_command $arg"
1606357bfbb2Smrg	finalize_command="$finalize_command $arg"
1607357bfbb2Smrg	continue
1608357bfbb2Smrg	;;
1609357bfbb2Smrg
1610357bfbb2Smrg      -module)
1611357bfbb2Smrg	module=yes
1612357bfbb2Smrg	continue
1613357bfbb2Smrg	;;
1614357bfbb2Smrg
1615357bfbb2Smrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1616357bfbb2Smrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1617357bfbb2Smrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618357bfbb2Smrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
1619357bfbb2Smrg      # -q* pass through compiler args for the IBM compiler
1620357bfbb2Smrg      # -m* pass through architecture-specific compiler args for GCC
1621357bfbb2Smrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
1622357bfbb2Smrg      # compiler args for GCC
1623357bfbb2Smrg      # -pg pass through profiling flag for GCC
1624357bfbb2Smrg      # @file GCC response files
1625357bfbb2Smrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626357bfbb2Smrg      -t[45]*|-txscale*|@*)
1627357bfbb2Smrg
1628357bfbb2Smrg	# Unknown arguments in both finalize_command and compile_command need
1629357bfbb2Smrg	# to be aesthetically quoted because they are evaled later.
1630357bfbb2Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631357bfbb2Smrg	case $arg in
1632357bfbb2Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1633357bfbb2Smrg	  arg="\"$arg\""
1634357bfbb2Smrg	  ;;
1635357bfbb2Smrg	esac
1636357bfbb2Smrg        compile_command="$compile_command $arg"
1637357bfbb2Smrg        finalize_command="$finalize_command $arg"
1638357bfbb2Smrg        compiler_flags="$compiler_flags $arg"
1639357bfbb2Smrg        continue
1640357bfbb2Smrg        ;;
1641357bfbb2Smrg
1642357bfbb2Smrg      -shrext)
1643357bfbb2Smrg	prev=shrext
1644357bfbb2Smrg	continue
1645357bfbb2Smrg	;;
1646357bfbb2Smrg
1647357bfbb2Smrg      -no-fast-install)
1648357bfbb2Smrg	fast_install=no
1649357bfbb2Smrg	continue
1650357bfbb2Smrg	;;
1651357bfbb2Smrg
1652357bfbb2Smrg      -no-install)
1653357bfbb2Smrg	case $host in
1654357bfbb2Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1655357bfbb2Smrg	  # The PATH hackery in wrapper scripts is required on Windows
1656357bfbb2Smrg	  # in order for the loader to find any dlls it needs.
1657357bfbb2Smrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1658357bfbb2Smrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1659357bfbb2Smrg	  fast_install=no
1660357bfbb2Smrg	  ;;
1661357bfbb2Smrg	*) no_install=yes ;;
1662357bfbb2Smrg	esac
1663357bfbb2Smrg	continue
1664357bfbb2Smrg	;;
1665357bfbb2Smrg
1666357bfbb2Smrg      -no-undefined)
1667357bfbb2Smrg	allow_undefined=no
1668357bfbb2Smrg	continue
1669357bfbb2Smrg	;;
1670357bfbb2Smrg
1671357bfbb2Smrg      -objectlist)
1672357bfbb2Smrg	prev=objectlist
1673357bfbb2Smrg	continue
1674357bfbb2Smrg	;;
1675357bfbb2Smrg
1676357bfbb2Smrg      -o) prev=output ;;
1677357bfbb2Smrg
1678357bfbb2Smrg      -precious-files-regex)
1679357bfbb2Smrg	prev=precious_regex
1680357bfbb2Smrg	continue
1681357bfbb2Smrg	;;
1682357bfbb2Smrg
1683357bfbb2Smrg      -release)
1684357bfbb2Smrg	prev=release
1685357bfbb2Smrg	continue
1686357bfbb2Smrg	;;
1687357bfbb2Smrg
1688357bfbb2Smrg      -rpath)
1689357bfbb2Smrg	prev=rpath
1690357bfbb2Smrg	continue
1691357bfbb2Smrg	;;
1692357bfbb2Smrg
1693357bfbb2Smrg      -R)
1694357bfbb2Smrg	prev=xrpath
1695357bfbb2Smrg	continue
1696357bfbb2Smrg	;;
1697357bfbb2Smrg
1698357bfbb2Smrg      -R*)
1699357bfbb2Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1700357bfbb2Smrg	# We need an absolute path.
1701357bfbb2Smrg	case $dir in
1702357bfbb2Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1703357bfbb2Smrg	*)
1704357bfbb2Smrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1705357bfbb2Smrg	  exit $EXIT_FAILURE
1706357bfbb2Smrg	  ;;
1707357bfbb2Smrg	esac
1708357bfbb2Smrg	case "$xrpath " in
1709357bfbb2Smrg	*" $dir "*) ;;
1710357bfbb2Smrg	*) xrpath="$xrpath $dir" ;;
1711357bfbb2Smrg	esac
1712357bfbb2Smrg	continue
1713357bfbb2Smrg	;;
1714357bfbb2Smrg
1715357bfbb2Smrg      -static)
1716357bfbb2Smrg	# The effects of -static are defined in a previous loop.
1717357bfbb2Smrg	# We used to do the same as -all-static on platforms that
1718357bfbb2Smrg	# didn't have a PIC flag, but the assumption that the effects
1719357bfbb2Smrg	# would be equivalent was wrong.  It would break on at least
1720357bfbb2Smrg	# Digital Unix and AIX.
1721357bfbb2Smrg	continue
1722357bfbb2Smrg	;;
1723357bfbb2Smrg
1724357bfbb2Smrg      -thread-safe)
1725357bfbb2Smrg	thread_safe=yes
1726357bfbb2Smrg	continue
1727357bfbb2Smrg	;;
1728357bfbb2Smrg
1729357bfbb2Smrg      -version-info)
1730357bfbb2Smrg	prev=vinfo
1731357bfbb2Smrg	continue
1732357bfbb2Smrg	;;
1733357bfbb2Smrg      -version-number)
1734357bfbb2Smrg	prev=vinfo
1735357bfbb2Smrg	vinfo_number=yes
1736357bfbb2Smrg	continue
1737357bfbb2Smrg	;;
1738357bfbb2Smrg
1739357bfbb2Smrg      -Wc,*)
1740357bfbb2Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1741357bfbb2Smrg	arg=
1742357bfbb2Smrg	save_ifs="$IFS"; IFS=','
1743357bfbb2Smrg	for flag in $args; do
1744357bfbb2Smrg	  IFS="$save_ifs"
1745357bfbb2Smrg	  case $flag in
1746357bfbb2Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1747357bfbb2Smrg	    flag="\"$flag\""
1748357bfbb2Smrg	    ;;
1749357bfbb2Smrg	  esac
1750357bfbb2Smrg	  arg="$arg $wl$flag"
1751357bfbb2Smrg	  compiler_flags="$compiler_flags $flag"
1752357bfbb2Smrg	done
1753357bfbb2Smrg	IFS="$save_ifs"
1754357bfbb2Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1755357bfbb2Smrg	;;
1756357bfbb2Smrg
1757357bfbb2Smrg      -Wl,*)
1758357bfbb2Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1759357bfbb2Smrg	arg=
1760357bfbb2Smrg	save_ifs="$IFS"; IFS=','
1761357bfbb2Smrg	for flag in $args; do
1762357bfbb2Smrg	  IFS="$save_ifs"
1763357bfbb2Smrg	  case $flag in
1764357bfbb2Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1765357bfbb2Smrg	    flag="\"$flag\""
1766357bfbb2Smrg	    ;;
1767357bfbb2Smrg	  esac
1768357bfbb2Smrg	  arg="$arg $wl$flag"
1769357bfbb2Smrg	  compiler_flags="$compiler_flags $wl$flag"
1770357bfbb2Smrg	  linker_flags="$linker_flags $flag"
1771357bfbb2Smrg	done
1772357bfbb2Smrg	IFS="$save_ifs"
1773357bfbb2Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1774357bfbb2Smrg	;;
1775357bfbb2Smrg
1776357bfbb2Smrg      -Xcompiler)
1777357bfbb2Smrg	prev=xcompiler
1778357bfbb2Smrg	continue
1779357bfbb2Smrg	;;
1780357bfbb2Smrg
1781357bfbb2Smrg      -Xlinker)
1782357bfbb2Smrg	prev=xlinker
1783357bfbb2Smrg	continue
1784357bfbb2Smrg	;;
1785357bfbb2Smrg
1786357bfbb2Smrg      -XCClinker)
1787357bfbb2Smrg	prev=xcclinker
1788357bfbb2Smrg	continue
1789357bfbb2Smrg	;;
1790357bfbb2Smrg
1791357bfbb2Smrg      # Some other compiler flag.
1792357bfbb2Smrg      -* | +*)
1793357bfbb2Smrg	# Unknown arguments in both finalize_command and compile_command need
1794357bfbb2Smrg	# to be aesthetically quoted because they are evaled later.
1795357bfbb2Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796357bfbb2Smrg	case $arg in
1797357bfbb2Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1798357bfbb2Smrg	  arg="\"$arg\""
1799357bfbb2Smrg	  ;;
1800357bfbb2Smrg	esac
1801357bfbb2Smrg	;;
1802357bfbb2Smrg
1803357bfbb2Smrg      *.$objext)
1804357bfbb2Smrg	# A standard object.
1805357bfbb2Smrg	objs="$objs $arg"
1806357bfbb2Smrg	;;
1807357bfbb2Smrg
1808357bfbb2Smrg      *.lo)
1809357bfbb2Smrg	# A libtool-controlled object.
1810357bfbb2Smrg
1811357bfbb2Smrg	# Check to see that this really is a libtool object.
1812357bfbb2Smrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1813357bfbb2Smrg	  pic_object=
1814357bfbb2Smrg	  non_pic_object=
1815357bfbb2Smrg
1816357bfbb2Smrg	  # Read the .lo file
1817357bfbb2Smrg	  # If there is no directory component, then add one.
1818357bfbb2Smrg	  case $arg in
1819357bfbb2Smrg	  */* | *\\*) . $arg ;;
1820357bfbb2Smrg	  *) . ./$arg ;;
1821357bfbb2Smrg	  esac
1822357bfbb2Smrg
1823357bfbb2Smrg	  if test -z "$pic_object" || \
1824357bfbb2Smrg	     test -z "$non_pic_object" ||
1825357bfbb2Smrg	     test "$pic_object" = none && \
1826357bfbb2Smrg	     test "$non_pic_object" = none; then
1827357bfbb2Smrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1828357bfbb2Smrg	    exit $EXIT_FAILURE
1829357bfbb2Smrg	  fi
1830357bfbb2Smrg
1831357bfbb2Smrg	  # Extract subdirectory from the argument.
1832357bfbb2Smrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1833357bfbb2Smrg	  if test "X$xdir" = "X$arg"; then
1834357bfbb2Smrg	    xdir=
1835357bfbb2Smrg 	  else
1836357bfbb2Smrg	    xdir="$xdir/"
1837357bfbb2Smrg	  fi
1838357bfbb2Smrg
1839357bfbb2Smrg	  if test "$pic_object" != none; then
1840357bfbb2Smrg	    # Prepend the subdirectory the object is found in.
1841357bfbb2Smrg	    pic_object="$xdir$pic_object"
1842357bfbb2Smrg
1843357bfbb2Smrg	    if test "$prev" = dlfiles; then
1844357bfbb2Smrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1845357bfbb2Smrg		dlfiles="$dlfiles $pic_object"
1846357bfbb2Smrg		prev=
1847357bfbb2Smrg		continue
1848357bfbb2Smrg	      else
1849357bfbb2Smrg		# If libtool objects are unsupported, then we need to preload.
1850357bfbb2Smrg		prev=dlprefiles
1851357bfbb2Smrg	      fi
1852357bfbb2Smrg	    fi
1853357bfbb2Smrg
1854357bfbb2Smrg	    # CHECK ME:  I think I busted this.  -Ossama
1855357bfbb2Smrg	    if test "$prev" = dlprefiles; then
1856357bfbb2Smrg	      # Preload the old-style object.
1857357bfbb2Smrg	      dlprefiles="$dlprefiles $pic_object"
1858357bfbb2Smrg	      prev=
1859357bfbb2Smrg	    fi
1860357bfbb2Smrg
1861357bfbb2Smrg	    # A PIC object.
1862357bfbb2Smrg	    libobjs="$libobjs $pic_object"
1863357bfbb2Smrg	    arg="$pic_object"
1864357bfbb2Smrg	  fi
1865357bfbb2Smrg
1866357bfbb2Smrg	  # Non-PIC object.
1867357bfbb2Smrg	  if test "$non_pic_object" != none; then
1868357bfbb2Smrg	    # Prepend the subdirectory the object is found in.
1869357bfbb2Smrg	    non_pic_object="$xdir$non_pic_object"
1870357bfbb2Smrg
1871357bfbb2Smrg	    # A standard non-PIC object
1872357bfbb2Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1873357bfbb2Smrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
1874357bfbb2Smrg	      arg="$non_pic_object"
1875357bfbb2Smrg	    fi
1876357bfbb2Smrg	  else
1877357bfbb2Smrg	    # If the PIC object exists, use it instead.
1878357bfbb2Smrg	    # $xdir was prepended to $pic_object above.
1879357bfbb2Smrg	    non_pic_object="$pic_object"
1880357bfbb2Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1881357bfbb2Smrg	  fi
1882357bfbb2Smrg	else
1883357bfbb2Smrg	  # Only an error if not doing a dry-run.
1884357bfbb2Smrg	  if test -z "$run"; then
1885357bfbb2Smrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886357bfbb2Smrg	    exit $EXIT_FAILURE
1887357bfbb2Smrg	  else
1888357bfbb2Smrg	    # Dry-run case.
1889357bfbb2Smrg
1890357bfbb2Smrg	    # Extract subdirectory from the argument.
1891357bfbb2Smrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1892357bfbb2Smrg	    if test "X$xdir" = "X$arg"; then
1893357bfbb2Smrg	      xdir=
1894357bfbb2Smrg	    else
1895357bfbb2Smrg	      xdir="$xdir/"
1896357bfbb2Smrg	    fi
1897357bfbb2Smrg
1898357bfbb2Smrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1899357bfbb2Smrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1900357bfbb2Smrg	    libobjs="$libobjs $pic_object"
1901357bfbb2Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1902357bfbb2Smrg	  fi
1903357bfbb2Smrg	fi
1904357bfbb2Smrg	;;
1905357bfbb2Smrg
1906357bfbb2Smrg      *.$libext)
1907357bfbb2Smrg	# An archive.
1908357bfbb2Smrg	deplibs="$deplibs $arg"
1909357bfbb2Smrg	old_deplibs="$old_deplibs $arg"
1910357bfbb2Smrg	continue
1911357bfbb2Smrg	;;
1912357bfbb2Smrg
1913357bfbb2Smrg      *.la)
1914357bfbb2Smrg	# A libtool-controlled library.
1915357bfbb2Smrg
1916357bfbb2Smrg	if test "$prev" = dlfiles; then
1917357bfbb2Smrg	  # This library was specified with -dlopen.
1918357bfbb2Smrg	  dlfiles="$dlfiles $arg"
1919357bfbb2Smrg	  prev=
1920357bfbb2Smrg	elif test "$prev" = dlprefiles; then
1921357bfbb2Smrg	  # The library was specified with -dlpreopen.
1922357bfbb2Smrg	  dlprefiles="$dlprefiles $arg"
1923357bfbb2Smrg	  prev=
1924357bfbb2Smrg	else
1925357bfbb2Smrg	  deplibs="$deplibs $arg"
1926357bfbb2Smrg	fi
1927357bfbb2Smrg	continue
1928357bfbb2Smrg	;;
1929357bfbb2Smrg
1930357bfbb2Smrg      # Some other compiler argument.
1931357bfbb2Smrg      *)
1932357bfbb2Smrg	# Unknown arguments in both finalize_command and compile_command need
1933357bfbb2Smrg	# to be aesthetically quoted because they are evaled later.
1934357bfbb2Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1935357bfbb2Smrg	case $arg in
1936357bfbb2Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1937357bfbb2Smrg	  arg="\"$arg\""
1938357bfbb2Smrg	  ;;
1939357bfbb2Smrg	esac
1940357bfbb2Smrg	;;
1941357bfbb2Smrg      esac # arg
1942357bfbb2Smrg
1943357bfbb2Smrg      # Now actually substitute the argument into the commands.
1944357bfbb2Smrg      if test -n "$arg"; then
1945357bfbb2Smrg	compile_command="$compile_command $arg"
1946357bfbb2Smrg	finalize_command="$finalize_command $arg"
1947357bfbb2Smrg      fi
1948357bfbb2Smrg    done # argument parsing loop
1949357bfbb2Smrg
1950357bfbb2Smrg    if test -n "$prev"; then
1951357bfbb2Smrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1952357bfbb2Smrg      $echo "$help" 1>&2
1953357bfbb2Smrg      exit $EXIT_FAILURE
1954357bfbb2Smrg    fi
1955357bfbb2Smrg
1956357bfbb2Smrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957357bfbb2Smrg      eval arg=\"$export_dynamic_flag_spec\"
1958357bfbb2Smrg      compile_command="$compile_command $arg"
1959357bfbb2Smrg      finalize_command="$finalize_command $arg"
1960357bfbb2Smrg    fi
1961357bfbb2Smrg
1962357bfbb2Smrg    oldlibs=
1963357bfbb2Smrg    # calculate the name of the file, without its directory
1964357bfbb2Smrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1965357bfbb2Smrg    libobjs_save="$libobjs"
1966357bfbb2Smrg
1967357bfbb2Smrg    if test -n "$shlibpath_var"; then
1968357bfbb2Smrg      # get the directories listed in $shlibpath_var
1969357bfbb2Smrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970357bfbb2Smrg    else
1971357bfbb2Smrg      shlib_search_path=
1972357bfbb2Smrg    fi
1973357bfbb2Smrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974357bfbb2Smrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975357bfbb2Smrg
1976357bfbb2Smrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1977357bfbb2Smrg    if test "X$output_objdir" = "X$output"; then
1978357bfbb2Smrg      output_objdir="$objdir"
1979357bfbb2Smrg    else
1980357bfbb2Smrg      output_objdir="$output_objdir/$objdir"
1981357bfbb2Smrg    fi
1982357bfbb2Smrg    # Create the object directory.
1983357bfbb2Smrg    if test ! -d "$output_objdir"; then
1984357bfbb2Smrg      $show "$mkdir $output_objdir"
1985357bfbb2Smrg      $run $mkdir $output_objdir
1986357bfbb2Smrg      exit_status=$?
1987357bfbb2Smrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988357bfbb2Smrg	exit $exit_status
1989357bfbb2Smrg      fi
1990357bfbb2Smrg    fi
1991357bfbb2Smrg
1992357bfbb2Smrg    # Determine the type of output
1993357bfbb2Smrg    case $output in
1994357bfbb2Smrg    "")
1995357bfbb2Smrg      $echo "$modename: you must specify an output file" 1>&2
1996357bfbb2Smrg      $echo "$help" 1>&2
1997357bfbb2Smrg      exit $EXIT_FAILURE
1998357bfbb2Smrg      ;;
1999357bfbb2Smrg    *.$libext) linkmode=oldlib ;;
2000357bfbb2Smrg    *.lo | *.$objext) linkmode=obj ;;
2001357bfbb2Smrg    *.la) linkmode=lib ;;
2002357bfbb2Smrg    *) linkmode=prog ;; # Anything else should be a program.
2003357bfbb2Smrg    esac
2004357bfbb2Smrg
2005357bfbb2Smrg    case $host in
2006357bfbb2Smrg    *cygwin* | *mingw* | *pw32*)
2007357bfbb2Smrg      # don't eliminate duplications in $postdeps and $predeps
2008357bfbb2Smrg      duplicate_compiler_generated_deps=yes
2009357bfbb2Smrg      ;;
2010357bfbb2Smrg    *)
2011357bfbb2Smrg      duplicate_compiler_generated_deps=$duplicate_deps
2012357bfbb2Smrg      ;;
2013357bfbb2Smrg    esac
2014357bfbb2Smrg    specialdeplibs=
2015357bfbb2Smrg
2016357bfbb2Smrg    libs=
2017357bfbb2Smrg    # Find all interdependent deplibs by searching for libraries
2018357bfbb2Smrg    # that are linked more than once (e.g. -la -lb -la)
2019357bfbb2Smrg    for deplib in $deplibs; do
2020357bfbb2Smrg      if test "X$duplicate_deps" = "Xyes" ; then
2021357bfbb2Smrg	case "$libs " in
2022357bfbb2Smrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023357bfbb2Smrg	esac
2024357bfbb2Smrg      fi
2025357bfbb2Smrg      libs="$libs $deplib"
2026357bfbb2Smrg    done
2027357bfbb2Smrg
2028357bfbb2Smrg    if test "$linkmode" = lib; then
2029357bfbb2Smrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2030357bfbb2Smrg
2031357bfbb2Smrg      # Compute libraries that are listed more than once in $predeps
2032357bfbb2Smrg      # $postdeps and mark them as special (i.e., whose duplicates are
2033357bfbb2Smrg      # not to be eliminated).
2034357bfbb2Smrg      pre_post_deps=
2035357bfbb2Smrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2036357bfbb2Smrg	for pre_post_dep in $predeps $postdeps; do
2037357bfbb2Smrg	  case "$pre_post_deps " in
2038357bfbb2Smrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2039357bfbb2Smrg	  esac
2040357bfbb2Smrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
2041357bfbb2Smrg	done
2042357bfbb2Smrg      fi
2043357bfbb2Smrg      pre_post_deps=
2044357bfbb2Smrg    fi
2045357bfbb2Smrg
2046357bfbb2Smrg    deplibs=
2047357bfbb2Smrg    newdependency_libs=
2048357bfbb2Smrg    newlib_search_path=
2049357bfbb2Smrg    need_relink=no # whether we're linking any uninstalled libtool libraries
2050357bfbb2Smrg    notinst_deplibs= # not-installed libtool libraries
2051357bfbb2Smrg    case $linkmode in
2052357bfbb2Smrg    lib)
2053357bfbb2Smrg	passes="conv link"
2054357bfbb2Smrg	for file in $dlfiles $dlprefiles; do
2055357bfbb2Smrg	  case $file in
2056357bfbb2Smrg	  *.la) ;;
2057357bfbb2Smrg	  *)
2058357bfbb2Smrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2059357bfbb2Smrg	    exit $EXIT_FAILURE
2060357bfbb2Smrg	    ;;
2061357bfbb2Smrg	  esac
2062357bfbb2Smrg	done
2063357bfbb2Smrg	;;
2064357bfbb2Smrg    prog)
2065357bfbb2Smrg	compile_deplibs=
2066357bfbb2Smrg	finalize_deplibs=
2067357bfbb2Smrg	alldeplibs=no
2068357bfbb2Smrg	newdlfiles=
2069357bfbb2Smrg	newdlprefiles=
2070357bfbb2Smrg	passes="conv scan dlopen dlpreopen link"
2071357bfbb2Smrg	;;
2072357bfbb2Smrg    *)  passes="conv"
2073357bfbb2Smrg	;;
2074357bfbb2Smrg    esac
2075357bfbb2Smrg    for pass in $passes; do
2076357bfbb2Smrg      # The preopen pass in lib mode reverses $deplibs; put it back here
2077357bfbb2Smrg      # so that -L comes before libs that need it for instance...
2078357bfbb2Smrg      if test "$linkmode,$pass" = "lib,link"; then
2079357bfbb2Smrg	## FIXME: Find the place where the list is rebuilt in the wrong
2080357bfbb2Smrg	##        order, and fix it there properly
2081357bfbb2Smrg	tmp_deplibs=
2082357bfbb2Smrg	for deplib in $deplibs; do
2083357bfbb2Smrg	  tmp_deplibs="$deplib $tmp_deplibs"
2084357bfbb2Smrg	done
2085357bfbb2Smrg	deplibs="$tmp_deplibs"
2086357bfbb2Smrg      fi
2087357bfbb2Smrg      if test "$linkmode,$pass" = "lib,link" ||
2088357bfbb2Smrg	 test "$linkmode,$pass" = "prog,scan"; then
2089357bfbb2Smrg	libs="$deplibs"
2090357bfbb2Smrg	deplibs=
2091357bfbb2Smrg      fi
2092357bfbb2Smrg      if test "$linkmode" = prog; then
2093357bfbb2Smrg	case $pass in
2094357bfbb2Smrg	dlopen) libs="$dlfiles" ;;
2095357bfbb2Smrg	dlpreopen) libs="$dlprefiles" ;;
2096357bfbb2Smrg	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2097357bfbb2Smrg	esac
2098357bfbb2Smrg      fi
2099357bfbb2Smrg      if test "$pass" = dlopen; then
2100357bfbb2Smrg	# Collect dlpreopened libraries
2101357bfbb2Smrg	save_deplibs="$deplibs"
2102357bfbb2Smrg	deplibs=
2103357bfbb2Smrg      fi
2104357bfbb2Smrg      for deplib in $libs; do
2105357bfbb2Smrg	lib=
2106357bfbb2Smrg	found=no
2107357bfbb2Smrg	case $deplib in
2108357bfbb2Smrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2109357bfbb2Smrg	  if test "$linkmode,$pass" = "prog,link"; then
2110357bfbb2Smrg	    compile_deplibs="$deplib $compile_deplibs"
2111357bfbb2Smrg	    finalize_deplibs="$deplib $finalize_deplibs"
2112357bfbb2Smrg	  else
2113357bfbb2Smrg	    compiler_flags="$compiler_flags $deplib"
2114357bfbb2Smrg	  fi
2115357bfbb2Smrg	  continue
2116357bfbb2Smrg	  ;;
2117357bfbb2Smrg	-l*)
2118357bfbb2Smrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2119357bfbb2Smrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2120357bfbb2Smrg	    continue
2121357bfbb2Smrg	  fi
2122357bfbb2Smrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2123357bfbb2Smrg	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2124357bfbb2Smrg	    for search_ext in .la $std_shrext .so .a; do
2125357bfbb2Smrg	      # Search the libtool library
2126357bfbb2Smrg	      lib="$searchdir/lib${name}${search_ext}"
2127357bfbb2Smrg	      if test -f "$lib"; then
2128357bfbb2Smrg		if test "$search_ext" = ".la"; then
2129357bfbb2Smrg		  found=yes
2130357bfbb2Smrg		else
2131357bfbb2Smrg		  found=no
2132357bfbb2Smrg		fi
2133357bfbb2Smrg		break 2
2134357bfbb2Smrg	      fi
2135357bfbb2Smrg	    done
2136357bfbb2Smrg	  done
2137357bfbb2Smrg	  if test "$found" != yes; then
2138357bfbb2Smrg	    # deplib doesn't seem to be a libtool library
2139357bfbb2Smrg	    if test "$linkmode,$pass" = "prog,link"; then
2140357bfbb2Smrg	      compile_deplibs="$deplib $compile_deplibs"
2141357bfbb2Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2142357bfbb2Smrg	    else
2143357bfbb2Smrg	      deplibs="$deplib $deplibs"
2144357bfbb2Smrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2145357bfbb2Smrg	    fi
2146357bfbb2Smrg	    continue
2147357bfbb2Smrg	  else # deplib is a libtool library
2148357bfbb2Smrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2149357bfbb2Smrg	    # We need to do some special things here, and not later.
2150357bfbb2Smrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2151357bfbb2Smrg	      case " $predeps $postdeps " in
2152357bfbb2Smrg	      *" $deplib "*)
2153357bfbb2Smrg		if (${SED} -e '2q' $lib |
2154357bfbb2Smrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2155357bfbb2Smrg		  library_names=
2156357bfbb2Smrg		  old_library=
2157357bfbb2Smrg		  case $lib in
2158357bfbb2Smrg		  */* | *\\*) . $lib ;;
2159357bfbb2Smrg		  *) . ./$lib ;;
2160357bfbb2Smrg		  esac
2161357bfbb2Smrg		  for l in $old_library $library_names; do
2162357bfbb2Smrg		    ll="$l"
2163357bfbb2Smrg		  done
2164357bfbb2Smrg		  if test "X$ll" = "X$old_library" ; then # only static version available
2165357bfbb2Smrg		    found=no
2166357bfbb2Smrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2167357bfbb2Smrg		    test "X$ladir" = "X$lib" && ladir="."
2168357bfbb2Smrg		    lib=$ladir/$old_library
2169357bfbb2Smrg		    if test "$linkmode,$pass" = "prog,link"; then
2170357bfbb2Smrg		      compile_deplibs="$deplib $compile_deplibs"
2171357bfbb2Smrg		      finalize_deplibs="$deplib $finalize_deplibs"
2172357bfbb2Smrg		    else
2173357bfbb2Smrg		      deplibs="$deplib $deplibs"
2174357bfbb2Smrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2175357bfbb2Smrg		    fi
2176357bfbb2Smrg		    continue
2177357bfbb2Smrg		  fi
2178357bfbb2Smrg		fi
2179357bfbb2Smrg	        ;;
2180357bfbb2Smrg	      *) ;;
2181357bfbb2Smrg	      esac
2182357bfbb2Smrg	    fi
2183357bfbb2Smrg	  fi
2184357bfbb2Smrg	  ;; # -l
2185357bfbb2Smrg	-L*)
2186357bfbb2Smrg	  case $linkmode in
2187357bfbb2Smrg	  lib)
2188357bfbb2Smrg	    deplibs="$deplib $deplibs"
2189357bfbb2Smrg	    test "$pass" = conv && continue
2190357bfbb2Smrg	    newdependency_libs="$deplib $newdependency_libs"
2191357bfbb2Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2192357bfbb2Smrg	    ;;
2193357bfbb2Smrg	  prog)
2194357bfbb2Smrg	    if test "$pass" = conv; then
2195357bfbb2Smrg	      deplibs="$deplib $deplibs"
2196357bfbb2Smrg	      continue
2197357bfbb2Smrg	    fi
2198357bfbb2Smrg	    if test "$pass" = scan; then
2199357bfbb2Smrg	      deplibs="$deplib $deplibs"
2200357bfbb2Smrg	    else
2201357bfbb2Smrg	      compile_deplibs="$deplib $compile_deplibs"
2202357bfbb2Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2203357bfbb2Smrg	    fi
2204357bfbb2Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2205357bfbb2Smrg	    ;;
2206357bfbb2Smrg	  *)
2207357bfbb2Smrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2208357bfbb2Smrg	    ;;
2209357bfbb2Smrg	  esac # linkmode
2210357bfbb2Smrg	  continue
2211357bfbb2Smrg	  ;; # -L
2212357bfbb2Smrg	-R*)
2213357bfbb2Smrg	  if test "$pass" = link; then
2214357bfbb2Smrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2215357bfbb2Smrg	    # Make sure the xrpath contains only unique directories.
2216357bfbb2Smrg	    case "$xrpath " in
2217357bfbb2Smrg	    *" $dir "*) ;;
2218357bfbb2Smrg	    *) xrpath="$xrpath $dir" ;;
2219357bfbb2Smrg	    esac
2220357bfbb2Smrg	  fi
2221357bfbb2Smrg	  deplibs="$deplib $deplibs"
2222357bfbb2Smrg	  continue
2223357bfbb2Smrg	  ;;
2224357bfbb2Smrg	*.la) lib="$deplib" ;;
2225357bfbb2Smrg	*.$libext)
2226357bfbb2Smrg	  if test "$pass" = conv; then
2227357bfbb2Smrg	    deplibs="$deplib $deplibs"
2228357bfbb2Smrg	    continue
2229357bfbb2Smrg	  fi
2230357bfbb2Smrg	  case $linkmode in
2231357bfbb2Smrg	  lib)
2232357bfbb2Smrg	    valid_a_lib=no
2233357bfbb2Smrg	    case $deplibs_check_method in
2234357bfbb2Smrg	      match_pattern*)
2235357bfbb2Smrg		set dummy $deplibs_check_method
2236357bfbb2Smrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2237357bfbb2Smrg		if eval $echo \"$deplib\" 2>/dev/null \
2238357bfbb2Smrg		    | $SED 10q \
2239357bfbb2Smrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
2240357bfbb2Smrg		  valid_a_lib=yes
2241357bfbb2Smrg		fi
2242357bfbb2Smrg		;;
2243357bfbb2Smrg	      pass_all)
2244357bfbb2Smrg		valid_a_lib=yes
2245357bfbb2Smrg		;;
2246357bfbb2Smrg            esac
2247357bfbb2Smrg	    if test "$valid_a_lib" != yes; then
2248357bfbb2Smrg	      $echo
2249357bfbb2Smrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2250357bfbb2Smrg	      $echo "*** I have the capability to make that library automatically link in when"
2251357bfbb2Smrg	      $echo "*** you link to this library.  But I can only do this if you have a"
2252357bfbb2Smrg	      $echo "*** shared version of the library, which you do not appear to have"
2253357bfbb2Smrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2254357bfbb2Smrg	      $echo "*** that it is just a static archive that I should not used here."
2255357bfbb2Smrg	    else
2256357bfbb2Smrg	      $echo
2257357bfbb2Smrg	      $echo "*** Warning: Linking the shared library $output against the"
2258357bfbb2Smrg	      $echo "*** static library $deplib is not portable!"
2259357bfbb2Smrg	      deplibs="$deplib $deplibs"
2260357bfbb2Smrg	    fi
2261357bfbb2Smrg	    continue
2262357bfbb2Smrg	    ;;
2263357bfbb2Smrg	  prog)
2264357bfbb2Smrg	    if test "$pass" != link; then
2265357bfbb2Smrg	      deplibs="$deplib $deplibs"
2266357bfbb2Smrg	    else
2267357bfbb2Smrg	      compile_deplibs="$deplib $compile_deplibs"
2268357bfbb2Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2269357bfbb2Smrg	    fi
2270357bfbb2Smrg	    continue
2271357bfbb2Smrg	    ;;
2272357bfbb2Smrg	  esac # linkmode
2273357bfbb2Smrg	  ;; # *.$libext
2274357bfbb2Smrg	*.lo | *.$objext)
2275357bfbb2Smrg	  if test "$pass" = conv; then
2276357bfbb2Smrg	    deplibs="$deplib $deplibs"
2277357bfbb2Smrg	  elif test "$linkmode" = prog; then
2278357bfbb2Smrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2279357bfbb2Smrg	      # If there is no dlopen support or we're linking statically,
2280357bfbb2Smrg	      # we need to preload.
2281357bfbb2Smrg	      newdlprefiles="$newdlprefiles $deplib"
2282357bfbb2Smrg	      compile_deplibs="$deplib $compile_deplibs"
2283357bfbb2Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2284357bfbb2Smrg	    else
2285357bfbb2Smrg	      newdlfiles="$newdlfiles $deplib"
2286357bfbb2Smrg	    fi
2287357bfbb2Smrg	  fi
2288357bfbb2Smrg	  continue
2289357bfbb2Smrg	  ;;
2290357bfbb2Smrg	%DEPLIBS%)
2291357bfbb2Smrg	  alldeplibs=yes
2292357bfbb2Smrg	  continue
2293357bfbb2Smrg	  ;;
2294357bfbb2Smrg	esac # case $deplib
2295357bfbb2Smrg	if test "$found" = yes || test -f "$lib"; then :
2296357bfbb2Smrg	else
2297357bfbb2Smrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2298357bfbb2Smrg	  exit $EXIT_FAILURE
2299357bfbb2Smrg	fi
2300357bfbb2Smrg
2301357bfbb2Smrg	# Check to see that this really is a libtool archive.
2302357bfbb2Smrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2303357bfbb2Smrg	else
2304357bfbb2Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2305357bfbb2Smrg	  exit $EXIT_FAILURE
2306357bfbb2Smrg	fi
2307357bfbb2Smrg
2308357bfbb2Smrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2309357bfbb2Smrg	test "X$ladir" = "X$lib" && ladir="."
2310357bfbb2Smrg
2311357bfbb2Smrg	dlname=
2312357bfbb2Smrg	dlopen=
2313357bfbb2Smrg	dlpreopen=
2314357bfbb2Smrg	libdir=
2315357bfbb2Smrg	library_names=
2316357bfbb2Smrg	old_library=
2317357bfbb2Smrg	# If the library was installed with an old release of libtool,
2318357bfbb2Smrg	# it will not redefine variables installed, or shouldnotlink
2319357bfbb2Smrg	installed=yes
2320357bfbb2Smrg	shouldnotlink=no
2321357bfbb2Smrg	avoidtemprpath=
2322357bfbb2Smrg
2323357bfbb2Smrg
2324357bfbb2Smrg	# Read the .la file
2325357bfbb2Smrg	case $lib in
2326357bfbb2Smrg	*/* | *\\*) . $lib ;;
2327357bfbb2Smrg	*) . ./$lib ;;
2328357bfbb2Smrg	esac
2329357bfbb2Smrg
2330357bfbb2Smrg	if test "$linkmode,$pass" = "lib,link" ||
2331357bfbb2Smrg	   test "$linkmode,$pass" = "prog,scan" ||
2332357bfbb2Smrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2333357bfbb2Smrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2334357bfbb2Smrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2335357bfbb2Smrg	fi
2336357bfbb2Smrg
2337357bfbb2Smrg	if test "$pass" = conv; then
2338357bfbb2Smrg	  # Only check for convenience libraries
2339357bfbb2Smrg	  deplibs="$lib $deplibs"
2340357bfbb2Smrg	  if test -z "$libdir"; then
2341357bfbb2Smrg	    if test -z "$old_library"; then
2342357bfbb2Smrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2343357bfbb2Smrg	      exit $EXIT_FAILURE
2344357bfbb2Smrg	    fi
2345357bfbb2Smrg	    # It is a libtool convenience library, so add in its objects.
2346357bfbb2Smrg	    convenience="$convenience $ladir/$objdir/$old_library"
2347357bfbb2Smrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2348357bfbb2Smrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2349357bfbb2Smrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2350357bfbb2Smrg	    exit $EXIT_FAILURE
2351357bfbb2Smrg	  fi
2352357bfbb2Smrg	  tmp_libs=
2353357bfbb2Smrg	  for deplib in $dependency_libs; do
2354357bfbb2Smrg	    deplibs="$deplib $deplibs"
2355357bfbb2Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
2356357bfbb2Smrg	      case "$tmp_libs " in
2357357bfbb2Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2358357bfbb2Smrg	      esac
2359357bfbb2Smrg	    fi
2360357bfbb2Smrg	    tmp_libs="$tmp_libs $deplib"
2361357bfbb2Smrg	  done
2362357bfbb2Smrg	  continue
2363357bfbb2Smrg	fi # $pass = conv
2364357bfbb2Smrg
2365357bfbb2Smrg
2366357bfbb2Smrg	# Get the name of the library we link against.
2367357bfbb2Smrg	linklib=
2368357bfbb2Smrg	for l in $old_library $library_names; do
2369357bfbb2Smrg	  linklib="$l"
2370357bfbb2Smrg	done
2371357bfbb2Smrg	if test -z "$linklib"; then
2372357bfbb2Smrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2373357bfbb2Smrg	  exit $EXIT_FAILURE
2374357bfbb2Smrg	fi
2375357bfbb2Smrg
2376357bfbb2Smrg	# This library was specified with -dlopen.
2377357bfbb2Smrg	if test "$pass" = dlopen; then
2378357bfbb2Smrg	  if test -z "$libdir"; then
2379357bfbb2Smrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2380357bfbb2Smrg	    exit $EXIT_FAILURE
2381357bfbb2Smrg	  fi
2382357bfbb2Smrg	  if test -z "$dlname" ||
2383357bfbb2Smrg	     test "$dlopen_support" != yes ||
2384357bfbb2Smrg	     test "$build_libtool_libs" = no; then
2385357bfbb2Smrg	    # If there is no dlname, no dlopen support or we're linking
2386357bfbb2Smrg	    # statically, we need to preload.  We also need to preload any
2387357bfbb2Smrg	    # dependent libraries so libltdl's deplib preloader doesn't
2388357bfbb2Smrg	    # bomb out in the load deplibs phase.
2389357bfbb2Smrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
2390357bfbb2Smrg	  else
2391357bfbb2Smrg	    newdlfiles="$newdlfiles $lib"
2392357bfbb2Smrg	  fi
2393357bfbb2Smrg	  continue
2394357bfbb2Smrg	fi # $pass = dlopen
2395357bfbb2Smrg
2396357bfbb2Smrg	# We need an absolute path.
2397357bfbb2Smrg	case $ladir in
2398357bfbb2Smrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2399357bfbb2Smrg	*)
2400357bfbb2Smrg	  abs_ladir=`cd "$ladir" && pwd`
2401357bfbb2Smrg	  if test -z "$abs_ladir"; then
2402357bfbb2Smrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2403357bfbb2Smrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2404357bfbb2Smrg	    abs_ladir="$ladir"
2405357bfbb2Smrg	  fi
2406357bfbb2Smrg	  ;;
2407357bfbb2Smrg	esac
2408357bfbb2Smrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2409357bfbb2Smrg
2410357bfbb2Smrg	# Find the relevant object directory and library name.
2411357bfbb2Smrg	if test "X$installed" = Xyes; then
2412357bfbb2Smrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2413357bfbb2Smrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2414357bfbb2Smrg	    dir="$ladir"
2415357bfbb2Smrg	    absdir="$abs_ladir"
2416357bfbb2Smrg	    libdir="$abs_ladir"
2417357bfbb2Smrg	  else
2418357bfbb2Smrg	    dir="$libdir"
2419357bfbb2Smrg	    absdir="$libdir"
2420357bfbb2Smrg	  fi
2421357bfbb2Smrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2422357bfbb2Smrg	else
2423357bfbb2Smrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2424357bfbb2Smrg	    dir="$ladir"
2425357bfbb2Smrg	    absdir="$abs_ladir"
2426357bfbb2Smrg	    # Remove this search path later
2427357bfbb2Smrg	    notinst_path="$notinst_path $abs_ladir"
2428357bfbb2Smrg	  else
2429357bfbb2Smrg	    dir="$ladir/$objdir"
2430357bfbb2Smrg	    absdir="$abs_ladir/$objdir"
2431357bfbb2Smrg	    # Remove this search path later
2432357bfbb2Smrg	    notinst_path="$notinst_path $abs_ladir"
2433357bfbb2Smrg	  fi
2434357bfbb2Smrg	fi # $installed = yes
2435357bfbb2Smrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2436357bfbb2Smrg
2437357bfbb2Smrg	# This library was specified with -dlpreopen.
2438357bfbb2Smrg	if test "$pass" = dlpreopen; then
2439357bfbb2Smrg	  if test -z "$libdir"; then
2440357bfbb2Smrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2441357bfbb2Smrg	    exit $EXIT_FAILURE
2442357bfbb2Smrg	  fi
2443357bfbb2Smrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2444357bfbb2Smrg	  # are required to link).
2445357bfbb2Smrg	  if test -n "$old_library"; then
2446357bfbb2Smrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
2447357bfbb2Smrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2448357bfbb2Smrg	  elif test -n "$dlname"; then
2449357bfbb2Smrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
2450357bfbb2Smrg	  else
2451357bfbb2Smrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
2452357bfbb2Smrg	  fi
2453357bfbb2Smrg	fi # $pass = dlpreopen
2454357bfbb2Smrg
2455357bfbb2Smrg	if test -z "$libdir"; then
2456357bfbb2Smrg	  # Link the convenience library
2457357bfbb2Smrg	  if test "$linkmode" = lib; then
2458357bfbb2Smrg	    deplibs="$dir/$old_library $deplibs"
2459357bfbb2Smrg	  elif test "$linkmode,$pass" = "prog,link"; then
2460357bfbb2Smrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
2461357bfbb2Smrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2462357bfbb2Smrg	  else
2463357bfbb2Smrg	    deplibs="$lib $deplibs" # used for prog,scan pass
2464357bfbb2Smrg	  fi
2465357bfbb2Smrg	  continue
2466357bfbb2Smrg	fi
2467357bfbb2Smrg
2468357bfbb2Smrg
2469357bfbb2Smrg	if test "$linkmode" = prog && test "$pass" != link; then
2470357bfbb2Smrg	  newlib_search_path="$newlib_search_path $ladir"
2471357bfbb2Smrg	  deplibs="$lib $deplibs"
2472357bfbb2Smrg
2473357bfbb2Smrg	  linkalldeplibs=no
2474357bfbb2Smrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2475357bfbb2Smrg	     test "$build_libtool_libs" = no; then
2476357bfbb2Smrg	    linkalldeplibs=yes
2477357bfbb2Smrg	  fi
2478357bfbb2Smrg
2479357bfbb2Smrg	  tmp_libs=
2480357bfbb2Smrg	  for deplib in $dependency_libs; do
2481357bfbb2Smrg	    case $deplib in
2482357bfbb2Smrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2483357bfbb2Smrg	    esac
2484357bfbb2Smrg	    # Need to link against all dependency_libs?
2485357bfbb2Smrg	    if test "$linkalldeplibs" = yes; then
2486357bfbb2Smrg	      deplibs="$deplib $deplibs"
2487357bfbb2Smrg	    else
2488357bfbb2Smrg	      # Need to hardcode shared library paths
2489357bfbb2Smrg	      # or/and link against static libraries
2490357bfbb2Smrg	      newdependency_libs="$deplib $newdependency_libs"
2491357bfbb2Smrg	    fi
2492357bfbb2Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
2493357bfbb2Smrg	      case "$tmp_libs " in
2494357bfbb2Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2495357bfbb2Smrg	      esac
2496357bfbb2Smrg	    fi
2497357bfbb2Smrg	    tmp_libs="$tmp_libs $deplib"
2498357bfbb2Smrg	  done # for deplib
2499357bfbb2Smrg	  continue
2500357bfbb2Smrg	fi # $linkmode = prog...
2501357bfbb2Smrg
2502357bfbb2Smrg	if test "$linkmode,$pass" = "prog,link"; then
2503357bfbb2Smrg	  if test -n "$library_names" &&
2504357bfbb2Smrg	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2505357bfbb2Smrg	    # We need to hardcode the library path
2506357bfbb2Smrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2507357bfbb2Smrg	      # Make sure the rpath contains only unique directories.
2508357bfbb2Smrg	      case "$temp_rpath " in
2509357bfbb2Smrg	      *" $dir "*) ;;
2510357bfbb2Smrg	      *" $absdir "*) ;;
2511357bfbb2Smrg	      *) temp_rpath="$temp_rpath $absdir" ;;
2512357bfbb2Smrg	      esac
2513357bfbb2Smrg	    fi
2514357bfbb2Smrg
2515357bfbb2Smrg	    # Hardcode the library path.
2516357bfbb2Smrg	    # Skip directories that are in the system default run-time
2517357bfbb2Smrg	    # search path.
2518357bfbb2Smrg	    case " $sys_lib_dlsearch_path " in
2519357bfbb2Smrg	    *" $absdir "*) ;;
2520357bfbb2Smrg	    *)
2521357bfbb2Smrg	      case "$compile_rpath " in
2522357bfbb2Smrg	      *" $absdir "*) ;;
2523357bfbb2Smrg	      *) compile_rpath="$compile_rpath $absdir"
2524357bfbb2Smrg	      esac
2525357bfbb2Smrg	      ;;
2526357bfbb2Smrg	    esac
2527357bfbb2Smrg	    case " $sys_lib_dlsearch_path " in
2528357bfbb2Smrg	    *" $libdir "*) ;;
2529357bfbb2Smrg	    *)
2530357bfbb2Smrg	      case "$finalize_rpath " in
2531357bfbb2Smrg	      *" $libdir "*) ;;
2532357bfbb2Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
2533357bfbb2Smrg	      esac
2534357bfbb2Smrg	      ;;
2535357bfbb2Smrg	    esac
2536357bfbb2Smrg	  fi # $linkmode,$pass = prog,link...
2537357bfbb2Smrg
2538357bfbb2Smrg	  if test "$alldeplibs" = yes &&
2539357bfbb2Smrg	     { test "$deplibs_check_method" = pass_all ||
2540357bfbb2Smrg	       { test "$build_libtool_libs" = yes &&
2541357bfbb2Smrg		 test -n "$library_names"; }; }; then
2542357bfbb2Smrg	    # We only need to search for static libraries
2543357bfbb2Smrg	    continue
2544357bfbb2Smrg	  fi
2545357bfbb2Smrg	fi
2546357bfbb2Smrg
2547357bfbb2Smrg	link_static=no # Whether the deplib will be linked statically
2548357bfbb2Smrg	use_static_libs=$prefer_static_libs
2549357bfbb2Smrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
2550357bfbb2Smrg	  use_static_libs=no
2551357bfbb2Smrg	fi
2552357bfbb2Smrg	if test -n "$library_names" &&
2553357bfbb2Smrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2554357bfbb2Smrg	  if test "$installed" = no; then
2555357bfbb2Smrg	    notinst_deplibs="$notinst_deplibs $lib"
2556357bfbb2Smrg	    test -z "$DESTDIR" && need_relink=yes
2557357bfbb2Smrg	  fi
2558357bfbb2Smrg	  # This is a shared library
2559357bfbb2Smrg
2560357bfbb2Smrg	  # Warn about portability, can't link against -module's on
2561357bfbb2Smrg	  # some systems (darwin)
2562357bfbb2Smrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2563357bfbb2Smrg	    $echo
2564357bfbb2Smrg	    if test "$linkmode" = prog; then
2565357bfbb2Smrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
2566357bfbb2Smrg	    else
2567357bfbb2Smrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2568357bfbb2Smrg	    fi
2569357bfbb2Smrg	    $echo "*** $linklib is not portable!"
2570357bfbb2Smrg	  fi
2571357bfbb2Smrg	  if test "$linkmode" = lib &&
2572357bfbb2Smrg	     test "$hardcode_into_libs" = yes; then
2573357bfbb2Smrg	    # Hardcode the library path.
2574357bfbb2Smrg	    # Skip directories that are in the system default run-time
2575357bfbb2Smrg	    # search path.
2576357bfbb2Smrg	    case " $sys_lib_dlsearch_path " in
2577357bfbb2Smrg	    *" $absdir "*) ;;
2578357bfbb2Smrg	    *)
2579357bfbb2Smrg	      case "$compile_rpath " in
2580357bfbb2Smrg	      *" $absdir "*) ;;
2581357bfbb2Smrg	      *) compile_rpath="$compile_rpath $absdir"
2582357bfbb2Smrg	      esac
2583357bfbb2Smrg	      ;;
2584357bfbb2Smrg	    esac
2585357bfbb2Smrg	    case " $sys_lib_dlsearch_path " in
2586357bfbb2Smrg	    *" $libdir "*) ;;
2587357bfbb2Smrg	    *)
2588357bfbb2Smrg	      case "$finalize_rpath " in
2589357bfbb2Smrg	      *" $libdir "*) ;;
2590357bfbb2Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
2591357bfbb2Smrg	      esac
2592357bfbb2Smrg	      ;;
2593357bfbb2Smrg	    esac
2594357bfbb2Smrg	  fi
2595357bfbb2Smrg
2596357bfbb2Smrg	  if test -n "$old_archive_from_expsyms_cmds"; then
2597357bfbb2Smrg	    # figure out the soname
2598357bfbb2Smrg	    set dummy $library_names
2599357bfbb2Smrg	    realname="$2"
2600357bfbb2Smrg	    shift; shift
2601357bfbb2Smrg	    libname=`eval \\$echo \"$libname_spec\"`
2602357bfbb2Smrg	    # use dlname if we got it. it's perfectly good, no?
2603357bfbb2Smrg	    if test -n "$dlname"; then
2604357bfbb2Smrg	      soname="$dlname"
2605357bfbb2Smrg	    elif test -n "$soname_spec"; then
2606357bfbb2Smrg	      # bleh windows
2607357bfbb2Smrg	      case $host in
2608357bfbb2Smrg	      *cygwin* | mingw*)
2609357bfbb2Smrg		major=`expr $current - $age`
2610357bfbb2Smrg		versuffix="-$major"
2611357bfbb2Smrg		;;
2612357bfbb2Smrg	      esac
2613357bfbb2Smrg	      eval soname=\"$soname_spec\"
2614357bfbb2Smrg	    else
2615357bfbb2Smrg	      soname="$realname"
2616357bfbb2Smrg	    fi
2617357bfbb2Smrg
2618357bfbb2Smrg	    # Make a new name for the extract_expsyms_cmds to use
2619357bfbb2Smrg	    soroot="$soname"
2620357bfbb2Smrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2621357bfbb2Smrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2622357bfbb2Smrg
2623357bfbb2Smrg	    # If the library has no export list, then create one now
2624357bfbb2Smrg	    if test -f "$output_objdir/$soname-def"; then :
2625357bfbb2Smrg	    else
2626357bfbb2Smrg	      $show "extracting exported symbol list from \`$soname'"
2627357bfbb2Smrg	      save_ifs="$IFS"; IFS='~'
2628357bfbb2Smrg	      cmds=$extract_expsyms_cmds
2629357bfbb2Smrg	      for cmd in $cmds; do
2630357bfbb2Smrg		IFS="$save_ifs"
2631357bfbb2Smrg		eval cmd=\"$cmd\"
2632357bfbb2Smrg		$show "$cmd"
2633357bfbb2Smrg		$run eval "$cmd" || exit $?
2634357bfbb2Smrg	      done
2635357bfbb2Smrg	      IFS="$save_ifs"
2636357bfbb2Smrg	    fi
2637357bfbb2Smrg
2638357bfbb2Smrg	    # Create $newlib
2639357bfbb2Smrg	    if test -f "$output_objdir/$newlib"; then :; else
2640357bfbb2Smrg	      $show "generating import library for \`$soname'"
2641357bfbb2Smrg	      save_ifs="$IFS"; IFS='~'
2642357bfbb2Smrg	      cmds=$old_archive_from_expsyms_cmds
2643357bfbb2Smrg	      for cmd in $cmds; do
2644357bfbb2Smrg		IFS="$save_ifs"
2645357bfbb2Smrg		eval cmd=\"$cmd\"
2646357bfbb2Smrg		$show "$cmd"
2647357bfbb2Smrg		$run eval "$cmd" || exit $?
2648357bfbb2Smrg	      done
2649357bfbb2Smrg	      IFS="$save_ifs"
2650357bfbb2Smrg	    fi
2651357bfbb2Smrg	    # make sure the library variables are pointing to the new library
2652357bfbb2Smrg	    dir=$output_objdir
2653357bfbb2Smrg	    linklib=$newlib
2654357bfbb2Smrg	  fi # test -n "$old_archive_from_expsyms_cmds"
2655357bfbb2Smrg
2656357bfbb2Smrg	  if test "$linkmode" = prog || test "$mode" != relink; then
2657357bfbb2Smrg	    add_shlibpath=
2658357bfbb2Smrg	    add_dir=
2659357bfbb2Smrg	    add=
2660357bfbb2Smrg	    lib_linked=yes
2661357bfbb2Smrg	    case $hardcode_action in
2662357bfbb2Smrg	    immediate | unsupported)
2663357bfbb2Smrg	      if test "$hardcode_direct" = no; then
2664357bfbb2Smrg		add="$dir/$linklib"
2665357bfbb2Smrg		case $host in
2666357bfbb2Smrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2667357bfbb2Smrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2668357bfbb2Smrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2669357bfbb2Smrg		    *-*-unixware7*) add_dir="-L$dir" ;;
2670357bfbb2Smrg		  *-*-darwin* )
2671357bfbb2Smrg		    # if the lib is a module then we can not link against
2672357bfbb2Smrg		    # it, someone is ignoring the new warnings I added
2673357bfbb2Smrg		    if /usr/bin/file -L $add 2> /dev/null |
2674357bfbb2Smrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
2675357bfbb2Smrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
2676357bfbb2Smrg		      if test -z "$old_library" ; then
2677357bfbb2Smrg		        $echo
2678357bfbb2Smrg		        $echo "** And there doesn't seem to be a static archive available"
2679357bfbb2Smrg		        $echo "** The link will probably fail, sorry"
2680357bfbb2Smrg		      else
2681357bfbb2Smrg		        add="$dir/$old_library"
2682357bfbb2Smrg		      fi
2683357bfbb2Smrg		    fi
2684357bfbb2Smrg		esac
2685357bfbb2Smrg	      elif test "$hardcode_minus_L" = no; then
2686357bfbb2Smrg		case $host in
2687357bfbb2Smrg		*-*-sunos*) add_shlibpath="$dir" ;;
2688357bfbb2Smrg		esac
2689357bfbb2Smrg		add_dir="-L$dir"
2690357bfbb2Smrg		add="-l$name"
2691357bfbb2Smrg	      elif test "$hardcode_shlibpath_var" = no; then
2692357bfbb2Smrg		add_shlibpath="$dir"
2693357bfbb2Smrg		add="-l$name"
2694357bfbb2Smrg	      else
2695357bfbb2Smrg		lib_linked=no
2696357bfbb2Smrg	      fi
2697357bfbb2Smrg	      ;;
2698357bfbb2Smrg	    relink)
2699357bfbb2Smrg	      if test "$hardcode_direct" = yes; then
2700357bfbb2Smrg		add="$dir/$linklib"
2701357bfbb2Smrg	      elif test "$hardcode_minus_L" = yes; then
2702357bfbb2Smrg		add_dir="-L$dir"
2703357bfbb2Smrg		# Try looking first in the location we're being installed to.
2704357bfbb2Smrg		if test -n "$inst_prefix_dir"; then
2705357bfbb2Smrg		  case $libdir in
2706357bfbb2Smrg		    [\\/]*)
2707357bfbb2Smrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2708357bfbb2Smrg		      ;;
2709357bfbb2Smrg		  esac
2710357bfbb2Smrg		fi
2711357bfbb2Smrg		add="-l$name"
2712357bfbb2Smrg	      elif test "$hardcode_shlibpath_var" = yes; then
2713357bfbb2Smrg		add_shlibpath="$dir"
2714357bfbb2Smrg		add="-l$name"
2715357bfbb2Smrg	      else
2716357bfbb2Smrg		lib_linked=no
2717357bfbb2Smrg	      fi
2718357bfbb2Smrg	      ;;
2719357bfbb2Smrg	    *) lib_linked=no ;;
2720357bfbb2Smrg	    esac
2721357bfbb2Smrg
2722357bfbb2Smrg	    if test "$lib_linked" != yes; then
2723357bfbb2Smrg	      $echo "$modename: configuration error: unsupported hardcode properties"
2724357bfbb2Smrg	      exit $EXIT_FAILURE
2725357bfbb2Smrg	    fi
2726357bfbb2Smrg
2727357bfbb2Smrg	    if test -n "$add_shlibpath"; then
2728357bfbb2Smrg	      case :$compile_shlibpath: in
2729357bfbb2Smrg	      *":$add_shlibpath:"*) ;;
2730357bfbb2Smrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2731357bfbb2Smrg	      esac
2732357bfbb2Smrg	    fi
2733357bfbb2Smrg	    if test "$linkmode" = prog; then
2734357bfbb2Smrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2735357bfbb2Smrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2736357bfbb2Smrg	    else
2737357bfbb2Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2738357bfbb2Smrg	      test -n "$add" && deplibs="$add $deplibs"
2739357bfbb2Smrg	      if test "$hardcode_direct" != yes && \
2740357bfbb2Smrg		 test "$hardcode_minus_L" != yes && \
2741357bfbb2Smrg		 test "$hardcode_shlibpath_var" = yes; then
2742357bfbb2Smrg		case :$finalize_shlibpath: in
2743357bfbb2Smrg		*":$libdir:"*) ;;
2744357bfbb2Smrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2745357bfbb2Smrg		esac
2746357bfbb2Smrg	      fi
2747357bfbb2Smrg	    fi
2748357bfbb2Smrg	  fi
2749357bfbb2Smrg
2750357bfbb2Smrg	  if test "$linkmode" = prog || test "$mode" = relink; then
2751357bfbb2Smrg	    add_shlibpath=
2752357bfbb2Smrg	    add_dir=
2753357bfbb2Smrg	    add=
2754357bfbb2Smrg	    # Finalize command for both is simple: just hardcode it.
2755357bfbb2Smrg	    if test "$hardcode_direct" = yes && test -f $libdir/$linklib; then
2756357bfbb2Smrg	      add="$libdir/$linklib"
2757357bfbb2Smrg	    elif test "$hardcode_minus_L" = yes; then
2758357bfbb2Smrg	      add_dir="-L$libdir"
2759357bfbb2Smrg	      add="-l$name"
2760357bfbb2Smrg	    elif test "$hardcode_shlibpath_var" = yes; then
2761357bfbb2Smrg	      case :$finalize_shlibpath: in
2762357bfbb2Smrg	      *":$libdir:"*) ;;
2763357bfbb2Smrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2764357bfbb2Smrg	      esac
2765357bfbb2Smrg	      add="-l$name"
2766357bfbb2Smrg	    elif test "$hardcode_automatic" = yes; then
2767357bfbb2Smrg	      if test -n "$inst_prefix_dir" &&
2768357bfbb2Smrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2769357bfbb2Smrg	        add="$inst_prefix_dir$libdir/$linklib"
2770357bfbb2Smrg	      else
2771357bfbb2Smrg	        add="$libdir/$linklib"
2772357bfbb2Smrg	      fi
2773357bfbb2Smrg	    else
2774357bfbb2Smrg	      # We cannot seem to hardcode it, guess we'll fake it.
2775357bfbb2Smrg	      add_dir="-L$libdir"
2776357bfbb2Smrg	      # Try looking first in the location we're being installed to.
2777357bfbb2Smrg	      if test -n "$inst_prefix_dir"; then
2778357bfbb2Smrg		case $libdir in
2779357bfbb2Smrg		  [\\/]*)
2780357bfbb2Smrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2781357bfbb2Smrg		    ;;
2782357bfbb2Smrg		esac
2783357bfbb2Smrg	      fi
2784357bfbb2Smrg	      add="-l$name"
2785357bfbb2Smrg	    fi
2786357bfbb2Smrg
2787357bfbb2Smrg	    if test "$linkmode" = prog; then
2788357bfbb2Smrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2789357bfbb2Smrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2790357bfbb2Smrg	    else
2791357bfbb2Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2792357bfbb2Smrg	      test -n "$add" && deplibs="$add $deplibs"
2793357bfbb2Smrg	    fi
2794357bfbb2Smrg	  fi
2795357bfbb2Smrg	elif test "$linkmode" = prog; then
2796357bfbb2Smrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2797357bfbb2Smrg	  # is not unsupported.  This is valid on all known static and
2798357bfbb2Smrg	  # shared platforms.
2799357bfbb2Smrg	  if test "$hardcode_direct" != unsupported; then
2800357bfbb2Smrg	    test -n "$old_library" && linklib="$old_library"
2801357bfbb2Smrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
2802357bfbb2Smrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2803357bfbb2Smrg	  else
2804357bfbb2Smrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2805357bfbb2Smrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2806357bfbb2Smrg	  fi
2807357bfbb2Smrg	elif test "$build_libtool_libs" = yes; then
2808357bfbb2Smrg	  # Not a shared library
2809357bfbb2Smrg	  if test "$deplibs_check_method" != pass_all; then
2810357bfbb2Smrg	    # We're trying link a shared library against a static one
2811357bfbb2Smrg	    # but the system doesn't support it.
2812357bfbb2Smrg
2813357bfbb2Smrg	    # Just print a warning and add the library to dependency_libs so
2814357bfbb2Smrg	    # that the program can be linked against the static library.
2815357bfbb2Smrg	    $echo
2816357bfbb2Smrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
2817357bfbb2Smrg	    $echo "*** I have the capability to make that library automatically link in when"
2818357bfbb2Smrg	    $echo "*** you link to this library.  But I can only do this if you have a"
2819357bfbb2Smrg	    $echo "*** shared version of the library, which you do not appear to have."
2820357bfbb2Smrg	    if test "$module" = yes; then
2821357bfbb2Smrg	      $echo "*** But as you try to build a module library, libtool will still create "
2822357bfbb2Smrg	      $echo "*** a static module, that should work as long as the dlopening application"
2823357bfbb2Smrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2824357bfbb2Smrg	      if test -z "$global_symbol_pipe"; then
2825357bfbb2Smrg		$echo
2826357bfbb2Smrg		$echo "*** However, this would only work if libtool was able to extract symbol"
2827357bfbb2Smrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2828357bfbb2Smrg		$echo "*** not find such a program.  So, this module is probably useless."
2829357bfbb2Smrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2830357bfbb2Smrg	      fi
2831357bfbb2Smrg	      if test "$build_old_libs" = no; then
2832357bfbb2Smrg		build_libtool_libs=module
2833357bfbb2Smrg		build_old_libs=yes
2834357bfbb2Smrg	      else
2835357bfbb2Smrg		build_libtool_libs=no
2836357bfbb2Smrg	      fi
2837357bfbb2Smrg	    fi
2838357bfbb2Smrg	  else
2839357bfbb2Smrg	    deplibs="$dir/$old_library $deplibs"
2840357bfbb2Smrg	    link_static=yes
2841357bfbb2Smrg	  fi
2842357bfbb2Smrg	fi # link shared/static library?
2843357bfbb2Smrg
2844357bfbb2Smrg	if test "$linkmode" = lib; then
2845357bfbb2Smrg	  if test -n "$dependency_libs" &&
2846357bfbb2Smrg	     { test "$hardcode_into_libs" != yes ||
2847357bfbb2Smrg	       test "$build_old_libs" = yes ||
2848357bfbb2Smrg	       test "$link_static" = yes; }; then
2849357bfbb2Smrg	    # Extract -R from dependency_libs
2850357bfbb2Smrg	    temp_deplibs=
2851357bfbb2Smrg	    for libdir in $dependency_libs; do
2852357bfbb2Smrg	      case $libdir in
2853357bfbb2Smrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2854357bfbb2Smrg		   case " $xrpath " in
2855357bfbb2Smrg		   *" $temp_xrpath "*) ;;
2856357bfbb2Smrg		   *) xrpath="$xrpath $temp_xrpath";;
2857357bfbb2Smrg		   esac;;
2858357bfbb2Smrg	      *) temp_deplibs="$temp_deplibs $libdir";;
2859357bfbb2Smrg	      esac
2860357bfbb2Smrg	    done
2861357bfbb2Smrg	    dependency_libs="$temp_deplibs"
2862357bfbb2Smrg	  fi
2863357bfbb2Smrg
2864357bfbb2Smrg	  newlib_search_path="$newlib_search_path $absdir"
2865357bfbb2Smrg	  # Link against this library
2866357bfbb2Smrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2867357bfbb2Smrg	  # ... and its dependency_libs
2868357bfbb2Smrg	  tmp_libs=
2869357bfbb2Smrg	  for deplib in $dependency_libs; do
2870357bfbb2Smrg	    newdependency_libs="$deplib $newdependency_libs"
2871357bfbb2Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
2872357bfbb2Smrg	      case "$tmp_libs " in
2873357bfbb2Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2874357bfbb2Smrg	      esac
2875357bfbb2Smrg	    fi
2876357bfbb2Smrg	    tmp_libs="$tmp_libs $deplib"
2877357bfbb2Smrg	  done
2878357bfbb2Smrg
2879357bfbb2Smrg	  if test "$link_all_deplibs" != no; then
2880357bfbb2Smrg	    # Add the search paths of all dependency libraries
2881357bfbb2Smrg	    for deplib in $dependency_libs; do
2882357bfbb2Smrg	      case $deplib in
2883357bfbb2Smrg	      -L*) path="$deplib" ;;
2884357bfbb2Smrg	      *.la)
2885357bfbb2Smrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2886357bfbb2Smrg		test "X$dir" = "X$deplib" && dir="."
2887357bfbb2Smrg		# We need an absolute path.
2888357bfbb2Smrg		case $dir in
2889357bfbb2Smrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2890357bfbb2Smrg		*)
2891357bfbb2Smrg		  absdir=`cd "$dir" && pwd`
2892357bfbb2Smrg		  if test -z "$absdir"; then
2893357bfbb2Smrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2894357bfbb2Smrg		    absdir="$dir"
2895357bfbb2Smrg		  fi
2896357bfbb2Smrg		  ;;
2897357bfbb2Smrg		esac
2898357bfbb2Smrg		if grep "^installed=no" $deplib > /dev/null; then
2899357bfbb2Smrg		  path="$absdir/$objdir"
2900357bfbb2Smrg		else
2901357bfbb2Smrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2902357bfbb2Smrg		  if test -z "$libdir"; then
2903357bfbb2Smrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2904357bfbb2Smrg		    exit $EXIT_FAILURE
2905357bfbb2Smrg		  fi
2906357bfbb2Smrg		  if test "$absdir" != "$libdir"; then
2907357bfbb2Smrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2908357bfbb2Smrg		  fi
2909357bfbb2Smrg		  path="$absdir"
2910357bfbb2Smrg		fi
2911357bfbb2Smrg		depdepl=
2912357bfbb2Smrg		case $host in
2913357bfbb2Smrg		*-*-darwin*)
2914357bfbb2Smrg		  # we do not want to link against static libs,
2915357bfbb2Smrg		  # but need to link against shared
2916357bfbb2Smrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2917357bfbb2Smrg		  if test -n "$deplibrary_names" ; then
2918357bfbb2Smrg		    for tmp in $deplibrary_names ; do
2919357bfbb2Smrg		      depdepl=$tmp
2920357bfbb2Smrg		    done
2921357bfbb2Smrg		    if test -f "$path/$depdepl" ; then
2922357bfbb2Smrg		      depdepl="$path/$depdepl"
2923357bfbb2Smrg		    fi
2924357bfbb2Smrg		    # do not add paths which are already there
2925357bfbb2Smrg		    case " $newlib_search_path " in
2926357bfbb2Smrg		    *" $path "*) ;;
2927357bfbb2Smrg		    *) newlib_search_path="$newlib_search_path $path";;
2928357bfbb2Smrg		    esac
2929357bfbb2Smrg		  fi
2930357bfbb2Smrg		  path=""
2931357bfbb2Smrg		  ;;
2932357bfbb2Smrg		*)
2933357bfbb2Smrg		  path="-L$path"
2934357bfbb2Smrg		  ;;
2935357bfbb2Smrg		esac
2936357bfbb2Smrg		;;
2937357bfbb2Smrg	      -l*)
2938357bfbb2Smrg		case $host in
2939357bfbb2Smrg		*-*-darwin*)
2940357bfbb2Smrg		  # Again, we only want to link against shared libraries
2941357bfbb2Smrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2942357bfbb2Smrg		  for tmp in $newlib_search_path ; do
2943357bfbb2Smrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2944357bfbb2Smrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2945357bfbb2Smrg		      break
2946357bfbb2Smrg		    fi
2947357bfbb2Smrg		  done
2948357bfbb2Smrg		  path=""
2949357bfbb2Smrg		  ;;
2950357bfbb2Smrg		*) continue ;;
2951357bfbb2Smrg		esac
2952357bfbb2Smrg		;;
2953357bfbb2Smrg	      *) continue ;;
2954357bfbb2Smrg	      esac
2955357bfbb2Smrg	      case " $deplibs " in
2956357bfbb2Smrg	      *" $path "*) ;;
2957357bfbb2Smrg	      *) deplibs="$path $deplibs" ;;
2958357bfbb2Smrg	      esac
2959357bfbb2Smrg	      case " $deplibs " in
2960357bfbb2Smrg	      *" $depdepl "*) ;;
2961357bfbb2Smrg	      *) deplibs="$depdepl $deplibs" ;;
2962357bfbb2Smrg	      esac
2963357bfbb2Smrg	    done
2964357bfbb2Smrg	  fi # link_all_deplibs != no
2965357bfbb2Smrg	fi # linkmode = lib
2966357bfbb2Smrg      done # for deplib in $libs
2967357bfbb2Smrg      dependency_libs="$newdependency_libs"
2968357bfbb2Smrg      if test "$pass" = dlpreopen; then
2969357bfbb2Smrg	# Link the dlpreopened libraries before other libraries
2970357bfbb2Smrg	for deplib in $save_deplibs; do
2971357bfbb2Smrg	  deplibs="$deplib $deplibs"
2972357bfbb2Smrg	done
2973357bfbb2Smrg      fi
2974357bfbb2Smrg      if test "$pass" != dlopen; then
2975357bfbb2Smrg	if test "$pass" != conv; then
2976357bfbb2Smrg	  # Make sure lib_search_path contains only unique directories.
2977357bfbb2Smrg	  lib_search_path=
2978357bfbb2Smrg	  for dir in $newlib_search_path; do
2979357bfbb2Smrg	    case "$lib_search_path " in
2980357bfbb2Smrg	    *" $dir "*) ;;
2981357bfbb2Smrg	    *) lib_search_path="$lib_search_path $dir" ;;
2982357bfbb2Smrg	    esac
2983357bfbb2Smrg	  done
2984357bfbb2Smrg	  newlib_search_path=
2985357bfbb2Smrg	fi
2986357bfbb2Smrg
2987357bfbb2Smrg	if test "$linkmode,$pass" != "prog,link"; then
2988357bfbb2Smrg	  vars="deplibs"
2989357bfbb2Smrg	else
2990357bfbb2Smrg	  vars="compile_deplibs finalize_deplibs"
2991357bfbb2Smrg	fi
2992357bfbb2Smrg	for var in $vars dependency_libs; do
2993357bfbb2Smrg	  # Add libraries to $var in reverse order
2994357bfbb2Smrg	  eval tmp_libs=\"\$$var\"
2995357bfbb2Smrg	  new_libs=
2996357bfbb2Smrg	  for deplib in $tmp_libs; do
2997357bfbb2Smrg	    # FIXME: Pedantically, this is the right thing to do, so
2998357bfbb2Smrg	    #        that some nasty dependency loop isn't accidentally
2999357bfbb2Smrg	    #        broken:
3000357bfbb2Smrg	    #new_libs="$deplib $new_libs"
3001357bfbb2Smrg	    # Pragmatically, this seems to cause very few problems in
3002357bfbb2Smrg	    # practice:
3003357bfbb2Smrg	    case $deplib in
3004357bfbb2Smrg	    -L*) new_libs="$deplib $new_libs" ;;
3005357bfbb2Smrg	    -R*) ;;
3006357bfbb2Smrg	    *)
3007357bfbb2Smrg	      # And here is the reason: when a library appears more
3008357bfbb2Smrg	      # than once as an explicit dependence of a library, or
3009357bfbb2Smrg	      # is implicitly linked in more than once by the
3010357bfbb2Smrg	      # compiler, it is considered special, and multiple
3011357bfbb2Smrg	      # occurrences thereof are not removed.  Compare this
3012357bfbb2Smrg	      # with having the same library being listed as a
3013357bfbb2Smrg	      # dependency of multiple other libraries: in this case,
3014357bfbb2Smrg	      # we know (pedantically, we assume) the library does not
3015357bfbb2Smrg	      # need to be listed more than once, so we keep only the
3016357bfbb2Smrg	      # last copy.  This is not always right, but it is rare
3017357bfbb2Smrg	      # enough that we require users that really mean to play
3018357bfbb2Smrg	      # such unportable linking tricks to link the library
3019357bfbb2Smrg	      # using -Wl,-lname, so that libtool does not consider it
3020357bfbb2Smrg	      # for duplicate removal.
3021357bfbb2Smrg	      case " $specialdeplibs " in
3022357bfbb2Smrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3023357bfbb2Smrg	      *)
3024357bfbb2Smrg		case " $new_libs " in
3025357bfbb2Smrg		*" $deplib "*) ;;
3026357bfbb2Smrg		*) new_libs="$deplib $new_libs" ;;
3027357bfbb2Smrg		esac
3028357bfbb2Smrg		;;
3029357bfbb2Smrg	      esac
3030357bfbb2Smrg	      ;;
3031357bfbb2Smrg	    esac
3032357bfbb2Smrg	  done
3033357bfbb2Smrg	  tmp_libs=
3034357bfbb2Smrg	  for deplib in $new_libs; do
3035357bfbb2Smrg	    case $deplib in
3036357bfbb2Smrg	    -L*)
3037357bfbb2Smrg	      case " $tmp_libs " in
3038357bfbb2Smrg	      *" $deplib "*) ;;
3039357bfbb2Smrg	      *) tmp_libs="$tmp_libs $deplib" ;;
3040357bfbb2Smrg	      esac
3041357bfbb2Smrg	      ;;
3042357bfbb2Smrg	    *) tmp_libs="$tmp_libs $deplib" ;;
3043357bfbb2Smrg	    esac
3044357bfbb2Smrg	  done
3045357bfbb2Smrg	  eval $var=\"$tmp_libs\"
3046357bfbb2Smrg	done # for var
3047357bfbb2Smrg      fi
3048357bfbb2Smrg      # Last step: remove runtime libs from dependency_libs
3049357bfbb2Smrg      # (they stay in deplibs)
3050357bfbb2Smrg      tmp_libs=
3051357bfbb2Smrg      for i in $dependency_libs ; do
3052357bfbb2Smrg	case " $predeps $postdeps $compiler_lib_search_path " in
3053357bfbb2Smrg	*" $i "*)
3054357bfbb2Smrg	  i=""
3055357bfbb2Smrg	  ;;
3056357bfbb2Smrg	esac
3057357bfbb2Smrg	if test -n "$i" ; then
3058357bfbb2Smrg	  tmp_libs="$tmp_libs $i"
3059357bfbb2Smrg	fi
3060357bfbb2Smrg      done
3061357bfbb2Smrg      dependency_libs=$tmp_libs
3062357bfbb2Smrg    done # for pass
3063357bfbb2Smrg    if test "$linkmode" = prog; then
3064357bfbb2Smrg      dlfiles="$newdlfiles"
3065357bfbb2Smrg      dlprefiles="$newdlprefiles"
3066357bfbb2Smrg    fi
3067357bfbb2Smrg
3068357bfbb2Smrg    case $linkmode in
3069357bfbb2Smrg    oldlib)
3070357bfbb2Smrg      if test -n "$deplibs"; then
3071357bfbb2Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3072357bfbb2Smrg      fi
3073357bfbb2Smrg
3074357bfbb2Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3075357bfbb2Smrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3076357bfbb2Smrg      fi
3077357bfbb2Smrg
3078357bfbb2Smrg      if test -n "$rpath"; then
3079357bfbb2Smrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3080357bfbb2Smrg      fi
3081357bfbb2Smrg
3082357bfbb2Smrg      if test -n "$xrpath"; then
3083357bfbb2Smrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3084357bfbb2Smrg      fi
3085357bfbb2Smrg
3086357bfbb2Smrg      if test -n "$vinfo"; then
3087357bfbb2Smrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3088357bfbb2Smrg      fi
3089357bfbb2Smrg
3090357bfbb2Smrg      if test -n "$release"; then
3091357bfbb2Smrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3092357bfbb2Smrg      fi
3093357bfbb2Smrg
3094357bfbb2Smrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3095357bfbb2Smrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3096357bfbb2Smrg      fi
3097357bfbb2Smrg
3098357bfbb2Smrg      # Now set the variables for building old libraries.
3099357bfbb2Smrg      build_libtool_libs=no
3100357bfbb2Smrg      oldlibs="$output"
3101357bfbb2Smrg      objs="$objs$old_deplibs"
3102357bfbb2Smrg      ;;
3103357bfbb2Smrg
3104357bfbb2Smrg    lib)
3105357bfbb2Smrg      # Make sure we only generate libraries of the form `libNAME.la'.
3106357bfbb2Smrg      case $outputname in
3107357bfbb2Smrg      lib*)
3108357bfbb2Smrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3109357bfbb2Smrg	eval shared_ext=\"$shrext_cmds\"
3110357bfbb2Smrg	eval libname=\"$libname_spec\"
3111357bfbb2Smrg	;;
3112357bfbb2Smrg      *)
3113357bfbb2Smrg	if test "$module" = no; then
3114357bfbb2Smrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3115357bfbb2Smrg	  $echo "$help" 1>&2
3116357bfbb2Smrg	  exit $EXIT_FAILURE
3117357bfbb2Smrg	fi
3118357bfbb2Smrg	if test "$need_lib_prefix" != no; then
3119357bfbb2Smrg	  # Add the "lib" prefix for modules if required
3120357bfbb2Smrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3121357bfbb2Smrg	  eval shared_ext=\"$shrext_cmds\"
3122357bfbb2Smrg	  eval libname=\"$libname_spec\"
3123357bfbb2Smrg	else
3124357bfbb2Smrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3125357bfbb2Smrg	fi
3126357bfbb2Smrg	;;
3127357bfbb2Smrg      esac
3128357bfbb2Smrg
3129357bfbb2Smrg      if test -n "$objs"; then
3130357bfbb2Smrg	if test "$deplibs_check_method" != pass_all; then
3131357bfbb2Smrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3132357bfbb2Smrg	  exit $EXIT_FAILURE
3133357bfbb2Smrg	else
3134357bfbb2Smrg	  $echo
3135357bfbb2Smrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3136357bfbb2Smrg	  $echo "*** objects $objs is not portable!"
3137357bfbb2Smrg	  libobjs="$libobjs $objs"
3138357bfbb2Smrg	fi
3139357bfbb2Smrg      fi
3140357bfbb2Smrg
3141357bfbb2Smrg      if test "$dlself" != no; then
3142357bfbb2Smrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3143357bfbb2Smrg      fi
3144357bfbb2Smrg
3145357bfbb2Smrg      set dummy $rpath
3146357bfbb2Smrg      if test "$#" -gt 2; then
3147357bfbb2Smrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3148357bfbb2Smrg      fi
3149357bfbb2Smrg      install_libdir="$2"
3150357bfbb2Smrg
3151357bfbb2Smrg      oldlibs=
3152357bfbb2Smrg      if test -z "$rpath"; then
3153357bfbb2Smrg	if test "$build_libtool_libs" = yes; then
3154357bfbb2Smrg	  # Building a libtool convenience library.
3155357bfbb2Smrg	  # Some compilers have problems with a `.al' extension so
3156357bfbb2Smrg	  # convenience libraries should have the same extension an
3157357bfbb2Smrg	  # archive normally would.
3158357bfbb2Smrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3159357bfbb2Smrg	  build_libtool_libs=convenience
3160357bfbb2Smrg	  build_old_libs=yes
3161357bfbb2Smrg	fi
3162357bfbb2Smrg
3163357bfbb2Smrg	if test -n "$vinfo"; then
3164357bfbb2Smrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3165357bfbb2Smrg	fi
3166357bfbb2Smrg
3167357bfbb2Smrg	if test -n "$release"; then
3168357bfbb2Smrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3169357bfbb2Smrg	fi
3170357bfbb2Smrg      else
3171357bfbb2Smrg
3172357bfbb2Smrg	# Parse the version information argument.
3173357bfbb2Smrg	save_ifs="$IFS"; IFS=':'
3174357bfbb2Smrg	set dummy $vinfo 0 0 0
3175357bfbb2Smrg	IFS="$save_ifs"
3176357bfbb2Smrg
3177357bfbb2Smrg	if test -n "$8"; then
3178357bfbb2Smrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3179357bfbb2Smrg	  $echo "$help" 1>&2
3180357bfbb2Smrg	  exit $EXIT_FAILURE
3181357bfbb2Smrg	fi
3182357bfbb2Smrg
3183357bfbb2Smrg	# convert absolute version numbers to libtool ages
3184357bfbb2Smrg	# this retains compatibility with .la files and attempts
3185357bfbb2Smrg	# to make the code below a bit more comprehensible
3186357bfbb2Smrg
3187357bfbb2Smrg	case $vinfo_number in
3188357bfbb2Smrg	yes)
3189357bfbb2Smrg	  number_major="$2"
3190357bfbb2Smrg	  number_minor="$3"
3191357bfbb2Smrg	  number_revision="$4"
3192357bfbb2Smrg	  #
3193357bfbb2Smrg	  # There are really only two kinds -- those that
3194357bfbb2Smrg	  # use the current revision as the major version
3195357bfbb2Smrg	  # and those that subtract age and use age as
3196357bfbb2Smrg	  # a minor version.  But, then there is irix
3197357bfbb2Smrg	  # which has an extra 1 added just for fun
3198357bfbb2Smrg	  #
3199357bfbb2Smrg	  case $version_type in
3200357bfbb2Smrg	  darwin|linux|osf|windows)
3201357bfbb2Smrg	    current=`expr $number_major + $number_minor`
3202357bfbb2Smrg	    age="$number_minor"
3203357bfbb2Smrg	    revision="$number_revision"
3204357bfbb2Smrg	    ;;
3205357bfbb2Smrg	  freebsd-aout|freebsd-elf|sunos)
3206357bfbb2Smrg	    current="$number_major"
3207357bfbb2Smrg	    revision="$number_minor"
3208357bfbb2Smrg	    age="0"
3209357bfbb2Smrg	    ;;
3210357bfbb2Smrg	  irix|nonstopux)
3211357bfbb2Smrg	    current=`expr $number_major + $number_minor - 1`
3212357bfbb2Smrg	    age="$number_minor"
3213357bfbb2Smrg	    revision="$number_minor"
3214357bfbb2Smrg	    ;;
3215357bfbb2Smrg	  esac
3216357bfbb2Smrg	  ;;
3217357bfbb2Smrg	no)
3218357bfbb2Smrg	  current="$2"
3219357bfbb2Smrg	  revision="$3"
3220357bfbb2Smrg	  age="$4"
3221357bfbb2Smrg	  ;;
3222357bfbb2Smrg	esac
3223357bfbb2Smrg
3224357bfbb2Smrg	# Check that each of the things are valid numbers.
3225357bfbb2Smrg	case $current in
3226357bfbb2Smrg	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]) ;;
3227357bfbb2Smrg	*)
3228357bfbb2Smrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3229357bfbb2Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3230357bfbb2Smrg	  exit $EXIT_FAILURE
3231357bfbb2Smrg	  ;;
3232357bfbb2Smrg	esac
3233357bfbb2Smrg
3234357bfbb2Smrg	case $revision in
3235357bfbb2Smrg	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]) ;;
3236357bfbb2Smrg	*)
3237357bfbb2Smrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3238357bfbb2Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3239357bfbb2Smrg	  exit $EXIT_FAILURE
3240357bfbb2Smrg	  ;;
3241357bfbb2Smrg	esac
3242357bfbb2Smrg
3243357bfbb2Smrg	case $age in
3244357bfbb2Smrg	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]) ;;
3245357bfbb2Smrg	*)
3246357bfbb2Smrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3247357bfbb2Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3248357bfbb2Smrg	  exit $EXIT_FAILURE
3249357bfbb2Smrg	  ;;
3250357bfbb2Smrg	esac
3251357bfbb2Smrg
3252357bfbb2Smrg	if test "$age" -gt "$current"; then
3253357bfbb2Smrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3254357bfbb2Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3255357bfbb2Smrg	  exit $EXIT_FAILURE
3256357bfbb2Smrg	fi
3257357bfbb2Smrg
3258357bfbb2Smrg	# Calculate the version variables.
3259357bfbb2Smrg	major=
3260357bfbb2Smrg	versuffix=
3261357bfbb2Smrg	verstring=
3262357bfbb2Smrg	case $version_type in
3263357bfbb2Smrg	none) ;;
3264357bfbb2Smrg
3265357bfbb2Smrg	darwin)
3266357bfbb2Smrg	  # Like Linux, but with the current version available in
3267357bfbb2Smrg	  # verstring for coding it into the library header
3268357bfbb2Smrg	  major=.`expr $current - $age`
3269357bfbb2Smrg	  versuffix="$major.$age.$revision"
3270357bfbb2Smrg	  # Darwin ld doesn't like 0 for these options...
3271357bfbb2Smrg	  minor_current=`expr $current + 1`
3272357bfbb2Smrg	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3273357bfbb2Smrg	  ;;
3274357bfbb2Smrg
3275357bfbb2Smrg	freebsd-aout)
3276357bfbb2Smrg	  major=".$current"
3277357bfbb2Smrg	  versuffix=".$current.$revision";
3278357bfbb2Smrg	  ;;
3279357bfbb2Smrg
3280357bfbb2Smrg	freebsd-elf)
3281357bfbb2Smrg	  major=".$current"
3282357bfbb2Smrg	  versuffix=".$current";
3283357bfbb2Smrg	  ;;
3284357bfbb2Smrg
3285357bfbb2Smrg	irix | nonstopux)
3286357bfbb2Smrg	  major=`expr $current - $age + 1`
3287357bfbb2Smrg
3288357bfbb2Smrg	  case $version_type in
3289357bfbb2Smrg	    nonstopux) verstring_prefix=nonstopux ;;
3290357bfbb2Smrg	    *)         verstring_prefix=sgi ;;
3291357bfbb2Smrg	  esac
3292357bfbb2Smrg	  verstring="$verstring_prefix$major.$revision"
3293357bfbb2Smrg
3294357bfbb2Smrg	  # Add in all the interfaces that we are compatible with.
3295357bfbb2Smrg	  loop=$revision
3296357bfbb2Smrg	  while test "$loop" -ne 0; do
3297357bfbb2Smrg	    iface=`expr $revision - $loop`
3298357bfbb2Smrg	    loop=`expr $loop - 1`
3299357bfbb2Smrg	    verstring="$verstring_prefix$major.$iface:$verstring"
3300357bfbb2Smrg	  done
3301357bfbb2Smrg
3302357bfbb2Smrg	  # Before this point, $major must not contain `.'.
3303357bfbb2Smrg	  major=.$major
3304357bfbb2Smrg	  versuffix="$major.$revision"
3305357bfbb2Smrg	  ;;
3306357bfbb2Smrg
3307357bfbb2Smrg	linux)
3308357bfbb2Smrg	  major=.`expr $current - $age`
3309357bfbb2Smrg	  versuffix="$major.$age.$revision"
3310357bfbb2Smrg	  ;;
3311357bfbb2Smrg
3312357bfbb2Smrg	osf)
3313357bfbb2Smrg	  major=.`expr $current - $age`
3314357bfbb2Smrg	  versuffix=".$current.$age.$revision"
3315357bfbb2Smrg	  verstring="$current.$age.$revision"
3316357bfbb2Smrg
3317357bfbb2Smrg	  # Add in all the interfaces that we are compatible with.
3318357bfbb2Smrg	  loop=$age
3319357bfbb2Smrg	  while test "$loop" -ne 0; do
3320357bfbb2Smrg	    iface=`expr $current - $loop`
3321357bfbb2Smrg	    loop=`expr $loop - 1`
3322357bfbb2Smrg	    verstring="$verstring:${iface}.0"
3323357bfbb2Smrg	  done
3324357bfbb2Smrg
3325357bfbb2Smrg	  # Make executables depend on our current version.
3326357bfbb2Smrg	  verstring="$verstring:${current}.0"
3327357bfbb2Smrg	  ;;
3328357bfbb2Smrg
3329357bfbb2Smrg	sunos)
3330357bfbb2Smrg	  major=".$current"
3331357bfbb2Smrg	  versuffix=".$current.$revision"
3332357bfbb2Smrg	  ;;
3333357bfbb2Smrg
3334357bfbb2Smrg	windows)
3335357bfbb2Smrg	  # Use '-' rather than '.', since we only want one
3336357bfbb2Smrg	  # extension on DOS 8.3 filesystems.
3337357bfbb2Smrg	  major=`expr $current - $age`
3338357bfbb2Smrg	  versuffix="-$major"
3339357bfbb2Smrg	  ;;
3340357bfbb2Smrg
3341357bfbb2Smrg	*)
3342357bfbb2Smrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3343357bfbb2Smrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3344357bfbb2Smrg	  exit $EXIT_FAILURE
3345357bfbb2Smrg	  ;;
3346357bfbb2Smrg	esac
3347357bfbb2Smrg
3348357bfbb2Smrg	# Clear the version info if we defaulted, and they specified a release.
3349357bfbb2Smrg	if test -z "$vinfo" && test -n "$release"; then
3350357bfbb2Smrg	  major=
3351357bfbb2Smrg	  case $version_type in
3352357bfbb2Smrg	  darwin)
3353357bfbb2Smrg	    # we can't check for "0.0" in archive_cmds due to quoting
3354357bfbb2Smrg	    # problems, so we reset it completely
3355357bfbb2Smrg	    verstring=
3356357bfbb2Smrg	    ;;
3357357bfbb2Smrg	  *)
3358357bfbb2Smrg	    verstring="0.0"
3359357bfbb2Smrg	    ;;
3360357bfbb2Smrg	  esac
3361357bfbb2Smrg	  if test "$need_version" = no; then
3362357bfbb2Smrg	    versuffix=
3363357bfbb2Smrg	  else
3364357bfbb2Smrg	    versuffix=".0.0"
3365357bfbb2Smrg	  fi
3366357bfbb2Smrg	fi
3367357bfbb2Smrg
3368357bfbb2Smrg	# Remove version info from name if versioning should be avoided
3369357bfbb2Smrg	if test "$avoid_version" = yes && test "$need_version" = no; then
3370357bfbb2Smrg	  major=
3371357bfbb2Smrg	  versuffix=
3372357bfbb2Smrg	  verstring=""
3373357bfbb2Smrg	else
3374357bfbb2Smrg	  # XXX
3375357bfbb2Smrg	  tmp=`echo $libname|sed -e 's,+,_,g' -e 's,-,_,g' -e 's,\.,_,g'`
3376357bfbb2Smrg	  eval tmp2=\$${tmp}_ltversion
3377357bfbb2Smrg	  if ! test -z "${SHARED_LIBS_LOG}"; then
3378357bfbb2Smrg		  if ! test -f ${SHARED_LIBS_LOG}; then
3379357bfbb2Smrg			  echo "# SHARED_LIBS+=	<libname>      <obsd version> # <orig version>" >${SHARED_LIBS_LOG}
3380357bfbb2Smrg		  fi
3381357bfbb2Smrg		  tmp4=`echo $libname|sed -e 's/^lib//'`
3382357bfbb2Smrg		  printf "SHARED_LIBS +=\t%-20s %-8s # %s\n" "$tmp4" "$tmp2" "$versuffix" >>${SHARED_LIBS_LOG}
3383357bfbb2Smrg	  fi
3384357bfbb2Smrg	  if test -n "$versuffix" && test -n "$tmp2"; then
3385357bfbb2Smrg	    versuffix=".$tmp2"
3386357bfbb2Smrg	  fi
3387357bfbb2Smrg	fi
3388357bfbb2Smrg
3389357bfbb2Smrg	# Check to see if the archive will have undefined symbols.
3390357bfbb2Smrg	if test "$allow_undefined" = yes; then
3391357bfbb2Smrg	  if test "$allow_undefined_flag" = unsupported; then
3392357bfbb2Smrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3393357bfbb2Smrg	    build_libtool_libs=no
3394357bfbb2Smrg	    build_old_libs=yes
3395357bfbb2Smrg	  fi
3396357bfbb2Smrg	else
3397357bfbb2Smrg	  # Don't allow undefined symbols.
3398357bfbb2Smrg	  allow_undefined_flag="$no_undefined_flag"
3399357bfbb2Smrg	fi
3400357bfbb2Smrg      fi
3401357bfbb2Smrg
3402357bfbb2Smrg      if test "$mode" != relink; then
3403357bfbb2Smrg	# Remove our outputs, but don't remove object files since they
3404357bfbb2Smrg	# may have been created when compiling PIC objects.
3405357bfbb2Smrg	removelist=
3406357bfbb2Smrg	tempremovelist=`$echo "$output_objdir/*"`
3407357bfbb2Smrg	for p in $tempremovelist; do
3408357bfbb2Smrg	  case $p in
3409357bfbb2Smrg	    *.$objext)
3410357bfbb2Smrg	       ;;
3411357bfbb2Smrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3412357bfbb2Smrg	       if test "X$precious_files_regex" != "X"; then
3413357bfbb2Smrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3414357bfbb2Smrg	         then
3415357bfbb2Smrg		   continue
3416357bfbb2Smrg		 fi
3417357bfbb2Smrg	       fi
3418357bfbb2Smrg	       removelist="$removelist $p"
3419357bfbb2Smrg	       ;;
3420357bfbb2Smrg	    *) ;;
3421357bfbb2Smrg	  esac
3422357bfbb2Smrg	done
3423357bfbb2Smrg	if test -n "$removelist"; then
3424357bfbb2Smrg	  $show "${rm}r $removelist"
3425357bfbb2Smrg	  $run ${rm}r $removelist
3426357bfbb2Smrg	fi
3427357bfbb2Smrg      fi
3428357bfbb2Smrg
3429357bfbb2Smrg      # Now set the variables for building old libraries.
3430357bfbb2Smrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3431357bfbb2Smrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3432357bfbb2Smrg
3433357bfbb2Smrg	# Transform .lo files to .o files.
3434357bfbb2Smrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3435357bfbb2Smrg      fi
3436357bfbb2Smrg
3437357bfbb2Smrg      # Eliminate all temporary directories.
3438357bfbb2Smrg      for path in $notinst_path; do
3439357bfbb2Smrg	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3440357bfbb2Smrg	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3441357bfbb2Smrg	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3442357bfbb2Smrg      done
3443357bfbb2Smrg
3444357bfbb2Smrg      if test -n "$xrpath"; then
3445357bfbb2Smrg	# If the user specified any rpath flags, then add them.
3446357bfbb2Smrg	temp_xrpath=
3447357bfbb2Smrg	for libdir in $xrpath; do
3448357bfbb2Smrg	  temp_xrpath="$temp_xrpath -R$libdir"
3449357bfbb2Smrg	  case "$finalize_rpath " in
3450357bfbb2Smrg	  *" $libdir "*) ;;
3451357bfbb2Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3452357bfbb2Smrg	  esac
3453357bfbb2Smrg	done
3454357bfbb2Smrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3455357bfbb2Smrg	  dependency_libs="$temp_xrpath $dependency_libs"
3456357bfbb2Smrg	fi
3457357bfbb2Smrg      fi
3458357bfbb2Smrg
3459357bfbb2Smrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
3460357bfbb2Smrg      old_dlfiles="$dlfiles"
3461357bfbb2Smrg      dlfiles=
3462357bfbb2Smrg      for lib in $old_dlfiles; do
3463357bfbb2Smrg	case " $dlprefiles $dlfiles " in
3464357bfbb2Smrg	*" $lib "*) ;;
3465357bfbb2Smrg	*) dlfiles="$dlfiles $lib" ;;
3466357bfbb2Smrg	esac
3467357bfbb2Smrg      done
3468357bfbb2Smrg
3469357bfbb2Smrg      # Make sure dlprefiles contains only unique files
3470357bfbb2Smrg      old_dlprefiles="$dlprefiles"
3471357bfbb2Smrg      dlprefiles=
3472357bfbb2Smrg      for lib in $old_dlprefiles; do
3473357bfbb2Smrg	case "$dlprefiles " in
3474357bfbb2Smrg	*" $lib "*) ;;
3475357bfbb2Smrg	*) dlprefiles="$dlprefiles $lib" ;;
3476357bfbb2Smrg	esac
3477357bfbb2Smrg      done
3478357bfbb2Smrg
3479357bfbb2Smrg      if test "$build_libtool_libs" = yes; then
3480357bfbb2Smrg	if test -n "$rpath"; then
3481357bfbb2Smrg	  case $host in
3482357bfbb2Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3483357bfbb2Smrg	    # these systems don't actually have a c library (as such)!
3484357bfbb2Smrg	    ;;
3485357bfbb2Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
3486357bfbb2Smrg	    # Rhapsody C library is in the System framework
3487357bfbb2Smrg	    deplibs="$deplibs -framework System"
3488357bfbb2Smrg	    ;;
3489357bfbb2Smrg	  *-*-netbsd*)
3490357bfbb2Smrg	    # Don't link with libc until the a.out ld.so is fixed.
3491357bfbb2Smrg	    ;;
3492357bfbb2Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3493357bfbb2Smrg	    # Do not include libc due to us having libc/libc_r.
3494357bfbb2Smrg	    ;;
3495357bfbb2Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
3496357bfbb2Smrg	    # Causes problems with __ctype
3497357bfbb2Smrg	    ;;
3498357bfbb2Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3499357bfbb2Smrg	    # Compiler inserts libc in the correct place for threads to work
3500357bfbb2Smrg	    ;;
3501357bfbb2Smrg 	  *)
3502357bfbb2Smrg	    # Add libc to deplibs on all other systems if necessary.
3503357bfbb2Smrg	    if test "$build_libtool_need_lc" = "yes"; then
3504357bfbb2Smrg	      deplibs="$deplibs -lc"
3505357bfbb2Smrg	    fi
3506357bfbb2Smrg	    ;;
3507357bfbb2Smrg	  esac
3508357bfbb2Smrg	fi
3509357bfbb2Smrg
3510357bfbb2Smrg	# Transform deplibs into only deplibs that can be linked in shared.
3511357bfbb2Smrg	name_save=$name
3512357bfbb2Smrg	libname_save=$libname
3513357bfbb2Smrg	release_save=$release
3514357bfbb2Smrg	versuffix_save=$versuffix
3515357bfbb2Smrg	major_save=$major
3516357bfbb2Smrg	# I'm not sure if I'm treating the release correctly.  I think
3517357bfbb2Smrg	# release should show up in the -l (ie -lgmp5) so we don't want to
3518357bfbb2Smrg	# add it in twice.  Is that correct?
3519357bfbb2Smrg	release=""
3520357bfbb2Smrg	versuffix=""
3521357bfbb2Smrg	major=""
3522357bfbb2Smrg	newdeplibs=
3523357bfbb2Smrg	droppeddeps=no
3524357bfbb2Smrg	case $deplibs_check_method in
3525357bfbb2Smrg	pass_all)
3526357bfbb2Smrg	  # Don't check for shared/static.  Everything works.
3527357bfbb2Smrg	  # This might be a little naive.  We might want to check
3528357bfbb2Smrg	  # whether the library exists or not.  But this is on
3529357bfbb2Smrg	  # osf3 & osf4 and I'm not really sure... Just
3530357bfbb2Smrg	  # implementing what was already the behavior.
3531357bfbb2Smrg	  newdeplibs=$deplibs
3532357bfbb2Smrg	  ;;
3533357bfbb2Smrg	test_compile)
3534357bfbb2Smrg	  # This code stresses the "libraries are programs" paradigm to its
3535357bfbb2Smrg	  # limits. Maybe even breaks it.  We compile a program, linking it
3536357bfbb2Smrg	  # against the deplibs as a proxy for the library.  Then we can check
3537357bfbb2Smrg	  # whether they linked in statically or dynamically with ldd.
3538357bfbb2Smrg	  $rm conftest.c
3539357bfbb2Smrg	  cat > conftest.c <<EOF
3540357bfbb2Smrg	  int main() { return 0; }
3541357bfbb2SmrgEOF
3542357bfbb2Smrg	  $rm conftest
3543357bfbb2Smrg	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3544357bfbb2Smrg	  if test "$?" -eq 0 ; then
3545357bfbb2Smrg	    ldd_output=`ldd conftest`
3546357bfbb2Smrg	    for i in $deplibs; do
3547357bfbb2Smrg	      name=`expr $i : '-l\(.*\)'`
3548357bfbb2Smrg	      # If $name is empty we are operating on a -L argument.
3549357bfbb2Smrg              if test "$name" != "" && test "$name" -ne "0"; then
3550357bfbb2Smrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3551357bfbb2Smrg		  case " $predeps $postdeps " in
3552357bfbb2Smrg		  *" $i "*)
3553357bfbb2Smrg		    newdeplibs="$newdeplibs $i"
3554357bfbb2Smrg		    i=""
3555357bfbb2Smrg		    ;;
3556357bfbb2Smrg		  esac
3557357bfbb2Smrg	        fi
3558357bfbb2Smrg		if test -n "$i" ; then
3559357bfbb2Smrg		  libname=`eval \\$echo \"$libname_spec\"`
3560357bfbb2Smrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3561357bfbb2Smrg		  set dummy $deplib_matches
3562357bfbb2Smrg		  deplib_match=$2
3563357bfbb2Smrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3564357bfbb2Smrg		    newdeplibs="$newdeplibs $i"
3565357bfbb2Smrg		  else
3566357bfbb2Smrg		    droppeddeps=yes
3567357bfbb2Smrg		    $echo
3568357bfbb2Smrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3569357bfbb2Smrg		    $echo "*** I have the capability to make that library automatically link in when"
3570357bfbb2Smrg		    $echo "*** you link to this library.  But I can only do this if you have a"
3571357bfbb2Smrg		    $echo "*** shared version of the library, which I believe you do not have"
3572357bfbb2Smrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3573357bfbb2Smrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3574357bfbb2Smrg		  fi
3575357bfbb2Smrg		fi
3576357bfbb2Smrg	      else
3577357bfbb2Smrg		newdeplibs="$newdeplibs $i"
3578357bfbb2Smrg	      fi
3579357bfbb2Smrg	    done
3580357bfbb2Smrg	  else
3581357bfbb2Smrg	    # Error occurred in the first compile.  Let's try to salvage
3582357bfbb2Smrg	    # the situation: Compile a separate program for each library.
3583357bfbb2Smrg	    for i in $deplibs; do
3584357bfbb2Smrg	      name=`expr $i : '-l\(.*\)'`
3585357bfbb2Smrg	      # If $name is empty we are operating on a -L argument.
3586357bfbb2Smrg              if test "$name" != "" && test "$name" != "0"; then
3587357bfbb2Smrg		$rm conftest
3588357bfbb2Smrg		$LTCC $LTCFLAGS -o conftest conftest.c $i
3589357bfbb2Smrg		# Did it work?
3590357bfbb2Smrg		if test "$?" -eq 0 ; then
3591357bfbb2Smrg		  ldd_output=`ldd conftest`
3592357bfbb2Smrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3593357bfbb2Smrg		    case " $predeps $postdeps " in
3594357bfbb2Smrg		    *" $i "*)
3595357bfbb2Smrg		      newdeplibs="$newdeplibs $i"
3596357bfbb2Smrg		      i=""
3597357bfbb2Smrg		      ;;
3598357bfbb2Smrg		    esac
3599357bfbb2Smrg		  fi
3600357bfbb2Smrg		  if test -n "$i" ; then
3601357bfbb2Smrg		    libname=`eval \\$echo \"$libname_spec\"`
3602357bfbb2Smrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3603357bfbb2Smrg		    set dummy $deplib_matches
3604357bfbb2Smrg		    deplib_match=$2
3605357bfbb2Smrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3606357bfbb2Smrg		      newdeplibs="$newdeplibs $i"
3607357bfbb2Smrg		    else
3608357bfbb2Smrg		      droppeddeps=yes
3609357bfbb2Smrg		      $echo
3610357bfbb2Smrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3611357bfbb2Smrg		      $echo "*** I have the capability to make that library automatically link in when"
3612357bfbb2Smrg		      $echo "*** you link to this library.  But I can only do this if you have a"
3613357bfbb2Smrg		      $echo "*** shared version of the library, which you do not appear to have"
3614357bfbb2Smrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3615357bfbb2Smrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3616357bfbb2Smrg		    fi
3617357bfbb2Smrg		  fi
3618357bfbb2Smrg		else
3619357bfbb2Smrg		  droppeddeps=yes
3620357bfbb2Smrg		  $echo
3621357bfbb2Smrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3622357bfbb2Smrg		  $echo "***  make it link in!  You will probably need to install it or some"
3623357bfbb2Smrg		  $echo "*** library that it depends on before this library will be fully"
3624357bfbb2Smrg		  $echo "*** functional.  Installing it before continuing would be even better."
3625357bfbb2Smrg		fi
3626357bfbb2Smrg	      else
3627357bfbb2Smrg		newdeplibs="$newdeplibs $i"
3628357bfbb2Smrg	      fi
3629357bfbb2Smrg	    done
3630357bfbb2Smrg	  fi
3631357bfbb2Smrg	  ;;
3632357bfbb2Smrg	file_magic*)
3633357bfbb2Smrg	  set dummy $deplibs_check_method
3634357bfbb2Smrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3635357bfbb2Smrg	  for a_deplib in $deplibs; do
3636357bfbb2Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
3637357bfbb2Smrg	    # If $name is empty we are operating on a -L argument.
3638357bfbb2Smrg            if test "$name" != "" && test  "$name" != "0"; then
3639357bfbb2Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3640357bfbb2Smrg		case " $predeps $postdeps " in
3641357bfbb2Smrg		*" $a_deplib "*)
3642357bfbb2Smrg		  newdeplibs="$newdeplibs $a_deplib"
3643357bfbb2Smrg		  a_deplib=""
3644357bfbb2Smrg		  ;;
3645357bfbb2Smrg		esac
3646357bfbb2Smrg	      fi
3647357bfbb2Smrg	      if test -n "$a_deplib" ; then
3648357bfbb2Smrg		libname=`eval \\$echo \"$libname_spec\"`
3649357bfbb2Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3650357bfbb2Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3651357bfbb2Smrg		  for potent_lib in $potential_libs; do
3652357bfbb2Smrg		      # Follow soft links.
3653357bfbb2Smrg		      if ls -lLd "$potent_lib" 2>/dev/null \
3654357bfbb2Smrg			 | grep " -> " >/dev/null; then
3655357bfbb2Smrg			continue
3656357bfbb2Smrg		      fi
3657357bfbb2Smrg		      # The statement above tries to avoid entering an
3658357bfbb2Smrg		      # endless loop below, in case of cyclic links.
3659357bfbb2Smrg		      # We might still enter an endless loop, since a link
3660357bfbb2Smrg		      # loop can be closed while we follow links,
3661357bfbb2Smrg		      # but so what?
3662357bfbb2Smrg		      potlib="$potent_lib"
3663357bfbb2Smrg		      while test -h "$potlib" 2>/dev/null; do
3664357bfbb2Smrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3665357bfbb2Smrg			case $potliblink in
3666357bfbb2Smrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3667357bfbb2Smrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3668357bfbb2Smrg			esac
3669357bfbb2Smrg		      done
3670357bfbb2Smrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3671357bfbb2Smrg			 | ${SED} 10q \
3672357bfbb2Smrg			 | $EGREP "$file_magic_regex" > /dev/null; then
3673357bfbb2Smrg			newdeplibs="$newdeplibs $a_deplib"
3674357bfbb2Smrg			a_deplib=""
3675357bfbb2Smrg			break 2
3676357bfbb2Smrg		      fi
3677357bfbb2Smrg		  done
3678357bfbb2Smrg		done
3679357bfbb2Smrg	      fi
3680357bfbb2Smrg	      if test -n "$a_deplib" ; then
3681357bfbb2Smrg		droppeddeps=yes
3682357bfbb2Smrg		$echo
3683357bfbb2Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3684357bfbb2Smrg		$echo "*** I have the capability to make that library automatically link in when"
3685357bfbb2Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
3686357bfbb2Smrg		$echo "*** shared version of the library, which you do not appear to have"
3687357bfbb2Smrg		$echo "*** because I did check the linker path looking for a file starting"
3688357bfbb2Smrg		if test -z "$potlib" ; then
3689357bfbb2Smrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3690357bfbb2Smrg		else
3691357bfbb2Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3692357bfbb2Smrg		  $echo "*** using a file magic. Last file checked: $potlib"
3693357bfbb2Smrg		fi
3694357bfbb2Smrg	      fi
3695357bfbb2Smrg	    else
3696357bfbb2Smrg	      # Add a -L argument.
3697357bfbb2Smrg	      newdeplibs="$newdeplibs $a_deplib"
3698357bfbb2Smrg	    fi
3699357bfbb2Smrg	  done # Gone through all deplibs.
3700357bfbb2Smrg	  ;;
3701357bfbb2Smrg	match_pattern*)
3702357bfbb2Smrg	  set dummy $deplibs_check_method
3703357bfbb2Smrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3704357bfbb2Smrg	  for a_deplib in $deplibs; do
3705357bfbb2Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
3706357bfbb2Smrg	    # If $name is empty we are operating on a -L argument.
3707357bfbb2Smrg	    if test -n "$name" && test "$name" != "0"; then
3708357bfbb2Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3709357bfbb2Smrg		case " $predeps $postdeps " in
3710357bfbb2Smrg		*" $a_deplib "*)
3711357bfbb2Smrg		  newdeplibs="$newdeplibs $a_deplib"
3712357bfbb2Smrg		  a_deplib=""
3713357bfbb2Smrg		  ;;
3714357bfbb2Smrg		esac
3715357bfbb2Smrg	      fi
3716357bfbb2Smrg	      if test -n "$a_deplib" ; then
3717357bfbb2Smrg		libname=`eval \\$echo \"$libname_spec\"`
3718357bfbb2Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3719357bfbb2Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3720357bfbb2Smrg		  for potent_lib in $potential_libs; do
3721357bfbb2Smrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
3722357bfbb2Smrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
3723357bfbb2Smrg		        | ${SED} 10q \
3724357bfbb2Smrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
3725357bfbb2Smrg		      newdeplibs="$newdeplibs $a_deplib"
3726357bfbb2Smrg		      a_deplib=""
3727357bfbb2Smrg		      break 2
3728357bfbb2Smrg		    fi
3729357bfbb2Smrg		  done
3730357bfbb2Smrg		done
3731357bfbb2Smrg	      fi
3732357bfbb2Smrg	      if test -n "$a_deplib" ; then
3733357bfbb2Smrg		droppeddeps=yes
3734357bfbb2Smrg		$echo
3735357bfbb2Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3736357bfbb2Smrg		$echo "*** I have the capability to make that library automatically link in when"
3737357bfbb2Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
3738357bfbb2Smrg		$echo "*** shared version of the library, which you do not appear to have"
3739357bfbb2Smrg		$echo "*** because I did check the linker path looking for a file starting"
3740357bfbb2Smrg		if test -z "$potlib" ; then
3741357bfbb2Smrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3742357bfbb2Smrg		else
3743357bfbb2Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3744357bfbb2Smrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
3745357bfbb2Smrg		fi
3746357bfbb2Smrg	      fi
3747357bfbb2Smrg	    else
3748357bfbb2Smrg	      # Add a -L argument.
3749357bfbb2Smrg	      newdeplibs="$newdeplibs $a_deplib"
3750357bfbb2Smrg	    fi
3751357bfbb2Smrg	  done # Gone through all deplibs.
3752357bfbb2Smrg	  ;;
3753357bfbb2Smrg	none | unknown | *)
3754357bfbb2Smrg	  newdeplibs=""
3755357bfbb2Smrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3756357bfbb2Smrg	    -e 's/ -[LR][^ ]*//g'`
3757357bfbb2Smrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3758357bfbb2Smrg	    for i in $predeps $postdeps ; do
3759357bfbb2Smrg	      # can't use Xsed below, because $i might contain '/'
3760357bfbb2Smrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3761357bfbb2Smrg	    done
3762357bfbb2Smrg	  fi
3763357bfbb2Smrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3764357bfbb2Smrg	    | grep . >/dev/null; then
3765357bfbb2Smrg	    $echo
3766357bfbb2Smrg	    if test "X$deplibs_check_method" = "Xnone"; then
3767357bfbb2Smrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3768357bfbb2Smrg	    else
3769357bfbb2Smrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3770357bfbb2Smrg	    fi
3771357bfbb2Smrg	    $echo "*** All declared inter-library dependencies are being dropped."
3772357bfbb2Smrg	    droppeddeps=yes
3773357bfbb2Smrg	  fi
3774357bfbb2Smrg	  ;;
3775357bfbb2Smrg	esac
3776357bfbb2Smrg	versuffix=$versuffix_save
3777357bfbb2Smrg	major=$major_save
3778357bfbb2Smrg	release=$release_save
3779357bfbb2Smrg	libname=$libname_save
3780357bfbb2Smrg	name=$name_save
3781357bfbb2Smrg
3782357bfbb2Smrg	case $host in
3783357bfbb2Smrg	*-*-rhapsody* | *-*-darwin1.[012])
3784357bfbb2Smrg	  # On Rhapsody replace the C library is the System framework
3785357bfbb2Smrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3786357bfbb2Smrg	  ;;
3787357bfbb2Smrg	esac
3788357bfbb2Smrg
3789357bfbb2Smrg	if test "$droppeddeps" = yes; then
3790357bfbb2Smrg	  if test "$module" = yes; then
3791357bfbb2Smrg	    $echo
3792357bfbb2Smrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3793357bfbb2Smrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3794357bfbb2Smrg	    $echo "*** a static module, that should work as long as the dlopening"
3795357bfbb2Smrg	    $echo "*** application is linked with the -dlopen flag."
3796357bfbb2Smrg	    if test -z "$global_symbol_pipe"; then
3797357bfbb2Smrg	      $echo
3798357bfbb2Smrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
3799357bfbb2Smrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3800357bfbb2Smrg	      $echo "*** not find such a program.  So, this module is probably useless."
3801357bfbb2Smrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3802357bfbb2Smrg	    fi
3803357bfbb2Smrg	    if test "$build_old_libs" = no; then
3804357bfbb2Smrg	      oldlibs="$output_objdir/$libname.$libext"
3805357bfbb2Smrg	      build_libtool_libs=module
3806357bfbb2Smrg	      build_old_libs=yes
3807357bfbb2Smrg	    else
3808357bfbb2Smrg	      build_libtool_libs=no
3809357bfbb2Smrg	    fi
3810357bfbb2Smrg	  else
3811357bfbb2Smrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
3812357bfbb2Smrg	    $echo "*** automatically added whenever a program is linked with this library"
3813357bfbb2Smrg	    $echo "*** or is declared to -dlopen it."
3814357bfbb2Smrg
3815357bfbb2Smrg	    if test "$allow_undefined" = no; then
3816357bfbb2Smrg	      $echo
3817357bfbb2Smrg	      $echo "*** Since this library must not contain undefined symbols,"
3818357bfbb2Smrg	      $echo "*** because either the platform does not support them or"
3819357bfbb2Smrg	      $echo "*** it was explicitly requested with -no-undefined,"
3820357bfbb2Smrg	      $echo "*** libtool will only create a static version of it."
3821357bfbb2Smrg	      if test "$build_old_libs" = no; then
3822357bfbb2Smrg		oldlibs="$output_objdir/$libname.$libext"
3823357bfbb2Smrg		build_libtool_libs=module
3824357bfbb2Smrg		build_old_libs=yes
3825357bfbb2Smrg	      else
3826357bfbb2Smrg		build_libtool_libs=no
3827357bfbb2Smrg	      fi
3828357bfbb2Smrg	    fi
3829357bfbb2Smrg	  fi
3830357bfbb2Smrg	fi
3831357bfbb2Smrg	# Done checking deplibs!
3832357bfbb2Smrg	deplibs=$newdeplibs
3833357bfbb2Smrg      fi
3834357bfbb2Smrg
3835357bfbb2Smrg
3836357bfbb2Smrg      # move library search paths that coincide with paths to not yet
3837357bfbb2Smrg      # installed libraries to the beginning of the library search list
3838357bfbb2Smrg      new_libs=
3839357bfbb2Smrg      for path in $notinst_path; do
3840357bfbb2Smrg	case " $new_libs " in
3841357bfbb2Smrg	*" -L$path/$objdir "*) ;;
3842357bfbb2Smrg	*)
3843357bfbb2Smrg	  case " $deplibs " in
3844357bfbb2Smrg	  *" -L$path/$objdir "*)
3845357bfbb2Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
3846357bfbb2Smrg	  esac
3847357bfbb2Smrg	  ;;
3848357bfbb2Smrg	esac
3849357bfbb2Smrg      done
3850357bfbb2Smrg      for deplib in $deplibs; do
3851357bfbb2Smrg	case $deplib in
3852357bfbb2Smrg	-L*)
3853357bfbb2Smrg	  case " $new_libs " in
3854357bfbb2Smrg	  *" $deplib "*) ;;
3855357bfbb2Smrg	  *) new_libs="$new_libs $deplib" ;;
3856357bfbb2Smrg	  esac
3857357bfbb2Smrg	  ;;
3858357bfbb2Smrg	*) new_libs="$new_libs $deplib" ;;
3859357bfbb2Smrg	esac
3860357bfbb2Smrg      done
3861357bfbb2Smrg      deplibs="$new_libs"
3862357bfbb2Smrg
3863357bfbb2Smrg
3864357bfbb2Smrg      # All the library-specific variables (install_libdir is set above).
3865357bfbb2Smrg      library_names=
3866357bfbb2Smrg      old_library=
3867357bfbb2Smrg      dlname=
3868357bfbb2Smrg
3869357bfbb2Smrg      # Test again, we may have decided not to build it any more
3870357bfbb2Smrg      if test "$build_libtool_libs" = yes; then
3871357bfbb2Smrg	if test "$hardcode_into_libs" = yes; then
3872357bfbb2Smrg	  # Hardcode the library paths
3873357bfbb2Smrg	  hardcode_libdirs=
3874357bfbb2Smrg	  dep_rpath=
3875357bfbb2Smrg	  rpath="$finalize_rpath"
3876357bfbb2Smrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3877357bfbb2Smrg	  for libdir in $rpath; do
3878357bfbb2Smrg	    if test -n "$hardcode_libdir_flag_spec"; then
3879357bfbb2Smrg	      if test -n "$hardcode_libdir_separator"; then
3880357bfbb2Smrg		if test -z "$hardcode_libdirs"; then
3881357bfbb2Smrg		  hardcode_libdirs="$libdir"
3882357bfbb2Smrg		else
3883357bfbb2Smrg		  # Just accumulate the unique libdirs.
3884357bfbb2Smrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3885357bfbb2Smrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3886357bfbb2Smrg		    ;;
3887357bfbb2Smrg		  *)
3888357bfbb2Smrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3889357bfbb2Smrg		    ;;
3890357bfbb2Smrg		  esac
3891357bfbb2Smrg		fi
3892357bfbb2Smrg	      else
3893357bfbb2Smrg		eval flag=\"$hardcode_libdir_flag_spec\"
3894357bfbb2Smrg		dep_rpath="$dep_rpath $flag"
3895357bfbb2Smrg	      fi
3896357bfbb2Smrg	    elif test -n "$runpath_var"; then
3897357bfbb2Smrg	      case "$perm_rpath " in
3898357bfbb2Smrg	      *" $libdir "*) ;;
3899357bfbb2Smrg	      *) perm_rpath="$perm_rpath $libdir" ;;
3900357bfbb2Smrg	      esac
3901357bfbb2Smrg	    fi
3902357bfbb2Smrg	  done
3903357bfbb2Smrg	  # Substitute the hardcoded libdirs into the rpath.
3904357bfbb2Smrg	  if test -n "$hardcode_libdir_separator" &&
3905357bfbb2Smrg	     test -n "$hardcode_libdirs"; then
3906357bfbb2Smrg	    libdir="$hardcode_libdirs"
3907357bfbb2Smrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3908357bfbb2Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3909357bfbb2Smrg	    else
3910357bfbb2Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3911357bfbb2Smrg	    fi
3912357bfbb2Smrg	  fi
3913357bfbb2Smrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3914357bfbb2Smrg	    # We should set the runpath_var.
3915357bfbb2Smrg	    rpath=
3916357bfbb2Smrg	    for dir in $perm_rpath; do
3917357bfbb2Smrg	      rpath="$rpath$dir:"
3918357bfbb2Smrg	    done
3919357bfbb2Smrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3920357bfbb2Smrg	  fi
3921357bfbb2Smrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3922357bfbb2Smrg	fi
3923357bfbb2Smrg
3924357bfbb2Smrg	shlibpath="$finalize_shlibpath"
3925357bfbb2Smrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3926357bfbb2Smrg	if test -n "$shlibpath"; then
3927357bfbb2Smrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3928357bfbb2Smrg	fi
3929357bfbb2Smrg
3930357bfbb2Smrg	# Get the real and link names of the library.
3931357bfbb2Smrg	eval shared_ext=\"$shrext_cmds\"
3932357bfbb2Smrg	eval library_names=\"$library_names_spec\"
3933357bfbb2Smrg	set dummy $library_names
3934357bfbb2Smrg	realname="$2"
3935357bfbb2Smrg	shift; shift
3936357bfbb2Smrg
3937357bfbb2Smrg	if test -n "$soname_spec"; then
3938357bfbb2Smrg	  eval soname=\"$soname_spec\"
3939357bfbb2Smrg	else
3940357bfbb2Smrg	  soname="$realname"
3941357bfbb2Smrg	fi
3942357bfbb2Smrg	if test -z "$dlname"; then
3943357bfbb2Smrg	  dlname=$soname
3944357bfbb2Smrg	fi
3945357bfbb2Smrg
3946357bfbb2Smrg	lib="$output_objdir/$realname"
3947357bfbb2Smrg	linknames=
3948357bfbb2Smrg	for link
3949357bfbb2Smrg	do
3950357bfbb2Smrg	  linknames="$linknames $link"
3951357bfbb2Smrg	done
3952357bfbb2Smrg
3953357bfbb2Smrg	# Use standard objects if they are pic
3954357bfbb2Smrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3955357bfbb2Smrg
3956357bfbb2Smrg	# Prepare the list of exported symbols
3957357bfbb2Smrg	if test -z "$export_symbols"; then
3958357bfbb2Smrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3959357bfbb2Smrg	    $show "generating symbol list for \`$libname.la'"
3960357bfbb2Smrg	    export_symbols="$output_objdir/$libname.exp"
3961357bfbb2Smrg	    $run $rm $export_symbols
3962357bfbb2Smrg	    cmds=$export_symbols_cmds
3963357bfbb2Smrg	    save_ifs="$IFS"; IFS='~'
3964357bfbb2Smrg	    for cmd in $cmds; do
3965357bfbb2Smrg	      IFS="$save_ifs"
3966357bfbb2Smrg	      eval cmd=\"$cmd\"
3967357bfbb2Smrg	      if len=`expr "X$cmd" : ".*"` &&
3968357bfbb2Smrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3969357bfbb2Smrg	        $show "$cmd"
3970357bfbb2Smrg	        $run eval "$cmd" || exit $?
3971357bfbb2Smrg	        skipped_export=false
3972357bfbb2Smrg	      else
3973357bfbb2Smrg	        # The command line is too long to execute in one step.
3974357bfbb2Smrg	        $show "using reloadable object file for export list..."
3975357bfbb2Smrg	        skipped_export=:
3976357bfbb2Smrg		# Break out early, otherwise skipped_export may be
3977357bfbb2Smrg		# set to false by a later but shorter cmd.
3978357bfbb2Smrg		break
3979357bfbb2Smrg	      fi
3980357bfbb2Smrg	    done
3981357bfbb2Smrg	    IFS="$save_ifs"
3982357bfbb2Smrg	    if test -n "$export_symbols_regex"; then
3983357bfbb2Smrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3984357bfbb2Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3985357bfbb2Smrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3986357bfbb2Smrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3987357bfbb2Smrg	    fi
3988357bfbb2Smrg	  fi
3989357bfbb2Smrg	fi
3990357bfbb2Smrg
3991357bfbb2Smrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
3992357bfbb2Smrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3993357bfbb2Smrg	fi
3994357bfbb2Smrg
3995357bfbb2Smrg	tmp_deplibs=
3996357bfbb2Smrg	for test_deplib in $deplibs; do
3997357bfbb2Smrg		case " $convenience " in
3998357bfbb2Smrg		*" $test_deplib "*) ;;
3999357bfbb2Smrg		*)
4000357bfbb2Smrg			tmp_deplibs="$tmp_deplibs $test_deplib"
4001357bfbb2Smrg			;;
4002357bfbb2Smrg		esac
4003357bfbb2Smrg	done
4004357bfbb2Smrg	deplibs="$tmp_deplibs"
4005357bfbb2Smrg
4006357bfbb2Smrg	if test -n "$convenience"; then
4007357bfbb2Smrg	  if test -n "$whole_archive_flag_spec"; then
4008357bfbb2Smrg	    save_libobjs=$libobjs
4009357bfbb2Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4010357bfbb2Smrg	  else
4011357bfbb2Smrg	    gentop="$output_objdir/${outputname}x"
4012357bfbb2Smrg	    generated="$generated $gentop"
4013357bfbb2Smrg
4014357bfbb2Smrg	    func_extract_archives $gentop $convenience
4015357bfbb2Smrg	    libobjs="$libobjs $func_extract_archives_result"
4016357bfbb2Smrg	  fi
4017357bfbb2Smrg	fi
4018357bfbb2Smrg	
4019357bfbb2Smrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4020357bfbb2Smrg	  eval flag=\"$thread_safe_flag_spec\"
4021357bfbb2Smrg	  linker_flags="$linker_flags $flag"
4022357bfbb2Smrg	fi
4023357bfbb2Smrg
4024357bfbb2Smrg	# Make a backup of the uninstalled library when relinking
4025357bfbb2Smrg	if test "$mode" = relink; then
4026357bfbb2Smrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4027357bfbb2Smrg	fi
4028357bfbb2Smrg
4029357bfbb2Smrg	# Do each of the archive commands.
4030357bfbb2Smrg	if test "$module" = yes && test -n "$module_cmds" ; then
4031357bfbb2Smrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4032357bfbb2Smrg	    eval test_cmds=\"$module_expsym_cmds\"
4033357bfbb2Smrg	    cmds=$module_expsym_cmds
4034357bfbb2Smrg	  else
4035357bfbb2Smrg	    eval test_cmds=\"$module_cmds\"
4036357bfbb2Smrg	    cmds=$module_cmds
4037357bfbb2Smrg	  fi
4038357bfbb2Smrg	else
4039357bfbb2Smrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4040357bfbb2Smrg	  eval test_cmds=\"$archive_expsym_cmds\"
4041357bfbb2Smrg	  cmds=$archive_expsym_cmds
4042357bfbb2Smrg	else
4043357bfbb2Smrg	  eval test_cmds=\"$archive_cmds\"
4044357bfbb2Smrg	  cmds=$archive_cmds
4045357bfbb2Smrg	  fi
4046357bfbb2Smrg	fi
4047357bfbb2Smrg
4048357bfbb2Smrg	if test "X$skipped_export" != "X:" &&
4049357bfbb2Smrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4050357bfbb2Smrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4051357bfbb2Smrg	  :
4052357bfbb2Smrg	else
4053357bfbb2Smrg	  # The command line is too long to link in one step, link piecewise.
4054357bfbb2Smrg	  $echo "creating reloadable object files..."
4055357bfbb2Smrg
4056357bfbb2Smrg	  # Save the value of $output and $libobjs because we want to
4057357bfbb2Smrg	  # use them later.  If we have whole_archive_flag_spec, we
4058357bfbb2Smrg	  # want to use save_libobjs as it was before
4059357bfbb2Smrg	  # whole_archive_flag_spec was expanded, because we can't
4060357bfbb2Smrg	  # assume the linker understands whole_archive_flag_spec.
4061357bfbb2Smrg	  # This may have to be revisited, in case too many
4062357bfbb2Smrg	  # convenience libraries get linked in and end up exceeding
4063357bfbb2Smrg	  # the spec.
4064357bfbb2Smrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4065357bfbb2Smrg	    save_libobjs=$libobjs
4066357bfbb2Smrg	  fi
4067357bfbb2Smrg	  save_output=$output
4068357bfbb2Smrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4069357bfbb2Smrg
4070357bfbb2Smrg	  # Clear the reloadable object creation command queue and
4071357bfbb2Smrg	  # initialize k to one.
4072357bfbb2Smrg	  test_cmds=
4073357bfbb2Smrg	  concat_cmds=
4074357bfbb2Smrg	  objlist=
4075357bfbb2Smrg	  delfiles=
4076357bfbb2Smrg	  last_robj=
4077357bfbb2Smrg	  k=1
4078357bfbb2Smrg	  output=$output_objdir/$output_la-${k}.$objext
4079357bfbb2Smrg	  # Loop over the list of objects to be linked.
4080357bfbb2Smrg	  for obj in $save_libobjs
4081357bfbb2Smrg	  do
4082357bfbb2Smrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4083357bfbb2Smrg	    if test "X$objlist" = X ||
4084357bfbb2Smrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4085357bfbb2Smrg		 test "$len" -le "$max_cmd_len"; }; then
4086357bfbb2Smrg	      objlist="$objlist $obj"
4087357bfbb2Smrg	    else
4088357bfbb2Smrg	      # The command $test_cmds is almost too long, add a
4089357bfbb2Smrg	      # command to the queue.
4090357bfbb2Smrg	      if test "$k" -eq 1 ; then
4091357bfbb2Smrg		# The first file doesn't have a previous command to add.
4092357bfbb2Smrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4093357bfbb2Smrg	      else
4094357bfbb2Smrg		# All subsequent reloadable object files will link in
4095357bfbb2Smrg		# the last one created.
4096357bfbb2Smrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4097357bfbb2Smrg	      fi
4098357bfbb2Smrg	      last_robj=$output_objdir/$output_la-${k}.$objext
4099357bfbb2Smrg	      k=`expr $k + 1`
4100357bfbb2Smrg	      output=$output_objdir/$output_la-${k}.$objext
4101357bfbb2Smrg	      objlist=$obj
4102357bfbb2Smrg	      len=1
4103357bfbb2Smrg	    fi
4104357bfbb2Smrg	  done
4105357bfbb2Smrg	  # Handle the remaining objects by creating one last
4106357bfbb2Smrg	  # reloadable object file.  All subsequent reloadable object
4107357bfbb2Smrg	  # files will link in the last one created.
4108357bfbb2Smrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4109357bfbb2Smrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4110357bfbb2Smrg
4111357bfbb2Smrg	  if ${skipped_export-false}; then
4112357bfbb2Smrg	    $show "generating symbol list for \`$libname.la'"
4113357bfbb2Smrg	    export_symbols="$output_objdir/$libname.exp"
4114357bfbb2Smrg	    $run $rm $export_symbols
4115357bfbb2Smrg	    libobjs=$output
4116357bfbb2Smrg	    # Append the command to create the export file.
4117357bfbb2Smrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4118357bfbb2Smrg          fi
4119357bfbb2Smrg
4120357bfbb2Smrg	  # Set up a command to remove the reloadable object files
4121357bfbb2Smrg	  # after they are used.
4122357bfbb2Smrg	  i=0
4123357bfbb2Smrg	  while test "$i" -lt "$k"
4124357bfbb2Smrg	  do
4125357bfbb2Smrg	    i=`expr $i + 1`
4126357bfbb2Smrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4127357bfbb2Smrg	  done
4128357bfbb2Smrg
4129357bfbb2Smrg	  $echo "creating a temporary reloadable object file: $output"
4130357bfbb2Smrg
4131357bfbb2Smrg	  # Loop through the commands generated above and execute them.
4132357bfbb2Smrg	  save_ifs="$IFS"; IFS='~'
4133357bfbb2Smrg	  for cmd in $concat_cmds; do
4134357bfbb2Smrg	    IFS="$save_ifs"
4135357bfbb2Smrg	    $show "$cmd"
4136357bfbb2Smrg	    $run eval "$cmd" || exit $?
4137357bfbb2Smrg	  done
4138357bfbb2Smrg	  IFS="$save_ifs"
4139357bfbb2Smrg
4140357bfbb2Smrg	  libobjs=$output
4141357bfbb2Smrg	  # Restore the value of output.
4142357bfbb2Smrg	  output=$save_output
4143357bfbb2Smrg
4144357bfbb2Smrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4145357bfbb2Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4146357bfbb2Smrg	  fi
4147357bfbb2Smrg	  # Expand the library linking commands again to reset the
4148357bfbb2Smrg	  # value of $libobjs for piecewise linking.
4149357bfbb2Smrg
4150357bfbb2Smrg	  # Do each of the archive commands.
4151357bfbb2Smrg	  if test "$module" = yes && test -n "$module_cmds" ; then
4152357bfbb2Smrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4153357bfbb2Smrg	      cmds=$module_expsym_cmds
4154357bfbb2Smrg	    else
4155357bfbb2Smrg	      cmds=$module_cmds
4156357bfbb2Smrg	    fi
4157357bfbb2Smrg	  else
4158357bfbb2Smrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4159357bfbb2Smrg	    cmds=$archive_expsym_cmds
4160357bfbb2Smrg	  else
4161357bfbb2Smrg	    cmds=$archive_cmds
4162357bfbb2Smrg	    fi
4163357bfbb2Smrg	  fi
4164357bfbb2Smrg
4165357bfbb2Smrg	  # Append the command to remove the reloadable object files
4166357bfbb2Smrg	  # to the just-reset $cmds.
4167357bfbb2Smrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
4168357bfbb2Smrg	fi
4169357bfbb2Smrg	save_ifs="$IFS"; IFS='~'
4170357bfbb2Smrg	for cmd in $cmds; do
4171357bfbb2Smrg	  IFS="$save_ifs"
4172357bfbb2Smrg	  eval cmd=\"$cmd\"
4173357bfbb2Smrg	  $show "$cmd"
4174357bfbb2Smrg	  $run eval "$cmd" || {
4175357bfbb2Smrg	    lt_exit=$?
4176357bfbb2Smrg
4177357bfbb2Smrg	    # Restore the uninstalled library and exit
4178357bfbb2Smrg	    if test "$mode" = relink; then
4179357bfbb2Smrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4180357bfbb2Smrg	    fi
4181357bfbb2Smrg
4182357bfbb2Smrg	    exit $lt_exit
4183357bfbb2Smrg	  }
4184357bfbb2Smrg	done
4185357bfbb2Smrg	IFS="$save_ifs"
4186357bfbb2Smrg
4187357bfbb2Smrg	# Restore the uninstalled library and exit
4188357bfbb2Smrg	if test "$mode" = relink; then
4189357bfbb2Smrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4190357bfbb2Smrg
4191357bfbb2Smrg	  if test -n "$convenience"; then
4192357bfbb2Smrg	    if test -z "$whole_archive_flag_spec"; then
4193357bfbb2Smrg	      $show "${rm}r $gentop"
4194357bfbb2Smrg	      $run ${rm}r "$gentop"
4195357bfbb2Smrg	    fi
4196357bfbb2Smrg	  fi
4197357bfbb2Smrg
4198357bfbb2Smrg	  exit $EXIT_SUCCESS
4199357bfbb2Smrg	fi
4200357bfbb2Smrg
4201357bfbb2Smrg	# Create links to the real library.
4202357bfbb2Smrg	for linkname in $linknames; do
4203357bfbb2Smrg	  if test "$realname" != "$linkname"; then
4204357bfbb2Smrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4205357bfbb2Smrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4206357bfbb2Smrg	  fi
4207357bfbb2Smrg	done
4208357bfbb2Smrg
4209357bfbb2Smrg	# If -module or -export-dynamic was specified, set the dlname.
4210357bfbb2Smrg	if test "$module" = yes || test "$export_dynamic" = yes; then
4211357bfbb2Smrg	  # On all known operating systems, these are identical.
4212357bfbb2Smrg	  dlname="$soname"
4213357bfbb2Smrg	fi
4214357bfbb2Smrg      fi
4215357bfbb2Smrg      ;;
4216357bfbb2Smrg
4217357bfbb2Smrg    obj)
4218357bfbb2Smrg      if test -n "$deplibs"; then
4219357bfbb2Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4220357bfbb2Smrg      fi
4221357bfbb2Smrg
4222357bfbb2Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4223357bfbb2Smrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4224357bfbb2Smrg      fi
4225357bfbb2Smrg
4226357bfbb2Smrg      if test -n "$rpath"; then
4227357bfbb2Smrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4228357bfbb2Smrg      fi
4229357bfbb2Smrg
4230357bfbb2Smrg      if test -n "$xrpath"; then
4231357bfbb2Smrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4232357bfbb2Smrg      fi
4233357bfbb2Smrg
4234357bfbb2Smrg      if test -n "$vinfo"; then
4235357bfbb2Smrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4236357bfbb2Smrg      fi
4237357bfbb2Smrg
4238357bfbb2Smrg      if test -n "$release"; then
4239357bfbb2Smrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4240357bfbb2Smrg      fi
4241357bfbb2Smrg
4242357bfbb2Smrg      case $output in
4243357bfbb2Smrg      *.lo)
4244357bfbb2Smrg	if test -n "$objs$old_deplibs"; then
4245357bfbb2Smrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4246357bfbb2Smrg	  exit $EXIT_FAILURE
4247357bfbb2Smrg	fi
4248357bfbb2Smrg	libobj="$output"
4249357bfbb2Smrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4250357bfbb2Smrg	;;
4251357bfbb2Smrg      *)
4252357bfbb2Smrg	libobj=
4253357bfbb2Smrg	obj="$output"
4254357bfbb2Smrg	;;
4255357bfbb2Smrg      esac
4256357bfbb2Smrg
4257357bfbb2Smrg      # Delete the old objects.
4258357bfbb2Smrg      $run $rm $obj $libobj
4259357bfbb2Smrg
4260357bfbb2Smrg      # Objects from convenience libraries.  This assumes
4261357bfbb2Smrg      # single-version convenience libraries.  Whenever we create
4262357bfbb2Smrg      # different ones for PIC/non-PIC, this we'll have to duplicate
4263357bfbb2Smrg      # the extraction.
4264357bfbb2Smrg      reload_conv_objs=
4265357bfbb2Smrg      gentop=
4266357bfbb2Smrg      # reload_cmds runs $LD directly, so let us get rid of
4267357bfbb2Smrg      # -Wl from whole_archive_flag_spec
4268357bfbb2Smrg      wl=
4269357bfbb2Smrg
4270357bfbb2Smrg      if test -n "$convenience"; then
4271357bfbb2Smrg	if test -n "$whole_archive_flag_spec"; then
4272357bfbb2Smrg	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4273357bfbb2Smrg	else
4274357bfbb2Smrg	  gentop="$output_objdir/${obj}x"
4275357bfbb2Smrg	  generated="$generated $gentop"
4276357bfbb2Smrg
4277357bfbb2Smrg	  func_extract_archives $gentop $convenience
4278357bfbb2Smrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4279357bfbb2Smrg	fi
4280357bfbb2Smrg      fi
4281357bfbb2Smrg
4282357bfbb2Smrg      # Create the old-style object.
4283357bfbb2Smrg      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
4284357bfbb2Smrg
4285357bfbb2Smrg      output="$obj"
4286357bfbb2Smrg      cmds=$reload_cmds
4287357bfbb2Smrg      save_ifs="$IFS"; IFS='~'
4288357bfbb2Smrg      for cmd in $cmds; do
4289357bfbb2Smrg	IFS="$save_ifs"
4290357bfbb2Smrg	eval cmd=\"$cmd\"
4291357bfbb2Smrg	$show "$cmd"
4292357bfbb2Smrg	$run eval "$cmd" || exit $?
4293357bfbb2Smrg      done
4294357bfbb2Smrg      IFS="$save_ifs"
4295357bfbb2Smrg
4296357bfbb2Smrg      # Exit if we aren't doing a library object file.
4297357bfbb2Smrg      if test -z "$libobj"; then
4298357bfbb2Smrg	if test -n "$gentop"; then
4299357bfbb2Smrg	  $show "${rm}r $gentop"
4300357bfbb2Smrg	  $run ${rm}r $gentop
4301357bfbb2Smrg	fi
4302357bfbb2Smrg
4303357bfbb2Smrg	exit $EXIT_SUCCESS
4304357bfbb2Smrg      fi
4305357bfbb2Smrg
4306357bfbb2Smrg      if test "$build_libtool_libs" != yes; then
4307357bfbb2Smrg	if test -n "$gentop"; then
4308357bfbb2Smrg	  $show "${rm}r $gentop"
4309357bfbb2Smrg	  $run ${rm}r $gentop
4310357bfbb2Smrg	fi
4311357bfbb2Smrg
4312357bfbb2Smrg	# Create an invalid libtool object if no PIC, so that we don't
4313357bfbb2Smrg	# accidentally link it into a program.
4314357bfbb2Smrg	# $show "echo timestamp > $libobj"
4315357bfbb2Smrg	# $run eval "echo timestamp > $libobj" || exit $?
4316357bfbb2Smrg	exit $EXIT_SUCCESS
4317357bfbb2Smrg      fi
4318357bfbb2Smrg
4319357bfbb2Smrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
4320357bfbb2Smrg	# Only do commands if we really have different PIC objects.
4321357bfbb2Smrg	reload_objs="$libobjs $reload_conv_objs"
4322357bfbb2Smrg	output="$libobj"
4323357bfbb2Smrg	cmds=$reload_cmds
4324357bfbb2Smrg	save_ifs="$IFS"; IFS='~'
4325357bfbb2Smrg	for cmd in $cmds; do
4326357bfbb2Smrg	  IFS="$save_ifs"
4327357bfbb2Smrg	  eval cmd=\"$cmd\"
4328357bfbb2Smrg	  $show "$cmd"
4329357bfbb2Smrg	  $run eval "$cmd" || exit $?
4330357bfbb2Smrg	done
4331357bfbb2Smrg	IFS="$save_ifs"
4332357bfbb2Smrg      fi
4333357bfbb2Smrg
4334357bfbb2Smrg      if test -n "$gentop"; then
4335357bfbb2Smrg	$show "${rm}r $gentop"
4336357bfbb2Smrg	$run ${rm}r $gentop
4337357bfbb2Smrg      fi
4338357bfbb2Smrg
4339357bfbb2Smrg      exit $EXIT_SUCCESS
4340357bfbb2Smrg      ;;
4341357bfbb2Smrg
4342357bfbb2Smrg    prog)
4343357bfbb2Smrg      case $host in
4344357bfbb2Smrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4345357bfbb2Smrg      esac
4346357bfbb2Smrg      if test -n "$vinfo"; then
4347357bfbb2Smrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4348357bfbb2Smrg      fi
4349357bfbb2Smrg
4350357bfbb2Smrg      if test -n "$release"; then
4351357bfbb2Smrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4352357bfbb2Smrg      fi
4353357bfbb2Smrg
4354357bfbb2Smrg      if test "$preload" = yes; then
4355357bfbb2Smrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4356357bfbb2Smrg	   test "$dlopen_self_static" = unknown; then
4357357bfbb2Smrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4358357bfbb2Smrg	fi
4359357bfbb2Smrg      fi
4360357bfbb2Smrg
4361357bfbb2Smrg      case $host in
4362357bfbb2Smrg      *-*-rhapsody* | *-*-darwin1.[012])
4363357bfbb2Smrg	# On Rhapsody replace the C library is the System framework
4364357bfbb2Smrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4365357bfbb2Smrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4366357bfbb2Smrg	;;
4367357bfbb2Smrg      esac
4368357bfbb2Smrg
4369357bfbb2Smrg      case $host in
4370357bfbb2Smrg      *darwin*)
4371357bfbb2Smrg        # Don't allow lazy linking, it breaks C++ global constructors
4372357bfbb2Smrg        if test "$tagname" = CXX ; then
4373357bfbb2Smrg        compile_command="$compile_command ${wl}-bind_at_load"
4374357bfbb2Smrg        finalize_command="$finalize_command ${wl}-bind_at_load"
4375357bfbb2Smrg        fi
4376357bfbb2Smrg        ;;
4377357bfbb2Smrg      esac
4378357bfbb2Smrg
4379357bfbb2Smrg
4380357bfbb2Smrg      # move library search paths that coincide with paths to not yet
4381357bfbb2Smrg      # installed libraries to the beginning of the library search list
4382357bfbb2Smrg      new_libs=
4383357bfbb2Smrg      for path in $notinst_path; do
4384357bfbb2Smrg	case " $new_libs " in
4385357bfbb2Smrg	*" -L$path/$objdir "*) ;;
4386357bfbb2Smrg	*)
4387357bfbb2Smrg	  case " $compile_deplibs " in
4388357bfbb2Smrg	  *" -L$path/$objdir "*)
4389357bfbb2Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
4390357bfbb2Smrg	  esac
4391357bfbb2Smrg	  ;;
4392357bfbb2Smrg	esac
4393357bfbb2Smrg      done
4394357bfbb2Smrg      for deplib in $compile_deplibs; do
4395357bfbb2Smrg	case $deplib in
4396357bfbb2Smrg	-L*)
4397357bfbb2Smrg	  case " $new_libs " in
4398357bfbb2Smrg	  *" $deplib "*) ;;
4399357bfbb2Smrg	  *) new_libs="$new_libs $deplib" ;;
4400357bfbb2Smrg	  esac
4401357bfbb2Smrg	  ;;
4402357bfbb2Smrg	*) new_libs="$new_libs $deplib" ;;
4403357bfbb2Smrg	esac
4404357bfbb2Smrg      done
4405357bfbb2Smrg      compile_deplibs="$new_libs"
4406357bfbb2Smrg
4407357bfbb2Smrg
4408357bfbb2Smrg      compile_command="$compile_command $compile_deplibs"
4409357bfbb2Smrg      finalize_command="$finalize_command $finalize_deplibs"
4410357bfbb2Smrg
4411357bfbb2Smrg      if test -n "$rpath$xrpath"; then
4412357bfbb2Smrg	# If the user specified any rpath flags, then add them.
4413357bfbb2Smrg	for libdir in $rpath $xrpath; do
4414357bfbb2Smrg	  # This is the magic to use -rpath.
4415357bfbb2Smrg	  case "$finalize_rpath " in
4416357bfbb2Smrg	  *" $libdir "*) ;;
4417357bfbb2Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4418357bfbb2Smrg	  esac
4419357bfbb2Smrg	done
4420357bfbb2Smrg      fi
4421357bfbb2Smrg
4422357bfbb2Smrg      # Now hardcode the library paths
4423357bfbb2Smrg      rpath=
4424357bfbb2Smrg      hardcode_libdirs=
4425357bfbb2Smrg      for libdir in $compile_rpath $finalize_rpath; do
4426357bfbb2Smrg	if test -n "$hardcode_libdir_flag_spec"; then
4427357bfbb2Smrg	  if test -n "$hardcode_libdir_separator"; then
4428357bfbb2Smrg	    if test -z "$hardcode_libdirs"; then
4429357bfbb2Smrg	      hardcode_libdirs="$libdir"
4430357bfbb2Smrg	    else
4431357bfbb2Smrg	      # Just accumulate the unique libdirs.
4432357bfbb2Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4433357bfbb2Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4434357bfbb2Smrg		;;
4435357bfbb2Smrg	      *)
4436357bfbb2Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4437357bfbb2Smrg		;;
4438357bfbb2Smrg	      esac
4439357bfbb2Smrg	    fi
4440357bfbb2Smrg	  else
4441357bfbb2Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4442357bfbb2Smrg	    rpath="$rpath $flag"
4443357bfbb2Smrg	  fi
4444357bfbb2Smrg	elif test -n "$runpath_var"; then
4445357bfbb2Smrg	  case "$perm_rpath " in
4446357bfbb2Smrg	  *" $libdir "*) ;;
4447357bfbb2Smrg	  *) perm_rpath="$perm_rpath $libdir" ;;
4448357bfbb2Smrg	  esac
4449357bfbb2Smrg	fi
4450357bfbb2Smrg	case $host in
4451357bfbb2Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4452357bfbb2Smrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4453357bfbb2Smrg	  case :$dllsearchpath: in
4454357bfbb2Smrg	  *":$libdir:"*) ;;
4455357bfbb2Smrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
4456357bfbb2Smrg	  esac
4457357bfbb2Smrg	  case :$dllsearchpath: in
4458357bfbb2Smrg	  *":$testbindir:"*) ;;
4459357bfbb2Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4460357bfbb2Smrg	  esac
4461357bfbb2Smrg	  ;;
4462357bfbb2Smrg	esac
4463357bfbb2Smrg      done
4464357bfbb2Smrg      # Substitute the hardcoded libdirs into the rpath.
4465357bfbb2Smrg      if test -n "$hardcode_libdir_separator" &&
4466357bfbb2Smrg	 test -n "$hardcode_libdirs"; then
4467357bfbb2Smrg	libdir="$hardcode_libdirs"
4468357bfbb2Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4469357bfbb2Smrg      fi
4470357bfbb2Smrg      compile_rpath="$rpath"
4471357bfbb2Smrg
4472357bfbb2Smrg      rpath=
4473357bfbb2Smrg      hardcode_libdirs=
4474357bfbb2Smrg      for libdir in $finalize_rpath; do
4475357bfbb2Smrg	if test -n "$hardcode_libdir_flag_spec"; then
4476357bfbb2Smrg	  if test -n "$hardcode_libdir_separator"; then
4477357bfbb2Smrg	    if test -z "$hardcode_libdirs"; then
4478357bfbb2Smrg	      hardcode_libdirs="$libdir"
4479357bfbb2Smrg	    else
4480357bfbb2Smrg	      # Just accumulate the unique libdirs.
4481357bfbb2Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4482357bfbb2Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4483357bfbb2Smrg		;;
4484357bfbb2Smrg	      *)
4485357bfbb2Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4486357bfbb2Smrg		;;
4487357bfbb2Smrg	      esac
4488357bfbb2Smrg	    fi
4489357bfbb2Smrg	  else
4490357bfbb2Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4491357bfbb2Smrg	    rpath="$rpath $flag"
4492357bfbb2Smrg	  fi
4493357bfbb2Smrg	elif test -n "$runpath_var"; then
4494357bfbb2Smrg	  case "$finalize_perm_rpath " in
4495357bfbb2Smrg	  *" $libdir "*) ;;
4496357bfbb2Smrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4497357bfbb2Smrg	  esac
4498357bfbb2Smrg	fi
4499357bfbb2Smrg      done
4500357bfbb2Smrg      # Substitute the hardcoded libdirs into the rpath.
4501357bfbb2Smrg      if test -n "$hardcode_libdir_separator" &&
4502357bfbb2Smrg	 test -n "$hardcode_libdirs"; then
4503357bfbb2Smrg	libdir="$hardcode_libdirs"
4504357bfbb2Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4505357bfbb2Smrg      fi
4506357bfbb2Smrg      finalize_rpath="$rpath"
4507357bfbb2Smrg
4508357bfbb2Smrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4509357bfbb2Smrg	# Transform all the library objects into standard objects.
4510357bfbb2Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4511357bfbb2Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4512357bfbb2Smrg      fi
4513357bfbb2Smrg
4514357bfbb2Smrg      dlsyms=
4515357bfbb2Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4516357bfbb2Smrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4517357bfbb2Smrg	  dlsyms="${outputname}S.c"
4518357bfbb2Smrg	else
4519357bfbb2Smrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4520357bfbb2Smrg	fi
4521357bfbb2Smrg      fi
4522357bfbb2Smrg
4523357bfbb2Smrg      if test -n "$dlsyms"; then
4524357bfbb2Smrg	case $dlsyms in
4525357bfbb2Smrg	"") ;;
4526357bfbb2Smrg	*.c)
4527357bfbb2Smrg	  # Discover the nlist of each of the dlfiles.
4528357bfbb2Smrg	  nlist="$output_objdir/${outputname}.nm"
4529357bfbb2Smrg
4530357bfbb2Smrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
4531357bfbb2Smrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4532357bfbb2Smrg
4533357bfbb2Smrg	  # Parse the name list into a source file.
4534357bfbb2Smrg	  $show "creating $output_objdir/$dlsyms"
4535357bfbb2Smrg
4536357bfbb2Smrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4537357bfbb2Smrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4538357bfbb2Smrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4539357bfbb2Smrg
4540357bfbb2Smrg#ifdef __cplusplus
4541357bfbb2Smrgextern \"C\" {
4542357bfbb2Smrg#endif
4543357bfbb2Smrg
4544357bfbb2Smrg/* Prevent the only kind of declaration conflicts we can make. */
4545357bfbb2Smrg#define lt_preloaded_symbols some_other_symbol
4546357bfbb2Smrg
4547357bfbb2Smrg/* External symbol declarations for the compiler. */\
4548357bfbb2Smrg"
4549357bfbb2Smrg
4550357bfbb2Smrg	  if test "$dlself" = yes; then
4551357bfbb2Smrg	    $show "generating symbol list for \`$output'"
4552357bfbb2Smrg
4553357bfbb2Smrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4554357bfbb2Smrg
4555357bfbb2Smrg	    # Add our own program objects to the symbol list.
4556357bfbb2Smrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4557357bfbb2Smrg	    for arg in $progfiles; do
4558357bfbb2Smrg	      $show "extracting global C symbols from \`$arg'"
4559357bfbb2Smrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4560357bfbb2Smrg	    done
4561357bfbb2Smrg
4562357bfbb2Smrg	    if test -n "$exclude_expsyms"; then
4563357bfbb2Smrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4564357bfbb2Smrg	      $run eval '$mv "$nlist"T "$nlist"'
4565357bfbb2Smrg	    fi
4566357bfbb2Smrg
4567357bfbb2Smrg	    if test -n "$export_symbols_regex"; then
4568357bfbb2Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4569357bfbb2Smrg	      $run eval '$mv "$nlist"T "$nlist"'
4570357bfbb2Smrg	    fi
4571357bfbb2Smrg
4572357bfbb2Smrg	    # Prepare the list of exported symbols
4573357bfbb2Smrg	    if test -z "$export_symbols"; then
4574357bfbb2Smrg	      export_symbols="$output_objdir/$outputname.exp"
4575357bfbb2Smrg	      $run $rm $export_symbols
4576357bfbb2Smrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4577357bfbb2Smrg              case $host in
4578357bfbb2Smrg              *cygwin* | *mingw* )
4579357bfbb2Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4580357bfbb2Smrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4581357bfbb2Smrg                ;;
4582357bfbb2Smrg              esac
4583357bfbb2Smrg	    else
4584357bfbb2Smrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4585357bfbb2Smrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4586357bfbb2Smrg	      $run eval 'mv "$nlist"T "$nlist"'
4587357bfbb2Smrg              case $host in
4588357bfbb2Smrg              *cygwin* | *mingw* )
4589357bfbb2Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4590357bfbb2Smrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4591357bfbb2Smrg                ;;
4592357bfbb2Smrg              esac
4593357bfbb2Smrg	    fi
4594357bfbb2Smrg	  fi
4595357bfbb2Smrg
4596357bfbb2Smrg	  for arg in $dlprefiles; do
4597357bfbb2Smrg	    $show "extracting global C symbols from \`$arg'"
4598357bfbb2Smrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4599357bfbb2Smrg	    $run eval '$echo ": $name " >> "$nlist"'
4600357bfbb2Smrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4601357bfbb2Smrg	  done
4602357bfbb2Smrg
4603357bfbb2Smrg	  if test -z "$run"; then
4604357bfbb2Smrg	    # Make sure we have at least an empty file.
4605357bfbb2Smrg	    test -f "$nlist" || : > "$nlist"
4606357bfbb2Smrg
4607357bfbb2Smrg	    if test -n "$exclude_expsyms"; then
4608357bfbb2Smrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4609357bfbb2Smrg	      $mv "$nlist"T "$nlist"
4610357bfbb2Smrg	    fi
4611357bfbb2Smrg
4612357bfbb2Smrg	    # Try sorting and uniquifying the output.
4613357bfbb2Smrg	    if grep -v "^: " < "$nlist" |
4614357bfbb2Smrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
4615357bfbb2Smrg		  sort -k 3
4616357bfbb2Smrg		else
4617357bfbb2Smrg		  sort +2
4618357bfbb2Smrg		fi |
4619357bfbb2Smrg		uniq > "$nlist"S; then
4620357bfbb2Smrg	      :
4621357bfbb2Smrg	    else
4622357bfbb2Smrg	      grep -v "^: " < "$nlist" > "$nlist"S
4623357bfbb2Smrg	    fi
4624357bfbb2Smrg
4625357bfbb2Smrg	    if test -f "$nlist"S; then
4626357bfbb2Smrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4627357bfbb2Smrg	    else
4628357bfbb2Smrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4629357bfbb2Smrg	    fi
4630357bfbb2Smrg
4631357bfbb2Smrg	    $echo >> "$output_objdir/$dlsyms" "\
4632357bfbb2Smrg
4633357bfbb2Smrg#undef lt_preloaded_symbols
4634357bfbb2Smrg
4635357bfbb2Smrg#if defined (__STDC__) && __STDC__
4636357bfbb2Smrg# define lt_ptr void *
4637357bfbb2Smrg#else
4638357bfbb2Smrg# define lt_ptr char *
4639357bfbb2Smrg# define const
4640357bfbb2Smrg#endif
4641357bfbb2Smrg
4642357bfbb2Smrg/* The mapping between symbol names and symbols. */
4643357bfbb2Smrg"
4644357bfbb2Smrg
4645357bfbb2Smrg	    case $host in
4646357bfbb2Smrg	    *cygwin* | *mingw* )
4647357bfbb2Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4648357bfbb2Smrg/* DATA imports from DLLs on WIN32 can't be const, because
4649357bfbb2Smrg   runtime relocations are performed -- see ld's documentation
4650357bfbb2Smrg   on pseudo-relocs */
4651357bfbb2Smrgstruct {
4652357bfbb2Smrg"
4653357bfbb2Smrg	      ;;
4654357bfbb2Smrg	    * )
4655357bfbb2Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4656357bfbb2Smrgconst struct {
4657357bfbb2Smrg"
4658357bfbb2Smrg	      ;;
4659357bfbb2Smrg	    esac
4660357bfbb2Smrg
4661357bfbb2Smrg
4662357bfbb2Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4663357bfbb2Smrg  const char *name;
4664357bfbb2Smrg  lt_ptr address;
4665357bfbb2Smrg}
4666357bfbb2Smrglt_preloaded_symbols[] =
4667357bfbb2Smrg{\
4668357bfbb2Smrg"
4669357bfbb2Smrg
4670357bfbb2Smrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4671357bfbb2Smrg
4672357bfbb2Smrg	    $echo >> "$output_objdir/$dlsyms" "\
4673357bfbb2Smrg  {0, (lt_ptr) 0}
4674357bfbb2Smrg};
4675357bfbb2Smrg
4676357bfbb2Smrg/* This works around a problem in FreeBSD linker */
4677357bfbb2Smrg#ifdef FREEBSD_WORKAROUND
4678357bfbb2Smrgstatic const void *lt_preloaded_setup() {
4679357bfbb2Smrg  return lt_preloaded_symbols;
4680357bfbb2Smrg}
4681357bfbb2Smrg#endif
4682357bfbb2Smrg
4683357bfbb2Smrg#ifdef __cplusplus
4684357bfbb2Smrg}
4685357bfbb2Smrg#endif\
4686357bfbb2Smrg"
4687357bfbb2Smrg	  fi
4688357bfbb2Smrg
4689357bfbb2Smrg	  pic_flag_for_symtable=
4690357bfbb2Smrg	  case $host in
4691357bfbb2Smrg	  # compiling the symbol table file with pic_flag works around
4692357bfbb2Smrg	  # a FreeBSD bug that causes programs to crash when -lm is
4693357bfbb2Smrg	  # linked before any other PIC object.  But we must not use
4694357bfbb2Smrg	  # pic_flag when linking with -static.  The problem exists in
4695357bfbb2Smrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4696357bfbb2Smrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4697357bfbb2Smrg	    case "$compile_command " in
4698357bfbb2Smrg	    *" -static "*) ;;
4699357bfbb2Smrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4700357bfbb2Smrg	    esac;;
4701357bfbb2Smrg	  *-*-hpux*)
4702357bfbb2Smrg	    case "$compile_command " in
4703357bfbb2Smrg	    *" -static "*) ;;
4704357bfbb2Smrg	    *) pic_flag_for_symtable=" $pic_flag";;
4705357bfbb2Smrg	    esac
4706357bfbb2Smrg	  esac
4707357bfbb2Smrg
4708357bfbb2Smrg	  # Now compile the dynamic symbol file.
4709357bfbb2Smrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4710357bfbb2Smrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4711357bfbb2Smrg
4712357bfbb2Smrg	  # Clean up the generated files.
4713357bfbb2Smrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4714357bfbb2Smrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4715357bfbb2Smrg
4716357bfbb2Smrg	  # Transform the symbol file into the correct name.
4717357bfbb2Smrg          case $host in
4718357bfbb2Smrg          *cygwin* | *mingw* )
4719357bfbb2Smrg            if test -f "$output_objdir/${outputname}.def" ; then
4720357bfbb2Smrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4721357bfbb2Smrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4722357bfbb2Smrg            else
4723357bfbb2Smrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4724357bfbb2Smrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4725357bfbb2Smrg             fi
4726357bfbb2Smrg            ;;
4727357bfbb2Smrg          * )
4728357bfbb2Smrg            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4729357bfbb2Smrg            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4730357bfbb2Smrg            ;;
4731357bfbb2Smrg          esac
4732357bfbb2Smrg	  ;;
4733357bfbb2Smrg	*)
4734357bfbb2Smrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4735357bfbb2Smrg	  exit $EXIT_FAILURE
4736357bfbb2Smrg	  ;;
4737357bfbb2Smrg	esac
4738357bfbb2Smrg      else
4739357bfbb2Smrg	# We keep going just in case the user didn't refer to
4740357bfbb2Smrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4741357bfbb2Smrg	# really was required.
4742357bfbb2Smrg
4743357bfbb2Smrg	# Nullify the symbol file.
4744357bfbb2Smrg	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4745357bfbb2Smrg	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4746357bfbb2Smrg      fi
4747357bfbb2Smrg
4748357bfbb2Smrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4749357bfbb2Smrg	# Replace the output file specification.
4750357bfbb2Smrg	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4751357bfbb2Smrg	link_command="$compile_command$compile_rpath"
4752357bfbb2Smrg
4753357bfbb2Smrg	# We have no uninstalled library dependencies, so finalize right now.
4754357bfbb2Smrg	$show "$link_command"
4755357bfbb2Smrg	$run eval "$link_command"
4756357bfbb2Smrg	exit_status=$?
4757357bfbb2Smrg
4758357bfbb2Smrg	# Delete the generated files.
4759357bfbb2Smrg	if test -n "$dlsyms"; then
4760357bfbb2Smrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
4761357bfbb2Smrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
4762357bfbb2Smrg	fi
4763357bfbb2Smrg
4764357bfbb2Smrg	exit $exit_status
4765357bfbb2Smrg      fi
4766357bfbb2Smrg
4767357bfbb2Smrg      if test -n "$shlibpath_var"; then
4768357bfbb2Smrg	# We should set the shlibpath_var
4769357bfbb2Smrg	rpath=
4770357bfbb2Smrg	for dir in $temp_rpath; do
4771357bfbb2Smrg	  case $dir in
4772357bfbb2Smrg	  [\\/]* | [A-Za-z]:[\\/]*)
4773357bfbb2Smrg	    # Absolute path.
4774357bfbb2Smrg	    rpath="$rpath$dir:"
4775357bfbb2Smrg	    ;;
4776357bfbb2Smrg	  *)
4777357bfbb2Smrg	    # Relative path: add a thisdir entry.
4778357bfbb2Smrg	    rpath="$rpath\$thisdir/$dir:"
4779357bfbb2Smrg	    ;;
4780357bfbb2Smrg	  esac
4781357bfbb2Smrg	done
4782357bfbb2Smrg	temp_rpath="$rpath"
4783357bfbb2Smrg      fi
4784357bfbb2Smrg
4785357bfbb2Smrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4786357bfbb2Smrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4787357bfbb2Smrg      fi
4788357bfbb2Smrg      if test -n "$finalize_shlibpath"; then
4789357bfbb2Smrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4790357bfbb2Smrg      fi
4791357bfbb2Smrg
4792357bfbb2Smrg      compile_var=
4793357bfbb2Smrg      finalize_var=
4794357bfbb2Smrg      if test -n "$runpath_var"; then
4795357bfbb2Smrg	if test -n "$perm_rpath"; then
4796357bfbb2Smrg	  # We should set the runpath_var.
4797357bfbb2Smrg	  rpath=
4798357bfbb2Smrg	  for dir in $perm_rpath; do
4799357bfbb2Smrg	    rpath="$rpath$dir:"
4800357bfbb2Smrg	  done
4801357bfbb2Smrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4802357bfbb2Smrg	fi
4803357bfbb2Smrg	if test -n "$finalize_perm_rpath"; then
4804357bfbb2Smrg	  # We should set the runpath_var.
4805357bfbb2Smrg	  rpath=
4806357bfbb2Smrg	  for dir in $finalize_perm_rpath; do
4807357bfbb2Smrg	    rpath="$rpath$dir:"
4808357bfbb2Smrg	  done
4809357bfbb2Smrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4810357bfbb2Smrg	fi
4811357bfbb2Smrg      fi
4812357bfbb2Smrg
4813357bfbb2Smrg      if test "$no_install" = yes; then
4814357bfbb2Smrg	# We don't need to create a wrapper script.
4815357bfbb2Smrg	link_command="$compile_var$compile_command$compile_rpath"
4816357bfbb2Smrg	# Replace the output file specification.
4817357bfbb2Smrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4818357bfbb2Smrg	# Delete the old output file.
4819357bfbb2Smrg	$run $rm $output
4820357bfbb2Smrg	# Link the executable and exit
4821357bfbb2Smrg	$show "$link_command"
4822357bfbb2Smrg	$run eval "$link_command" || exit $?
4823357bfbb2Smrg	exit $EXIT_SUCCESS
4824357bfbb2Smrg      fi
4825357bfbb2Smrg
4826357bfbb2Smrg      if test "$hardcode_action" = relink; then
4827357bfbb2Smrg	# Fast installation is not supported
4828357bfbb2Smrg	link_command="$compile_var$compile_command$compile_rpath"
4829357bfbb2Smrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
4830357bfbb2Smrg
4831357bfbb2Smrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4832357bfbb2Smrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4833357bfbb2Smrg      else
4834357bfbb2Smrg	if test "$fast_install" != no; then
4835357bfbb2Smrg	  link_command="$finalize_var$compile_command$finalize_rpath"
4836357bfbb2Smrg	  if test "$fast_install" = yes; then
4837357bfbb2Smrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4838357bfbb2Smrg	  else
4839357bfbb2Smrg	    # fast_install is set to needless
4840357bfbb2Smrg	    relink_command=
4841357bfbb2Smrg	  fi
4842357bfbb2Smrg	else
4843357bfbb2Smrg	  link_command="$compile_var$compile_command$compile_rpath"
4844357bfbb2Smrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4845357bfbb2Smrg	fi
4846357bfbb2Smrg      fi
4847357bfbb2Smrg
4848357bfbb2Smrg      # Replace the output file specification.
4849357bfbb2Smrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4850357bfbb2Smrg
4851357bfbb2Smrg      # Delete the old output files.
4852357bfbb2Smrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4853357bfbb2Smrg
4854357bfbb2Smrg      $show "$link_command"
4855357bfbb2Smrg      $run eval "$link_command" || exit $?
4856357bfbb2Smrg
4857357bfbb2Smrg      # Now create the wrapper script.
4858357bfbb2Smrg      $show "creating $output"
4859357bfbb2Smrg
4860357bfbb2Smrg      # Quote the relink command for shipping.
4861357bfbb2Smrg      if test -n "$relink_command"; then
4862357bfbb2Smrg	# Preserve any variables that may affect compiler behavior
4863357bfbb2Smrg	for var in $variables_saved_for_relink; do
4864357bfbb2Smrg	  if eval test -z \"\${$var+set}\"; then
4865357bfbb2Smrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4866357bfbb2Smrg	  elif eval var_value=\$$var; test -z "$var_value"; then
4867357bfbb2Smrg	    relink_command="$var=; export $var; $relink_command"
4868357bfbb2Smrg	  else
4869357bfbb2Smrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4870357bfbb2Smrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4871357bfbb2Smrg	  fi
4872357bfbb2Smrg	done
4873357bfbb2Smrg	relink_command="(cd `pwd`; $relink_command)"
4874357bfbb2Smrg	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4875357bfbb2Smrg      fi
4876357bfbb2Smrg
4877357bfbb2Smrg      # Quote $echo for shipping.
4878357bfbb2Smrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4879357bfbb2Smrg	case $progpath in
4880357bfbb2Smrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4881357bfbb2Smrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4882357bfbb2Smrg	esac
4883357bfbb2Smrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4884357bfbb2Smrg      else
4885357bfbb2Smrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4886357bfbb2Smrg      fi
4887357bfbb2Smrg
4888357bfbb2Smrg      # Only actually do things if our run command is non-null.
4889357bfbb2Smrg      if test -z "$run"; then
4890357bfbb2Smrg	# win32 will think the script is a binary if it has
4891357bfbb2Smrg	# a .exe suffix, so we strip it off here.
4892357bfbb2Smrg	case $output in
4893357bfbb2Smrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4894357bfbb2Smrg	esac
4895357bfbb2Smrg	# test for cygwin because mv fails w/o .exe extensions
4896357bfbb2Smrg	case $host in
4897357bfbb2Smrg	  *cygwin*)
4898357bfbb2Smrg	    exeext=.exe
4899357bfbb2Smrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4900357bfbb2Smrg	  *) exeext= ;;
4901357bfbb2Smrg	esac
4902357bfbb2Smrg	case $host in
4903357bfbb2Smrg	  *cygwin* | *mingw* )
4904357bfbb2Smrg            output_name=`basename $output`
4905357bfbb2Smrg            output_path=`dirname $output`
4906357bfbb2Smrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4907357bfbb2Smrg            cwrapper="$output_path/$output_name.exe"
4908357bfbb2Smrg            $rm $cwrappersource $cwrapper
4909357bfbb2Smrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4910357bfbb2Smrg
4911357bfbb2Smrg	    cat > $cwrappersource <<EOF
4912357bfbb2Smrg
4913357bfbb2Smrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4914357bfbb2Smrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4915357bfbb2Smrg
4916357bfbb2Smrg   The $output program cannot be directly executed until all the libtool
4917357bfbb2Smrg   libraries that it depends on are installed.
4918357bfbb2Smrg
4919357bfbb2Smrg   This wrapper executable should never be moved out of the build directory.
4920357bfbb2Smrg   If it is, it will not operate correctly.
4921357bfbb2Smrg
4922357bfbb2Smrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4923357bfbb2Smrg   but could eventually absorb all of the scripts functionality and
4924357bfbb2Smrg   exec $objdir/$outputname directly.
4925357bfbb2Smrg*/
4926357bfbb2SmrgEOF
4927357bfbb2Smrg	    cat >> $cwrappersource<<"EOF"
4928357bfbb2Smrg#include <stdio.h>
4929357bfbb2Smrg#include <stdlib.h>
4930357bfbb2Smrg#include <unistd.h>
4931357bfbb2Smrg#include <malloc.h>
4932357bfbb2Smrg#include <stdarg.h>
4933357bfbb2Smrg#include <assert.h>
4934357bfbb2Smrg#include <string.h>
4935357bfbb2Smrg#include <ctype.h>
4936357bfbb2Smrg#include <sys/stat.h>
4937357bfbb2Smrg
4938357bfbb2Smrg#if defined(PATH_MAX)
4939357bfbb2Smrg# define LT_PATHMAX PATH_MAX
4940357bfbb2Smrg#elif defined(MAXPATHLEN)
4941357bfbb2Smrg# define LT_PATHMAX MAXPATHLEN
4942357bfbb2Smrg#else
4943357bfbb2Smrg# define LT_PATHMAX 1024
4944357bfbb2Smrg#endif
4945357bfbb2Smrg
4946357bfbb2Smrg#ifndef DIR_SEPARATOR
4947357bfbb2Smrg# define DIR_SEPARATOR '/'
4948357bfbb2Smrg# define PATH_SEPARATOR ':'
4949357bfbb2Smrg#endif
4950357bfbb2Smrg
4951357bfbb2Smrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4952357bfbb2Smrg  defined (__OS2__)
4953357bfbb2Smrg# define HAVE_DOS_BASED_FILE_SYSTEM
4954357bfbb2Smrg# ifndef DIR_SEPARATOR_2
4955357bfbb2Smrg#  define DIR_SEPARATOR_2 '\\'
4956357bfbb2Smrg# endif
4957357bfbb2Smrg# ifndef PATH_SEPARATOR_2
4958357bfbb2Smrg#  define PATH_SEPARATOR_2 ';'
4959357bfbb2Smrg# endif
4960357bfbb2Smrg#endif
4961357bfbb2Smrg
4962357bfbb2Smrg#ifndef DIR_SEPARATOR_2
4963357bfbb2Smrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4964357bfbb2Smrg#else /* DIR_SEPARATOR_2 */
4965357bfbb2Smrg# define IS_DIR_SEPARATOR(ch) \
4966357bfbb2Smrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4967357bfbb2Smrg#endif /* DIR_SEPARATOR_2 */
4968357bfbb2Smrg
4969357bfbb2Smrg#ifndef PATH_SEPARATOR_2
4970357bfbb2Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4971357bfbb2Smrg#else /* PATH_SEPARATOR_2 */
4972357bfbb2Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4973357bfbb2Smrg#endif /* PATH_SEPARATOR_2 */
4974357bfbb2Smrg
4975357bfbb2Smrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4976357bfbb2Smrg#define XFREE(stale) do { \
4977357bfbb2Smrg  if (stale) { free ((void *) stale); stale = 0; } \
4978357bfbb2Smrg} while (0)
4979357bfbb2Smrg
4980357bfbb2Smrg/* -DDEBUG is fairly common in CFLAGS.  */
4981357bfbb2Smrg#undef DEBUG
4982357bfbb2Smrg#if defined DEBUGWRAPPER
4983357bfbb2Smrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4984357bfbb2Smrg#else
4985357bfbb2Smrg# define DEBUG(format, ...)
4986357bfbb2Smrg#endif
4987357bfbb2Smrg
4988357bfbb2Smrgconst char *program_name = NULL;
4989357bfbb2Smrg
4990357bfbb2Smrgvoid * xmalloc (size_t num);
4991357bfbb2Smrgchar * xstrdup (const char *string);
4992357bfbb2Smrgconst char * base_name (const char *name);
4993357bfbb2Smrgchar * find_executable(const char *wrapper);
4994357bfbb2Smrgint    check_executable(const char *path);
4995357bfbb2Smrgchar * strendzap(char *str, const char *pat);
4996357bfbb2Smrgvoid lt_fatal (const char *message, ...);
4997357bfbb2Smrg
4998357bfbb2Smrgint
4999357bfbb2Smrgmain (int argc, char *argv[])
5000357bfbb2Smrg{
5001357bfbb2Smrg  char **newargz;
5002357bfbb2Smrg  int i;
5003357bfbb2Smrg
5004357bfbb2Smrg  program_name = (char *) xstrdup (base_name (argv[0]));
5005357bfbb2Smrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5006357bfbb2Smrg  DEBUG("(main) program_name : %s\n",program_name);
5007357bfbb2Smrg  newargz = XMALLOC(char *, argc+2);
5008357bfbb2SmrgEOF
5009357bfbb2Smrg
5010357bfbb2Smrg            cat >> $cwrappersource <<EOF
5011357bfbb2Smrg  newargz[0] = (char *) xstrdup("$SHELL");
5012357bfbb2SmrgEOF
5013357bfbb2Smrg
5014357bfbb2Smrg            cat >> $cwrappersource <<"EOF"
5015357bfbb2Smrg  newargz[1] = find_executable(argv[0]);
5016357bfbb2Smrg  if (newargz[1] == NULL)
5017357bfbb2Smrg    lt_fatal("Couldn't find %s", argv[0]);
5018357bfbb2Smrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
5019357bfbb2Smrg  /* we know the script has the same name, without the .exe */
5020357bfbb2Smrg  /* so make sure newargz[1] doesn't end in .exe */
5021357bfbb2Smrg  strendzap(newargz[1],".exe");
5022357bfbb2Smrg  for (i = 1; i < argc; i++)
5023357bfbb2Smrg    newargz[i+1] = xstrdup(argv[i]);
5024357bfbb2Smrg  newargz[argc+1] = NULL;
5025357bfbb2Smrg
5026357bfbb2Smrg  for (i=0; i<argc+1; i++)
5027357bfbb2Smrg  {
5028357bfbb2Smrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5029357bfbb2Smrg    ;
5030357bfbb2Smrg  }
5031357bfbb2Smrg
5032357bfbb2SmrgEOF
5033357bfbb2Smrg
5034357bfbb2Smrg            case $host_os in
5035357bfbb2Smrg              mingw*)
5036357bfbb2Smrg                cat >> $cwrappersource <<EOF
5037357bfbb2Smrg  execv("$SHELL",(char const **)newargz);
5038357bfbb2SmrgEOF
5039357bfbb2Smrg              ;;
5040357bfbb2Smrg              *)
5041357bfbb2Smrg                cat >> $cwrappersource <<EOF
5042357bfbb2Smrg  execv("$SHELL",newargz);
5043357bfbb2SmrgEOF
5044357bfbb2Smrg              ;;
5045357bfbb2Smrg            esac
5046357bfbb2Smrg
5047357bfbb2Smrg            cat >> $cwrappersource <<"EOF"
5048357bfbb2Smrg  return 127;
5049357bfbb2Smrg}
5050357bfbb2Smrg
5051357bfbb2Smrgvoid *
5052357bfbb2Smrgxmalloc (size_t num)
5053357bfbb2Smrg{
5054357bfbb2Smrg  void * p = (void *) malloc (num);
5055357bfbb2Smrg  if (!p)
5056357bfbb2Smrg    lt_fatal ("Memory exhausted");
5057357bfbb2Smrg
5058357bfbb2Smrg  return p;
5059357bfbb2Smrg}
5060357bfbb2Smrg
5061357bfbb2Smrgchar *
5062357bfbb2Smrgxstrdup (const char *string)
5063357bfbb2Smrg{
5064357bfbb2Smrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5065357bfbb2Smrg;
5066357bfbb2Smrg}
5067357bfbb2Smrg
5068357bfbb2Smrgconst char *
5069357bfbb2Smrgbase_name (const char *name)
5070357bfbb2Smrg{
5071357bfbb2Smrg  const char *base;
5072357bfbb2Smrg
5073357bfbb2Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5074357bfbb2Smrg  /* Skip over the disk name in MSDOS pathnames. */
5075357bfbb2Smrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5076357bfbb2Smrg    name += 2;
5077357bfbb2Smrg#endif
5078357bfbb2Smrg
5079357bfbb2Smrg  for (base = name; *name; name++)
5080357bfbb2Smrg    if (IS_DIR_SEPARATOR (*name))
5081357bfbb2Smrg      base = name + 1;
5082357bfbb2Smrg  return base;
5083357bfbb2Smrg}
5084357bfbb2Smrg
5085357bfbb2Smrgint
5086357bfbb2Smrgcheck_executable(const char * path)
5087357bfbb2Smrg{
5088357bfbb2Smrg  struct stat st;
5089357bfbb2Smrg
5090357bfbb2Smrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5091357bfbb2Smrg  if ((!path) || (!*path))
5092357bfbb2Smrg    return 0;
5093357bfbb2Smrg
5094357bfbb2Smrg  if ((stat (path, &st) >= 0) &&
5095357bfbb2Smrg      (
5096357bfbb2Smrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5097357bfbb2Smrg#if defined (S_IXOTH)
5098357bfbb2Smrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5099357bfbb2Smrg#endif
5100357bfbb2Smrg#if defined (S_IXGRP)
5101357bfbb2Smrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5102357bfbb2Smrg#endif
5103357bfbb2Smrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
5104357bfbb2Smrg      )
5105357bfbb2Smrg    return 1;
5106357bfbb2Smrg  else
5107357bfbb2Smrg    return 0;
5108357bfbb2Smrg}
5109357bfbb2Smrg
5110357bfbb2Smrg/* Searches for the full path of the wrapper.  Returns
5111357bfbb2Smrg   newly allocated full path name if found, NULL otherwise */
5112357bfbb2Smrgchar *
5113357bfbb2Smrgfind_executable (const char* wrapper)
5114357bfbb2Smrg{
5115357bfbb2Smrg  int has_slash = 0;
5116357bfbb2Smrg  const char* p;
5117357bfbb2Smrg  const char* p_next;
5118357bfbb2Smrg  /* static buffer for getcwd */
5119357bfbb2Smrg  char tmp[LT_PATHMAX + 1];
5120357bfbb2Smrg  int tmp_len;
5121357bfbb2Smrg  char* concat_name;
5122357bfbb2Smrg
5123357bfbb2Smrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5124357bfbb2Smrg
5125357bfbb2Smrg  if ((wrapper == NULL) || (*wrapper == '\0'))
5126357bfbb2Smrg    return NULL;
5127357bfbb2Smrg
5128357bfbb2Smrg  /* Absolute path? */
5129357bfbb2Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5130357bfbb2Smrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5131357bfbb2Smrg  {
5132357bfbb2Smrg    concat_name = xstrdup (wrapper);
5133357bfbb2Smrg    if (check_executable(concat_name))
5134357bfbb2Smrg      return concat_name;
5135357bfbb2Smrg    XFREE(concat_name);
5136357bfbb2Smrg  }
5137357bfbb2Smrg  else
5138357bfbb2Smrg  {
5139357bfbb2Smrg#endif
5140357bfbb2Smrg    if (IS_DIR_SEPARATOR (wrapper[0]))
5141357bfbb2Smrg    {
5142357bfbb2Smrg      concat_name = xstrdup (wrapper);
5143357bfbb2Smrg      if (check_executable(concat_name))
5144357bfbb2Smrg        return concat_name;
5145357bfbb2Smrg      XFREE(concat_name);
5146357bfbb2Smrg    }
5147357bfbb2Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5148357bfbb2Smrg  }
5149357bfbb2Smrg#endif
5150357bfbb2Smrg
5151357bfbb2Smrg  for (p = wrapper; *p; p++)
5152357bfbb2Smrg    if (*p == '/')
5153357bfbb2Smrg    {
5154357bfbb2Smrg      has_slash = 1;
5155357bfbb2Smrg      break;
5156357bfbb2Smrg    }
5157357bfbb2Smrg  if (!has_slash)
5158357bfbb2Smrg  {
5159357bfbb2Smrg    /* no slashes; search PATH */
5160357bfbb2Smrg    const char* path = getenv ("PATH");
5161357bfbb2Smrg    if (path != NULL)
5162357bfbb2Smrg    {
5163357bfbb2Smrg      for (p = path; *p; p = p_next)
5164357bfbb2Smrg      {
5165357bfbb2Smrg        const char* q;
5166357bfbb2Smrg        size_t p_len;
5167357bfbb2Smrg        for (q = p; *q; q++)
5168357bfbb2Smrg          if (IS_PATH_SEPARATOR(*q))
5169357bfbb2Smrg            break;
5170357bfbb2Smrg        p_len = q - p;
5171357bfbb2Smrg        p_next = (*q == '\0' ? q : q + 1);
5172357bfbb2Smrg        if (p_len == 0)
5173357bfbb2Smrg        {
5174357bfbb2Smrg          /* empty path: current directory */
5175357bfbb2Smrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
5176357bfbb2Smrg            lt_fatal ("getcwd failed");
5177357bfbb2Smrg          tmp_len = strlen(tmp);
5178357bfbb2Smrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5179357bfbb2Smrg          memcpy (concat_name, tmp, tmp_len);
5180357bfbb2Smrg          concat_name[tmp_len] = '/';
5181357bfbb2Smrg          strcpy (concat_name + tmp_len + 1, wrapper);
5182357bfbb2Smrg        }
5183357bfbb2Smrg        else
5184357bfbb2Smrg        {
5185357bfbb2Smrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5186357bfbb2Smrg          memcpy (concat_name, p, p_len);
5187357bfbb2Smrg          concat_name[p_len] = '/';
5188357bfbb2Smrg          strcpy (concat_name + p_len + 1, wrapper);
5189357bfbb2Smrg        }
5190357bfbb2Smrg        if (check_executable(concat_name))
5191357bfbb2Smrg          return concat_name;
5192357bfbb2Smrg        XFREE(concat_name);
5193357bfbb2Smrg      }
5194357bfbb2Smrg    }
5195357bfbb2Smrg    /* not found in PATH; assume curdir */
5196357bfbb2Smrg  }
5197357bfbb2Smrg  /* Relative path | not found in path: prepend cwd */
5198357bfbb2Smrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
5199357bfbb2Smrg    lt_fatal ("getcwd failed");
5200357bfbb2Smrg  tmp_len = strlen(tmp);
5201357bfbb2Smrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5202357bfbb2Smrg  memcpy (concat_name, tmp, tmp_len);
5203357bfbb2Smrg  concat_name[tmp_len] = '/';
5204357bfbb2Smrg  strcpy (concat_name + tmp_len + 1, wrapper);
5205357bfbb2Smrg
5206357bfbb2Smrg  if (check_executable(concat_name))
5207357bfbb2Smrg    return concat_name;
5208357bfbb2Smrg  XFREE(concat_name);
5209357bfbb2Smrg  return NULL;
5210357bfbb2Smrg}
5211357bfbb2Smrg
5212357bfbb2Smrgchar *
5213357bfbb2Smrgstrendzap(char *str, const char *pat)
5214357bfbb2Smrg{
5215357bfbb2Smrg  size_t len, patlen;
5216357bfbb2Smrg
5217357bfbb2Smrg  assert(str != NULL);
5218357bfbb2Smrg  assert(pat != NULL);
5219357bfbb2Smrg
5220357bfbb2Smrg  len = strlen(str);
5221357bfbb2Smrg  patlen = strlen(pat);
5222357bfbb2Smrg
5223357bfbb2Smrg  if (patlen <= len)
5224357bfbb2Smrg  {
5225357bfbb2Smrg    str += len - patlen;
5226357bfbb2Smrg    if (strcmp(str, pat) == 0)
5227357bfbb2Smrg      *str = '\0';
5228357bfbb2Smrg  }
5229357bfbb2Smrg  return str;
5230357bfbb2Smrg}
5231357bfbb2Smrg
5232357bfbb2Smrgstatic void
5233357bfbb2Smrglt_error_core (int exit_status, const char * mode,
5234357bfbb2Smrg          const char * message, va_list ap)
5235357bfbb2Smrg{
5236357bfbb2Smrg  fprintf (stderr, "%s: %s: ", program_name, mode);
5237357bfbb2Smrg  vfprintf (stderr, message, ap);
5238357bfbb2Smrg  fprintf (stderr, ".\n");
5239357bfbb2Smrg
5240357bfbb2Smrg  if (exit_status >= 0)
5241357bfbb2Smrg    exit (exit_status);
5242357bfbb2Smrg}
5243357bfbb2Smrg
5244357bfbb2Smrgvoid
5245357bfbb2Smrglt_fatal (const char *message, ...)
5246357bfbb2Smrg{
5247357bfbb2Smrg  va_list ap;
5248357bfbb2Smrg  va_start (ap, message);
5249357bfbb2Smrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5250357bfbb2Smrg  va_end (ap);
5251357bfbb2Smrg}
5252357bfbb2SmrgEOF
5253357bfbb2Smrg          # we should really use a build-platform specific compiler
5254357bfbb2Smrg          # here, but OTOH, the wrappers (shell script and this C one)
5255357bfbb2Smrg          # are only useful if you want to execute the "real" binary.
5256357bfbb2Smrg          # Since the "real" binary is built for $host, then this
5257357bfbb2Smrg          # wrapper might as well be built for $host, too.
5258357bfbb2Smrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5259357bfbb2Smrg          ;;
5260357bfbb2Smrg        esac
5261357bfbb2Smrg        $rm $output
5262357bfbb2Smrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5263357bfbb2Smrg
5264357bfbb2Smrg	$echo > $output "\
5265357bfbb2Smrg#! $SHELL
5266357bfbb2Smrg
5267357bfbb2Smrg# $output - temporary wrapper script for $objdir/$outputname
5268357bfbb2Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5269357bfbb2Smrg#
5270357bfbb2Smrg# The $output program cannot be directly executed until all the libtool
5271357bfbb2Smrg# libraries that it depends on are installed.
5272357bfbb2Smrg#
5273357bfbb2Smrg# This wrapper script should never be moved out of the build directory.
5274357bfbb2Smrg# If it is, it will not operate correctly.
5275357bfbb2Smrg
5276357bfbb2Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
5277357bfbb2Smrg# metacharacters that are still active within double-quoted strings.
5278357bfbb2SmrgXsed='${SED} -e 1s/^X//'
5279357bfbb2Smrgsed_quote_subst='$sed_quote_subst'
5280357bfbb2Smrg
5281357bfbb2Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout
5282357bfbb2Smrg# if CDPATH is set.
5283357bfbb2Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5284357bfbb2Smrg
5285357bfbb2Smrgrelink_command=\"$relink_command\"
5286357bfbb2Smrg
5287357bfbb2Smrg# This environment variable determines our operation mode.
5288357bfbb2Smrgif test \"\$libtool_install_magic\" = \"$magic\"; then
5289357bfbb2Smrg  # install mode needs the following variable:
5290357bfbb2Smrg  notinst_deplibs='$notinst_deplibs'
5291357bfbb2Smrgelse
5292357bfbb2Smrg  # When we are sourced in execute mode, \$file and \$echo are already set.
5293357bfbb2Smrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5294357bfbb2Smrg    echo=\"$qecho\"
5295357bfbb2Smrg    file=\"\$0\"
5296357bfbb2Smrg    # Make sure echo works.
5297357bfbb2Smrg    if test \"X\$1\" = X--no-reexec; then
5298357bfbb2Smrg      # Discard the --no-reexec flag, and continue.
5299357bfbb2Smrg      shift
5300357bfbb2Smrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5301357bfbb2Smrg      # Yippee, \$echo works!
5302357bfbb2Smrg      :
5303357bfbb2Smrg    else
5304357bfbb2Smrg      # Restart under the correct shell, and then maybe \$echo will work.
5305357bfbb2Smrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5306357bfbb2Smrg    fi
5307357bfbb2Smrg  fi\
5308357bfbb2Smrg"
5309357bfbb2Smrg	$echo >> $output "\
5310357bfbb2Smrg
5311357bfbb2Smrg  # Find the directory that this script lives in.
5312357bfbb2Smrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5313357bfbb2Smrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5314357bfbb2Smrg
5315357bfbb2Smrg  # Follow symbolic links until we get to the real thisdir.
5316357bfbb2Smrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5317357bfbb2Smrg  while test -n \"\$file\"; do
5318357bfbb2Smrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5319357bfbb2Smrg
5320357bfbb2Smrg    # If there was a directory component, then change thisdir.
5321357bfbb2Smrg    if test \"x\$destdir\" != \"x\$file\"; then
5322357bfbb2Smrg      case \"\$destdir\" in
5323357bfbb2Smrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5324357bfbb2Smrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
5325357bfbb2Smrg      esac
5326357bfbb2Smrg    fi
5327357bfbb2Smrg
5328357bfbb2Smrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5329357bfbb2Smrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5330357bfbb2Smrg  done
5331357bfbb2Smrg
5332357bfbb2Smrg  # Try to get the absolute directory name.
5333357bfbb2Smrg  absdir=\`cd \"\$thisdir\" && pwd\`
5334357bfbb2Smrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5335357bfbb2Smrg"
5336357bfbb2Smrg
5337357bfbb2Smrg	if test "$fast_install" = yes; then
5338357bfbb2Smrg	  $echo >> $output "\
5339357bfbb2Smrg  program=lt-'$outputname'$exeext
5340357bfbb2Smrg  progdir=\"\$thisdir/$objdir\"
5341357bfbb2Smrg
5342357bfbb2Smrg  if test ! -f \"\$progdir/\$program\" || \\
5343357bfbb2Smrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5344357bfbb2Smrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5345357bfbb2Smrg
5346357bfbb2Smrg    file=\"\$\$-\$program\"
5347357bfbb2Smrg
5348357bfbb2Smrg    if test ! -d \"\$progdir\"; then
5349357bfbb2Smrg      $mkdir \"\$progdir\"
5350357bfbb2Smrg    else
5351357bfbb2Smrg      $rm \"\$progdir/\$file\"
5352357bfbb2Smrg    fi"
5353357bfbb2Smrg
5354357bfbb2Smrg	  $echo >> $output "\
5355357bfbb2Smrg
5356357bfbb2Smrg    # relink executable if necessary
5357357bfbb2Smrg    if test -n \"\$relink_command\"; then
5358357bfbb2Smrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5359357bfbb2Smrg      else
5360357bfbb2Smrg	$echo \"\$relink_command_output\" >&2
5361357bfbb2Smrg	$rm \"\$progdir/\$file\"
5362357bfbb2Smrg	exit $EXIT_FAILURE
5363357bfbb2Smrg      fi
5364357bfbb2Smrg    fi
5365357bfbb2Smrg
5366357bfbb2Smrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5367357bfbb2Smrg    { $rm \"\$progdir/\$program\";
5368357bfbb2Smrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5369357bfbb2Smrg    $rm \"\$progdir/\$file\"
5370357bfbb2Smrg  fi"
5371357bfbb2Smrg	else
5372357bfbb2Smrg	  $echo >> $output "\
5373357bfbb2Smrg  program='$outputname'
5374357bfbb2Smrg  progdir=\"\$thisdir/$objdir\"
5375357bfbb2Smrg"
5376357bfbb2Smrg	fi
5377357bfbb2Smrg
5378357bfbb2Smrg	$echo >> $output "\
5379357bfbb2Smrg
5380357bfbb2Smrg  if test -f \"\$progdir/\$program\"; then"
5381357bfbb2Smrg
5382357bfbb2Smrg	# Export our shlibpath_var if we have one.
5383357bfbb2Smrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5384357bfbb2Smrg	  $echo >> $output "\
5385357bfbb2Smrg    # Add our own library path to $shlibpath_var
5386357bfbb2Smrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5387357bfbb2Smrg
5388357bfbb2Smrg    # Some systems cannot cope with colon-terminated $shlibpath_var
5389357bfbb2Smrg    # The second colon is a workaround for a bug in BeOS R4 sed
5390357bfbb2Smrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5391357bfbb2Smrg
5392357bfbb2Smrg    export $shlibpath_var
5393357bfbb2Smrg"
5394357bfbb2Smrg	fi
5395357bfbb2Smrg
5396357bfbb2Smrg	# fixup the dll searchpath if we need to.
5397357bfbb2Smrg	if test -n "$dllsearchpath"; then
5398357bfbb2Smrg	  $echo >> $output "\
5399357bfbb2Smrg    # Add the dll search path components to the executable PATH
5400357bfbb2Smrg    PATH=$dllsearchpath:\$PATH
5401357bfbb2Smrg"
5402357bfbb2Smrg	fi
5403357bfbb2Smrg
5404357bfbb2Smrg	$echo >> $output "\
5405357bfbb2Smrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5406357bfbb2Smrg      # Run the actual program with our arguments.
5407357bfbb2Smrg"
5408357bfbb2Smrg	case $host in
5409357bfbb2Smrg	# Backslashes separate directories on plain windows
5410357bfbb2Smrg	*-*-mingw | *-*-os2*)
5411357bfbb2Smrg	  $echo >> $output "\
5412357bfbb2Smrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5413357bfbb2Smrg"
5414357bfbb2Smrg	  ;;
5415357bfbb2Smrg
5416357bfbb2Smrg	*)
5417357bfbb2Smrg	  $echo >> $output "\
5418357bfbb2Smrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5419357bfbb2Smrg"
5420357bfbb2Smrg	  ;;
5421357bfbb2Smrg	esac
5422357bfbb2Smrg	$echo >> $output "\
5423357bfbb2Smrg      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5424357bfbb2Smrg      exit $EXIT_FAILURE
5425357bfbb2Smrg    fi
5426357bfbb2Smrg  else
5427357bfbb2Smrg    # The program doesn't exist.
5428357bfbb2Smrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5429357bfbb2Smrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5430357bfbb2Smrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5431357bfbb2Smrg    exit $EXIT_FAILURE
5432357bfbb2Smrg  fi
5433357bfbb2Smrgfi\
5434357bfbb2Smrg"
5435357bfbb2Smrg	chmod +x $output
5436357bfbb2Smrg      fi
5437357bfbb2Smrg      exit $EXIT_SUCCESS
5438357bfbb2Smrg      ;;
5439357bfbb2Smrg    esac
5440357bfbb2Smrg
5441357bfbb2Smrg    # See if we need to build an old-fashioned archive.
5442357bfbb2Smrg    for oldlib in $oldlibs; do
5443357bfbb2Smrg
5444357bfbb2Smrg      if test "$build_libtool_libs" = convenience; then
5445357bfbb2Smrg	oldobjs="$libobjs_save"
5446357bfbb2Smrg	addlibs="$convenience"
5447357bfbb2Smrg	build_libtool_libs=no
5448357bfbb2Smrg      else
5449357bfbb2Smrg	if test "$build_libtool_libs" = module; then
5450357bfbb2Smrg	  oldobjs="$libobjs_save"
5451357bfbb2Smrg	  build_libtool_libs=no
5452357bfbb2Smrg	else
5453357bfbb2Smrg	  oldobjs="$old_deplibs $non_pic_objects"
5454357bfbb2Smrg	fi
5455357bfbb2Smrg	addlibs="$old_convenience"
5456357bfbb2Smrg      fi
5457357bfbb2Smrg
5458357bfbb2Smrg      if test -n "$addlibs"; then
5459357bfbb2Smrg	gentop="$output_objdir/${outputname}x"
5460357bfbb2Smrg	generated="$generated $gentop"
5461357bfbb2Smrg
5462357bfbb2Smrg	func_extract_archives $gentop $addlibs
5463357bfbb2Smrg	oldobjs="$oldobjs $func_extract_archives_result"
5464357bfbb2Smrg      fi
5465357bfbb2Smrg
5466357bfbb2Smrg      # Do each command in the archive commands.
5467357bfbb2Smrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5468357bfbb2Smrg       cmds=$old_archive_from_new_cmds
5469357bfbb2Smrg      else
5470357bfbb2Smrg	# POSIX demands no paths to be encoded in archives.  We have
5471357bfbb2Smrg	# to avoid creating archives with duplicate basenames if we
5472357bfbb2Smrg	# might have to extract them afterwards, e.g., when creating a
5473357bfbb2Smrg	# static archive out of a convenience library, or when linking
5474357bfbb2Smrg	# the entirety of a libtool archive into another (currently
5475357bfbb2Smrg	# not supported by libtool).
5476357bfbb2Smrg	if (for obj in $oldobjs
5477357bfbb2Smrg	    do
5478357bfbb2Smrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5479357bfbb2Smrg	    done | sort | sort -uc >/dev/null 2>&1); then
5480357bfbb2Smrg	  :
5481357bfbb2Smrg	else
5482357bfbb2Smrg	  $echo "copying selected object files to avoid basename conflicts..."
5483357bfbb2Smrg
5484357bfbb2Smrg	  if test -z "$gentop"; then
5485357bfbb2Smrg	    gentop="$output_objdir/${outputname}x"
5486357bfbb2Smrg	    generated="$generated $gentop"
5487357bfbb2Smrg
5488357bfbb2Smrg	    $show "${rm}r $gentop"
5489357bfbb2Smrg	    $run ${rm}r "$gentop"
5490357bfbb2Smrg	    $show "$mkdir $gentop"
5491357bfbb2Smrg	    $run $mkdir "$gentop"
5492357bfbb2Smrg	    exit_status=$?
5493357bfbb2Smrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5494357bfbb2Smrg	      exit $exit_status
5495357bfbb2Smrg	    fi
5496357bfbb2Smrg	  fi
5497357bfbb2Smrg
5498357bfbb2Smrg	  save_oldobjs=$oldobjs
5499357bfbb2Smrg	  oldobjs=
5500357bfbb2Smrg	  counter=1
5501357bfbb2Smrg	  for obj in $save_oldobjs
5502357bfbb2Smrg	  do
5503357bfbb2Smrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5504357bfbb2Smrg	    case " $oldobjs " in
5505357bfbb2Smrg	    " ") oldobjs=$obj ;;
5506357bfbb2Smrg	    *[\ /]"$objbase "*)
5507357bfbb2Smrg	      while :; do
5508357bfbb2Smrg		# Make sure we don't pick an alternate name that also
5509357bfbb2Smrg		# overlaps.
5510357bfbb2Smrg		newobj=lt$counter-$objbase
5511357bfbb2Smrg		counter=`expr $counter + 1`
5512357bfbb2Smrg		case " $oldobjs " in
5513357bfbb2Smrg		*[\ /]"$newobj "*) ;;
5514357bfbb2Smrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5515357bfbb2Smrg		esac
5516357bfbb2Smrg	      done
5517357bfbb2Smrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5518357bfbb2Smrg	      $run ln "$obj" "$gentop/$newobj" ||
5519357bfbb2Smrg	      $run cp "$obj" "$gentop/$newobj"
5520357bfbb2Smrg	      oldobjs="$oldobjs $gentop/$newobj"
5521357bfbb2Smrg	      ;;
5522357bfbb2Smrg	    *) oldobjs="$oldobjs $obj" ;;
5523357bfbb2Smrg	    esac
5524357bfbb2Smrg	  done
5525357bfbb2Smrg	fi
5526357bfbb2Smrg
5527357bfbb2Smrg	eval cmds=\"$old_archive_cmds\"
5528357bfbb2Smrg
5529357bfbb2Smrg	if len=`expr "X$cmds" : ".*"` &&
5530357bfbb2Smrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5531357bfbb2Smrg	  cmds=$old_archive_cmds
5532357bfbb2Smrg	else
5533357bfbb2Smrg	  # the command line is too long to link in one step, link in parts
5534357bfbb2Smrg	  $echo "using piecewise archive linking..."
5535357bfbb2Smrg	  save_RANLIB=$RANLIB
5536357bfbb2Smrg	  RANLIB=:
5537357bfbb2Smrg	  objlist=
5538357bfbb2Smrg	  concat_cmds=
5539357bfbb2Smrg	  save_oldobjs=$oldobjs
5540357bfbb2Smrg
5541357bfbb2Smrg	  # Is there a better way of finding the last object in the list?
5542357bfbb2Smrg	  for obj in $save_oldobjs
5543357bfbb2Smrg	  do
5544357bfbb2Smrg	    last_oldobj=$obj
5545357bfbb2Smrg	  done
5546357bfbb2Smrg	  for obj in $save_oldobjs
5547357bfbb2Smrg	  do
5548357bfbb2Smrg	    oldobjs="$objlist $obj"
5549357bfbb2Smrg	    objlist="$objlist $obj"
5550357bfbb2Smrg	    eval test_cmds=\"$old_archive_cmds\"
5551357bfbb2Smrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5552357bfbb2Smrg	       test "$len" -le "$max_cmd_len"; then
5553357bfbb2Smrg	      :
5554357bfbb2Smrg	    else
5555357bfbb2Smrg	      # the above command should be used before it gets too long
5556357bfbb2Smrg	      oldobjs=$objlist
5557357bfbb2Smrg	      if test "$obj" = "$last_oldobj" ; then
5558357bfbb2Smrg	        RANLIB=$save_RANLIB
5559357bfbb2Smrg	      fi
5560357bfbb2Smrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5561357bfbb2Smrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5562357bfbb2Smrg	      objlist=
5563357bfbb2Smrg	    fi
5564357bfbb2Smrg	  done
5565357bfbb2Smrg	  RANLIB=$save_RANLIB
5566357bfbb2Smrg	  oldobjs=$objlist
5567357bfbb2Smrg	  if test "X$oldobjs" = "X" ; then
5568357bfbb2Smrg	    eval cmds=\"\$concat_cmds\"
5569357bfbb2Smrg	  else
5570357bfbb2Smrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5571357bfbb2Smrg	  fi
5572357bfbb2Smrg	fi
5573357bfbb2Smrg      fi
5574357bfbb2Smrg      save_ifs="$IFS"; IFS='~'
5575357bfbb2Smrg      for cmd in $cmds; do
5576357bfbb2Smrg        eval cmd=\"$cmd\"
5577357bfbb2Smrg	IFS="$save_ifs"
5578357bfbb2Smrg	$show "$cmd"
5579357bfbb2Smrg	$run eval "$cmd" || exit $?
5580357bfbb2Smrg      done
5581357bfbb2Smrg      IFS="$save_ifs"
5582357bfbb2Smrg    done
5583357bfbb2Smrg
5584357bfbb2Smrg    if test -n "$generated"; then
5585357bfbb2Smrg      $show "${rm}r$generated"
5586357bfbb2Smrg      $run ${rm}r$generated
5587357bfbb2Smrg    fi
5588357bfbb2Smrg
5589357bfbb2Smrg    # Now create the libtool archive.
5590357bfbb2Smrg    case $output in
5591357bfbb2Smrg    *.la)
5592357bfbb2Smrg      old_library=
5593357bfbb2Smrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
5594357bfbb2Smrg      $show "creating $output"
5595357bfbb2Smrg
5596357bfbb2Smrg      # Preserve any variables that may affect compiler behavior
5597357bfbb2Smrg      for var in $variables_saved_for_relink; do
5598357bfbb2Smrg	if eval test -z \"\${$var+set}\"; then
5599357bfbb2Smrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5600357bfbb2Smrg	elif eval var_value=\$$var; test -z "$var_value"; then
5601357bfbb2Smrg	  relink_command="$var=; export $var; $relink_command"
5602357bfbb2Smrg	else
5603357bfbb2Smrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5604357bfbb2Smrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5605357bfbb2Smrg	fi
5606357bfbb2Smrg      done
5607357bfbb2Smrg      # Quote the link command for shipping.
5608357bfbb2Smrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5609357bfbb2Smrg      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5610357bfbb2Smrg      if test "$hardcode_automatic" = yes ; then
5611357bfbb2Smrg	relink_command=
5612357bfbb2Smrg      fi
5613357bfbb2Smrg
5614357bfbb2Smrg
5615357bfbb2Smrg      # Only create the output if not a dry run.
5616357bfbb2Smrg      if test -z "$run"; then
5617357bfbb2Smrg	for installed in no yes; do
5618357bfbb2Smrg	  if test "$installed" = yes; then
5619357bfbb2Smrg	    if test -z "$install_libdir"; then
5620357bfbb2Smrg	      break
5621357bfbb2Smrg	    fi
5622357bfbb2Smrg	    output="$output_objdir/$outputname"i
5623357bfbb2Smrg	    # Replace all uninstalled libtool libraries with the installed ones
5624357bfbb2Smrg	    newdependency_libs=
5625357bfbb2Smrg	    for deplib in $dependency_libs; do
5626357bfbb2Smrg	      case $deplib in
5627357bfbb2Smrg	      *.la)
5628357bfbb2Smrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5629357bfbb2Smrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5630357bfbb2Smrg		if test -z "$libdir"; then
5631357bfbb2Smrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5632357bfbb2Smrg		  exit $EXIT_FAILURE
5633357bfbb2Smrg		fi
5634357bfbb2Smrg		newdependency_libs="$newdependency_libs $libdir/$name"
5635357bfbb2Smrg		;;
5636357bfbb2Smrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5637357bfbb2Smrg	      esac
5638357bfbb2Smrg	    done
5639357bfbb2Smrg	    dependency_libs="$newdependency_libs"
5640357bfbb2Smrg	    newdlfiles=
5641357bfbb2Smrg	    for lib in $dlfiles; do
5642357bfbb2Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5643357bfbb2Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5644357bfbb2Smrg	      if test -z "$libdir"; then
5645357bfbb2Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5646357bfbb2Smrg		exit $EXIT_FAILURE
5647357bfbb2Smrg	      fi
5648357bfbb2Smrg	      newdlfiles="$newdlfiles $libdir/$name"
5649357bfbb2Smrg	    done
5650357bfbb2Smrg	    dlfiles="$newdlfiles"
5651357bfbb2Smrg	    newdlprefiles=
5652357bfbb2Smrg	    for lib in $dlprefiles; do
5653357bfbb2Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5654357bfbb2Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5655357bfbb2Smrg	      if test -z "$libdir"; then
5656357bfbb2Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5657357bfbb2Smrg		exit $EXIT_FAILURE
5658357bfbb2Smrg	      fi
5659357bfbb2Smrg	      newdlprefiles="$newdlprefiles $libdir/$name"
5660357bfbb2Smrg	    done
5661357bfbb2Smrg	    dlprefiles="$newdlprefiles"
5662357bfbb2Smrg	  else
5663357bfbb2Smrg	    newdlfiles=
5664357bfbb2Smrg	    for lib in $dlfiles; do
5665357bfbb2Smrg	      case $lib in
5666357bfbb2Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5667357bfbb2Smrg		*) abs=`pwd`"/$lib" ;;
5668357bfbb2Smrg	      esac
5669357bfbb2Smrg	      newdlfiles="$newdlfiles $abs"
5670357bfbb2Smrg	    done
5671357bfbb2Smrg	    dlfiles="$newdlfiles"
5672357bfbb2Smrg	    newdlprefiles=
5673357bfbb2Smrg	    for lib in $dlprefiles; do
5674357bfbb2Smrg	      case $lib in
5675357bfbb2Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5676357bfbb2Smrg		*) abs=`pwd`"/$lib" ;;
5677357bfbb2Smrg	      esac
5678357bfbb2Smrg	      newdlprefiles="$newdlprefiles $abs"
5679357bfbb2Smrg	    done
5680357bfbb2Smrg	    dlprefiles="$newdlprefiles"
5681357bfbb2Smrg	  fi
5682357bfbb2Smrg	  $rm $output
5683357bfbb2Smrg	  # place dlname in correct position for cygwin
5684357bfbb2Smrg	  tdlname=$dlname
5685357bfbb2Smrg	  case $host,$output,$installed,$module,$dlname in
5686357bfbb2Smrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5687357bfbb2Smrg	  esac
5688357bfbb2Smrg	  $echo > $output "\
5689357bfbb2Smrg# $outputname - a libtool library file
5690357bfbb2Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5691357bfbb2Smrg#
5692357bfbb2Smrg# Please DO NOT delete this file!
5693357bfbb2Smrg# It is necessary for linking the library.
5694357bfbb2Smrg
5695357bfbb2Smrg# The name that we can dlopen(3).
5696357bfbb2Smrgdlname='$tdlname'
5697357bfbb2Smrg
5698357bfbb2Smrg# Names of this library.
5699357bfbb2Smrglibrary_names='$library_names'
5700357bfbb2Smrg
5701357bfbb2Smrg# The name of the static archive.
5702357bfbb2Smrgold_library='$old_library'
5703357bfbb2Smrg
5704357bfbb2Smrg# Libraries that this one depends upon.
5705357bfbb2Smrgdependency_libs='$dependency_libs'
5706357bfbb2Smrg
5707357bfbb2Smrg# Version information for $libname.
5708357bfbb2Smrgcurrent=$current
5709357bfbb2Smrgage=$age
5710357bfbb2Smrgrevision=$revision
5711357bfbb2Smrg
5712357bfbb2Smrg# Is this an already installed library?
5713357bfbb2Smrginstalled=$installed
5714357bfbb2Smrg
5715357bfbb2Smrg# Should we warn about portability when linking against -modules?
5716357bfbb2Smrgshouldnotlink=$module
5717357bfbb2Smrg
5718357bfbb2Smrg# Files to dlopen/dlpreopen
5719357bfbb2Smrgdlopen='$dlfiles'
5720357bfbb2Smrgdlpreopen='$dlprefiles'
5721357bfbb2Smrg
5722357bfbb2Smrg# Directory that this library needs to be installed in:
5723357bfbb2Smrglibdir='$install_libdir'"
5724357bfbb2Smrg	  if test "$installed" = no && test "$need_relink" = yes; then
5725357bfbb2Smrg	    $echo >> $output "\
5726357bfbb2Smrgrelink_command=\"$relink_command\""
5727357bfbb2Smrg	  fi
5728357bfbb2Smrg	done
5729357bfbb2Smrg      fi
5730357bfbb2Smrg
5731357bfbb2Smrg      # Do a symbolic link so that the libtool archive can be found in
5732357bfbb2Smrg      # LD_LIBRARY_PATH before the program is installed.
5733357bfbb2Smrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5734357bfbb2Smrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5735357bfbb2Smrg      ;;
5736357bfbb2Smrg    esac
5737357bfbb2Smrg    exit $EXIT_SUCCESS
5738357bfbb2Smrg    ;;
5739357bfbb2Smrg
5740357bfbb2Smrg  # libtool install mode
5741357bfbb2Smrg  install)
5742357bfbb2Smrg    modename="$modename: install"
5743357bfbb2Smrg
5744357bfbb2Smrg    # There may be an optional sh(1) argument at the beginning of
5745357bfbb2Smrg    # install_prog (especially on Windows NT).
5746357bfbb2Smrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5747357bfbb2Smrg       # Allow the use of GNU shtool's install command.
5748357bfbb2Smrg       $echo "X$nonopt" | grep shtool > /dev/null; then
5749357bfbb2Smrg      # Aesthetically quote it.
5750357bfbb2Smrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5751357bfbb2Smrg      case $arg in
5752357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5753357bfbb2Smrg	arg="\"$arg\""
5754357bfbb2Smrg	;;
5755357bfbb2Smrg      esac
5756357bfbb2Smrg      install_prog="$arg "
5757357bfbb2Smrg      arg="$1"
5758357bfbb2Smrg      shift
5759357bfbb2Smrg    else
5760357bfbb2Smrg      install_prog=
5761357bfbb2Smrg      arg=$nonopt
5762357bfbb2Smrg    fi
5763357bfbb2Smrg
5764357bfbb2Smrg    # The real first argument should be the name of the installation program.
5765357bfbb2Smrg    # Aesthetically quote it.
5766357bfbb2Smrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5767357bfbb2Smrg    case $arg in
5768357bfbb2Smrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5769357bfbb2Smrg      arg="\"$arg\""
5770357bfbb2Smrg      ;;
5771357bfbb2Smrg    esac
5772357bfbb2Smrg    install_prog="$install_prog$arg"
5773357bfbb2Smrg
5774357bfbb2Smrg    # We need to accept at least all the BSD install flags.
5775357bfbb2Smrg    dest=
5776357bfbb2Smrg    files=
5777357bfbb2Smrg    opts=
5778357bfbb2Smrg    prev=
5779357bfbb2Smrg    install_type=
5780357bfbb2Smrg    isdir=no
5781357bfbb2Smrg    stripme=
5782357bfbb2Smrg    for arg
5783357bfbb2Smrg    do
5784357bfbb2Smrg      if test -n "$dest"; then
5785357bfbb2Smrg	files="$files $dest"
5786357bfbb2Smrg	dest=$arg
5787357bfbb2Smrg	continue
5788357bfbb2Smrg      fi
5789357bfbb2Smrg
5790357bfbb2Smrg      case $arg in
5791357bfbb2Smrg      -d) isdir=yes ;;
5792357bfbb2Smrg      -f) 
5793357bfbb2Smrg      	case " $install_prog " in
5794357bfbb2Smrg	*[\\\ /]cp\ *) ;;
5795357bfbb2Smrg	*) prev=$arg ;;
5796357bfbb2Smrg	esac
5797357bfbb2Smrg	;;
5798357bfbb2Smrg      -g | -m | -o) prev=$arg ;;
5799357bfbb2Smrg      -s)
5800357bfbb2Smrg	stripme=" -s"
5801357bfbb2Smrg	continue
5802357bfbb2Smrg	;;
5803357bfbb2Smrg      -*)
5804357bfbb2Smrg	;;
5805357bfbb2Smrg      *)
5806357bfbb2Smrg	# If the previous option needed an argument, then skip it.
5807357bfbb2Smrg	if test -n "$prev"; then
5808357bfbb2Smrg	  prev=
5809357bfbb2Smrg	else
5810357bfbb2Smrg	  dest=$arg
5811357bfbb2Smrg	  continue
5812357bfbb2Smrg	fi
5813357bfbb2Smrg	;;
5814357bfbb2Smrg      esac
5815357bfbb2Smrg
5816357bfbb2Smrg      # Aesthetically quote the argument.
5817357bfbb2Smrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5818357bfbb2Smrg      case $arg in
5819357bfbb2Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5820357bfbb2Smrg	arg="\"$arg\""
5821357bfbb2Smrg	;;
5822357bfbb2Smrg      esac
5823357bfbb2Smrg      install_prog="$install_prog $arg"
5824357bfbb2Smrg    done
5825357bfbb2Smrg
5826357bfbb2Smrg    if test -z "$install_prog"; then
5827357bfbb2Smrg      $echo "$modename: you must specify an install program" 1>&2
5828357bfbb2Smrg      $echo "$help" 1>&2
5829357bfbb2Smrg      exit $EXIT_FAILURE
5830357bfbb2Smrg    fi
5831357bfbb2Smrg
5832357bfbb2Smrg    if test -n "$prev"; then
5833357bfbb2Smrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5834357bfbb2Smrg      $echo "$help" 1>&2
5835357bfbb2Smrg      exit $EXIT_FAILURE
5836357bfbb2Smrg    fi
5837357bfbb2Smrg
5838357bfbb2Smrg    if test -z "$files"; then
5839357bfbb2Smrg      if test -z "$dest"; then
5840357bfbb2Smrg	$echo "$modename: no file or destination specified" 1>&2
5841357bfbb2Smrg      else
5842357bfbb2Smrg	$echo "$modename: you must specify a destination" 1>&2
5843357bfbb2Smrg      fi
5844357bfbb2Smrg      $echo "$help" 1>&2
5845357bfbb2Smrg      exit $EXIT_FAILURE
5846357bfbb2Smrg    fi
5847357bfbb2Smrg
5848357bfbb2Smrg    # Strip any trailing slash from the destination.
5849357bfbb2Smrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5850357bfbb2Smrg
5851357bfbb2Smrg    # Check to see that the destination is a directory.
5852357bfbb2Smrg    test -d "$dest" && isdir=yes
5853357bfbb2Smrg    if test "$isdir" = yes; then
5854357bfbb2Smrg      destdir="$dest"
5855357bfbb2Smrg      destname=
5856357bfbb2Smrg    else
5857357bfbb2Smrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5858357bfbb2Smrg      test "X$destdir" = "X$dest" && destdir=.
5859357bfbb2Smrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5860357bfbb2Smrg
5861357bfbb2Smrg      # Not a directory, so check to see that there is only one file specified.
5862357bfbb2Smrg      set dummy $files
5863357bfbb2Smrg      if test "$#" -gt 2; then
5864357bfbb2Smrg	$echo "$modename: \`$dest' is not a directory" 1>&2
5865357bfbb2Smrg	$echo "$help" 1>&2
5866357bfbb2Smrg	exit $EXIT_FAILURE
5867357bfbb2Smrg      fi
5868357bfbb2Smrg    fi
5869357bfbb2Smrg    case $destdir in
5870357bfbb2Smrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
5871357bfbb2Smrg    *)
5872357bfbb2Smrg      for file in $files; do
5873357bfbb2Smrg	case $file in
5874357bfbb2Smrg	*.lo) ;;
5875357bfbb2Smrg	*)
5876357bfbb2Smrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5877357bfbb2Smrg	  $echo "$help" 1>&2
5878357bfbb2Smrg	  exit $EXIT_FAILURE
5879357bfbb2Smrg	  ;;
5880357bfbb2Smrg	esac
5881357bfbb2Smrg      done
5882357bfbb2Smrg      ;;
5883357bfbb2Smrg    esac
5884357bfbb2Smrg
5885357bfbb2Smrg    # This variable tells wrapper scripts just to set variables rather
5886357bfbb2Smrg    # than running their programs.
5887357bfbb2Smrg    libtool_install_magic="$magic"
5888357bfbb2Smrg
5889357bfbb2Smrg    staticlibs=
5890357bfbb2Smrg    future_libdirs=
5891357bfbb2Smrg    current_libdirs=
5892357bfbb2Smrg    for file in $files; do
5893357bfbb2Smrg
5894357bfbb2Smrg      # Do each installation.
5895357bfbb2Smrg      case $file in
5896357bfbb2Smrg      *.$libext)
5897357bfbb2Smrg	# Do the static libraries later.
5898357bfbb2Smrg	staticlibs="$staticlibs $file"
5899357bfbb2Smrg	;;
5900357bfbb2Smrg
5901357bfbb2Smrg      *.la)
5902357bfbb2Smrg	# Check to see that this really is a libtool archive.
5903357bfbb2Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5904357bfbb2Smrg	else
5905357bfbb2Smrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5906357bfbb2Smrg	  $echo "$help" 1>&2
5907357bfbb2Smrg	  exit $EXIT_FAILURE
5908357bfbb2Smrg	fi
5909357bfbb2Smrg
5910357bfbb2Smrg	library_names=
5911357bfbb2Smrg	old_library=
5912357bfbb2Smrg	relink_command=
5913357bfbb2Smrg	# If there is no directory component, then add one.
5914357bfbb2Smrg	case $file in
5915357bfbb2Smrg	*/* | *\\*) . $file ;;
5916357bfbb2Smrg	*) . ./$file ;;
5917357bfbb2Smrg	esac
5918357bfbb2Smrg
5919357bfbb2Smrg	# Add the libdir to current_libdirs if it is the destination.
5920357bfbb2Smrg	if test "X$destdir" = "X$libdir"; then
5921357bfbb2Smrg	  case "$current_libdirs " in
5922357bfbb2Smrg	  *" $libdir "*) ;;
5923357bfbb2Smrg	  *) current_libdirs="$current_libdirs $libdir" ;;
5924357bfbb2Smrg	  esac
5925357bfbb2Smrg	else
5926357bfbb2Smrg	  # Note the libdir as a future libdir.
5927357bfbb2Smrg	  case "$future_libdirs " in
5928357bfbb2Smrg	  *" $libdir "*) ;;
5929357bfbb2Smrg	  *) future_libdirs="$future_libdirs $libdir" ;;
5930357bfbb2Smrg	  esac
5931357bfbb2Smrg	fi
5932357bfbb2Smrg
5933357bfbb2Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5934357bfbb2Smrg	test "X$dir" = "X$file/" && dir=
5935357bfbb2Smrg	dir="$dir$objdir"
5936357bfbb2Smrg
5937357bfbb2Smrg	if test -n "$relink_command"; then
5938357bfbb2Smrg	  # Determine the prefix the user has applied to our future dir.
5939357bfbb2Smrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5940357bfbb2Smrg
5941357bfbb2Smrg	  # Don't allow the user to place us outside of our expected
5942357bfbb2Smrg	  # location b/c this prevents finding dependent libraries that
5943357bfbb2Smrg	  # are installed to the same prefix.
5944357bfbb2Smrg	  # At present, this check doesn't affect windows .dll's that
5945357bfbb2Smrg	  # are installed into $libdir/../bin (currently, that works fine)
5946357bfbb2Smrg	  # but it's something to keep an eye on.
5947357bfbb2Smrg	  if test "$inst_prefix_dir" = "$destdir"; then
5948357bfbb2Smrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5949357bfbb2Smrg	    exit $EXIT_FAILURE
5950357bfbb2Smrg	  fi
5951357bfbb2Smrg
5952357bfbb2Smrg	  if test -n "$inst_prefix_dir"; then
5953357bfbb2Smrg	    # Stick the inst_prefix_dir data into the link command.
5954357bfbb2Smrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5955357bfbb2Smrg	  else
5956357bfbb2Smrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5957357bfbb2Smrg	  fi
5958357bfbb2Smrg
5959357bfbb2Smrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
5960357bfbb2Smrg	  $show "$relink_command"
5961357bfbb2Smrg	  if $run eval "$relink_command"; then :
5962357bfbb2Smrg	  else
5963357bfbb2Smrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5964357bfbb2Smrg	    exit $EXIT_FAILURE
5965357bfbb2Smrg	  fi
5966357bfbb2Smrg	fi
5967357bfbb2Smrg
5968357bfbb2Smrg	# See the names of the shared library.
5969357bfbb2Smrg	set dummy $library_names
5970357bfbb2Smrg	if test -n "$2"; then
5971357bfbb2Smrg	  realname="$2"
5972357bfbb2Smrg	  shift
5973357bfbb2Smrg	  shift
5974357bfbb2Smrg
5975357bfbb2Smrg	  srcname="$realname"
5976357bfbb2Smrg	  test -n "$relink_command" && srcname="$realname"T
5977357bfbb2Smrg
5978357bfbb2Smrg	  # Install the shared library and build the symlinks.
5979357bfbb2Smrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
5980357bfbb2Smrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5981357bfbb2Smrg	  if test -n "$stripme" && test -n "$striplib"; then
5982357bfbb2Smrg	    $show "$striplib $destdir/$realname"
5983357bfbb2Smrg	    $run eval "$striplib $destdir/$realname" || exit $?
5984357bfbb2Smrg	  fi
5985357bfbb2Smrg
5986357bfbb2Smrg	  if test "$#" -gt 0; then
5987357bfbb2Smrg	    # Delete the old symlinks, and create new ones.
5988357bfbb2Smrg	    # Try `ln -sf' first, because the `ln' binary might depend on
5989357bfbb2Smrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
5990357bfbb2Smrg	    # so we also need to try rm && ln -s.
5991357bfbb2Smrg	    for linkname
5992357bfbb2Smrg	    do
5993357bfbb2Smrg	      if test "$linkname" != "$realname"; then
5994357bfbb2Smrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5995357bfbb2Smrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5996357bfbb2Smrg	      fi
5997357bfbb2Smrg	    done
5998357bfbb2Smrg	  fi
5999357bfbb2Smrg
6000357bfbb2Smrg	  # Do each command in the postinstall commands.
6001357bfbb2Smrg	  lib="$destdir/$realname"
6002357bfbb2Smrg	  cmds=$postinstall_cmds
6003357bfbb2Smrg	  save_ifs="$IFS"; IFS='~'
6004357bfbb2Smrg	  for cmd in $cmds; do
6005357bfbb2Smrg	    IFS="$save_ifs"
6006357bfbb2Smrg	    eval cmd=\"$cmd\"
6007357bfbb2Smrg	    $show "$cmd"
6008357bfbb2Smrg	    $run eval "$cmd" || {
6009357bfbb2Smrg	      lt_exit=$?
6010357bfbb2Smrg
6011357bfbb2Smrg	      # Restore the uninstalled library and exit
6012357bfbb2Smrg	      if test "$mode" = relink; then
6013357bfbb2Smrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6014357bfbb2Smrg	      fi
6015357bfbb2Smrg
6016357bfbb2Smrg	      exit $lt_exit
6017357bfbb2Smrg	    }
6018357bfbb2Smrg	  done
6019357bfbb2Smrg	  IFS="$save_ifs"
6020357bfbb2Smrg	fi
6021357bfbb2Smrg
6022357bfbb2Smrg	# Install the pseudo-library for information purposes.
6023357bfbb2Smrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6024357bfbb2Smrg	instname="$dir/$name"i
6025357bfbb2Smrg	$show "$install_prog $instname $destdir/$name"
6026357bfbb2Smrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
6027357bfbb2Smrg
6028357bfbb2Smrg	# Maybe install the static library, too.
6029357bfbb2Smrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6030357bfbb2Smrg	;;
6031357bfbb2Smrg
6032357bfbb2Smrg      *.lo)
6033357bfbb2Smrg	# Install (i.e. copy) a libtool object.
6034357bfbb2Smrg
6035357bfbb2Smrg	# Figure out destination file name, if it wasn't already specified.
6036357bfbb2Smrg	if test -n "$destname"; then
6037357bfbb2Smrg	  destfile="$destdir/$destname"
6038357bfbb2Smrg	else
6039357bfbb2Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6040357bfbb2Smrg	  destfile="$destdir/$destfile"
6041357bfbb2Smrg	fi
6042357bfbb2Smrg
6043357bfbb2Smrg	# Deduce the name of the destination old-style object file.
6044357bfbb2Smrg	case $destfile in
6045357bfbb2Smrg	*.lo)
6046357bfbb2Smrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6047357bfbb2Smrg	  ;;
6048357bfbb2Smrg	*.$objext)
6049357bfbb2Smrg	  staticdest="$destfile"
6050357bfbb2Smrg	  destfile=
6051357bfbb2Smrg	  ;;
6052357bfbb2Smrg	*)
6053357bfbb2Smrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6054357bfbb2Smrg	  $echo "$help" 1>&2
6055357bfbb2Smrg	  exit $EXIT_FAILURE
6056357bfbb2Smrg	  ;;
6057357bfbb2Smrg	esac
6058357bfbb2Smrg
6059357bfbb2Smrg	# Install the libtool object if requested.
6060357bfbb2Smrg	if test -n "$destfile"; then
6061357bfbb2Smrg	  $show "$install_prog $file $destfile"
6062357bfbb2Smrg	  $run eval "$install_prog $file $destfile" || exit $?
6063357bfbb2Smrg	fi
6064357bfbb2Smrg
6065357bfbb2Smrg	# Install the old object if enabled.
6066357bfbb2Smrg	if test "$build_old_libs" = yes; then
6067357bfbb2Smrg	  # Deduce the name of the old-style object file.
6068357bfbb2Smrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6069357bfbb2Smrg
6070357bfbb2Smrg	  $show "$install_prog $staticobj $staticdest"
6071357bfbb2Smrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6072357bfbb2Smrg	fi
6073357bfbb2Smrg	exit $EXIT_SUCCESS
6074357bfbb2Smrg	;;
6075357bfbb2Smrg
6076357bfbb2Smrg      *)
6077357bfbb2Smrg	# Figure out destination file name, if it wasn't already specified.
6078357bfbb2Smrg	if test -n "$destname"; then
6079357bfbb2Smrg	  destfile="$destdir/$destname"
6080357bfbb2Smrg	else
6081357bfbb2Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6082357bfbb2Smrg	  destfile="$destdir/$destfile"
6083357bfbb2Smrg	fi
6084357bfbb2Smrg
6085357bfbb2Smrg	# If the file is missing, and there is a .exe on the end, strip it
6086357bfbb2Smrg	# because it is most likely a libtool script we actually want to
6087357bfbb2Smrg	# install
6088357bfbb2Smrg	stripped_ext=""
6089357bfbb2Smrg	case $file in
6090357bfbb2Smrg	  *.exe)
6091357bfbb2Smrg	    if test ! -f "$file"; then
6092357bfbb2Smrg	      file=`$echo $file|${SED} 's,.exe$,,'`
6093357bfbb2Smrg	      stripped_ext=".exe"
6094357bfbb2Smrg	    fi
6095357bfbb2Smrg	    ;;
6096357bfbb2Smrg	esac
6097357bfbb2Smrg
6098357bfbb2Smrg	# Do a test to see if this is really a libtool program.
6099357bfbb2Smrg	case $host in
6100357bfbb2Smrg	*cygwin*|*mingw*)
6101357bfbb2Smrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6102357bfbb2Smrg	    ;;
6103357bfbb2Smrg	*)
6104357bfbb2Smrg	    wrapper=$file
6105357bfbb2Smrg	    ;;
6106357bfbb2Smrg	esac
6107357bfbb2Smrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6108357bfbb2Smrg	  notinst_deplibs=
6109357bfbb2Smrg	  relink_command=
6110357bfbb2Smrg
6111357bfbb2Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6112357bfbb2Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6113357bfbb2Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6114357bfbb2Smrg	  # `FILE.' does not work on cygwin managed mounts.
6115357bfbb2Smrg	  #
6116357bfbb2Smrg	  # If there is no directory component, then add one.
6117357bfbb2Smrg	  case $wrapper in
6118357bfbb2Smrg	  */* | *\\*) . ${wrapper} ;;
6119357bfbb2Smrg	  *) . ./${wrapper} ;;
6120357bfbb2Smrg	  esac
6121357bfbb2Smrg
6122357bfbb2Smrg	  # Check the variables that should have been set.
6123357bfbb2Smrg	  if test -z "$notinst_deplibs"; then
6124357bfbb2Smrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6125357bfbb2Smrg	    exit $EXIT_FAILURE
6126357bfbb2Smrg	  fi
6127357bfbb2Smrg
6128357bfbb2Smrg	  finalize=yes
6129357bfbb2Smrg	  for lib in $notinst_deplibs; do
6130357bfbb2Smrg	    # Check to see that each library is installed.
6131357bfbb2Smrg	    libdir=
6132357bfbb2Smrg	    if test -f "$lib"; then
6133357bfbb2Smrg	      # If there is no directory component, then add one.
6134357bfbb2Smrg	      case $lib in
6135357bfbb2Smrg	      */* | *\\*) . $lib ;;
6136357bfbb2Smrg	      *) . ./$lib ;;
6137357bfbb2Smrg	      esac
6138357bfbb2Smrg	    fi
6139357bfbb2Smrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6140357bfbb2Smrg	    if test -n "$libdir" && test ! -f "$libfile"; then
6141357bfbb2Smrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6142357bfbb2Smrg	      finalize=no
6143357bfbb2Smrg	    fi
6144357bfbb2Smrg	  done
6145357bfbb2Smrg
6146357bfbb2Smrg	  relink_command=
6147357bfbb2Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6148357bfbb2Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6149357bfbb2Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6150357bfbb2Smrg	  # `FILE.' does not work on cygwin managed mounts.
6151357bfbb2Smrg	  #
6152357bfbb2Smrg	  # If there is no directory component, then add one.
6153357bfbb2Smrg	  case $wrapper in
6154357bfbb2Smrg	  */* | *\\*) . ${wrapper} ;;
6155357bfbb2Smrg	  *) . ./${wrapper} ;;
6156357bfbb2Smrg	  esac
6157357bfbb2Smrg
6158357bfbb2Smrg	  outputname=
6159357bfbb2Smrg	  if test "$fast_install" = no && test -n "$relink_command"; then
6160357bfbb2Smrg	    if test "$finalize" = yes && test -z "$run"; then
6161357bfbb2Smrg	      tmpdir=`func_mktempdir`
6162357bfbb2Smrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6163357bfbb2Smrg	      outputname="$tmpdir/$file"
6164357bfbb2Smrg	      # Replace the output file specification.
6165357bfbb2Smrg	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6166357bfbb2Smrg
6167357bfbb2Smrg	      $show "$relink_command"
6168357bfbb2Smrg	      if $run eval "$relink_command"; then :
6169357bfbb2Smrg	      else
6170357bfbb2Smrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6171357bfbb2Smrg		${rm}r "$tmpdir"
6172357bfbb2Smrg		continue
6173357bfbb2Smrg	      fi
6174357bfbb2Smrg	      file="$outputname"
6175357bfbb2Smrg	    else
6176357bfbb2Smrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6177357bfbb2Smrg	    fi
6178357bfbb2Smrg	  else
6179357bfbb2Smrg	    # Install the binary that we compiled earlier.
6180357bfbb2Smrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6181357bfbb2Smrg	  fi
6182357bfbb2Smrg	fi
6183357bfbb2Smrg
6184357bfbb2Smrg	# remove .exe since cygwin /usr/bin/install will append another
6185357bfbb2Smrg	# one anyway 
6186357bfbb2Smrg	case $install_prog,$host in
6187357bfbb2Smrg	*/usr/bin/install*,*cygwin*)
6188357bfbb2Smrg	  case $file:$destfile in
6189357bfbb2Smrg	  *.exe:*.exe)
6190357bfbb2Smrg	    # this is ok
6191357bfbb2Smrg	    ;;
6192357bfbb2Smrg	  *.exe:*)
6193357bfbb2Smrg	    destfile=$destfile.exe
6194357bfbb2Smrg	    ;;
6195357bfbb2Smrg	  *:*.exe)
6196357bfbb2Smrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6197357bfbb2Smrg	    ;;
6198357bfbb2Smrg	  esac
6199357bfbb2Smrg	  ;;
6200357bfbb2Smrg	esac
6201357bfbb2Smrg	$show "$install_prog$stripme $file $destfile"
6202357bfbb2Smrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6203357bfbb2Smrg	test -n "$outputname" && ${rm}r "$tmpdir"
6204357bfbb2Smrg	;;
6205357bfbb2Smrg      esac
6206357bfbb2Smrg    done
6207357bfbb2Smrg
6208357bfbb2Smrg    for file in $staticlibs; do
6209357bfbb2Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6210357bfbb2Smrg
6211357bfbb2Smrg      # Set up the ranlib parameters.
6212357bfbb2Smrg      oldlib="$destdir/$name"
6213357bfbb2Smrg
6214357bfbb2Smrg      $show "$install_prog $file $oldlib"
6215357bfbb2Smrg      $run eval "$install_prog \$file \$oldlib" || exit $?
6216357bfbb2Smrg
6217357bfbb2Smrg      if test -n "$stripme" && test -n "$old_striplib"; then
6218357bfbb2Smrg	$show "$old_striplib $oldlib"
6219357bfbb2Smrg	$run eval "$old_striplib $oldlib" || exit $?
6220357bfbb2Smrg      fi
6221357bfbb2Smrg
6222357bfbb2Smrg      # Do each command in the postinstall commands.
6223357bfbb2Smrg      cmds=$old_postinstall_cmds
6224357bfbb2Smrg      save_ifs="$IFS"; IFS='~'
6225357bfbb2Smrg      for cmd in $cmds; do
6226357bfbb2Smrg	IFS="$save_ifs"
6227357bfbb2Smrg	eval cmd=\"$cmd\"
6228357bfbb2Smrg	$show "$cmd"
6229357bfbb2Smrg	$run eval "$cmd" || exit $?
6230357bfbb2Smrg      done
6231357bfbb2Smrg      IFS="$save_ifs"
6232357bfbb2Smrg    done
6233357bfbb2Smrg
6234357bfbb2Smrg    if test -n "$future_libdirs"; then
6235357bfbb2Smrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6236357bfbb2Smrg    fi
6237357bfbb2Smrg
6238357bfbb2Smrg    if test -n "$current_libdirs"; then
6239357bfbb2Smrg      # Maybe just do a dry run.
6240357bfbb2Smrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
6241357bfbb2Smrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6242357bfbb2Smrg    else
6243357bfbb2Smrg      exit $EXIT_SUCCESS
6244357bfbb2Smrg    fi
6245357bfbb2Smrg    ;;
6246357bfbb2Smrg
6247357bfbb2Smrg  # libtool finish mode
6248357bfbb2Smrg  finish)
6249357bfbb2Smrg    modename="$modename: finish"
6250357bfbb2Smrg    libdirs="$nonopt"
6251357bfbb2Smrg    admincmds=
6252357bfbb2Smrg
6253357bfbb2Smrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6254357bfbb2Smrg      for dir
6255357bfbb2Smrg      do
6256357bfbb2Smrg	libdirs="$libdirs $dir"
6257357bfbb2Smrg      done
6258357bfbb2Smrg
6259357bfbb2Smrg      for libdir in $libdirs; do
6260357bfbb2Smrg	if test -n "$finish_cmds"; then
6261357bfbb2Smrg	  # Do each command in the finish commands.
6262357bfbb2Smrg	  cmds=$finish_cmds
6263357bfbb2Smrg	  save_ifs="$IFS"; IFS='~'
6264357bfbb2Smrg	  for cmd in $cmds; do
6265357bfbb2Smrg	    IFS="$save_ifs"
6266357bfbb2Smrg	    eval cmd=\"$cmd\"
6267357bfbb2Smrg	    $show "$cmd"
6268357bfbb2Smrg	    $run eval "$cmd" || admincmds="$admincmds
6269357bfbb2Smrg       $cmd"
6270357bfbb2Smrg	  done
6271357bfbb2Smrg	  IFS="$save_ifs"
6272357bfbb2Smrg	fi
6273357bfbb2Smrg	if test -n "$finish_eval"; then
6274357bfbb2Smrg	  # Do the single finish_eval.
6275357bfbb2Smrg	  eval cmds=\"$finish_eval\"
6276357bfbb2Smrg	  $run eval "$cmds" || admincmds="$admincmds
6277357bfbb2Smrg       $cmds"
6278357bfbb2Smrg	fi
6279357bfbb2Smrg      done
6280357bfbb2Smrg    fi
6281357bfbb2Smrg
6282357bfbb2Smrg    # Exit here if they wanted silent mode.
6283357bfbb2Smrg    test "$show" = : && exit $EXIT_SUCCESS
6284357bfbb2Smrg
6285357bfbb2Smrg    exit $EXIT_SUCCESS
6286357bfbb2Smrg    ;;
6287357bfbb2Smrg
6288357bfbb2Smrg  # libtool execute mode
6289357bfbb2Smrg  execute)
6290357bfbb2Smrg    modename="$modename: execute"
6291357bfbb2Smrg
6292357bfbb2Smrg    # The first argument is the command name.
6293357bfbb2Smrg    cmd="$nonopt"
6294357bfbb2Smrg    if test -z "$cmd"; then
6295357bfbb2Smrg      $echo "$modename: you must specify a COMMAND" 1>&2
6296357bfbb2Smrg      $echo "$help"
6297357bfbb2Smrg      exit $EXIT_FAILURE
6298357bfbb2Smrg    fi
6299357bfbb2Smrg
6300357bfbb2Smrg    # Handle -dlopen flags immediately.
6301357bfbb2Smrg    for file in $execute_dlfiles; do
6302357bfbb2Smrg      if test ! -f "$file"; then
6303357bfbb2Smrg	$echo "$modename: \`$file' is not a file" 1>&2
6304357bfbb2Smrg	$echo "$help" 1>&2
6305357bfbb2Smrg	exit $EXIT_FAILURE
6306357bfbb2Smrg      fi
6307357bfbb2Smrg
6308357bfbb2Smrg      dir=
6309357bfbb2Smrg      case $file in
6310357bfbb2Smrg      *.la)
6311357bfbb2Smrg	# Check to see that this really is a libtool archive.
6312357bfbb2Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6313357bfbb2Smrg	else
6314357bfbb2Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6315357bfbb2Smrg	  $echo "$help" 1>&2
6316357bfbb2Smrg	  exit $EXIT_FAILURE
6317357bfbb2Smrg	fi
6318357bfbb2Smrg
6319357bfbb2Smrg	# Read the libtool library.
6320357bfbb2Smrg	dlname=
6321357bfbb2Smrg	library_names=
6322357bfbb2Smrg
6323357bfbb2Smrg	# If there is no directory component, then add one.
6324357bfbb2Smrg	case $file in
6325357bfbb2Smrg	*/* | *\\*) . $file ;;
6326357bfbb2Smrg	*) . ./$file ;;
6327357bfbb2Smrg	esac
6328357bfbb2Smrg
6329357bfbb2Smrg	# Skip this library if it cannot be dlopened.
6330357bfbb2Smrg	if test -z "$dlname"; then
6331357bfbb2Smrg	  # Warn if it was a shared library.
6332357bfbb2Smrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6333357bfbb2Smrg	  continue
6334357bfbb2Smrg	fi
6335357bfbb2Smrg
6336357bfbb2Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6337357bfbb2Smrg	test "X$dir" = "X$file" && dir=.
6338357bfbb2Smrg
6339357bfbb2Smrg	if test -f "$dir/$objdir/$dlname"; then
6340357bfbb2Smrg	  dir="$dir/$objdir"
6341357bfbb2Smrg	else
6342357bfbb2Smrg	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6343357bfbb2Smrg	  exit $EXIT_FAILURE
6344357bfbb2Smrg	fi
6345357bfbb2Smrg	;;
6346357bfbb2Smrg
6347357bfbb2Smrg      *.lo)
6348357bfbb2Smrg	# Just add the directory containing the .lo file.
6349357bfbb2Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6350357bfbb2Smrg	test "X$dir" = "X$file" && dir=.
6351357bfbb2Smrg	;;
6352357bfbb2Smrg
6353357bfbb2Smrg      *)
6354357bfbb2Smrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6355357bfbb2Smrg	continue
6356357bfbb2Smrg	;;
6357357bfbb2Smrg      esac
6358357bfbb2Smrg
6359357bfbb2Smrg      # Get the absolute pathname.
6360357bfbb2Smrg      absdir=`cd "$dir" && pwd`
6361357bfbb2Smrg      test -n "$absdir" && dir="$absdir"
6362357bfbb2Smrg
6363357bfbb2Smrg      # Now add the directory to shlibpath_var.
6364357bfbb2Smrg      if eval "test -z \"\$$shlibpath_var\""; then
6365357bfbb2Smrg	eval "$shlibpath_var=\"\$dir\""
6366357bfbb2Smrg      else
6367357bfbb2Smrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6368357bfbb2Smrg      fi
6369357bfbb2Smrg    done
6370357bfbb2Smrg
6371357bfbb2Smrg    # This variable tells wrapper scripts just to set shlibpath_var
6372357bfbb2Smrg    # rather than running their programs.
6373357bfbb2Smrg    libtool_execute_magic="$magic"
6374357bfbb2Smrg
6375357bfbb2Smrg    # Check if any of the arguments is a wrapper script.
6376357bfbb2Smrg    args=
6377357bfbb2Smrg    for file
6378357bfbb2Smrg    do
6379357bfbb2Smrg      case $file in
6380357bfbb2Smrg      -*) ;;
6381357bfbb2Smrg      *)
6382357bfbb2Smrg	# Do a test to see if this is really a libtool program.
6383357bfbb2Smrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6384357bfbb2Smrg	  # If there is no directory component, then add one.
6385357bfbb2Smrg	  case $file in
6386357bfbb2Smrg	  */* | *\\*) . $file ;;
6387357bfbb2Smrg	  *) . ./$file ;;
6388357bfbb2Smrg	  esac
6389357bfbb2Smrg
6390357bfbb2Smrg	  # Transform arg to wrapped name.
6391357bfbb2Smrg	  file="$progdir/$program"
6392357bfbb2Smrg	fi
6393357bfbb2Smrg	;;
6394357bfbb2Smrg      esac
6395357bfbb2Smrg      # Quote arguments (to preserve shell metacharacters).
6396357bfbb2Smrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6397357bfbb2Smrg      args="$args \"$file\""
6398357bfbb2Smrg    done
6399357bfbb2Smrg
6400357bfbb2Smrg    if test -z "$run"; then
6401357bfbb2Smrg      if test -n "$shlibpath_var"; then
6402357bfbb2Smrg	# Export the shlibpath_var.
6403357bfbb2Smrg	eval "export $shlibpath_var"
6404357bfbb2Smrg      fi
6405357bfbb2Smrg
6406357bfbb2Smrg      # Restore saved environment variables
6407357bfbb2Smrg      if test "${save_LC_ALL+set}" = set; then
6408357bfbb2Smrg	LC_ALL="$save_LC_ALL"; export LC_ALL
6409357bfbb2Smrg      fi
6410357bfbb2Smrg      if test "${save_LANG+set}" = set; then
6411357bfbb2Smrg	LANG="$save_LANG"; export LANG
6412357bfbb2Smrg      fi
6413357bfbb2Smrg
6414357bfbb2Smrg      # Now prepare to actually exec the command.
6415357bfbb2Smrg      exec_cmd="\$cmd$args"
6416357bfbb2Smrg    else
6417357bfbb2Smrg      # Display what would be done.
6418357bfbb2Smrg      if test -n "$shlibpath_var"; then
6419357bfbb2Smrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6420357bfbb2Smrg	$echo "export $shlibpath_var"
6421357bfbb2Smrg      fi
6422357bfbb2Smrg      $echo "$cmd$args"
6423357bfbb2Smrg      exit $EXIT_SUCCESS
6424357bfbb2Smrg    fi
6425357bfbb2Smrg    ;;
6426357bfbb2Smrg
6427357bfbb2Smrg  # libtool clean and uninstall mode
6428357bfbb2Smrg  clean | uninstall)
6429357bfbb2Smrg    modename="$modename: $mode"
6430357bfbb2Smrg    rm="$nonopt"
6431357bfbb2Smrg    files=
6432357bfbb2Smrg    rmforce=
6433357bfbb2Smrg    exit_status=0
6434357bfbb2Smrg
6435357bfbb2Smrg    # This variable tells wrapper scripts just to set variables rather
6436357bfbb2Smrg    # than running their programs.
6437357bfbb2Smrg    libtool_install_magic="$magic"
6438357bfbb2Smrg
6439357bfbb2Smrg    for arg
6440357bfbb2Smrg    do
6441357bfbb2Smrg      case $arg in
6442357bfbb2Smrg      -f) rm="$rm $arg"; rmforce=yes ;;
6443357bfbb2Smrg      -*) rm="$rm $arg" ;;
6444357bfbb2Smrg      *) files="$files $arg" ;;
6445357bfbb2Smrg      esac
6446357bfbb2Smrg    done
6447357bfbb2Smrg
6448357bfbb2Smrg    if test -z "$rm"; then
6449357bfbb2Smrg      $echo "$modename: you must specify an RM program" 1>&2
6450357bfbb2Smrg      $echo "$help" 1>&2
6451357bfbb2Smrg      exit $EXIT_FAILURE
6452357bfbb2Smrg    fi
6453357bfbb2Smrg
6454357bfbb2Smrg    rmdirs=
6455357bfbb2Smrg
6456357bfbb2Smrg    origobjdir="$objdir"
6457357bfbb2Smrg    for file in $files; do
6458357bfbb2Smrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6459357bfbb2Smrg      if test "X$dir" = "X$file"; then
6460357bfbb2Smrg	dir=.
6461357bfbb2Smrg	objdir="$origobjdir"
6462357bfbb2Smrg      else
6463357bfbb2Smrg	objdir="$dir/$origobjdir"
6464357bfbb2Smrg      fi
6465357bfbb2Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6466357bfbb2Smrg      test "$mode" = uninstall && objdir="$dir"
6467357bfbb2Smrg
6468357bfbb2Smrg      # Remember objdir for removal later, being careful to avoid duplicates
6469357bfbb2Smrg      if test "$mode" = clean; then
6470357bfbb2Smrg	case " $rmdirs " in
6471357bfbb2Smrg	  *" $objdir "*) ;;
6472357bfbb2Smrg	  *) rmdirs="$rmdirs $objdir" ;;
6473357bfbb2Smrg	esac
6474357bfbb2Smrg      fi
6475357bfbb2Smrg
6476357bfbb2Smrg      # Don't error if the file doesn't exist and rm -f was used.
6477357bfbb2Smrg      if (test -L "$file") >/dev/null 2>&1 \
6478357bfbb2Smrg	|| (test -h "$file") >/dev/null 2>&1 \
6479357bfbb2Smrg	|| test -f "$file"; then
6480357bfbb2Smrg	:
6481357bfbb2Smrg      elif test -d "$file"; then
6482357bfbb2Smrg	exit_status=1
6483357bfbb2Smrg	continue
6484357bfbb2Smrg      elif test "$rmforce" = yes; then
6485357bfbb2Smrg	continue
6486357bfbb2Smrg      fi
6487357bfbb2Smrg
6488357bfbb2Smrg      rmfiles="$file"
6489357bfbb2Smrg
6490357bfbb2Smrg      case $name in
6491357bfbb2Smrg      *.la)
6492357bfbb2Smrg	# Possibly a libtool archive, so verify it.
6493357bfbb2Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6494357bfbb2Smrg	  . $dir/$name
6495357bfbb2Smrg
6496357bfbb2Smrg	  # Delete the libtool libraries and symlinks.
6497357bfbb2Smrg	  for n in $library_names; do
6498357bfbb2Smrg	    rmfiles="$rmfiles $objdir/$n"
6499357bfbb2Smrg	  done
6500357bfbb2Smrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6501357bfbb2Smrg
6502357bfbb2Smrg	  case "$mode" in
6503357bfbb2Smrg	  clean)
6504357bfbb2Smrg	    case "  $library_names " in
6505357bfbb2Smrg	    # "  " in the beginning catches empty $dlname
6506357bfbb2Smrg	    *" $dlname "*) ;;
6507357bfbb2Smrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6508357bfbb2Smrg	    esac
6509357bfbb2Smrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6510357bfbb2Smrg	    ;;
6511357bfbb2Smrg	  uninstall)
6512357bfbb2Smrg	    if test -n "$library_names"; then
6513357bfbb2Smrg	      # Do each command in the postuninstall commands.
6514357bfbb2Smrg	      cmds=$postuninstall_cmds
6515357bfbb2Smrg	      save_ifs="$IFS"; IFS='~'
6516357bfbb2Smrg	      for cmd in $cmds; do
6517357bfbb2Smrg		IFS="$save_ifs"
6518357bfbb2Smrg		eval cmd=\"$cmd\"
6519357bfbb2Smrg		$show "$cmd"
6520357bfbb2Smrg		$run eval "$cmd"
6521357bfbb2Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6522357bfbb2Smrg		  exit_status=1
6523357bfbb2Smrg		fi
6524357bfbb2Smrg	      done
6525357bfbb2Smrg	      IFS="$save_ifs"
6526357bfbb2Smrg	    fi
6527357bfbb2Smrg
6528357bfbb2Smrg	    if test -n "$old_library"; then
6529357bfbb2Smrg	      # Do each command in the old_postuninstall commands.
6530357bfbb2Smrg	      cmds=$old_postuninstall_cmds
6531357bfbb2Smrg	      save_ifs="$IFS"; IFS='~'
6532357bfbb2Smrg	      for cmd in $cmds; do
6533357bfbb2Smrg		IFS="$save_ifs"
6534357bfbb2Smrg		eval cmd=\"$cmd\"
6535357bfbb2Smrg		$show "$cmd"
6536357bfbb2Smrg		$run eval "$cmd"
6537357bfbb2Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6538357bfbb2Smrg		  exit_status=1
6539357bfbb2Smrg		fi
6540357bfbb2Smrg	      done
6541357bfbb2Smrg	      IFS="$save_ifs"
6542357bfbb2Smrg	    fi
6543357bfbb2Smrg	    # FIXME: should reinstall the best remaining shared library.
6544357bfbb2Smrg	    ;;
6545357bfbb2Smrg	  esac
6546357bfbb2Smrg	fi
6547357bfbb2Smrg	;;
6548357bfbb2Smrg
6549357bfbb2Smrg      *.lo)
6550357bfbb2Smrg	# Possibly a libtool object, so verify it.
6551357bfbb2Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6552357bfbb2Smrg
6553357bfbb2Smrg	  # Read the .lo file
6554357bfbb2Smrg	  . $dir/$name
6555357bfbb2Smrg
6556357bfbb2Smrg	  # Add PIC object to the list of files to remove.
6557357bfbb2Smrg	  if test -n "$pic_object" \
6558357bfbb2Smrg	     && test "$pic_object" != none; then
6559357bfbb2Smrg	    rmfiles="$rmfiles $dir/$pic_object"
6560357bfbb2Smrg	  fi
6561357bfbb2Smrg
6562357bfbb2Smrg	  # Add non-PIC object to the list of files to remove.
6563357bfbb2Smrg	  if test -n "$non_pic_object" \
6564357bfbb2Smrg	     && test "$non_pic_object" != none; then
6565357bfbb2Smrg	    rmfiles="$rmfiles $dir/$non_pic_object"
6566357bfbb2Smrg	  fi
6567357bfbb2Smrg	fi
6568357bfbb2Smrg	;;
6569357bfbb2Smrg
6570357bfbb2Smrg      *)
6571357bfbb2Smrg	if test "$mode" = clean ; then
6572357bfbb2Smrg	  noexename=$name
6573357bfbb2Smrg	  case $file in
6574357bfbb2Smrg	  *.exe)
6575357bfbb2Smrg	    file=`$echo $file|${SED} 's,.exe$,,'`
6576357bfbb2Smrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6577357bfbb2Smrg	    # $file with .exe has already been added to rmfiles,
6578357bfbb2Smrg	    # add $file without .exe
6579357bfbb2Smrg	    rmfiles="$rmfiles $file"
6580357bfbb2Smrg	    ;;
6581357bfbb2Smrg	  esac
6582357bfbb2Smrg	  # Do a test to see if this is a libtool program.
6583357bfbb2Smrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6584357bfbb2Smrg	    relink_command=
6585357bfbb2Smrg	    . $dir/$noexename
6586357bfbb2Smrg
6587357bfbb2Smrg	    # note $name still contains .exe if it was in $file originally
6588357bfbb2Smrg	    # as does the version of $file that was added into $rmfiles
6589357bfbb2Smrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6590357bfbb2Smrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
6591357bfbb2Smrg	      rmfiles="$rmfiles $objdir/lt-$name"
6592357bfbb2Smrg	    fi
6593357bfbb2Smrg	    if test "X$noexename" != "X$name" ; then
6594357bfbb2Smrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6595357bfbb2Smrg	    fi
6596357bfbb2Smrg	  fi
6597357bfbb2Smrg	fi
6598357bfbb2Smrg	;;
6599357bfbb2Smrg      esac
6600357bfbb2Smrg      $show "$rm $rmfiles"
6601357bfbb2Smrg      $run $rm $rmfiles || exit_status=1
6602357bfbb2Smrg    done
6603357bfbb2Smrg    objdir="$origobjdir"
6604357bfbb2Smrg
6605357bfbb2Smrg    # Try to remove the ${objdir}s in the directories where we deleted files
6606357bfbb2Smrg    for dir in $rmdirs; do
6607357bfbb2Smrg      if test -d "$dir"; then
6608357bfbb2Smrg	$show "rmdir $dir"
6609357bfbb2Smrg	$run rmdir $dir >/dev/null 2>&1
6610357bfbb2Smrg      fi
6611357bfbb2Smrg    done
6612357bfbb2Smrg
6613357bfbb2Smrg    exit $exit_status
6614357bfbb2Smrg    ;;
6615357bfbb2Smrg
6616357bfbb2Smrg  "")
6617357bfbb2Smrg    $echo "$modename: you must specify a MODE" 1>&2
6618357bfbb2Smrg    $echo "$generic_help" 1>&2
6619357bfbb2Smrg    exit $EXIT_FAILURE
6620357bfbb2Smrg    ;;
6621357bfbb2Smrg  esac
6622357bfbb2Smrg
6623357bfbb2Smrg  if test -z "$exec_cmd"; then
6624357bfbb2Smrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6625357bfbb2Smrg    $echo "$generic_help" 1>&2
6626357bfbb2Smrg    exit $EXIT_FAILURE
6627357bfbb2Smrg  fi
6628357bfbb2Smrgfi # test -z "$show_help"
6629357bfbb2Smrg
6630357bfbb2Smrgif test -n "$exec_cmd"; then
6631357bfbb2Smrg  eval exec $exec_cmd
6632357bfbb2Smrg  exit $EXIT_FAILURE
6633357bfbb2Smrgfi
6634357bfbb2Smrg
6635357bfbb2Smrg# We need to display help for each of the modes.
6636357bfbb2Smrgcase $mode in
6637357bfbb2Smrg"") $echo \
6638357bfbb2Smrg"Usage: $modename [OPTION]... [MODE-ARG]...
6639357bfbb2Smrg
6640357bfbb2SmrgProvide generalized library-building support services.
6641357bfbb2Smrg
6642357bfbb2Smrg    --config          show all configuration variables
6643357bfbb2Smrg    --debug           enable verbose shell tracing
6644357bfbb2Smrg-n, --dry-run         display commands without modifying any files
6645357bfbb2Smrg    --features        display basic configuration information and exit
6646357bfbb2Smrg    --finish          same as \`--mode=finish'
6647357bfbb2Smrg    --help            display this help message and exit
6648357bfbb2Smrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6649357bfbb2Smrg    --quiet           same as \`--silent'
6650357bfbb2Smrg    --silent          don't print informational messages
6651357bfbb2Smrg    --tag=TAG         use configuration variables from tag TAG
6652357bfbb2Smrg    --version         print version information
6653357bfbb2Smrg
6654357bfbb2SmrgMODE must be one of the following:
6655357bfbb2Smrg
6656357bfbb2Smrg      clean           remove files from the build directory
6657357bfbb2Smrg      compile         compile a source file into a libtool object
6658357bfbb2Smrg      execute         automatically set library path, then run a program
6659357bfbb2Smrg      finish          complete the installation of libtool libraries
6660357bfbb2Smrg      install         install libraries or executables
6661357bfbb2Smrg      link            create a library or an executable
6662357bfbb2Smrg      uninstall       remove libraries from an installed directory
6663357bfbb2Smrg
6664357bfbb2SmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6665357bfbb2Smrga more detailed description of MODE.
6666357bfbb2Smrg
6667357bfbb2SmrgReport bugs to <bug-libtool@gnu.org>."
6668357bfbb2Smrg  exit $EXIT_SUCCESS
6669357bfbb2Smrg  ;;
6670357bfbb2Smrg
6671357bfbb2Smrgclean)
6672357bfbb2Smrg  $echo \
6673357bfbb2Smrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6674357bfbb2Smrg
6675357bfbb2SmrgRemove files from the build directory.
6676357bfbb2Smrg
6677357bfbb2SmrgRM is the name of the program to use to delete files associated with each FILE
6678357bfbb2Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6679357bfbb2Smrgto RM.
6680357bfbb2Smrg
6681357bfbb2SmrgIf FILE is a libtool library, object or program, all the files associated
6682357bfbb2Smrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6683357bfbb2Smrg  ;;
6684357bfbb2Smrg
6685357bfbb2Smrgcompile)
6686357bfbb2Smrg  $echo \
6687357bfbb2Smrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6688357bfbb2Smrg
6689357bfbb2SmrgCompile a source file into a libtool library object.
6690357bfbb2Smrg
6691357bfbb2SmrgThis mode accepts the following additional options:
6692357bfbb2Smrg
6693357bfbb2Smrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6694357bfbb2Smrg  -prefer-pic       try to building PIC objects only
6695357bfbb2Smrg  -prefer-non-pic   try to building non-PIC objects only
6696357bfbb2Smrg  -static           always build a \`.o' file suitable for static linking
6697357bfbb2Smrg
6698357bfbb2SmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6699357bfbb2Smrgfrom the given SOURCEFILE.
6700357bfbb2Smrg
6701357bfbb2SmrgThe output file name is determined by removing the directory component from
6702357bfbb2SmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
6703357bfbb2Smrglibrary object suffix, \`.lo'."
6704357bfbb2Smrg  ;;
6705357bfbb2Smrg
6706357bfbb2Smrgexecute)
6707357bfbb2Smrg  $echo \
6708357bfbb2Smrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6709357bfbb2Smrg
6710357bfbb2SmrgAutomatically set library path, then run a program.
6711357bfbb2Smrg
6712357bfbb2SmrgThis mode accepts the following additional options:
6713357bfbb2Smrg
6714357bfbb2Smrg  -dlopen FILE      add the directory containing FILE to the library path
6715357bfbb2Smrg
6716357bfbb2SmrgThis mode sets the library path environment variable according to \`-dlopen'
6717357bfbb2Smrgflags.
6718357bfbb2Smrg
6719357bfbb2SmrgIf any of the ARGS are libtool executable wrappers, then they are translated
6720357bfbb2Smrginto their corresponding uninstalled binary, and any of their required library
6721357bfbb2Smrgdirectories are added to the library path.
6722357bfbb2Smrg
6723357bfbb2SmrgThen, COMMAND is executed, with ARGS as arguments."
6724357bfbb2Smrg  ;;
6725357bfbb2Smrg
6726357bfbb2Smrgfinish)
6727357bfbb2Smrg  $echo \
6728357bfbb2Smrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6729357bfbb2Smrg
6730357bfbb2SmrgComplete the installation of libtool libraries.
6731357bfbb2Smrg
6732357bfbb2SmrgEach LIBDIR is a directory that contains libtool libraries.
6733357bfbb2Smrg
6734357bfbb2SmrgThe commands that this mode executes may require superuser privileges.  Use
6735357bfbb2Smrgthe \`--dry-run' option if you just want to see what would be executed."
6736357bfbb2Smrg  ;;
6737357bfbb2Smrg
6738357bfbb2Smrginstall)
6739357bfbb2Smrg  $echo \
6740357bfbb2Smrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6741357bfbb2Smrg
6742357bfbb2SmrgInstall executables or libraries.
6743357bfbb2Smrg
6744357bfbb2SmrgINSTALL-COMMAND is the installation command.  The first component should be
6745357bfbb2Smrgeither the \`install' or \`cp' program.
6746357bfbb2Smrg
6747357bfbb2SmrgThe rest of the components are interpreted as arguments to that command (only
6748357bfbb2SmrgBSD-compatible install options are recognized)."
6749357bfbb2Smrg  ;;
6750357bfbb2Smrg
6751357bfbb2Smrglink)
6752357bfbb2Smrg  $echo \
6753357bfbb2Smrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6754357bfbb2Smrg
6755357bfbb2SmrgLink object files or libraries together to form another library, or to
6756357bfbb2Smrgcreate an executable program.
6757357bfbb2Smrg
6758357bfbb2SmrgLINK-COMMAND is a command using the C compiler that you would use to create
6759357bfbb2Smrga program from several object files.
6760357bfbb2Smrg
6761357bfbb2SmrgThe following components of LINK-COMMAND are treated specially:
6762357bfbb2Smrg
6763357bfbb2Smrg  -all-static       do not do any dynamic linking at all
6764357bfbb2Smrg  -avoid-version    do not add a version suffix if possible
6765357bfbb2Smrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6766357bfbb2Smrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6767357bfbb2Smrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6768357bfbb2Smrg  -export-symbols SYMFILE
6769357bfbb2Smrg		    try to export only the symbols listed in SYMFILE
6770357bfbb2Smrg  -export-symbols-regex REGEX
6771357bfbb2Smrg		    try to export only the symbols matching REGEX
6772357bfbb2Smrg  -LLIBDIR          search LIBDIR for required installed libraries
6773357bfbb2Smrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
6774357bfbb2Smrg  -module           build a library that can dlopened
6775357bfbb2Smrg  -no-fast-install  disable the fast-install mode
6776357bfbb2Smrg  -no-install       link a not-installable executable
6777357bfbb2Smrg  -no-undefined     declare that a library does not refer to external symbols
6778357bfbb2Smrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6779357bfbb2Smrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
6780357bfbb2Smrg  -precious-files-regex REGEX
6781357bfbb2Smrg                    don't remove output files matching REGEX
6782357bfbb2Smrg  -release RELEASE  specify package release information
6783357bfbb2Smrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6784357bfbb2Smrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6785357bfbb2Smrg  -static           do not do any dynamic linking of libtool libraries
6786357bfbb2Smrg  -version-info CURRENT[:REVISION[:AGE]]
6787357bfbb2Smrg		    specify library version info [each variable defaults to 0]
6788357bfbb2Smrg
6789357bfbb2SmrgAll other options (arguments beginning with \`-') are ignored.
6790357bfbb2Smrg
6791357bfbb2SmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
6792357bfbb2Smrgtreated as uninstalled libtool libraries, other files are standard or library
6793357bfbb2Smrgobject files.
6794357bfbb2Smrg
6795357bfbb2SmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6796357bfbb2Smrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
6797357bfbb2Smrgrequired, except when creating a convenience library.
6798357bfbb2Smrg
6799357bfbb2SmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6800357bfbb2Smrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
6801357bfbb2Smrg
6802357bfbb2SmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6803357bfbb2Smrgis created, otherwise an executable program is created."
6804357bfbb2Smrg  ;;
6805357bfbb2Smrg
6806357bfbb2Smrguninstall)
6807357bfbb2Smrg  $echo \
6808357bfbb2Smrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6809357bfbb2Smrg
6810357bfbb2SmrgRemove libraries from an installation directory.
6811357bfbb2Smrg
6812357bfbb2SmrgRM is the name of the program to use to delete files associated with each FILE
6813357bfbb2Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6814357bfbb2Smrgto RM.
6815357bfbb2Smrg
6816357bfbb2SmrgIf FILE is a libtool library, all the files associated with it are deleted.
6817357bfbb2SmrgOtherwise, only FILE itself is deleted using RM."
6818357bfbb2Smrg  ;;
6819357bfbb2Smrg
6820357bfbb2Smrg*)
6821357bfbb2Smrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6822357bfbb2Smrg  $echo "$help" 1>&2
6823357bfbb2Smrg  exit $EXIT_FAILURE
6824357bfbb2Smrg  ;;
6825357bfbb2Smrgesac
6826357bfbb2Smrg
6827357bfbb2Smrg$echo
6828357bfbb2Smrg$echo "Try \`$modename --help' for more information about other modes."
6829357bfbb2Smrg
6830357bfbb2Smrgexit $?
6831357bfbb2Smrg
6832357bfbb2Smrg# The TAGs below are defined such that we never get into a situation
6833357bfbb2Smrg# in which we disable both kinds of libraries.  Given conflicting
6834357bfbb2Smrg# choices, we go for a static library, that is the most portable,
6835357bfbb2Smrg# since we can't tell whether shared libraries were disabled because
6836357bfbb2Smrg# the user asked for that or because the platform doesn't support
6837357bfbb2Smrg# them.  This is particularly important on AIX, because we don't
6838357bfbb2Smrg# support having both static and shared libraries enabled at the same
6839357bfbb2Smrg# time on that platform, so we default to a shared-only configuration.
6840357bfbb2Smrg# If a disable-shared tag is given, we'll fallback to a static-only
6841357bfbb2Smrg# configuration.  But we'll never go from static-only to shared-only.
6842357bfbb2Smrg
6843357bfbb2Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6844357bfbb2Smrgdisable_libs=shared
6845357bfbb2Smrg# ### END LIBTOOL TAG CONFIG: disable-shared
6846357bfbb2Smrg
6847357bfbb2Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6848357bfbb2Smrgdisable_libs=static
6849357bfbb2Smrg# ### END LIBTOOL TAG CONFIG: disable-static
6850357bfbb2Smrg
6851357bfbb2Smrg# Local Variables:
6852357bfbb2Smrg# mode:shell-script
6853357bfbb2Smrg# sh-indentation:2
6854357bfbb2Smrg# End:
6855