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