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