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