ltmain.sh revision 266e564d
1266e564dSmrg# ltmain.sh - Provide generalized library-building support services.
2266e564dSmrg# NOTE: Changing this file will not affect anything until you rerun configure.
3266e564dSmrg#
4266e564dSmrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5266e564dSmrg# Free Software Foundation, Inc.
6266e564dSmrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7266e564dSmrg#
8266e564dSmrg# This program is free software; you can redistribute it and/or modify
9266e564dSmrg# it under the terms of the GNU General Public License as published by
10266e564dSmrg# the Free Software Foundation; either version 2 of the License, or
11266e564dSmrg# (at your option) any later version.
12266e564dSmrg#
13266e564dSmrg# This program is distributed in the hope that it will be useful, but
14266e564dSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
15266e564dSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16266e564dSmrg# General Public License for more details.
17266e564dSmrg#
18266e564dSmrg# You should have received a copy of the GNU General Public License
19266e564dSmrg# along with this program; if not, write to the Free Software
20266e564dSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21266e564dSmrg#
22266e564dSmrg# As a special exception to the GNU General Public License, if you
23266e564dSmrg# distribute this file as part of a program that contains a
24266e564dSmrg# configuration script generated by Autoconf, you may include it under
25266e564dSmrg# the same distribution terms that you use for the rest of that program.
26266e564dSmrg
27266e564dSmrgbasename="s,^.*/,,g"
28266e564dSmrg
29266e564dSmrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30266e564dSmrg# is ksh but when the shell is invoked as "sh" and the current value of
31266e564dSmrg# the _XPG environment variable is not equal to 1 (one), the special
32266e564dSmrg# positional parameter $0, within a function call, is the name of the
33266e564dSmrg# function.
34266e564dSmrgprogpath="$0"
35266e564dSmrg
36266e564dSmrg# The name of this program:
37266e564dSmrgprogname=`echo "$progpath" | $SED $basename`
38266e564dSmrgmodename="$progname"
39266e564dSmrg
40266e564dSmrg# Global variables:
41266e564dSmrgEXIT_SUCCESS=0
42266e564dSmrgEXIT_FAILURE=1
43266e564dSmrg
44266e564dSmrgPROGRAM=ltmain.sh
45266e564dSmrgPACKAGE=libtool
46266e564dSmrgVERSION=1.5.22
47266e564dSmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
48266e564dSmrg
49266e564dSmrg# See if we are running on zsh, and set the options which allow our
50266e564dSmrg# commands through without removal of \ escapes.
51266e564dSmrgif test -n "${ZSH_VERSION+set}" ; then
52266e564dSmrg  setopt NO_GLOB_SUBST
53266e564dSmrgfi
54266e564dSmrg
55266e564dSmrg# Check that we have a working $echo.
56266e564dSmrgif test "X$1" = X--no-reexec; then
57266e564dSmrg  # Discard the --no-reexec flag, and continue.
58266e564dSmrg  shift
59266e564dSmrgelif test "X$1" = X--fallback-echo; then
60266e564dSmrg  # Avoid inline document here, it may be left over
61266e564dSmrg  :
62266e564dSmrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63266e564dSmrg  # Yippee, $echo works!
64266e564dSmrg  :
65266e564dSmrgelse
66266e564dSmrg  # Restart under the correct shell, and then maybe $echo will work.
67266e564dSmrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68266e564dSmrgfi
69266e564dSmrg
70266e564dSmrgif test "X$1" = X--fallback-echo; then
71266e564dSmrg  # used as fallback echo
72266e564dSmrg  shift
73266e564dSmrg  cat <<EOF
74266e564dSmrg$*
75266e564dSmrgEOF
76266e564dSmrg  exit $EXIT_SUCCESS
77266e564dSmrgfi
78266e564dSmrg
79266e564dSmrgdefault_mode=
80266e564dSmrghelp="Try \`$progname --help' for more information."
81266e564dSmrgmagic="%%%MAGIC variable%%%"
82266e564dSmrgmkdir="mkdir"
83266e564dSmrgmv="mv -f"
84266e564dSmrgrm="rm -f"
85266e564dSmrg
86266e564dSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
87266e564dSmrg# metacharacters that are still active within double-quoted strings.
88266e564dSmrgXsed="${SED}"' -e 1s/^X//'
89266e564dSmrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90266e564dSmrg# test EBCDIC or ASCII
91266e564dSmrgcase `echo X|tr X '\101'` in
92266e564dSmrg A) # ASCII based system
93266e564dSmrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94266e564dSmrg  SP2NL='tr \040 \012'
95266e564dSmrg  NL2SP='tr \015\012 \040\040'
96266e564dSmrg  ;;
97266e564dSmrg *) # EBCDIC based system
98266e564dSmrg  SP2NL='tr \100 \n'
99266e564dSmrg  NL2SP='tr \r\n \100\100'
100266e564dSmrg  ;;
101266e564dSmrgesac
102266e564dSmrg
103266e564dSmrg# NLS nuisances.
104266e564dSmrg# Only set LANG and LC_ALL to C if already set.
105266e564dSmrg# These must not be set unconditionally because not all systems understand
106266e564dSmrg# e.g. LANG=C (notably SCO).
107266e564dSmrg# We save the old values to restore during execute mode.
108266e564dSmrgif test "${LC_ALL+set}" = set; then
109266e564dSmrg  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110266e564dSmrgfi
111266e564dSmrgif test "${LANG+set}" = set; then
112266e564dSmrg  save_LANG="$LANG"; LANG=C; export LANG
113266e564dSmrgfi
114266e564dSmrg
115266e564dSmrg# Make sure IFS has a sensible default
116266e564dSmrglt_nl='
117266e564dSmrg'
118266e564dSmrgIFS=" 	$lt_nl"
119266e564dSmrg
120266e564dSmrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121266e564dSmrg  $echo "$modename: not configured to build any kind of library" 1>&2
122266e564dSmrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
123266e564dSmrg  exit $EXIT_FAILURE
124266e564dSmrgfi
125266e564dSmrg
126266e564dSmrg# Global variables.
127266e564dSmrgmode=$default_mode
128266e564dSmrgnonopt=
129266e564dSmrgprev=
130266e564dSmrgprevopt=
131266e564dSmrgrun=
132266e564dSmrgshow="$echo"
133266e564dSmrgshow_help=
134266e564dSmrgexecute_dlfiles=
135266e564dSmrgduplicate_deps=no
136266e564dSmrgpreserve_args=
137266e564dSmrglo2o="s/\\.lo\$/.${objext}/"
138266e564dSmrgo2lo="s/\\.${objext}\$/.lo/"
139266e564dSmrg
140266e564dSmrg#####################################
141266e564dSmrg# Shell function definitions:
142266e564dSmrg# This seems to be the best place for them
143266e564dSmrg
144266e564dSmrg# func_mktempdir [string]
145266e564dSmrg# Make a temporary directory that won't clash with other running
146266e564dSmrg# libtool processes, and avoids race conditions if possible.  If
147266e564dSmrg# given, STRING is the basename for that directory.
148266e564dSmrgfunc_mktempdir ()
149266e564dSmrg{
150266e564dSmrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
151266e564dSmrg
152266e564dSmrg    if test "$run" = ":"; then
153266e564dSmrg      # Return a directory name, but don't create it in dry-run mode
154266e564dSmrg      my_tmpdir="${my_template}-$$"
155266e564dSmrg    else
156266e564dSmrg
157266e564dSmrg      # If mktemp works, use that first and foremost
158266e564dSmrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
159266e564dSmrg
160266e564dSmrg      if test ! -d "$my_tmpdir"; then
161266e564dSmrg	# Failing that, at least try and use $RANDOM to avoid a race
162266e564dSmrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
163266e564dSmrg
164266e564dSmrg	save_mktempdir_umask=`umask`
165266e564dSmrg	umask 0077
166266e564dSmrg	$mkdir "$my_tmpdir"
167266e564dSmrg	umask $save_mktempdir_umask
168266e564dSmrg      fi
169266e564dSmrg
170266e564dSmrg      # If we're not in dry-run mode, bomb out on failure
171266e564dSmrg      test -d "$my_tmpdir" || {
172266e564dSmrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
173266e564dSmrg	exit $EXIT_FAILURE
174266e564dSmrg      }
175266e564dSmrg    fi
176266e564dSmrg
177266e564dSmrg    $echo "X$my_tmpdir" | $Xsed
178266e564dSmrg}
179266e564dSmrg
180266e564dSmrg
181266e564dSmrg# func_win32_libid arg
182266e564dSmrg# return the library type of file 'arg'
183266e564dSmrg#
184266e564dSmrg# Need a lot of goo to handle *both* DLLs and import libs
185266e564dSmrg# Has to be a shell function in order to 'eat' the argument
186266e564dSmrg# that is supplied when $file_magic_command is called.
187266e564dSmrgfunc_win32_libid ()
188266e564dSmrg{
189266e564dSmrg  win32_libid_type="unknown"
190266e564dSmrg  win32_fileres=`file -L $1 2>/dev/null`
191266e564dSmrg  case $win32_fileres in
192266e564dSmrg  *ar\ archive\ import\ library*) # definitely import
193266e564dSmrg    win32_libid_type="x86 archive import"
194266e564dSmrg    ;;
195266e564dSmrg  *ar\ archive*) # could be an import, or static
196266e564dSmrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
197266e564dSmrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198266e564dSmrg      win32_nmres=`eval $NM -f posix -A $1 | \
199266e564dSmrg	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200266e564dSmrg      case $win32_nmres in
201266e564dSmrg      import*)  win32_libid_type="x86 archive import";;
202266e564dSmrg      *)        win32_libid_type="x86 archive static";;
203266e564dSmrg      esac
204266e564dSmrg    fi
205266e564dSmrg    ;;
206266e564dSmrg  *DLL*)
207266e564dSmrg    win32_libid_type="x86 DLL"
208266e564dSmrg    ;;
209266e564dSmrg  *executable*) # but shell scripts are "executable" too...
210266e564dSmrg    case $win32_fileres in
211266e564dSmrg    *MS\ Windows\ PE\ Intel*)
212266e564dSmrg      win32_libid_type="x86 DLL"
213266e564dSmrg      ;;
214266e564dSmrg    esac
215266e564dSmrg    ;;
216266e564dSmrg  esac
217266e564dSmrg  $echo $win32_libid_type
218266e564dSmrg}
219266e564dSmrg
220266e564dSmrg
221266e564dSmrg# func_infer_tag arg
222266e564dSmrg# Infer tagged configuration to use if any are available and
223266e564dSmrg# if one wasn't chosen via the "--tag" command line option.
224266e564dSmrg# Only attempt this if the compiler in the base compile
225266e564dSmrg# command doesn't match the default compiler.
226266e564dSmrg# arg is usually of the form 'gcc ...'
227266e564dSmrgfunc_infer_tag ()
228266e564dSmrg{
229266e564dSmrg    if test -n "$available_tags" && test -z "$tagname"; then
230266e564dSmrg      CC_quoted=
231266e564dSmrg      for arg in $CC; do
232266e564dSmrg	case $arg in
233266e564dSmrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
234266e564dSmrg	  arg="\"$arg\""
235266e564dSmrg	  ;;
236266e564dSmrg	esac
237266e564dSmrg	CC_quoted="$CC_quoted $arg"
238266e564dSmrg      done
239266e564dSmrg      case $@ in
240266e564dSmrg      # Blanks in the command may have been stripped by the calling shell,
241266e564dSmrg      # but not from the CC environment variable when configure was run.
242266e564dSmrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
243266e564dSmrg      # Blanks at the start of $base_compile will cause this to fail
244266e564dSmrg      # if we don't check for them as well.
245266e564dSmrg      *)
246266e564dSmrg	for z in $available_tags; do
247266e564dSmrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248266e564dSmrg	    # Evaluate the configuration.
249266e564dSmrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250266e564dSmrg	    CC_quoted=
251266e564dSmrg	    for arg in $CC; do
252266e564dSmrg	    # Double-quote args containing other shell metacharacters.
253266e564dSmrg	    case $arg in
254266e564dSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
255266e564dSmrg	      arg="\"$arg\""
256266e564dSmrg	      ;;
257266e564dSmrg	    esac
258266e564dSmrg	    CC_quoted="$CC_quoted $arg"
259266e564dSmrg	  done
260266e564dSmrg	    case "$@ " in
261266e564dSmrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
262266e564dSmrg	      # The compiler in the base compile command matches
263266e564dSmrg	      # the one in the tagged configuration.
264266e564dSmrg	      # Assume this is the tagged configuration we want.
265266e564dSmrg	      tagname=$z
266266e564dSmrg	      break
267266e564dSmrg	      ;;
268266e564dSmrg	    esac
269266e564dSmrg	  fi
270266e564dSmrg	done
271266e564dSmrg	# If $tagname still isn't set, then no tagged configuration
272266e564dSmrg	# was found and let the user know that the "--tag" command
273266e564dSmrg	# line option must be used.
274266e564dSmrg	if test -z "$tagname"; then
275266e564dSmrg	  $echo "$modename: unable to infer tagged configuration"
276266e564dSmrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
277266e564dSmrg	  exit $EXIT_FAILURE
278266e564dSmrg#        else
279266e564dSmrg#          $echo "$modename: using $tagname tagged configuration"
280266e564dSmrg	fi
281266e564dSmrg	;;
282266e564dSmrg      esac
283266e564dSmrg    fi
284266e564dSmrg}
285266e564dSmrg
286266e564dSmrg
287266e564dSmrg# func_extract_an_archive dir oldlib
288266e564dSmrgfunc_extract_an_archive ()
289266e564dSmrg{
290266e564dSmrg    f_ex_an_ar_dir="$1"; shift
291266e564dSmrg    f_ex_an_ar_oldlib="$1"
292266e564dSmrg
293266e564dSmrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294266e564dSmrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295266e564dSmrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296266e564dSmrg     :
297266e564dSmrg    else
298266e564dSmrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299266e564dSmrg      exit $EXIT_FAILURE
300266e564dSmrg    fi
301266e564dSmrg}
302266e564dSmrg
303266e564dSmrg# func_extract_archives gentop oldlib ...
304266e564dSmrgfunc_extract_archives ()
305266e564dSmrg{
306266e564dSmrg    my_gentop="$1"; shift
307266e564dSmrg    my_oldlibs=${1+"$@"}
308266e564dSmrg    my_oldobjs=""
309266e564dSmrg    my_xlib=""
310266e564dSmrg    my_xabs=""
311266e564dSmrg    my_xdir=""
312266e564dSmrg    my_status=""
313266e564dSmrg
314266e564dSmrg    $show "${rm}r $my_gentop"
315266e564dSmrg    $run ${rm}r "$my_gentop"
316266e564dSmrg    $show "$mkdir $my_gentop"
317266e564dSmrg    $run $mkdir "$my_gentop"
318266e564dSmrg    my_status=$?
319266e564dSmrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320266e564dSmrg      exit $my_status
321266e564dSmrg    fi
322266e564dSmrg
323266e564dSmrg    for my_xlib in $my_oldlibs; do
324266e564dSmrg      # Extract the objects.
325266e564dSmrg      case $my_xlib in
326266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327266e564dSmrg	*) my_xabs=`pwd`"/$my_xlib" ;;
328266e564dSmrg      esac
329266e564dSmrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330266e564dSmrg      my_xdir="$my_gentop/$my_xlib"
331266e564dSmrg
332266e564dSmrg      $show "${rm}r $my_xdir"
333266e564dSmrg      $run ${rm}r "$my_xdir"
334266e564dSmrg      $show "$mkdir $my_xdir"
335266e564dSmrg      $run $mkdir "$my_xdir"
336266e564dSmrg      exit_status=$?
337266e564dSmrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338266e564dSmrg	exit $exit_status
339266e564dSmrg      fi
340266e564dSmrg      case $host in
341266e564dSmrg      *-darwin*)
342266e564dSmrg	$show "Extracting $my_xabs"
343266e564dSmrg	# Do not bother doing anything if just a dry run
344266e564dSmrg	if test -z "$run"; then
345266e564dSmrg	  darwin_orig_dir=`pwd`
346266e564dSmrg	  cd $my_xdir || exit $?
347266e564dSmrg	  darwin_archive=$my_xabs
348266e564dSmrg	  darwin_curdir=`pwd`
349266e564dSmrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350266e564dSmrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351266e564dSmrg	  if test -n "$darwin_arches"; then 
352266e564dSmrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353266e564dSmrg	    darwin_arch=
354266e564dSmrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
355266e564dSmrg	    for darwin_arch in  $darwin_arches ; do
356266e564dSmrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357266e564dSmrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358266e564dSmrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359266e564dSmrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360266e564dSmrg	      cd "$darwin_curdir"
361266e564dSmrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362266e564dSmrg	    done # $darwin_arches
363266e564dSmrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364266e564dSmrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365266e564dSmrg	    darwin_file=
366266e564dSmrg	    darwin_files=
367266e564dSmrg	    for darwin_file in $darwin_filelist; do
368266e564dSmrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369266e564dSmrg	      lipo -create -output "$darwin_file" $darwin_files
370266e564dSmrg	    done # $darwin_filelist
371266e564dSmrg	    ${rm}r unfat-$$
372266e564dSmrg	    cd "$darwin_orig_dir"
373266e564dSmrg	  else
374266e564dSmrg	    cd "$darwin_orig_dir"
375266e564dSmrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
376266e564dSmrg	  fi # $darwin_arches
377266e564dSmrg	fi # $run
378266e564dSmrg	;;
379266e564dSmrg      *)
380266e564dSmrg        func_extract_an_archive "$my_xdir" "$my_xabs"
381266e564dSmrg        ;;
382266e564dSmrg      esac
383266e564dSmrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384266e564dSmrg    done
385266e564dSmrg    func_extract_archives_result="$my_oldobjs"
386266e564dSmrg}
387266e564dSmrg# End of Shell function definitions
388266e564dSmrg#####################################
389266e564dSmrg
390266e564dSmrg# Darwin sucks
391266e564dSmrgeval std_shrext=\"$shrext_cmds\"
392266e564dSmrg
393266e564dSmrgdisable_libs=no
394266e564dSmrg
395266e564dSmrg# Parse our command line options once, thoroughly.
396266e564dSmrgwhile test "$#" -gt 0
397266e564dSmrgdo
398266e564dSmrg  arg="$1"
399266e564dSmrg  shift
400266e564dSmrg
401266e564dSmrg  case $arg in
402266e564dSmrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403266e564dSmrg  *) optarg= ;;
404266e564dSmrg  esac
405266e564dSmrg
406266e564dSmrg  # If the previous option needs an argument, assign it.
407266e564dSmrg  if test -n "$prev"; then
408266e564dSmrg    case $prev in
409266e564dSmrg    execute_dlfiles)
410266e564dSmrg      execute_dlfiles="$execute_dlfiles $arg"
411266e564dSmrg      ;;
412266e564dSmrg    tag)
413266e564dSmrg      tagname="$arg"
414266e564dSmrg      preserve_args="${preserve_args}=$arg"
415266e564dSmrg
416266e564dSmrg      # Check whether tagname contains only valid characters
417266e564dSmrg      case $tagname in
418266e564dSmrg      *[!-_A-Za-z0-9,/]*)
419266e564dSmrg	$echo "$progname: invalid tag name: $tagname" 1>&2
420266e564dSmrg	exit $EXIT_FAILURE
421266e564dSmrg	;;
422266e564dSmrg      esac
423266e564dSmrg
424266e564dSmrg      case $tagname in
425266e564dSmrg      CC)
426266e564dSmrg	# Don't test for the "default" C tag, as we know, it's there, but
427266e564dSmrg	# not specially marked.
428266e564dSmrg	;;
429266e564dSmrg      *)
430266e564dSmrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431266e564dSmrg	  taglist="$taglist $tagname"
432266e564dSmrg	  # Evaluate the configuration.
433266e564dSmrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434266e564dSmrg	else
435266e564dSmrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
436266e564dSmrg	fi
437266e564dSmrg	;;
438266e564dSmrg      esac
439266e564dSmrg      ;;
440266e564dSmrg    *)
441266e564dSmrg      eval "$prev=\$arg"
442266e564dSmrg      ;;
443266e564dSmrg    esac
444266e564dSmrg
445266e564dSmrg    prev=
446266e564dSmrg    prevopt=
447266e564dSmrg    continue
448266e564dSmrg  fi
449266e564dSmrg
450266e564dSmrg  # Have we seen a non-optional argument yet?
451266e564dSmrg  case $arg in
452266e564dSmrg  --help)
453266e564dSmrg    show_help=yes
454266e564dSmrg    ;;
455266e564dSmrg
456266e564dSmrg  --version)
457266e564dSmrg    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458266e564dSmrg    $echo
459266e564dSmrg    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
460266e564dSmrg    $echo "This is free software; see the source for copying conditions.  There is NO"
461266e564dSmrg    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462266e564dSmrg    exit $?
463266e564dSmrg    ;;
464266e564dSmrg
465266e564dSmrg  --config)
466266e564dSmrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467266e564dSmrg    # Now print the configurations for the tags.
468266e564dSmrg    for tagname in $taglist; do
469266e564dSmrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470266e564dSmrg    done
471266e564dSmrg    exit $?
472266e564dSmrg    ;;
473266e564dSmrg
474266e564dSmrg  --debug)
475266e564dSmrg    $echo "$progname: enabling shell trace mode"
476266e564dSmrg    set -x
477266e564dSmrg    preserve_args="$preserve_args $arg"
478266e564dSmrg    ;;
479266e564dSmrg
480266e564dSmrg  --dry-run | -n)
481266e564dSmrg    run=:
482266e564dSmrg    ;;
483266e564dSmrg
484266e564dSmrg  --features)
485266e564dSmrg    $echo "host: $host"
486266e564dSmrg    if test "$build_libtool_libs" = yes; then
487266e564dSmrg      $echo "enable shared libraries"
488266e564dSmrg    else
489266e564dSmrg      $echo "disable shared libraries"
490266e564dSmrg    fi
491266e564dSmrg    if test "$build_old_libs" = yes; then
492266e564dSmrg      $echo "enable static libraries"
493266e564dSmrg    else
494266e564dSmrg      $echo "disable static libraries"
495266e564dSmrg    fi
496266e564dSmrg    exit $?
497266e564dSmrg    ;;
498266e564dSmrg
499266e564dSmrg  --finish) mode="finish" ;;
500266e564dSmrg
501266e564dSmrg  --mode) prevopt="--mode" prev=mode ;;
502266e564dSmrg  --mode=*) mode="$optarg" ;;
503266e564dSmrg
504266e564dSmrg  --preserve-dup-deps) duplicate_deps="yes" ;;
505266e564dSmrg
506266e564dSmrg  --quiet | --silent)
507266e564dSmrg    show=:
508266e564dSmrg    preserve_args="$preserve_args $arg"
509266e564dSmrg    ;;
510266e564dSmrg
511266e564dSmrg  --tag)
512266e564dSmrg    prevopt="--tag"
513266e564dSmrg    prev=tag
514266e564dSmrg    preserve_args="$preserve_args --tag"
515266e564dSmrg    ;;
516266e564dSmrg  --tag=*)
517266e564dSmrg    set tag "$optarg" ${1+"$@"}
518266e564dSmrg    shift
519266e564dSmrg    prev=tag
520266e564dSmrg    preserve_args="$preserve_args --tag"
521266e564dSmrg    ;;
522266e564dSmrg
523266e564dSmrg  -dlopen)
524266e564dSmrg    prevopt="-dlopen"
525266e564dSmrg    prev=execute_dlfiles
526266e564dSmrg    ;;
527266e564dSmrg
528266e564dSmrg  -*)
529266e564dSmrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
530266e564dSmrg    $echo "$help" 1>&2
531266e564dSmrg    exit $EXIT_FAILURE
532266e564dSmrg    ;;
533266e564dSmrg
534266e564dSmrg  *)
535266e564dSmrg    nonopt="$arg"
536266e564dSmrg    break
537266e564dSmrg    ;;
538266e564dSmrg  esac
539266e564dSmrgdone
540266e564dSmrg
541266e564dSmrgif test -n "$prevopt"; then
542266e564dSmrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543266e564dSmrg  $echo "$help" 1>&2
544266e564dSmrg  exit $EXIT_FAILURE
545266e564dSmrgfi
546266e564dSmrg
547266e564dSmrgcase $disable_libs in
548266e564dSmrgno) 
549266e564dSmrg  ;;
550266e564dSmrgshared)
551266e564dSmrg  build_libtool_libs=no
552266e564dSmrg  build_old_libs=yes
553266e564dSmrg  ;;
554266e564dSmrgstatic)
555266e564dSmrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556266e564dSmrg  ;;
557266e564dSmrgesac
558266e564dSmrg
559266e564dSmrg# If this variable is set in any of the actions, the command in it
560266e564dSmrg# will be execed at the end.  This prevents here-documents from being
561266e564dSmrg# left over by shells.
562266e564dSmrgexec_cmd=
563266e564dSmrg
564266e564dSmrgif test -z "$show_help"; then
565266e564dSmrg
566266e564dSmrg  # Infer the operation mode.
567266e564dSmrg  if test -z "$mode"; then
568266e564dSmrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569266e564dSmrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570266e564dSmrg    case $nonopt in
571266e564dSmrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572266e564dSmrg      mode=link
573266e564dSmrg      for arg
574266e564dSmrg      do
575266e564dSmrg	case $arg in
576266e564dSmrg	-c)
577266e564dSmrg	   mode=compile
578266e564dSmrg	   break
579266e564dSmrg	   ;;
580266e564dSmrg	esac
581266e564dSmrg      done
582266e564dSmrg      ;;
583266e564dSmrg    *db | *dbx | *strace | *truss)
584266e564dSmrg      mode=execute
585266e564dSmrg      ;;
586266e564dSmrg    *install*|cp|mv)
587266e564dSmrg      mode=install
588266e564dSmrg      ;;
589266e564dSmrg    *rm)
590266e564dSmrg      mode=uninstall
591266e564dSmrg      ;;
592266e564dSmrg    *)
593266e564dSmrg      # If we have no mode, but dlfiles were specified, then do execute mode.
594266e564dSmrg      test -n "$execute_dlfiles" && mode=execute
595266e564dSmrg
596266e564dSmrg      # Just use the default operation mode.
597266e564dSmrg      if test -z "$mode"; then
598266e564dSmrg	if test -n "$nonopt"; then
599266e564dSmrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600266e564dSmrg	else
601266e564dSmrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602266e564dSmrg	fi
603266e564dSmrg      fi
604266e564dSmrg      ;;
605266e564dSmrg    esac
606266e564dSmrg  fi
607266e564dSmrg
608266e564dSmrg  # Only execute mode is allowed to have -dlopen flags.
609266e564dSmrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
610266e564dSmrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611266e564dSmrg    $echo "$help" 1>&2
612266e564dSmrg    exit $EXIT_FAILURE
613266e564dSmrg  fi
614266e564dSmrg
615266e564dSmrg  # Change the help message to a mode-specific one.
616266e564dSmrg  generic_help="$help"
617266e564dSmrg  help="Try \`$modename --help --mode=$mode' for more information."
618266e564dSmrg
619266e564dSmrg  # These modes are in order of execution frequency so that they run quickly.
620266e564dSmrg  case $mode in
621266e564dSmrg  # libtool compile mode
622266e564dSmrg  compile)
623266e564dSmrg    modename="$modename: compile"
624266e564dSmrg    # Get the compilation command and the source file.
625266e564dSmrg    base_compile=
626266e564dSmrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
627266e564dSmrg    suppress_opt=yes
628266e564dSmrg    suppress_output=
629266e564dSmrg    arg_mode=normal
630266e564dSmrg    libobj=
631266e564dSmrg    later=
632266e564dSmrg
633266e564dSmrg    for arg
634266e564dSmrg    do
635266e564dSmrg      case $arg_mode in
636266e564dSmrg      arg  )
637266e564dSmrg	# do not "continue".  Instead, add this to base_compile
638266e564dSmrg	lastarg="$arg"
639266e564dSmrg	arg_mode=normal
640266e564dSmrg	;;
641266e564dSmrg
642266e564dSmrg      target )
643266e564dSmrg	libobj="$arg"
644266e564dSmrg	arg_mode=normal
645266e564dSmrg	continue
646266e564dSmrg	;;
647266e564dSmrg
648266e564dSmrg      normal )
649266e564dSmrg	# Accept any command-line options.
650266e564dSmrg	case $arg in
651266e564dSmrg	-o)
652266e564dSmrg	  if test -n "$libobj" ; then
653266e564dSmrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
654266e564dSmrg	    exit $EXIT_FAILURE
655266e564dSmrg	  fi
656266e564dSmrg	  arg_mode=target
657266e564dSmrg	  continue
658266e564dSmrg	  ;;
659266e564dSmrg
660266e564dSmrg	-static | -prefer-pic | -prefer-non-pic)
661266e564dSmrg	  later="$later $arg"
662266e564dSmrg	  continue
663266e564dSmrg	  ;;
664266e564dSmrg
665266e564dSmrg	-no-suppress)
666266e564dSmrg	  suppress_opt=no
667266e564dSmrg	  continue
668266e564dSmrg	  ;;
669266e564dSmrg
670266e564dSmrg	-Xcompiler)
671266e564dSmrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
672266e564dSmrg	  continue      #  The current "srcfile" will either be retained or
673266e564dSmrg	  ;;            #  replaced later.  I would guess that would be a bug.
674266e564dSmrg
675266e564dSmrg	-Wc,*)
676266e564dSmrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
677266e564dSmrg	  lastarg=
678266e564dSmrg	  save_ifs="$IFS"; IFS=','
679266e564dSmrg 	  for arg in $args; do
680266e564dSmrg	    IFS="$save_ifs"
681266e564dSmrg
682266e564dSmrg	    # Double-quote args containing other shell metacharacters.
683266e564dSmrg	    # Many Bourne shells cannot handle close brackets correctly
684266e564dSmrg	    # in scan sets, so we specify it separately.
685266e564dSmrg	    case $arg in
686266e564dSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
687266e564dSmrg	      arg="\"$arg\""
688266e564dSmrg	      ;;
689266e564dSmrg	    esac
690266e564dSmrg	    lastarg="$lastarg $arg"
691266e564dSmrg	  done
692266e564dSmrg	  IFS="$save_ifs"
693266e564dSmrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
694266e564dSmrg
695266e564dSmrg	  # Add the arguments to base_compile.
696266e564dSmrg	  base_compile="$base_compile $lastarg"
697266e564dSmrg	  continue
698266e564dSmrg	  ;;
699266e564dSmrg
700266e564dSmrg	* )
701266e564dSmrg	  # Accept the current argument as the source file.
702266e564dSmrg	  # The previous "srcfile" becomes the current argument.
703266e564dSmrg	  #
704266e564dSmrg	  lastarg="$srcfile"
705266e564dSmrg	  srcfile="$arg"
706266e564dSmrg	  ;;
707266e564dSmrg	esac  #  case $arg
708266e564dSmrg	;;
709266e564dSmrg      esac    #  case $arg_mode
710266e564dSmrg
711266e564dSmrg      # Aesthetically quote the previous argument.
712266e564dSmrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
713266e564dSmrg
714266e564dSmrg      case $lastarg in
715266e564dSmrg      # Double-quote args containing other shell metacharacters.
716266e564dSmrg      # Many Bourne shells cannot handle close brackets correctly
717266e564dSmrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
718266e564dSmrg      # in scan sets (worked around with variable expansion),
719266e564dSmrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
720266e564dSmrg      # at all, so we specify them separately.
721266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722266e564dSmrg	lastarg="\"$lastarg\""
723266e564dSmrg	;;
724266e564dSmrg      esac
725266e564dSmrg
726266e564dSmrg      base_compile="$base_compile $lastarg"
727266e564dSmrg    done # for arg
728266e564dSmrg
729266e564dSmrg    case $arg_mode in
730266e564dSmrg    arg)
731266e564dSmrg      $echo "$modename: you must specify an argument for -Xcompile"
732266e564dSmrg      exit $EXIT_FAILURE
733266e564dSmrg      ;;
734266e564dSmrg    target)
735266e564dSmrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
736266e564dSmrg      exit $EXIT_FAILURE
737266e564dSmrg      ;;
738266e564dSmrg    *)
739266e564dSmrg      # Get the name of the library object.
740266e564dSmrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
741266e564dSmrg      ;;
742266e564dSmrg    esac
743266e564dSmrg
744266e564dSmrg    # Recognize several different file suffixes.
745266e564dSmrg    # If the user specifies -o file.o, it is replaced with file.lo
746266e564dSmrg    xform='[cCFSifmso]'
747266e564dSmrg    case $libobj in
748266e564dSmrg    *.ada) xform=ada ;;
749266e564dSmrg    *.adb) xform=adb ;;
750266e564dSmrg    *.ads) xform=ads ;;
751266e564dSmrg    *.asm) xform=asm ;;
752266e564dSmrg    *.c++) xform=c++ ;;
753266e564dSmrg    *.cc) xform=cc ;;
754266e564dSmrg    *.ii) xform=ii ;;
755266e564dSmrg    *.class) xform=class ;;
756266e564dSmrg    *.cpp) xform=cpp ;;
757266e564dSmrg    *.cxx) xform=cxx ;;
758266e564dSmrg    *.f90) xform=f90 ;;
759266e564dSmrg    *.for) xform=for ;;
760266e564dSmrg    *.java) xform=java ;;
761266e564dSmrg    esac
762266e564dSmrg
763266e564dSmrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764266e564dSmrg
765266e564dSmrg    case $libobj in
766266e564dSmrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
767266e564dSmrg    *)
768266e564dSmrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
769266e564dSmrg      exit $EXIT_FAILURE
770266e564dSmrg      ;;
771266e564dSmrg    esac
772266e564dSmrg
773266e564dSmrg    func_infer_tag $base_compile
774266e564dSmrg
775266e564dSmrg    for arg in $later; do
776266e564dSmrg      case $arg in
777266e564dSmrg      -static)
778266e564dSmrg	build_old_libs=yes
779266e564dSmrg	continue
780266e564dSmrg	;;
781266e564dSmrg
782266e564dSmrg      -prefer-pic)
783266e564dSmrg	pic_mode=yes
784266e564dSmrg	continue
785266e564dSmrg	;;
786266e564dSmrg
787266e564dSmrg      -prefer-non-pic)
788266e564dSmrg	pic_mode=no
789266e564dSmrg	continue
790266e564dSmrg	;;
791266e564dSmrg      esac
792266e564dSmrg    done
793266e564dSmrg
794266e564dSmrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
795266e564dSmrg    case $qlibobj in
796266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
797266e564dSmrg	qlibobj="\"$qlibobj\"" ;;
798266e564dSmrg    esac
799266e564dSmrg    test "X$libobj" != "X$qlibobj" \
800266e564dSmrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
801266e564dSmrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802266e564dSmrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803266e564dSmrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804266e564dSmrg    if test "X$xdir" = "X$obj"; then
805266e564dSmrg      xdir=
806266e564dSmrg    else
807266e564dSmrg      xdir=$xdir/
808266e564dSmrg    fi
809266e564dSmrg    lobj=${xdir}$objdir/$objname
810266e564dSmrg
811266e564dSmrg    if test -z "$base_compile"; then
812266e564dSmrg      $echo "$modename: you must specify a compilation command" 1>&2
813266e564dSmrg      $echo "$help" 1>&2
814266e564dSmrg      exit $EXIT_FAILURE
815266e564dSmrg    fi
816266e564dSmrg
817266e564dSmrg    # Delete any leftover library objects.
818266e564dSmrg    if test "$build_old_libs" = yes; then
819266e564dSmrg      removelist="$obj $lobj $libobj ${libobj}T"
820266e564dSmrg    else
821266e564dSmrg      removelist="$lobj $libobj ${libobj}T"
822266e564dSmrg    fi
823266e564dSmrg
824266e564dSmrg    $run $rm $removelist
825266e564dSmrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826266e564dSmrg
827266e564dSmrg    # On Cygwin there's no "real" PIC flag so we must build both object types
828266e564dSmrg    case $host_os in
829266e564dSmrg    cygwin* | mingw* | pw32* | os2*)
830266e564dSmrg      pic_mode=default
831266e564dSmrg      ;;
832266e564dSmrg    esac
833266e564dSmrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
834266e564dSmrg      # non-PIC code in shared libraries is not supported
835266e564dSmrg      pic_mode=default
836266e564dSmrg    fi
837266e564dSmrg
838266e564dSmrg    # Calculate the filename of the output object if compiler does
839266e564dSmrg    # not support -o with -c
840266e564dSmrg    if test "$compiler_c_o" = no; then
841266e564dSmrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842266e564dSmrg      lockfile="$output_obj.lock"
843266e564dSmrg      removelist="$removelist $output_obj $lockfile"
844266e564dSmrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845266e564dSmrg    else
846266e564dSmrg      output_obj=
847266e564dSmrg      need_locks=no
848266e564dSmrg      lockfile=
849266e564dSmrg    fi
850266e564dSmrg
851266e564dSmrg    # Lock this critical section if it is needed
852266e564dSmrg    # We use this script file to make the link, it avoids creating a new file
853266e564dSmrg    if test "$need_locks" = yes; then
854266e564dSmrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
855266e564dSmrg	$show "Waiting for $lockfile to be removed"
856266e564dSmrg	sleep 2
857266e564dSmrg      done
858266e564dSmrg    elif test "$need_locks" = warn; then
859266e564dSmrg      if test -f "$lockfile"; then
860266e564dSmrg	$echo "\
861266e564dSmrg*** ERROR, $lockfile exists and contains:
862266e564dSmrg`cat $lockfile 2>/dev/null`
863266e564dSmrg
864266e564dSmrgThis indicates that another process is trying to use the same
865266e564dSmrgtemporary object file, and libtool could not work around it because
866266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
867266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
868266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
869266e564dSmrgcompiler."
870266e564dSmrg
871266e564dSmrg	$run $rm $removelist
872266e564dSmrg	exit $EXIT_FAILURE
873266e564dSmrg      fi
874266e564dSmrg      $echo "$srcfile" > "$lockfile"
875266e564dSmrg    fi
876266e564dSmrg
877266e564dSmrg    if test -n "$fix_srcfile_path"; then
878266e564dSmrg      eval srcfile=\"$fix_srcfile_path\"
879266e564dSmrg    fi
880266e564dSmrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
881266e564dSmrg    case $qsrcfile in
882266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
883266e564dSmrg      qsrcfile="\"$qsrcfile\"" ;;
884266e564dSmrg    esac
885266e564dSmrg
886266e564dSmrg    $run $rm "$libobj" "${libobj}T"
887266e564dSmrg
888266e564dSmrg    # Create a libtool object file (analogous to a ".la" file),
889266e564dSmrg    # but don't create it if we're doing a dry run.
890266e564dSmrg    test -z "$run" && cat > ${libobj}T <<EOF
891266e564dSmrg# $libobj - a libtool object file
892266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893266e564dSmrg#
894266e564dSmrg# Please DO NOT delete this file!
895266e564dSmrg# It is necessary for linking the library.
896266e564dSmrg
897266e564dSmrg# Name of the PIC object.
898266e564dSmrgEOF
899266e564dSmrg
900266e564dSmrg    # Only build a PIC object if we are building libtool libraries.
901266e564dSmrg    if test "$build_libtool_libs" = yes; then
902266e564dSmrg      # Without this assignment, base_compile gets emptied.
903266e564dSmrg      fbsd_hideous_sh_bug=$base_compile
904266e564dSmrg
905266e564dSmrg      if test "$pic_mode" != no; then
906266e564dSmrg	command="$base_compile $qsrcfile $pic_flag"
907266e564dSmrg      else
908266e564dSmrg	# Don't build PIC code
909266e564dSmrg	command="$base_compile $qsrcfile"
910266e564dSmrg      fi
911266e564dSmrg
912266e564dSmrg      if test ! -d "${xdir}$objdir"; then
913266e564dSmrg	$show "$mkdir ${xdir}$objdir"
914266e564dSmrg	$run $mkdir ${xdir}$objdir
915266e564dSmrg	exit_status=$?
916266e564dSmrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917266e564dSmrg	  exit $exit_status
918266e564dSmrg	fi
919266e564dSmrg      fi
920266e564dSmrg
921266e564dSmrg      if test -z "$output_obj"; then
922266e564dSmrg	# Place PIC objects in $objdir
923266e564dSmrg	command="$command -o $lobj"
924266e564dSmrg      fi
925266e564dSmrg
926266e564dSmrg      $run $rm "$lobj" "$output_obj"
927266e564dSmrg
928266e564dSmrg      $show "$command"
929266e564dSmrg      if $run eval "$command"; then :
930266e564dSmrg      else
931266e564dSmrg	test -n "$output_obj" && $run $rm $removelist
932266e564dSmrg	exit $EXIT_FAILURE
933266e564dSmrg      fi
934266e564dSmrg
935266e564dSmrg      if test "$need_locks" = warn &&
936266e564dSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937266e564dSmrg	$echo "\
938266e564dSmrg*** ERROR, $lockfile contains:
939266e564dSmrg`cat $lockfile 2>/dev/null`
940266e564dSmrg
941266e564dSmrgbut it should contain:
942266e564dSmrg$srcfile
943266e564dSmrg
944266e564dSmrgThis indicates that another process is trying to use the same
945266e564dSmrgtemporary object file, and libtool could not work around it because
946266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
947266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
948266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
949266e564dSmrgcompiler."
950266e564dSmrg
951266e564dSmrg	$run $rm $removelist
952266e564dSmrg	exit $EXIT_FAILURE
953266e564dSmrg      fi
954266e564dSmrg
955266e564dSmrg      # Just move the object if needed, then go on to compile the next one
956266e564dSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957266e564dSmrg	$show "$mv $output_obj $lobj"
958266e564dSmrg	if $run $mv $output_obj $lobj; then :
959266e564dSmrg	else
960266e564dSmrg	  error=$?
961266e564dSmrg	  $run $rm $removelist
962266e564dSmrg	  exit $error
963266e564dSmrg	fi
964266e564dSmrg      fi
965266e564dSmrg
966266e564dSmrg      # Append the name of the PIC object to the libtool object file.
967266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
968266e564dSmrgpic_object='$objdir/$objname'
969266e564dSmrg
970266e564dSmrgEOF
971266e564dSmrg
972266e564dSmrg      # Allow error messages only from the first compilation.
973266e564dSmrg      if test "$suppress_opt" = yes; then
974266e564dSmrg        suppress_output=' >/dev/null 2>&1'
975266e564dSmrg      fi
976266e564dSmrg    else
977266e564dSmrg      # No PIC object so indicate it doesn't exist in the libtool
978266e564dSmrg      # object file.
979266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
980266e564dSmrgpic_object=none
981266e564dSmrg
982266e564dSmrgEOF
983266e564dSmrg    fi
984266e564dSmrg
985266e564dSmrg    # Only build a position-dependent object if we build old libraries.
986266e564dSmrg    if test "$build_old_libs" = yes; then
987266e564dSmrg      if test "$pic_mode" != yes; then
988266e564dSmrg	# Don't build PIC code
989266e564dSmrg	command="$base_compile $qsrcfile"
990266e564dSmrg      else
991266e564dSmrg	command="$base_compile $qsrcfile $pic_flag"
992266e564dSmrg      fi
993266e564dSmrg      if test "$compiler_c_o" = yes; then
994266e564dSmrg	command="$command -o $obj"
995266e564dSmrg      fi
996266e564dSmrg
997266e564dSmrg      # Suppress compiler output if we already did a PIC compilation.
998266e564dSmrg      command="$command$suppress_output"
999266e564dSmrg      $run $rm "$obj" "$output_obj"
1000266e564dSmrg      $show "$command"
1001266e564dSmrg      if $run eval "$command"; then :
1002266e564dSmrg      else
1003266e564dSmrg	$run $rm $removelist
1004266e564dSmrg	exit $EXIT_FAILURE
1005266e564dSmrg      fi
1006266e564dSmrg
1007266e564dSmrg      if test "$need_locks" = warn &&
1008266e564dSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009266e564dSmrg	$echo "\
1010266e564dSmrg*** ERROR, $lockfile contains:
1011266e564dSmrg`cat $lockfile 2>/dev/null`
1012266e564dSmrg
1013266e564dSmrgbut it should contain:
1014266e564dSmrg$srcfile
1015266e564dSmrg
1016266e564dSmrgThis indicates that another process is trying to use the same
1017266e564dSmrgtemporary object file, and libtool could not work around it because
1018266e564dSmrgyour compiler does not support \`-c' and \`-o' together.  If you
1019266e564dSmrgrepeat this compilation, it may succeed, by chance, but you had better
1020266e564dSmrgavoid parallel builds (make -j) in this platform, or get a better
1021266e564dSmrgcompiler."
1022266e564dSmrg
1023266e564dSmrg	$run $rm $removelist
1024266e564dSmrg	exit $EXIT_FAILURE
1025266e564dSmrg      fi
1026266e564dSmrg
1027266e564dSmrg      # Just move the object if needed
1028266e564dSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029266e564dSmrg	$show "$mv $output_obj $obj"
1030266e564dSmrg	if $run $mv $output_obj $obj; then :
1031266e564dSmrg	else
1032266e564dSmrg	  error=$?
1033266e564dSmrg	  $run $rm $removelist
1034266e564dSmrg	  exit $error
1035266e564dSmrg	fi
1036266e564dSmrg      fi
1037266e564dSmrg
1038266e564dSmrg      # Append the name of the non-PIC object the libtool object file.
1039266e564dSmrg      # Only append if the libtool object file exists.
1040266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1041266e564dSmrg# Name of the non-PIC object.
1042266e564dSmrgnon_pic_object='$objname'
1043266e564dSmrg
1044266e564dSmrgEOF
1045266e564dSmrg    else
1046266e564dSmrg      # Append the name of the non-PIC object the libtool object file.
1047266e564dSmrg      # Only append if the libtool object file exists.
1048266e564dSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
1049266e564dSmrg# Name of the non-PIC object.
1050266e564dSmrgnon_pic_object=none
1051266e564dSmrg
1052266e564dSmrgEOF
1053266e564dSmrg    fi
1054266e564dSmrg
1055266e564dSmrg    $run $mv "${libobj}T" "${libobj}"
1056266e564dSmrg
1057266e564dSmrg    # Unlock the critical section if it was locked
1058266e564dSmrg    if test "$need_locks" != no; then
1059266e564dSmrg      $run $rm "$lockfile"
1060266e564dSmrg    fi
1061266e564dSmrg
1062266e564dSmrg    exit $EXIT_SUCCESS
1063266e564dSmrg    ;;
1064266e564dSmrg
1065266e564dSmrg  # libtool link mode
1066266e564dSmrg  link | relink)
1067266e564dSmrg    modename="$modename: link"
1068266e564dSmrg    case $host in
1069266e564dSmrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1070266e564dSmrg      # It is impossible to link a dll without this setting, and
1071266e564dSmrg      # we shouldn't force the makefile maintainer to figure out
1072266e564dSmrg      # which system we are compiling for in order to pass an extra
1073266e564dSmrg      # flag for every libtool invocation.
1074266e564dSmrg      # allow_undefined=no
1075266e564dSmrg
1076266e564dSmrg      # FIXME: Unfortunately, there are problems with the above when trying
1077266e564dSmrg      # to make a dll which has undefined symbols, in which case not
1078266e564dSmrg      # even a static library is built.  For now, we need to specify
1079266e564dSmrg      # -no-undefined on the libtool link line when we can be certain
1080266e564dSmrg      # that all symbols are satisfied, otherwise we get a static library.
1081266e564dSmrg      allow_undefined=yes
1082266e564dSmrg      ;;
1083266e564dSmrg    *)
1084266e564dSmrg      allow_undefined=yes
1085266e564dSmrg      ;;
1086266e564dSmrg    esac
1087266e564dSmrg    libtool_args="$nonopt"
1088266e564dSmrg    base_compile="$nonopt $@"
1089266e564dSmrg    compile_command="$nonopt"
1090266e564dSmrg    finalize_command="$nonopt"
1091266e564dSmrg
1092266e564dSmrg    compile_rpath=
1093266e564dSmrg    finalize_rpath=
1094266e564dSmrg    compile_shlibpath=
1095266e564dSmrg    finalize_shlibpath=
1096266e564dSmrg    convenience=
1097266e564dSmrg    old_convenience=
1098266e564dSmrg    deplibs=
1099266e564dSmrg    old_deplibs=
1100266e564dSmrg    compiler_flags=
1101266e564dSmrg    linker_flags=
1102266e564dSmrg    dllsearchpath=
1103266e564dSmrg    lib_search_path=`pwd`
1104266e564dSmrg    inst_prefix_dir=
1105266e564dSmrg
1106266e564dSmrg    avoid_version=no
1107266e564dSmrg    dlfiles=
1108266e564dSmrg    dlprefiles=
1109266e564dSmrg    dlself=no
1110266e564dSmrg    export_dynamic=no
1111266e564dSmrg    export_symbols=
1112266e564dSmrg    export_symbols_regex=
1113266e564dSmrg    generated=
1114266e564dSmrg    libobjs=
1115266e564dSmrg    ltlibs=
1116266e564dSmrg    module=no
1117266e564dSmrg    no_install=no
1118266e564dSmrg    objs=
1119266e564dSmrg    non_pic_objects=
1120266e564dSmrg    notinst_path= # paths that contain not-installed libtool libraries
1121266e564dSmrg    precious_files_regex=
1122266e564dSmrg    prefer_static_libs=no
1123266e564dSmrg    preload=no
1124266e564dSmrg    prev=
1125266e564dSmrg    prevarg=
1126266e564dSmrg    release=
1127266e564dSmrg    rpath=
1128266e564dSmrg    xrpath=
1129266e564dSmrg    perm_rpath=
1130266e564dSmrg    temp_rpath=
1131266e564dSmrg    thread_safe=no
1132266e564dSmrg    vinfo=
1133266e564dSmrg    vinfo_number=no
1134266e564dSmrg
1135266e564dSmrg    func_infer_tag $base_compile
1136266e564dSmrg
1137266e564dSmrg    # We need to know -static, to get the right output filenames.
1138266e564dSmrg    for arg
1139266e564dSmrg    do
1140266e564dSmrg      case $arg in
1141266e564dSmrg      -all-static | -static)
1142266e564dSmrg	if test "X$arg" = "X-all-static"; then
1143266e564dSmrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144266e564dSmrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1145266e564dSmrg	  fi
1146266e564dSmrg	  if test -n "$link_static_flag"; then
1147266e564dSmrg	    dlopen_self=$dlopen_self_static
1148266e564dSmrg	  fi
1149266e564dSmrg	  prefer_static_libs=yes
1150266e564dSmrg	else
1151266e564dSmrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152266e564dSmrg	    dlopen_self=$dlopen_self_static
1153266e564dSmrg	  fi
1154266e564dSmrg	  prefer_static_libs=built
1155266e564dSmrg	fi
1156266e564dSmrg	build_libtool_libs=no
1157266e564dSmrg	build_old_libs=yes
1158266e564dSmrg	break
1159266e564dSmrg	;;
1160266e564dSmrg      esac
1161266e564dSmrg    done
1162266e564dSmrg
1163266e564dSmrg    # See if our shared archives depend on static archives.
1164266e564dSmrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1165266e564dSmrg
1166266e564dSmrg    # Go through the arguments, transforming them on the way.
1167266e564dSmrg    while test "$#" -gt 0; do
1168266e564dSmrg      arg="$1"
1169266e564dSmrg      shift
1170266e564dSmrg      case $arg in
1171266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1172266e564dSmrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1173266e564dSmrg	;;
1174266e564dSmrg      *) qarg=$arg ;;
1175266e564dSmrg      esac
1176266e564dSmrg      libtool_args="$libtool_args $qarg"
1177266e564dSmrg
1178266e564dSmrg      # If the previous option needs an argument, assign it.
1179266e564dSmrg      if test -n "$prev"; then
1180266e564dSmrg	case $prev in
1181266e564dSmrg	output)
1182266e564dSmrg	  compile_command="$compile_command @OUTPUT@"
1183266e564dSmrg	  finalize_command="$finalize_command @OUTPUT@"
1184266e564dSmrg	  ;;
1185266e564dSmrg	esac
1186266e564dSmrg
1187266e564dSmrg	case $prev in
1188266e564dSmrg	dlfiles|dlprefiles)
1189266e564dSmrg	  if test "$preload" = no; then
1190266e564dSmrg	    # Add the symbol object into the linking commands.
1191266e564dSmrg	    compile_command="$compile_command @SYMFILE@"
1192266e564dSmrg	    finalize_command="$finalize_command @SYMFILE@"
1193266e564dSmrg	    preload=yes
1194266e564dSmrg	  fi
1195266e564dSmrg	  case $arg in
1196266e564dSmrg	  *.la | *.lo) ;;  # We handle these cases below.
1197266e564dSmrg	  force)
1198266e564dSmrg	    if test "$dlself" = no; then
1199266e564dSmrg	      dlself=needless
1200266e564dSmrg	      export_dynamic=yes
1201266e564dSmrg	    fi
1202266e564dSmrg	    prev=
1203266e564dSmrg	    continue
1204266e564dSmrg	    ;;
1205266e564dSmrg	  self)
1206266e564dSmrg	    if test "$prev" = dlprefiles; then
1207266e564dSmrg	      dlself=yes
1208266e564dSmrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1209266e564dSmrg	      dlself=yes
1210266e564dSmrg	    else
1211266e564dSmrg	      dlself=needless
1212266e564dSmrg	      export_dynamic=yes
1213266e564dSmrg	    fi
1214266e564dSmrg	    prev=
1215266e564dSmrg	    continue
1216266e564dSmrg	    ;;
1217266e564dSmrg	  *)
1218266e564dSmrg	    if test "$prev" = dlfiles; then
1219266e564dSmrg	      dlfiles="$dlfiles $arg"
1220266e564dSmrg	    else
1221266e564dSmrg	      dlprefiles="$dlprefiles $arg"
1222266e564dSmrg	    fi
1223266e564dSmrg	    prev=
1224266e564dSmrg	    continue
1225266e564dSmrg	    ;;
1226266e564dSmrg	  esac
1227266e564dSmrg	  ;;
1228266e564dSmrg	expsyms)
1229266e564dSmrg	  export_symbols="$arg"
1230266e564dSmrg	  if test ! -f "$arg"; then
1231266e564dSmrg	    $echo "$modename: symbol file \`$arg' does not exist"
1232266e564dSmrg	    exit $EXIT_FAILURE
1233266e564dSmrg	  fi
1234266e564dSmrg	  prev=
1235266e564dSmrg	  continue
1236266e564dSmrg	  ;;
1237266e564dSmrg	expsyms_regex)
1238266e564dSmrg	  export_symbols_regex="$arg"
1239266e564dSmrg	  prev=
1240266e564dSmrg	  continue
1241266e564dSmrg	  ;;
1242266e564dSmrg	inst_prefix)
1243266e564dSmrg	  inst_prefix_dir="$arg"
1244266e564dSmrg	  prev=
1245266e564dSmrg	  continue
1246266e564dSmrg	  ;;
1247266e564dSmrg	precious_regex)
1248266e564dSmrg	  precious_files_regex="$arg"
1249266e564dSmrg	  prev=
1250266e564dSmrg	  continue
1251266e564dSmrg	  ;;
1252266e564dSmrg	release)
1253266e564dSmrg	  release="-$arg"
1254266e564dSmrg	  prev=
1255266e564dSmrg	  continue
1256266e564dSmrg	  ;;
1257266e564dSmrg	objectlist)
1258266e564dSmrg	  if test -f "$arg"; then
1259266e564dSmrg	    save_arg=$arg
1260266e564dSmrg	    moreargs=
1261266e564dSmrg	    for fil in `cat $save_arg`
1262266e564dSmrg	    do
1263266e564dSmrg#	      moreargs="$moreargs $fil"
1264266e564dSmrg	      arg=$fil
1265266e564dSmrg	      # A libtool-controlled object.
1266266e564dSmrg
1267266e564dSmrg	      # Check to see that this really is a libtool object.
1268266e564dSmrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1269266e564dSmrg		pic_object=
1270266e564dSmrg		non_pic_object=
1271266e564dSmrg
1272266e564dSmrg		# Read the .lo file
1273266e564dSmrg		# If there is no directory component, then add one.
1274266e564dSmrg		case $arg in
1275266e564dSmrg		*/* | *\\*) . $arg ;;
1276266e564dSmrg		*) . ./$arg ;;
1277266e564dSmrg		esac
1278266e564dSmrg
1279266e564dSmrg		if test -z "$pic_object" || \
1280266e564dSmrg		   test -z "$non_pic_object" ||
1281266e564dSmrg		   test "$pic_object" = none && \
1282266e564dSmrg		   test "$non_pic_object" = none; then
1283266e564dSmrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1284266e564dSmrg		  exit $EXIT_FAILURE
1285266e564dSmrg		fi
1286266e564dSmrg
1287266e564dSmrg		# Extract subdirectory from the argument.
1288266e564dSmrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1289266e564dSmrg		if test "X$xdir" = "X$arg"; then
1290266e564dSmrg		  xdir=
1291266e564dSmrg		else
1292266e564dSmrg		  xdir="$xdir/"
1293266e564dSmrg		fi
1294266e564dSmrg
1295266e564dSmrg		if test "$pic_object" != none; then
1296266e564dSmrg		  # Prepend the subdirectory the object is found in.
1297266e564dSmrg		  pic_object="$xdir$pic_object"
1298266e564dSmrg
1299266e564dSmrg		  if test "$prev" = dlfiles; then
1300266e564dSmrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1301266e564dSmrg		      dlfiles="$dlfiles $pic_object"
1302266e564dSmrg		      prev=
1303266e564dSmrg		      continue
1304266e564dSmrg		    else
1305266e564dSmrg		      # If libtool objects are unsupported, then we need to preload.
1306266e564dSmrg		      prev=dlprefiles
1307266e564dSmrg		    fi
1308266e564dSmrg		  fi
1309266e564dSmrg
1310266e564dSmrg		  # CHECK ME:  I think I busted this.  -Ossama
1311266e564dSmrg		  if test "$prev" = dlprefiles; then
1312266e564dSmrg		    # Preload the old-style object.
1313266e564dSmrg		    dlprefiles="$dlprefiles $pic_object"
1314266e564dSmrg		    prev=
1315266e564dSmrg		  fi
1316266e564dSmrg
1317266e564dSmrg		  # A PIC object.
1318266e564dSmrg		  libobjs="$libobjs $pic_object"
1319266e564dSmrg		  arg="$pic_object"
1320266e564dSmrg		fi
1321266e564dSmrg
1322266e564dSmrg		# Non-PIC object.
1323266e564dSmrg		if test "$non_pic_object" != none; then
1324266e564dSmrg		  # Prepend the subdirectory the object is found in.
1325266e564dSmrg		  non_pic_object="$xdir$non_pic_object"
1326266e564dSmrg
1327266e564dSmrg		  # A standard non-PIC object
1328266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1329266e564dSmrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
1330266e564dSmrg		    arg="$non_pic_object"
1331266e564dSmrg		  fi
1332266e564dSmrg		else
1333266e564dSmrg		  # If the PIC object exists, use it instead.
1334266e564dSmrg		  # $xdir was prepended to $pic_object above.
1335266e564dSmrg		  non_pic_object="$pic_object"
1336266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1337266e564dSmrg		fi
1338266e564dSmrg	      else
1339266e564dSmrg		# Only an error if not doing a dry-run.
1340266e564dSmrg		if test -z "$run"; then
1341266e564dSmrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342266e564dSmrg		  exit $EXIT_FAILURE
1343266e564dSmrg		else
1344266e564dSmrg		  # Dry-run case.
1345266e564dSmrg
1346266e564dSmrg		  # Extract subdirectory from the argument.
1347266e564dSmrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1348266e564dSmrg		  if test "X$xdir" = "X$arg"; then
1349266e564dSmrg		    xdir=
1350266e564dSmrg		  else
1351266e564dSmrg		    xdir="$xdir/"
1352266e564dSmrg		  fi
1353266e564dSmrg
1354266e564dSmrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1355266e564dSmrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1356266e564dSmrg		  libobjs="$libobjs $pic_object"
1357266e564dSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1358266e564dSmrg		fi
1359266e564dSmrg	      fi
1360266e564dSmrg	    done
1361266e564dSmrg	  else
1362266e564dSmrg	    $echo "$modename: link input file \`$save_arg' does not exist"
1363266e564dSmrg	    exit $EXIT_FAILURE
1364266e564dSmrg	  fi
1365266e564dSmrg	  arg=$save_arg
1366266e564dSmrg	  prev=
1367266e564dSmrg	  continue
1368266e564dSmrg	  ;;
1369266e564dSmrg	rpath | xrpath)
1370266e564dSmrg	  # We need an absolute path.
1371266e564dSmrg	  case $arg in
1372266e564dSmrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1373266e564dSmrg	  *)
1374266e564dSmrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1375266e564dSmrg	    exit $EXIT_FAILURE
1376266e564dSmrg	    ;;
1377266e564dSmrg	  esac
1378266e564dSmrg	  if test "$prev" = rpath; then
1379266e564dSmrg	    case "$rpath " in
1380266e564dSmrg	    *" $arg "*) ;;
1381266e564dSmrg	    *) rpath="$rpath $arg" ;;
1382266e564dSmrg	    esac
1383266e564dSmrg	  else
1384266e564dSmrg	    case "$xrpath " in
1385266e564dSmrg	    *" $arg "*) ;;
1386266e564dSmrg	    *) xrpath="$xrpath $arg" ;;
1387266e564dSmrg	    esac
1388266e564dSmrg	  fi
1389266e564dSmrg	  prev=
1390266e564dSmrg	  continue
1391266e564dSmrg	  ;;
1392266e564dSmrg	xcompiler)
1393266e564dSmrg	  compiler_flags="$compiler_flags $qarg"
1394266e564dSmrg	  prev=
1395266e564dSmrg	  compile_command="$compile_command $qarg"
1396266e564dSmrg	  finalize_command="$finalize_command $qarg"
1397266e564dSmrg	  continue
1398266e564dSmrg	  ;;
1399266e564dSmrg	xlinker)
1400266e564dSmrg	  linker_flags="$linker_flags $qarg"
1401266e564dSmrg	  compiler_flags="$compiler_flags $wl$qarg"
1402266e564dSmrg	  prev=
1403266e564dSmrg	  compile_command="$compile_command $wl$qarg"
1404266e564dSmrg	  finalize_command="$finalize_command $wl$qarg"
1405266e564dSmrg	  continue
1406266e564dSmrg	  ;;
1407266e564dSmrg	xcclinker)
1408266e564dSmrg	  linker_flags="$linker_flags $qarg"
1409266e564dSmrg	  compiler_flags="$compiler_flags $qarg"
1410266e564dSmrg	  prev=
1411266e564dSmrg	  compile_command="$compile_command $qarg"
1412266e564dSmrg	  finalize_command="$finalize_command $qarg"
1413266e564dSmrg	  continue
1414266e564dSmrg	  ;;
1415266e564dSmrg	shrext)
1416266e564dSmrg  	  shrext_cmds="$arg"
1417266e564dSmrg	  prev=
1418266e564dSmrg	  continue
1419266e564dSmrg	  ;;
1420266e564dSmrg	darwin_framework|darwin_framework_skip)
1421266e564dSmrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1422266e564dSmrg	  compile_command="$compile_command $arg"
1423266e564dSmrg	  finalize_command="$finalize_command $arg"
1424266e564dSmrg	  prev=
1425266e564dSmrg	  continue
1426266e564dSmrg	  ;;
1427266e564dSmrg	*)
1428266e564dSmrg	  eval "$prev=\"\$arg\""
1429266e564dSmrg	  prev=
1430266e564dSmrg	  continue
1431266e564dSmrg	  ;;
1432266e564dSmrg	esac
1433266e564dSmrg      fi # test -n "$prev"
1434266e564dSmrg
1435266e564dSmrg      prevarg="$arg"
1436266e564dSmrg
1437266e564dSmrg      case $arg in
1438266e564dSmrg      -all-static)
1439266e564dSmrg	if test -n "$link_static_flag"; then
1440266e564dSmrg	  compile_command="$compile_command $link_static_flag"
1441266e564dSmrg	  finalize_command="$finalize_command $link_static_flag"
1442266e564dSmrg	fi
1443266e564dSmrg	continue
1444266e564dSmrg	;;
1445266e564dSmrg
1446266e564dSmrg      -allow-undefined)
1447266e564dSmrg	# FIXME: remove this flag sometime in the future.
1448266e564dSmrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1449266e564dSmrg	continue
1450266e564dSmrg	;;
1451266e564dSmrg
1452266e564dSmrg      -avoid-version)
1453266e564dSmrg	avoid_version=yes
1454266e564dSmrg	continue
1455266e564dSmrg	;;
1456266e564dSmrg
1457266e564dSmrg      -dlopen)
1458266e564dSmrg	prev=dlfiles
1459266e564dSmrg	continue
1460266e564dSmrg	;;
1461266e564dSmrg
1462266e564dSmrg      -dlpreopen)
1463266e564dSmrg	prev=dlprefiles
1464266e564dSmrg	continue
1465266e564dSmrg	;;
1466266e564dSmrg
1467266e564dSmrg      -export-dynamic)
1468266e564dSmrg	export_dynamic=yes
1469266e564dSmrg	continue
1470266e564dSmrg	;;
1471266e564dSmrg
1472266e564dSmrg      -export-symbols | -export-symbols-regex)
1473266e564dSmrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474266e564dSmrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1475266e564dSmrg	  exit $EXIT_FAILURE
1476266e564dSmrg	fi
1477266e564dSmrg	if test "X$arg" = "X-export-symbols"; then
1478266e564dSmrg	  prev=expsyms
1479266e564dSmrg	else
1480266e564dSmrg	  prev=expsyms_regex
1481266e564dSmrg	fi
1482266e564dSmrg	continue
1483266e564dSmrg	;;
1484266e564dSmrg
1485266e564dSmrg      -framework|-arch|-isysroot)
1486266e564dSmrg	case " $CC " in
1487266e564dSmrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1488266e564dSmrg		prev=darwin_framework_skip ;;
1489266e564dSmrg	  *) compiler_flags="$compiler_flags $arg"
1490266e564dSmrg	     prev=darwin_framework ;;
1491266e564dSmrg	esac
1492266e564dSmrg	compile_command="$compile_command $arg"
1493266e564dSmrg	finalize_command="$finalize_command $arg"
1494266e564dSmrg	continue
1495266e564dSmrg	;;
1496266e564dSmrg
1497266e564dSmrg      -inst-prefix-dir)
1498266e564dSmrg	prev=inst_prefix
1499266e564dSmrg	continue
1500266e564dSmrg	;;
1501266e564dSmrg
1502266e564dSmrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1503266e564dSmrg      # so, if we see these flags be careful not to treat them like -L
1504266e564dSmrg      -L[A-Z][A-Z]*:*)
1505266e564dSmrg	case $with_gcc/$host in
1506266e564dSmrg	no/*-*-irix* | /*-*-irix*)
1507266e564dSmrg	  compile_command="$compile_command $arg"
1508266e564dSmrg	  finalize_command="$finalize_command $arg"
1509266e564dSmrg	  ;;
1510266e564dSmrg	esac
1511266e564dSmrg	continue
1512266e564dSmrg	;;
1513266e564dSmrg
1514266e564dSmrg      -L*)
1515266e564dSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1516266e564dSmrg	# We need an absolute path.
1517266e564dSmrg	case $dir in
1518266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1519266e564dSmrg	*)
1520266e564dSmrg	  absdir=`cd "$dir" && pwd`
1521266e564dSmrg	  if test -z "$absdir"; then
1522266e564dSmrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1523266e564dSmrg	    absdir="$dir"
1524266e564dSmrg	    notinst_path="$notinst_path $dir"
1525266e564dSmrg	  fi
1526266e564dSmrg	  dir="$absdir"
1527266e564dSmrg	  ;;
1528266e564dSmrg	esac
1529266e564dSmrg	case "$deplibs " in
1530266e564dSmrg	*" -L$dir "*) ;;
1531266e564dSmrg	*)
1532266e564dSmrg	  deplibs="$deplibs -L$dir"
1533266e564dSmrg	  lib_search_path="$lib_search_path $dir"
1534266e564dSmrg	  ;;
1535266e564dSmrg	esac
1536266e564dSmrg	case $host in
1537266e564dSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1538266e564dSmrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539266e564dSmrg	  case :$dllsearchpath: in
1540266e564dSmrg	  *":$dir:"*) ;;
1541266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$dir";;
1542266e564dSmrg	  esac
1543266e564dSmrg	  case :$dllsearchpath: in
1544266e564dSmrg	  *":$testbindir:"*) ;;
1545266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1546266e564dSmrg	  esac
1547266e564dSmrg	  ;;
1548266e564dSmrg	esac
1549266e564dSmrg	continue
1550266e564dSmrg	;;
1551266e564dSmrg
1552266e564dSmrg      -l*)
1553266e564dSmrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554266e564dSmrg	  case $host in
1555266e564dSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1556266e564dSmrg	    # These systems don't actually have a C or math library (as such)
1557266e564dSmrg	    continue
1558266e564dSmrg	    ;;
1559266e564dSmrg	  *-*-os2*)
1560266e564dSmrg	    # These systems don't actually have a C library (as such)
1561266e564dSmrg	    test "X$arg" = "X-lc" && continue
1562266e564dSmrg	    ;;
1563266e564dSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1564266e564dSmrg	    # Do not include libc due to us having libc/libc_r.
1565266e564dSmrg	    test "X$arg" = "X-lc" && continue
1566266e564dSmrg	    ;;
1567266e564dSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
1568266e564dSmrg	    # Rhapsody C and math libraries are in the System framework
1569266e564dSmrg	    deplibs="$deplibs -framework System"
1570266e564dSmrg	    continue
1571266e564dSmrg	    ;;
1572266e564dSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
1573266e564dSmrg	    # Causes problems with __ctype
1574266e564dSmrg	    test "X$arg" = "X-lc" && continue
1575266e564dSmrg	    ;;
1576266e564dSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1577266e564dSmrg	    # Compiler inserts libc in the correct place for threads to work
1578266e564dSmrg	    test "X$arg" = "X-lc" && continue
1579266e564dSmrg	    ;;
1580266e564dSmrg	  esac
1581266e564dSmrg	elif test "X$arg" = "X-lc_r"; then
1582266e564dSmrg	 case $host in
1583266e564dSmrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1584266e564dSmrg	   # Do not include libc_r directly, use -pthread flag.
1585266e564dSmrg	   continue
1586266e564dSmrg	   ;;
1587266e564dSmrg	 esac
1588266e564dSmrg	fi
1589266e564dSmrg	deplibs="$deplibs $arg"
1590266e564dSmrg	continue
1591266e564dSmrg	;;
1592266e564dSmrg
1593266e564dSmrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594266e564dSmrg      # classes, name mangling, and exception handling.
1595266e564dSmrg      -model)
1596266e564dSmrg	compile_command="$compile_command $arg"
1597266e564dSmrg	compiler_flags="$compiler_flags $arg"
1598266e564dSmrg	finalize_command="$finalize_command $arg"
1599266e564dSmrg	prev=xcompiler
1600266e564dSmrg	continue
1601266e564dSmrg	;;
1602266e564dSmrg
1603266e564dSmrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1604266e564dSmrg	compiler_flags="$compiler_flags $arg"
1605266e564dSmrg	compile_command="$compile_command $arg"
1606266e564dSmrg	finalize_command="$finalize_command $arg"
1607266e564dSmrg	continue
1608266e564dSmrg	;;
1609266e564dSmrg
1610266e564dSmrg      -module)
1611266e564dSmrg	module=yes
1612266e564dSmrg	continue
1613266e564dSmrg	;;
1614266e564dSmrg
1615266e564dSmrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1616266e564dSmrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1617266e564dSmrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618266e564dSmrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
1619266e564dSmrg      # -q* pass through compiler args for the IBM compiler
1620266e564dSmrg      # -m* pass through architecture-specific compiler args for GCC
1621266e564dSmrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
1622266e564dSmrg      # compiler args for GCC
1623266e564dSmrg      # -pg pass through profiling flag for GCC
1624266e564dSmrg      # @file GCC response files
1625266e564dSmrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626266e564dSmrg      -t[45]*|-txscale*|@*)
1627266e564dSmrg
1628266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1629266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1630266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631266e564dSmrg	case $arg in
1632266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1633266e564dSmrg	  arg="\"$arg\""
1634266e564dSmrg	  ;;
1635266e564dSmrg	esac
1636266e564dSmrg        compile_command="$compile_command $arg"
1637266e564dSmrg        finalize_command="$finalize_command $arg"
1638266e564dSmrg        compiler_flags="$compiler_flags $arg"
1639266e564dSmrg        continue
1640266e564dSmrg        ;;
1641266e564dSmrg
1642266e564dSmrg      -shrext)
1643266e564dSmrg	prev=shrext
1644266e564dSmrg	continue
1645266e564dSmrg	;;
1646266e564dSmrg
1647266e564dSmrg      -no-fast-install)
1648266e564dSmrg	fast_install=no
1649266e564dSmrg	continue
1650266e564dSmrg	;;
1651266e564dSmrg
1652266e564dSmrg      -no-install)
1653266e564dSmrg	case $host in
1654266e564dSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1655266e564dSmrg	  # The PATH hackery in wrapper scripts is required on Windows
1656266e564dSmrg	  # in order for the loader to find any dlls it needs.
1657266e564dSmrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1658266e564dSmrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1659266e564dSmrg	  fast_install=no
1660266e564dSmrg	  ;;
1661266e564dSmrg	*) no_install=yes ;;
1662266e564dSmrg	esac
1663266e564dSmrg	continue
1664266e564dSmrg	;;
1665266e564dSmrg
1666266e564dSmrg      -no-undefined)
1667266e564dSmrg	allow_undefined=no
1668266e564dSmrg	continue
1669266e564dSmrg	;;
1670266e564dSmrg
1671266e564dSmrg      -objectlist)
1672266e564dSmrg	prev=objectlist
1673266e564dSmrg	continue
1674266e564dSmrg	;;
1675266e564dSmrg
1676266e564dSmrg      -o) prev=output ;;
1677266e564dSmrg
1678266e564dSmrg      -precious-files-regex)
1679266e564dSmrg	prev=precious_regex
1680266e564dSmrg	continue
1681266e564dSmrg	;;
1682266e564dSmrg
1683266e564dSmrg      -release)
1684266e564dSmrg	prev=release
1685266e564dSmrg	continue
1686266e564dSmrg	;;
1687266e564dSmrg
1688266e564dSmrg      -rpath)
1689266e564dSmrg	prev=rpath
1690266e564dSmrg	continue
1691266e564dSmrg	;;
1692266e564dSmrg
1693266e564dSmrg      -R)
1694266e564dSmrg	prev=xrpath
1695266e564dSmrg	continue
1696266e564dSmrg	;;
1697266e564dSmrg
1698266e564dSmrg      -R*)
1699266e564dSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1700266e564dSmrg	# We need an absolute path.
1701266e564dSmrg	case $dir in
1702266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1703266e564dSmrg	*)
1704266e564dSmrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1705266e564dSmrg	  exit $EXIT_FAILURE
1706266e564dSmrg	  ;;
1707266e564dSmrg	esac
1708266e564dSmrg	case "$xrpath " in
1709266e564dSmrg	*" $dir "*) ;;
1710266e564dSmrg	*) xrpath="$xrpath $dir" ;;
1711266e564dSmrg	esac
1712266e564dSmrg	continue
1713266e564dSmrg	;;
1714266e564dSmrg
1715266e564dSmrg      -static)
1716266e564dSmrg	# The effects of -static are defined in a previous loop.
1717266e564dSmrg	# We used to do the same as -all-static on platforms that
1718266e564dSmrg	# didn't have a PIC flag, but the assumption that the effects
1719266e564dSmrg	# would be equivalent was wrong.  It would break on at least
1720266e564dSmrg	# Digital Unix and AIX.
1721266e564dSmrg	continue
1722266e564dSmrg	;;
1723266e564dSmrg
1724266e564dSmrg      -thread-safe)
1725266e564dSmrg	thread_safe=yes
1726266e564dSmrg	continue
1727266e564dSmrg	;;
1728266e564dSmrg
1729266e564dSmrg      -version-info)
1730266e564dSmrg	prev=vinfo
1731266e564dSmrg	continue
1732266e564dSmrg	;;
1733266e564dSmrg      -version-number)
1734266e564dSmrg	prev=vinfo
1735266e564dSmrg	vinfo_number=yes
1736266e564dSmrg	continue
1737266e564dSmrg	;;
1738266e564dSmrg
1739266e564dSmrg      -Wc,*)
1740266e564dSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1741266e564dSmrg	arg=
1742266e564dSmrg	save_ifs="$IFS"; IFS=','
1743266e564dSmrg	for flag in $args; do
1744266e564dSmrg	  IFS="$save_ifs"
1745266e564dSmrg	  case $flag in
1746266e564dSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1747266e564dSmrg	    flag="\"$flag\""
1748266e564dSmrg	    ;;
1749266e564dSmrg	  esac
1750266e564dSmrg	  arg="$arg $wl$flag"
1751266e564dSmrg	  compiler_flags="$compiler_flags $flag"
1752266e564dSmrg	done
1753266e564dSmrg	IFS="$save_ifs"
1754266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1755266e564dSmrg	;;
1756266e564dSmrg
1757266e564dSmrg      -Wl,*)
1758266e564dSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1759266e564dSmrg	arg=
1760266e564dSmrg	save_ifs="$IFS"; IFS=','
1761266e564dSmrg	for flag in $args; do
1762266e564dSmrg	  IFS="$save_ifs"
1763266e564dSmrg	  case $flag in
1764266e564dSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1765266e564dSmrg	    flag="\"$flag\""
1766266e564dSmrg	    ;;
1767266e564dSmrg	  esac
1768266e564dSmrg	  arg="$arg $wl$flag"
1769266e564dSmrg	  compiler_flags="$compiler_flags $wl$flag"
1770266e564dSmrg	  linker_flags="$linker_flags $flag"
1771266e564dSmrg	done
1772266e564dSmrg	IFS="$save_ifs"
1773266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1774266e564dSmrg	;;
1775266e564dSmrg
1776266e564dSmrg      -Xcompiler)
1777266e564dSmrg	prev=xcompiler
1778266e564dSmrg	continue
1779266e564dSmrg	;;
1780266e564dSmrg
1781266e564dSmrg      -Xlinker)
1782266e564dSmrg	prev=xlinker
1783266e564dSmrg	continue
1784266e564dSmrg	;;
1785266e564dSmrg
1786266e564dSmrg      -XCClinker)
1787266e564dSmrg	prev=xcclinker
1788266e564dSmrg	continue
1789266e564dSmrg	;;
1790266e564dSmrg
1791266e564dSmrg      # Some other compiler flag.
1792266e564dSmrg      -* | +*)
1793266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1794266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1795266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796266e564dSmrg	case $arg in
1797266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1798266e564dSmrg	  arg="\"$arg\""
1799266e564dSmrg	  ;;
1800266e564dSmrg	esac
1801266e564dSmrg	;;
1802266e564dSmrg
1803266e564dSmrg      *.$objext)
1804266e564dSmrg	# A standard object.
1805266e564dSmrg	objs="$objs $arg"
1806266e564dSmrg	;;
1807266e564dSmrg
1808266e564dSmrg      *.lo)
1809266e564dSmrg	# A libtool-controlled object.
1810266e564dSmrg
1811266e564dSmrg	# Check to see that this really is a libtool object.
1812266e564dSmrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1813266e564dSmrg	  pic_object=
1814266e564dSmrg	  non_pic_object=
1815266e564dSmrg
1816266e564dSmrg	  # Read the .lo file
1817266e564dSmrg	  # If there is no directory component, then add one.
1818266e564dSmrg	  case $arg in
1819266e564dSmrg	  */* | *\\*) . $arg ;;
1820266e564dSmrg	  *) . ./$arg ;;
1821266e564dSmrg	  esac
1822266e564dSmrg
1823266e564dSmrg	  if test -z "$pic_object" || \
1824266e564dSmrg	     test -z "$non_pic_object" ||
1825266e564dSmrg	     test "$pic_object" = none && \
1826266e564dSmrg	     test "$non_pic_object" = none; then
1827266e564dSmrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1828266e564dSmrg	    exit $EXIT_FAILURE
1829266e564dSmrg	  fi
1830266e564dSmrg
1831266e564dSmrg	  # Extract subdirectory from the argument.
1832266e564dSmrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1833266e564dSmrg	  if test "X$xdir" = "X$arg"; then
1834266e564dSmrg	    xdir=
1835266e564dSmrg 	  else
1836266e564dSmrg	    xdir="$xdir/"
1837266e564dSmrg	  fi
1838266e564dSmrg
1839266e564dSmrg	  if test "$pic_object" != none; then
1840266e564dSmrg	    # Prepend the subdirectory the object is found in.
1841266e564dSmrg	    pic_object="$xdir$pic_object"
1842266e564dSmrg
1843266e564dSmrg	    if test "$prev" = dlfiles; then
1844266e564dSmrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1845266e564dSmrg		dlfiles="$dlfiles $pic_object"
1846266e564dSmrg		prev=
1847266e564dSmrg		continue
1848266e564dSmrg	      else
1849266e564dSmrg		# If libtool objects are unsupported, then we need to preload.
1850266e564dSmrg		prev=dlprefiles
1851266e564dSmrg	      fi
1852266e564dSmrg	    fi
1853266e564dSmrg
1854266e564dSmrg	    # CHECK ME:  I think I busted this.  -Ossama
1855266e564dSmrg	    if test "$prev" = dlprefiles; then
1856266e564dSmrg	      # Preload the old-style object.
1857266e564dSmrg	      dlprefiles="$dlprefiles $pic_object"
1858266e564dSmrg	      prev=
1859266e564dSmrg	    fi
1860266e564dSmrg
1861266e564dSmrg	    # A PIC object.
1862266e564dSmrg	    libobjs="$libobjs $pic_object"
1863266e564dSmrg	    arg="$pic_object"
1864266e564dSmrg	  fi
1865266e564dSmrg
1866266e564dSmrg	  # Non-PIC object.
1867266e564dSmrg	  if test "$non_pic_object" != none; then
1868266e564dSmrg	    # Prepend the subdirectory the object is found in.
1869266e564dSmrg	    non_pic_object="$xdir$non_pic_object"
1870266e564dSmrg
1871266e564dSmrg	    # A standard non-PIC object
1872266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1873266e564dSmrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
1874266e564dSmrg	      arg="$non_pic_object"
1875266e564dSmrg	    fi
1876266e564dSmrg	  else
1877266e564dSmrg	    # If the PIC object exists, use it instead.
1878266e564dSmrg	    # $xdir was prepended to $pic_object above.
1879266e564dSmrg	    non_pic_object="$pic_object"
1880266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1881266e564dSmrg	  fi
1882266e564dSmrg	else
1883266e564dSmrg	  # Only an error if not doing a dry-run.
1884266e564dSmrg	  if test -z "$run"; then
1885266e564dSmrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886266e564dSmrg	    exit $EXIT_FAILURE
1887266e564dSmrg	  else
1888266e564dSmrg	    # Dry-run case.
1889266e564dSmrg
1890266e564dSmrg	    # Extract subdirectory from the argument.
1891266e564dSmrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1892266e564dSmrg	    if test "X$xdir" = "X$arg"; then
1893266e564dSmrg	      xdir=
1894266e564dSmrg	    else
1895266e564dSmrg	      xdir="$xdir/"
1896266e564dSmrg	    fi
1897266e564dSmrg
1898266e564dSmrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1899266e564dSmrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1900266e564dSmrg	    libobjs="$libobjs $pic_object"
1901266e564dSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1902266e564dSmrg	  fi
1903266e564dSmrg	fi
1904266e564dSmrg	;;
1905266e564dSmrg
1906266e564dSmrg      *.$libext)
1907266e564dSmrg	# An archive.
1908266e564dSmrg	deplibs="$deplibs $arg"
1909266e564dSmrg	old_deplibs="$old_deplibs $arg"
1910266e564dSmrg	continue
1911266e564dSmrg	;;
1912266e564dSmrg
1913266e564dSmrg      *.la)
1914266e564dSmrg	# A libtool-controlled library.
1915266e564dSmrg
1916266e564dSmrg	if test "$prev" = dlfiles; then
1917266e564dSmrg	  # This library was specified with -dlopen.
1918266e564dSmrg	  dlfiles="$dlfiles $arg"
1919266e564dSmrg	  prev=
1920266e564dSmrg	elif test "$prev" = dlprefiles; then
1921266e564dSmrg	  # The library was specified with -dlpreopen.
1922266e564dSmrg	  dlprefiles="$dlprefiles $arg"
1923266e564dSmrg	  prev=
1924266e564dSmrg	else
1925266e564dSmrg	  deplibs="$deplibs $arg"
1926266e564dSmrg	fi
1927266e564dSmrg	continue
1928266e564dSmrg	;;
1929266e564dSmrg
1930266e564dSmrg      # Some other compiler argument.
1931266e564dSmrg      *)
1932266e564dSmrg	# Unknown arguments in both finalize_command and compile_command need
1933266e564dSmrg	# to be aesthetically quoted because they are evaled later.
1934266e564dSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1935266e564dSmrg	case $arg in
1936266e564dSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1937266e564dSmrg	  arg="\"$arg\""
1938266e564dSmrg	  ;;
1939266e564dSmrg	esac
1940266e564dSmrg	;;
1941266e564dSmrg      esac # arg
1942266e564dSmrg
1943266e564dSmrg      # Now actually substitute the argument into the commands.
1944266e564dSmrg      if test -n "$arg"; then
1945266e564dSmrg	compile_command="$compile_command $arg"
1946266e564dSmrg	finalize_command="$finalize_command $arg"
1947266e564dSmrg      fi
1948266e564dSmrg    done # argument parsing loop
1949266e564dSmrg
1950266e564dSmrg    if test -n "$prev"; then
1951266e564dSmrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1952266e564dSmrg      $echo "$help" 1>&2
1953266e564dSmrg      exit $EXIT_FAILURE
1954266e564dSmrg    fi
1955266e564dSmrg
1956266e564dSmrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957266e564dSmrg      eval arg=\"$export_dynamic_flag_spec\"
1958266e564dSmrg      compile_command="$compile_command $arg"
1959266e564dSmrg      finalize_command="$finalize_command $arg"
1960266e564dSmrg    fi
1961266e564dSmrg
1962266e564dSmrg    oldlibs=
1963266e564dSmrg    # calculate the name of the file, without its directory
1964266e564dSmrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1965266e564dSmrg    libobjs_save="$libobjs"
1966266e564dSmrg
1967266e564dSmrg    if test -n "$shlibpath_var"; then
1968266e564dSmrg      # get the directories listed in $shlibpath_var
1969266e564dSmrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970266e564dSmrg    else
1971266e564dSmrg      shlib_search_path=
1972266e564dSmrg    fi
1973266e564dSmrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974266e564dSmrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975266e564dSmrg
1976266e564dSmrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1977266e564dSmrg    if test "X$output_objdir" = "X$output"; then
1978266e564dSmrg      output_objdir="$objdir"
1979266e564dSmrg    else
1980266e564dSmrg      output_objdir="$output_objdir/$objdir"
1981266e564dSmrg    fi
1982266e564dSmrg    # Create the object directory.
1983266e564dSmrg    if test ! -d "$output_objdir"; then
1984266e564dSmrg      $show "$mkdir $output_objdir"
1985266e564dSmrg      $run $mkdir $output_objdir
1986266e564dSmrg      exit_status=$?
1987266e564dSmrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988266e564dSmrg	exit $exit_status
1989266e564dSmrg      fi
1990266e564dSmrg    fi
1991266e564dSmrg
1992266e564dSmrg    # Determine the type of output
1993266e564dSmrg    case $output in
1994266e564dSmrg    "")
1995266e564dSmrg      $echo "$modename: you must specify an output file" 1>&2
1996266e564dSmrg      $echo "$help" 1>&2
1997266e564dSmrg      exit $EXIT_FAILURE
1998266e564dSmrg      ;;
1999266e564dSmrg    *.$libext) linkmode=oldlib ;;
2000266e564dSmrg    *.lo | *.$objext) linkmode=obj ;;
2001266e564dSmrg    *.la) linkmode=lib ;;
2002266e564dSmrg    *) linkmode=prog ;; # Anything else should be a program.
2003266e564dSmrg    esac
2004266e564dSmrg
2005266e564dSmrg    case $host in
2006266e564dSmrg    *cygwin* | *mingw* | *pw32*)
2007266e564dSmrg      # don't eliminate duplications in $postdeps and $predeps
2008266e564dSmrg      duplicate_compiler_generated_deps=yes
2009266e564dSmrg      ;;
2010266e564dSmrg    *)
2011266e564dSmrg      duplicate_compiler_generated_deps=$duplicate_deps
2012266e564dSmrg      ;;
2013266e564dSmrg    esac
2014266e564dSmrg    specialdeplibs=
2015266e564dSmrg
2016266e564dSmrg    libs=
2017266e564dSmrg    # Find all interdependent deplibs by searching for libraries
2018266e564dSmrg    # that are linked more than once (e.g. -la -lb -la)
2019266e564dSmrg    for deplib in $deplibs; do
2020266e564dSmrg      if test "X$duplicate_deps" = "Xyes" ; then
2021266e564dSmrg	case "$libs " in
2022266e564dSmrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023266e564dSmrg	esac
2024266e564dSmrg      fi
2025266e564dSmrg      libs="$libs $deplib"
2026266e564dSmrg    done
2027266e564dSmrg
2028266e564dSmrg    if test "$linkmode" = lib; then
2029266e564dSmrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2030266e564dSmrg
2031266e564dSmrg      # Compute libraries that are listed more than once in $predeps
2032266e564dSmrg      # $postdeps and mark them as special (i.e., whose duplicates are
2033266e564dSmrg      # not to be eliminated).
2034266e564dSmrg      pre_post_deps=
2035266e564dSmrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2036266e564dSmrg	for pre_post_dep in $predeps $postdeps; do
2037266e564dSmrg	  case "$pre_post_deps " in
2038266e564dSmrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2039266e564dSmrg	  esac
2040266e564dSmrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
2041266e564dSmrg	done
2042266e564dSmrg      fi
2043266e564dSmrg      pre_post_deps=
2044266e564dSmrg    fi
2045266e564dSmrg
2046266e564dSmrg    deplibs=
2047266e564dSmrg    newdependency_libs=
2048266e564dSmrg    newlib_search_path=
2049266e564dSmrg    need_relink=no # whether we're linking any uninstalled libtool libraries
2050266e564dSmrg    notinst_deplibs= # not-installed libtool libraries
2051266e564dSmrg    case $linkmode in
2052266e564dSmrg    lib)
2053266e564dSmrg	passes="conv link"
2054266e564dSmrg	for file in $dlfiles $dlprefiles; do
2055266e564dSmrg	  case $file in
2056266e564dSmrg	  *.la) ;;
2057266e564dSmrg	  *)
2058266e564dSmrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2059266e564dSmrg	    exit $EXIT_FAILURE
2060266e564dSmrg	    ;;
2061266e564dSmrg	  esac
2062266e564dSmrg	done
2063266e564dSmrg	;;
2064266e564dSmrg    prog)
2065266e564dSmrg	compile_deplibs=
2066266e564dSmrg	finalize_deplibs=
2067266e564dSmrg	alldeplibs=no
2068266e564dSmrg	newdlfiles=
2069266e564dSmrg	newdlprefiles=
2070266e564dSmrg	passes="conv scan dlopen dlpreopen link"
2071266e564dSmrg	;;
2072266e564dSmrg    *)  passes="conv"
2073266e564dSmrg	;;
2074266e564dSmrg    esac
2075266e564dSmrg    for pass in $passes; do
2076266e564dSmrg      if test "$linkmode,$pass" = "lib,link" ||
2077266e564dSmrg	 test "$linkmode,$pass" = "prog,scan"; then
2078266e564dSmrg	libs="$deplibs"
2079266e564dSmrg	deplibs=
2080266e564dSmrg      fi
2081266e564dSmrg      if test "$linkmode" = prog; then
2082266e564dSmrg	case $pass in
2083266e564dSmrg	dlopen) libs="$dlfiles" ;;
2084266e564dSmrg	dlpreopen) libs="$dlprefiles" ;;
2085266e564dSmrg	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2086266e564dSmrg	esac
2087266e564dSmrg      fi
2088266e564dSmrg      if test "$pass" = dlopen; then
2089266e564dSmrg	# Collect dlpreopened libraries
2090266e564dSmrg	save_deplibs="$deplibs"
2091266e564dSmrg	deplibs=
2092266e564dSmrg      fi
2093266e564dSmrg      for deplib in $libs; do
2094266e564dSmrg	lib=
2095266e564dSmrg	found=no
2096266e564dSmrg	case $deplib in
2097266e564dSmrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2098266e564dSmrg	  if test "$linkmode,$pass" = "prog,link"; then
2099266e564dSmrg	    compile_deplibs="$deplib $compile_deplibs"
2100266e564dSmrg	    finalize_deplibs="$deplib $finalize_deplibs"
2101266e564dSmrg	  else
2102266e564dSmrg	    compiler_flags="$compiler_flags $deplib"
2103266e564dSmrg	  fi
2104266e564dSmrg	  continue
2105266e564dSmrg	  ;;
2106266e564dSmrg	-l*)
2107266e564dSmrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2108266e564dSmrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2109266e564dSmrg	    continue
2110266e564dSmrg	  fi
2111266e564dSmrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2112266e564dSmrg	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2113266e564dSmrg	    for search_ext in .la $std_shrext .so .a; do
2114266e564dSmrg	      # Search the libtool library
2115266e564dSmrg	      lib="$searchdir/lib${name}${search_ext}"
2116266e564dSmrg	      if test -f "$lib"; then
2117266e564dSmrg		if test "$search_ext" = ".la"; then
2118266e564dSmrg		  found=yes
2119266e564dSmrg		else
2120266e564dSmrg		  found=no
2121266e564dSmrg		fi
2122266e564dSmrg		break 2
2123266e564dSmrg	      fi
2124266e564dSmrg	    done
2125266e564dSmrg	  done
2126266e564dSmrg	  if test "$found" != yes; then
2127266e564dSmrg	    # deplib doesn't seem to be a libtool library
2128266e564dSmrg	    if test "$linkmode,$pass" = "prog,link"; then
2129266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2130266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2131266e564dSmrg	    else
2132266e564dSmrg	      deplibs="$deplib $deplibs"
2133266e564dSmrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2134266e564dSmrg	    fi
2135266e564dSmrg	    continue
2136266e564dSmrg	  else # deplib is a libtool library
2137266e564dSmrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2138266e564dSmrg	    # We need to do some special things here, and not later.
2139266e564dSmrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2140266e564dSmrg	      case " $predeps $postdeps " in
2141266e564dSmrg	      *" $deplib "*)
2142266e564dSmrg		if (${SED} -e '2q' $lib |
2143266e564dSmrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2144266e564dSmrg		  library_names=
2145266e564dSmrg		  old_library=
2146266e564dSmrg		  case $lib in
2147266e564dSmrg		  */* | *\\*) . $lib ;;
2148266e564dSmrg		  *) . ./$lib ;;
2149266e564dSmrg		  esac
2150266e564dSmrg		  for l in $old_library $library_names; do
2151266e564dSmrg		    ll="$l"
2152266e564dSmrg		  done
2153266e564dSmrg		  if test "X$ll" = "X$old_library" ; then # only static version available
2154266e564dSmrg		    found=no
2155266e564dSmrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2156266e564dSmrg		    test "X$ladir" = "X$lib" && ladir="."
2157266e564dSmrg		    lib=$ladir/$old_library
2158266e564dSmrg		    if test "$linkmode,$pass" = "prog,link"; then
2159266e564dSmrg		      compile_deplibs="$deplib $compile_deplibs"
2160266e564dSmrg		      finalize_deplibs="$deplib $finalize_deplibs"
2161266e564dSmrg		    else
2162266e564dSmrg		      deplibs="$deplib $deplibs"
2163266e564dSmrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2164266e564dSmrg		    fi
2165266e564dSmrg		    continue
2166266e564dSmrg		  fi
2167266e564dSmrg		fi
2168266e564dSmrg	        ;;
2169266e564dSmrg	      *) ;;
2170266e564dSmrg	      esac
2171266e564dSmrg	    fi
2172266e564dSmrg	  fi
2173266e564dSmrg	  ;; # -l
2174266e564dSmrg	-L*)
2175266e564dSmrg	  case $linkmode in
2176266e564dSmrg	  lib)
2177266e564dSmrg	    deplibs="$deplib $deplibs"
2178266e564dSmrg	    test "$pass" = conv && continue
2179266e564dSmrg	    newdependency_libs="$deplib $newdependency_libs"
2180266e564dSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2181266e564dSmrg	    ;;
2182266e564dSmrg	  prog)
2183266e564dSmrg	    if test "$pass" = conv; then
2184266e564dSmrg	      deplibs="$deplib $deplibs"
2185266e564dSmrg	      continue
2186266e564dSmrg	    fi
2187266e564dSmrg	    if test "$pass" = scan; then
2188266e564dSmrg	      deplibs="$deplib $deplibs"
2189266e564dSmrg	    else
2190266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2191266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2192266e564dSmrg	    fi
2193266e564dSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2194266e564dSmrg	    ;;
2195266e564dSmrg	  *)
2196266e564dSmrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2197266e564dSmrg	    ;;
2198266e564dSmrg	  esac # linkmode
2199266e564dSmrg	  continue
2200266e564dSmrg	  ;; # -L
2201266e564dSmrg	-R*)
2202266e564dSmrg	  if test "$pass" = link; then
2203266e564dSmrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2204266e564dSmrg	    # Make sure the xrpath contains only unique directories.
2205266e564dSmrg	    case "$xrpath " in
2206266e564dSmrg	    *" $dir "*) ;;
2207266e564dSmrg	    *) xrpath="$xrpath $dir" ;;
2208266e564dSmrg	    esac
2209266e564dSmrg	  fi
2210266e564dSmrg	  deplibs="$deplib $deplibs"
2211266e564dSmrg	  continue
2212266e564dSmrg	  ;;
2213266e564dSmrg	*.la) lib="$deplib" ;;
2214266e564dSmrg	*.$libext)
2215266e564dSmrg	  if test "$pass" = conv; then
2216266e564dSmrg	    deplibs="$deplib $deplibs"
2217266e564dSmrg	    continue
2218266e564dSmrg	  fi
2219266e564dSmrg	  case $linkmode in
2220266e564dSmrg	  lib)
2221266e564dSmrg	    valid_a_lib=no
2222266e564dSmrg	    case $deplibs_check_method in
2223266e564dSmrg	      match_pattern*)
2224266e564dSmrg		set dummy $deplibs_check_method
2225266e564dSmrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2226266e564dSmrg		if eval $echo \"$deplib\" 2>/dev/null \
2227266e564dSmrg		    | $SED 10q \
2228266e564dSmrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
2229266e564dSmrg		  valid_a_lib=yes
2230266e564dSmrg		fi
2231266e564dSmrg		;;
2232266e564dSmrg	      pass_all)
2233266e564dSmrg		valid_a_lib=yes
2234266e564dSmrg		;;
2235266e564dSmrg            esac
2236266e564dSmrg	    if test "$valid_a_lib" != yes; then
2237266e564dSmrg	      $echo
2238266e564dSmrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2239266e564dSmrg	      $echo "*** I have the capability to make that library automatically link in when"
2240266e564dSmrg	      $echo "*** you link to this library.  But I can only do this if you have a"
2241266e564dSmrg	      $echo "*** shared version of the library, which you do not appear to have"
2242266e564dSmrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2243266e564dSmrg	      $echo "*** that it is just a static archive that I should not used here."
2244266e564dSmrg	    else
2245266e564dSmrg	      $echo
2246266e564dSmrg	      $echo "*** Warning: Linking the shared library $output against the"
2247266e564dSmrg	      $echo "*** static library $deplib is not portable!"
2248266e564dSmrg	      deplibs="$deplib $deplibs"
2249266e564dSmrg	    fi
2250266e564dSmrg	    continue
2251266e564dSmrg	    ;;
2252266e564dSmrg	  prog)
2253266e564dSmrg	    if test "$pass" != link; then
2254266e564dSmrg	      deplibs="$deplib $deplibs"
2255266e564dSmrg	    else
2256266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2257266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2258266e564dSmrg	    fi
2259266e564dSmrg	    continue
2260266e564dSmrg	    ;;
2261266e564dSmrg	  esac # linkmode
2262266e564dSmrg	  ;; # *.$libext
2263266e564dSmrg	*.lo | *.$objext)
2264266e564dSmrg	  if test "$pass" = conv; then
2265266e564dSmrg	    deplibs="$deplib $deplibs"
2266266e564dSmrg	  elif test "$linkmode" = prog; then
2267266e564dSmrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2268266e564dSmrg	      # If there is no dlopen support or we're linking statically,
2269266e564dSmrg	      # we need to preload.
2270266e564dSmrg	      newdlprefiles="$newdlprefiles $deplib"
2271266e564dSmrg	      compile_deplibs="$deplib $compile_deplibs"
2272266e564dSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
2273266e564dSmrg	    else
2274266e564dSmrg	      newdlfiles="$newdlfiles $deplib"
2275266e564dSmrg	    fi
2276266e564dSmrg	  fi
2277266e564dSmrg	  continue
2278266e564dSmrg	  ;;
2279266e564dSmrg	%DEPLIBS%)
2280266e564dSmrg	  alldeplibs=yes
2281266e564dSmrg	  continue
2282266e564dSmrg	  ;;
2283266e564dSmrg	esac # case $deplib
2284266e564dSmrg	if test "$found" = yes || test -f "$lib"; then :
2285266e564dSmrg	else
2286266e564dSmrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2287266e564dSmrg	  exit $EXIT_FAILURE
2288266e564dSmrg	fi
2289266e564dSmrg
2290266e564dSmrg	# Check to see that this really is a libtool archive.
2291266e564dSmrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2292266e564dSmrg	else
2293266e564dSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2294266e564dSmrg	  exit $EXIT_FAILURE
2295266e564dSmrg	fi
2296266e564dSmrg
2297266e564dSmrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2298266e564dSmrg	test "X$ladir" = "X$lib" && ladir="."
2299266e564dSmrg
2300266e564dSmrg	dlname=
2301266e564dSmrg	dlopen=
2302266e564dSmrg	dlpreopen=
2303266e564dSmrg	libdir=
2304266e564dSmrg	library_names=
2305266e564dSmrg	old_library=
2306266e564dSmrg	# If the library was installed with an old release of libtool,
2307266e564dSmrg	# it will not redefine variables installed, or shouldnotlink
2308266e564dSmrg	installed=yes
2309266e564dSmrg	shouldnotlink=no
2310266e564dSmrg	avoidtemprpath=
2311266e564dSmrg
2312266e564dSmrg
2313266e564dSmrg	# Read the .la file
2314266e564dSmrg	case $lib in
2315266e564dSmrg	*/* | *\\*) . $lib ;;
2316266e564dSmrg	*) . ./$lib ;;
2317266e564dSmrg	esac
2318266e564dSmrg
2319266e564dSmrg	if test "$linkmode,$pass" = "lib,link" ||
2320266e564dSmrg	   test "$linkmode,$pass" = "prog,scan" ||
2321266e564dSmrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2322266e564dSmrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2323266e564dSmrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2324266e564dSmrg	fi
2325266e564dSmrg
2326266e564dSmrg	if test "$pass" = conv; then
2327266e564dSmrg	  # Only check for convenience libraries
2328266e564dSmrg	  deplibs="$lib $deplibs"
2329266e564dSmrg	  if test -z "$libdir"; then
2330266e564dSmrg	    if test -z "$old_library"; then
2331266e564dSmrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2332266e564dSmrg	      exit $EXIT_FAILURE
2333266e564dSmrg	    fi
2334266e564dSmrg	    # It is a libtool convenience library, so add in its objects.
2335266e564dSmrg	    convenience="$convenience $ladir/$objdir/$old_library"
2336266e564dSmrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2337266e564dSmrg	    tmp_libs=
2338266e564dSmrg	    for deplib in $dependency_libs; do
2339266e564dSmrg	      deplibs="$deplib $deplibs"
2340266e564dSmrg              if test "X$duplicate_deps" = "Xyes" ; then
2341266e564dSmrg	        case "$tmp_libs " in
2342266e564dSmrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2343266e564dSmrg	        esac
2344266e564dSmrg              fi
2345266e564dSmrg	      tmp_libs="$tmp_libs $deplib"
2346266e564dSmrg	    done
2347266e564dSmrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2348266e564dSmrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2349266e564dSmrg	    exit $EXIT_FAILURE
2350266e564dSmrg	  fi
2351266e564dSmrg	  continue
2352266e564dSmrg	fi # $pass = conv
2353266e564dSmrg
2354266e564dSmrg
2355266e564dSmrg	# Get the name of the library we link against.
2356266e564dSmrg	linklib=
2357266e564dSmrg	for l in $old_library $library_names; do
2358266e564dSmrg	  linklib="$l"
2359266e564dSmrg	done
2360266e564dSmrg	if test -z "$linklib"; then
2361266e564dSmrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2362266e564dSmrg	  exit $EXIT_FAILURE
2363266e564dSmrg	fi
2364266e564dSmrg
2365266e564dSmrg	# This library was specified with -dlopen.
2366266e564dSmrg	if test "$pass" = dlopen; then
2367266e564dSmrg	  if test -z "$libdir"; then
2368266e564dSmrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2369266e564dSmrg	    exit $EXIT_FAILURE
2370266e564dSmrg	  fi
2371266e564dSmrg	  if test -z "$dlname" ||
2372266e564dSmrg	     test "$dlopen_support" != yes ||
2373266e564dSmrg	     test "$build_libtool_libs" = no; then
2374266e564dSmrg	    # If there is no dlname, no dlopen support or we're linking
2375266e564dSmrg	    # statically, we need to preload.  We also need to preload any
2376266e564dSmrg	    # dependent libraries so libltdl's deplib preloader doesn't
2377266e564dSmrg	    # bomb out in the load deplibs phase.
2378266e564dSmrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
2379266e564dSmrg	  else
2380266e564dSmrg	    newdlfiles="$newdlfiles $lib"
2381266e564dSmrg	  fi
2382266e564dSmrg	  continue
2383266e564dSmrg	fi # $pass = dlopen
2384266e564dSmrg
2385266e564dSmrg	# We need an absolute path.
2386266e564dSmrg	case $ladir in
2387266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2388266e564dSmrg	*)
2389266e564dSmrg	  abs_ladir=`cd "$ladir" && pwd`
2390266e564dSmrg	  if test -z "$abs_ladir"; then
2391266e564dSmrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2392266e564dSmrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2393266e564dSmrg	    abs_ladir="$ladir"
2394266e564dSmrg	  fi
2395266e564dSmrg	  ;;
2396266e564dSmrg	esac
2397266e564dSmrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2398266e564dSmrg
2399266e564dSmrg	# Find the relevant object directory and library name.
2400266e564dSmrg	if test "X$installed" = Xyes; then
2401266e564dSmrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2402266e564dSmrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2403266e564dSmrg	    dir="$ladir"
2404266e564dSmrg	    absdir="$abs_ladir"
2405266e564dSmrg	    libdir="$abs_ladir"
2406266e564dSmrg	  else
2407266e564dSmrg	    dir="$libdir"
2408266e564dSmrg	    absdir="$libdir"
2409266e564dSmrg	  fi
2410266e564dSmrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2411266e564dSmrg	else
2412266e564dSmrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2413266e564dSmrg	    dir="$ladir"
2414266e564dSmrg	    absdir="$abs_ladir"
2415266e564dSmrg	    # Remove this search path later
2416266e564dSmrg	    notinst_path="$notinst_path $abs_ladir"
2417266e564dSmrg	  else
2418266e564dSmrg	    dir="$ladir/$objdir"
2419266e564dSmrg	    absdir="$abs_ladir/$objdir"
2420266e564dSmrg	    # Remove this search path later
2421266e564dSmrg	    notinst_path="$notinst_path $abs_ladir"
2422266e564dSmrg	  fi
2423266e564dSmrg	fi # $installed = yes
2424266e564dSmrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2425266e564dSmrg
2426266e564dSmrg	# This library was specified with -dlpreopen.
2427266e564dSmrg	if test "$pass" = dlpreopen; then
2428266e564dSmrg	  if test -z "$libdir"; then
2429266e564dSmrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2430266e564dSmrg	    exit $EXIT_FAILURE
2431266e564dSmrg	  fi
2432266e564dSmrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2433266e564dSmrg	  # are required to link).
2434266e564dSmrg	  if test -n "$old_library"; then
2435266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
2436266e564dSmrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2437266e564dSmrg	  elif test -n "$dlname"; then
2438266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
2439266e564dSmrg	  else
2440266e564dSmrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
2441266e564dSmrg	  fi
2442266e564dSmrg	fi # $pass = dlpreopen
2443266e564dSmrg
2444266e564dSmrg	if test -z "$libdir"; then
2445266e564dSmrg	  # Link the convenience library
2446266e564dSmrg	  if test "$linkmode" = lib; then
2447266e564dSmrg	    deplibs="$dir/$old_library $deplibs"
2448266e564dSmrg	  elif test "$linkmode,$pass" = "prog,link"; then
2449266e564dSmrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
2450266e564dSmrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2451266e564dSmrg	  else
2452266e564dSmrg	    deplibs="$lib $deplibs" # used for prog,scan pass
2453266e564dSmrg	  fi
2454266e564dSmrg	  continue
2455266e564dSmrg	fi
2456266e564dSmrg
2457266e564dSmrg
2458266e564dSmrg	if test "$linkmode" = prog && test "$pass" != link; then
2459266e564dSmrg	  newlib_search_path="$newlib_search_path $ladir"
2460266e564dSmrg	  deplibs="$lib $deplibs"
2461266e564dSmrg
2462266e564dSmrg	  linkalldeplibs=no
2463266e564dSmrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2464266e564dSmrg	     test "$build_libtool_libs" = no; then
2465266e564dSmrg	    linkalldeplibs=yes
2466266e564dSmrg	  fi
2467266e564dSmrg
2468266e564dSmrg	  tmp_libs=
2469266e564dSmrg	  for deplib in $dependency_libs; do
2470266e564dSmrg	    case $deplib in
2471266e564dSmrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2472266e564dSmrg	    esac
2473266e564dSmrg	    # Need to link against all dependency_libs?
2474266e564dSmrg	    if test "$linkalldeplibs" = yes; then
2475266e564dSmrg	      deplibs="$deplib $deplibs"
2476266e564dSmrg	    else
2477266e564dSmrg	      # Need to hardcode shared library paths
2478266e564dSmrg	      # or/and link against static libraries
2479266e564dSmrg	      newdependency_libs="$deplib $newdependency_libs"
2480266e564dSmrg	    fi
2481266e564dSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
2482266e564dSmrg	      case "$tmp_libs " in
2483266e564dSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2484266e564dSmrg	      esac
2485266e564dSmrg	    fi
2486266e564dSmrg	    tmp_libs="$tmp_libs $deplib"
2487266e564dSmrg	  done # for deplib
2488266e564dSmrg	  continue
2489266e564dSmrg	fi # $linkmode = prog...
2490266e564dSmrg
2491266e564dSmrg	if test "$linkmode,$pass" = "prog,link"; then
2492266e564dSmrg	  if test -n "$library_names" &&
2493266e564dSmrg	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2494266e564dSmrg	    # We need to hardcode the library path
2495266e564dSmrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2496266e564dSmrg	      # Make sure the rpath contains only unique directories.
2497266e564dSmrg	      case "$temp_rpath " in
2498266e564dSmrg	      *" $dir "*) ;;
2499266e564dSmrg	      *" $absdir "*) ;;
2500266e564dSmrg	      *) temp_rpath="$temp_rpath $absdir" ;;
2501266e564dSmrg	      esac
2502266e564dSmrg	    fi
2503266e564dSmrg
2504266e564dSmrg	    # Hardcode the library path.
2505266e564dSmrg	    # Skip directories that are in the system default run-time
2506266e564dSmrg	    # search path.
2507266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2508266e564dSmrg	    *" $absdir "*) ;;
2509266e564dSmrg	    *)
2510266e564dSmrg	      case "$compile_rpath " in
2511266e564dSmrg	      *" $absdir "*) ;;
2512266e564dSmrg	      *) compile_rpath="$compile_rpath $absdir"
2513266e564dSmrg	      esac
2514266e564dSmrg	      ;;
2515266e564dSmrg	    esac
2516266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2517266e564dSmrg	    *" $libdir "*) ;;
2518266e564dSmrg	    *)
2519266e564dSmrg	      case "$finalize_rpath " in
2520266e564dSmrg	      *" $libdir "*) ;;
2521266e564dSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
2522266e564dSmrg	      esac
2523266e564dSmrg	      ;;
2524266e564dSmrg	    esac
2525266e564dSmrg	  fi # $linkmode,$pass = prog,link...
2526266e564dSmrg
2527266e564dSmrg	  if test "$alldeplibs" = yes &&
2528266e564dSmrg	     { test "$deplibs_check_method" = pass_all ||
2529266e564dSmrg	       { test "$build_libtool_libs" = yes &&
2530266e564dSmrg		 test -n "$library_names"; }; }; then
2531266e564dSmrg	    # We only need to search for static libraries
2532266e564dSmrg	    continue
2533266e564dSmrg	  fi
2534266e564dSmrg	fi
2535266e564dSmrg
2536266e564dSmrg	link_static=no # Whether the deplib will be linked statically
2537266e564dSmrg	use_static_libs=$prefer_static_libs
2538266e564dSmrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
2539266e564dSmrg	  use_static_libs=no
2540266e564dSmrg	fi
2541266e564dSmrg	if test -n "$library_names" &&
2542266e564dSmrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2543266e564dSmrg	  if test "$installed" = no; then
2544266e564dSmrg	    notinst_deplibs="$notinst_deplibs $lib"
2545266e564dSmrg	    need_relink=yes
2546266e564dSmrg	  fi
2547266e564dSmrg	  # This is a shared library
2548266e564dSmrg
2549266e564dSmrg	  # Warn about portability, can't link against -module's on
2550266e564dSmrg	  # some systems (darwin)
2551266e564dSmrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2552266e564dSmrg	    $echo
2553266e564dSmrg	    if test "$linkmode" = prog; then
2554266e564dSmrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
2555266e564dSmrg	    else
2556266e564dSmrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2557266e564dSmrg	    fi
2558266e564dSmrg	    $echo "*** $linklib is not portable!"
2559266e564dSmrg	  fi
2560266e564dSmrg	  if test "$linkmode" = lib &&
2561266e564dSmrg	     test "$hardcode_into_libs" = yes; then
2562266e564dSmrg	    # Hardcode the library path.
2563266e564dSmrg	    # Skip directories that are in the system default run-time
2564266e564dSmrg	    # search path.
2565266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2566266e564dSmrg	    *" $absdir "*) ;;
2567266e564dSmrg	    *)
2568266e564dSmrg	      case "$compile_rpath " in
2569266e564dSmrg	      *" $absdir "*) ;;
2570266e564dSmrg	      *) compile_rpath="$compile_rpath $absdir"
2571266e564dSmrg	      esac
2572266e564dSmrg	      ;;
2573266e564dSmrg	    esac
2574266e564dSmrg	    case " $sys_lib_dlsearch_path " in
2575266e564dSmrg	    *" $libdir "*) ;;
2576266e564dSmrg	    *)
2577266e564dSmrg	      case "$finalize_rpath " in
2578266e564dSmrg	      *" $libdir "*) ;;
2579266e564dSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
2580266e564dSmrg	      esac
2581266e564dSmrg	      ;;
2582266e564dSmrg	    esac
2583266e564dSmrg	  fi
2584266e564dSmrg
2585266e564dSmrg	  if test -n "$old_archive_from_expsyms_cmds"; then
2586266e564dSmrg	    # figure out the soname
2587266e564dSmrg	    set dummy $library_names
2588266e564dSmrg	    realname="$2"
2589266e564dSmrg	    shift; shift
2590266e564dSmrg	    libname=`eval \\$echo \"$libname_spec\"`
2591266e564dSmrg	    # use dlname if we got it. it's perfectly good, no?
2592266e564dSmrg	    if test -n "$dlname"; then
2593266e564dSmrg	      soname="$dlname"
2594266e564dSmrg	    elif test -n "$soname_spec"; then
2595266e564dSmrg	      # bleh windows
2596266e564dSmrg	      case $host in
2597266e564dSmrg	      *cygwin* | mingw*)
2598266e564dSmrg		major=`expr $current - $age`
2599266e564dSmrg		versuffix="-$major"
2600266e564dSmrg		;;
2601266e564dSmrg	      esac
2602266e564dSmrg	      eval soname=\"$soname_spec\"
2603266e564dSmrg	    else
2604266e564dSmrg	      soname="$realname"
2605266e564dSmrg	    fi
2606266e564dSmrg
2607266e564dSmrg	    # Make a new name for the extract_expsyms_cmds to use
2608266e564dSmrg	    soroot="$soname"
2609266e564dSmrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2610266e564dSmrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2611266e564dSmrg
2612266e564dSmrg	    # If the library has no export list, then create one now
2613266e564dSmrg	    if test -f "$output_objdir/$soname-def"; then :
2614266e564dSmrg	    else
2615266e564dSmrg	      $show "extracting exported symbol list from \`$soname'"
2616266e564dSmrg	      save_ifs="$IFS"; IFS='~'
2617266e564dSmrg	      cmds=$extract_expsyms_cmds
2618266e564dSmrg	      for cmd in $cmds; do
2619266e564dSmrg		IFS="$save_ifs"
2620266e564dSmrg		eval cmd=\"$cmd\"
2621266e564dSmrg		$show "$cmd"
2622266e564dSmrg		$run eval "$cmd" || exit $?
2623266e564dSmrg	      done
2624266e564dSmrg	      IFS="$save_ifs"
2625266e564dSmrg	    fi
2626266e564dSmrg
2627266e564dSmrg	    # Create $newlib
2628266e564dSmrg	    if test -f "$output_objdir/$newlib"; then :; else
2629266e564dSmrg	      $show "generating import library for \`$soname'"
2630266e564dSmrg	      save_ifs="$IFS"; IFS='~'
2631266e564dSmrg	      cmds=$old_archive_from_expsyms_cmds
2632266e564dSmrg	      for cmd in $cmds; do
2633266e564dSmrg		IFS="$save_ifs"
2634266e564dSmrg		eval cmd=\"$cmd\"
2635266e564dSmrg		$show "$cmd"
2636266e564dSmrg		$run eval "$cmd" || exit $?
2637266e564dSmrg	      done
2638266e564dSmrg	      IFS="$save_ifs"
2639266e564dSmrg	    fi
2640266e564dSmrg	    # make sure the library variables are pointing to the new library
2641266e564dSmrg	    dir=$output_objdir
2642266e564dSmrg	    linklib=$newlib
2643266e564dSmrg	  fi # test -n "$old_archive_from_expsyms_cmds"
2644266e564dSmrg
2645266e564dSmrg	  if test "$linkmode" = prog || test "$mode" != relink; then
2646266e564dSmrg	    add_shlibpath=
2647266e564dSmrg	    add_dir=
2648266e564dSmrg	    add=
2649266e564dSmrg	    lib_linked=yes
2650266e564dSmrg	    case $hardcode_action in
2651266e564dSmrg	    immediate | unsupported)
2652266e564dSmrg	      if test "$hardcode_direct" = no; then
2653266e564dSmrg		add="$dir/$linklib"
2654266e564dSmrg		case $host in
2655266e564dSmrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2656266e564dSmrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2657266e564dSmrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2658266e564dSmrg		    *-*-unixware7*) add_dir="-L$dir" ;;
2659266e564dSmrg		  *-*-darwin* )
2660266e564dSmrg		    # if the lib is a module then we can not link against
2661266e564dSmrg		    # it, someone is ignoring the new warnings I added
2662266e564dSmrg		    if /usr/bin/file -L $add 2> /dev/null |
2663266e564dSmrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
2664266e564dSmrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
2665266e564dSmrg		      if test -z "$old_library" ; then
2666266e564dSmrg		        $echo
2667266e564dSmrg		        $echo "** And there doesn't seem to be a static archive available"
2668266e564dSmrg		        $echo "** The link will probably fail, sorry"
2669266e564dSmrg		      else
2670266e564dSmrg		        add="$dir/$old_library"
2671266e564dSmrg		      fi
2672266e564dSmrg		    fi
2673266e564dSmrg		esac
2674266e564dSmrg	      elif test "$hardcode_minus_L" = no; then
2675266e564dSmrg		case $host in
2676266e564dSmrg		*-*-sunos*) add_shlibpath="$dir" ;;
2677266e564dSmrg		esac
2678266e564dSmrg		add_dir="-L$dir"
2679266e564dSmrg		add="-l$name"
2680266e564dSmrg	      elif test "$hardcode_shlibpath_var" = no; then
2681266e564dSmrg		add_shlibpath="$dir"
2682266e564dSmrg		add="-l$name"
2683266e564dSmrg	      else
2684266e564dSmrg		lib_linked=no
2685266e564dSmrg	      fi
2686266e564dSmrg	      ;;
2687266e564dSmrg	    relink)
2688266e564dSmrg	      if test "$hardcode_direct" = yes; then
2689266e564dSmrg		add="$dir/$linklib"
2690266e564dSmrg	      elif test "$hardcode_minus_L" = yes; then
2691266e564dSmrg		add_dir="-L$dir"
2692266e564dSmrg		# Try looking first in the location we're being installed to.
2693266e564dSmrg		if test -n "$inst_prefix_dir"; then
2694266e564dSmrg		  case $libdir in
2695266e564dSmrg		    [\\/]*)
2696266e564dSmrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2697266e564dSmrg		      ;;
2698266e564dSmrg		  esac
2699266e564dSmrg		fi
2700266e564dSmrg		add="-l$name"
2701266e564dSmrg	      elif test "$hardcode_shlibpath_var" = yes; then
2702266e564dSmrg		add_shlibpath="$dir"
2703266e564dSmrg		add="-l$name"
2704266e564dSmrg	      else
2705266e564dSmrg		lib_linked=no
2706266e564dSmrg	      fi
2707266e564dSmrg	      ;;
2708266e564dSmrg	    *) lib_linked=no ;;
2709266e564dSmrg	    esac
2710266e564dSmrg
2711266e564dSmrg	    if test "$lib_linked" != yes; then
2712266e564dSmrg	      $echo "$modename: configuration error: unsupported hardcode properties"
2713266e564dSmrg	      exit $EXIT_FAILURE
2714266e564dSmrg	    fi
2715266e564dSmrg
2716266e564dSmrg	    if test -n "$add_shlibpath"; then
2717266e564dSmrg	      case :$compile_shlibpath: in
2718266e564dSmrg	      *":$add_shlibpath:"*) ;;
2719266e564dSmrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2720266e564dSmrg	      esac
2721266e564dSmrg	    fi
2722266e564dSmrg	    if test "$linkmode" = prog; then
2723266e564dSmrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2724266e564dSmrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2725266e564dSmrg	    else
2726266e564dSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2727266e564dSmrg	      test -n "$add" && deplibs="$add $deplibs"
2728266e564dSmrg	      if test "$hardcode_direct" != yes && \
2729266e564dSmrg		 test "$hardcode_minus_L" != yes && \
2730266e564dSmrg		 test "$hardcode_shlibpath_var" = yes; then
2731266e564dSmrg		case :$finalize_shlibpath: in
2732266e564dSmrg		*":$libdir:"*) ;;
2733266e564dSmrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2734266e564dSmrg		esac
2735266e564dSmrg	      fi
2736266e564dSmrg	    fi
2737266e564dSmrg	  fi
2738266e564dSmrg
2739266e564dSmrg	  if test "$linkmode" = prog || test "$mode" = relink; then
2740266e564dSmrg	    add_shlibpath=
2741266e564dSmrg	    add_dir=
2742266e564dSmrg	    add=
2743266e564dSmrg	    # Finalize command for both is simple: just hardcode it.
2744266e564dSmrg	    if test "$hardcode_direct" = yes; then
2745266e564dSmrg	      add="$libdir/$linklib"
2746266e564dSmrg	    elif test "$hardcode_minus_L" = yes; then
2747266e564dSmrg	      add_dir="-L$libdir"
2748266e564dSmrg	      add="-l$name"
2749266e564dSmrg	    elif test "$hardcode_shlibpath_var" = yes; then
2750266e564dSmrg	      case :$finalize_shlibpath: in
2751266e564dSmrg	      *":$libdir:"*) ;;
2752266e564dSmrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2753266e564dSmrg	      esac
2754266e564dSmrg	      add="-l$name"
2755266e564dSmrg	    elif test "$hardcode_automatic" = yes; then
2756266e564dSmrg	      if test -n "$inst_prefix_dir" &&
2757266e564dSmrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2758266e564dSmrg	        add="$inst_prefix_dir$libdir/$linklib"
2759266e564dSmrg	      else
2760266e564dSmrg	        add="$libdir/$linklib"
2761266e564dSmrg	      fi
2762266e564dSmrg	    else
2763266e564dSmrg	      # We cannot seem to hardcode it, guess we'll fake it.
2764266e564dSmrg	      add_dir="-L$libdir"
2765266e564dSmrg	      # Try looking first in the location we're being installed to.
2766266e564dSmrg	      if test -n "$inst_prefix_dir"; then
2767266e564dSmrg		case $libdir in
2768266e564dSmrg		  [\\/]*)
2769266e564dSmrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2770266e564dSmrg		    ;;
2771266e564dSmrg		esac
2772266e564dSmrg	      fi
2773266e564dSmrg	      add="-l$name"
2774266e564dSmrg	    fi
2775266e564dSmrg
2776266e564dSmrg	    if test "$linkmode" = prog; then
2777266e564dSmrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2778266e564dSmrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2779266e564dSmrg	    else
2780266e564dSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2781266e564dSmrg	      test -n "$add" && deplibs="$add $deplibs"
2782266e564dSmrg	    fi
2783266e564dSmrg	  fi
2784266e564dSmrg	elif test "$linkmode" = prog; then
2785266e564dSmrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2786266e564dSmrg	  # is not unsupported.  This is valid on all known static and
2787266e564dSmrg	  # shared platforms.
2788266e564dSmrg	  if test "$hardcode_direct" != unsupported; then
2789266e564dSmrg	    test -n "$old_library" && linklib="$old_library"
2790266e564dSmrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
2791266e564dSmrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2792266e564dSmrg	  else
2793266e564dSmrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2794266e564dSmrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2795266e564dSmrg	  fi
2796266e564dSmrg	elif test "$build_libtool_libs" = yes; then
2797266e564dSmrg	  # Not a shared library
2798266e564dSmrg	  if test "$deplibs_check_method" != pass_all; then
2799266e564dSmrg	    # We're trying link a shared library against a static one
2800266e564dSmrg	    # but the system doesn't support it.
2801266e564dSmrg
2802266e564dSmrg	    # Just print a warning and add the library to dependency_libs so
2803266e564dSmrg	    # that the program can be linked against the static library.
2804266e564dSmrg	    $echo
2805266e564dSmrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
2806266e564dSmrg	    $echo "*** I have the capability to make that library automatically link in when"
2807266e564dSmrg	    $echo "*** you link to this library.  But I can only do this if you have a"
2808266e564dSmrg	    $echo "*** shared version of the library, which you do not appear to have."
2809266e564dSmrg	    if test "$module" = yes; then
2810266e564dSmrg	      $echo "*** But as you try to build a module library, libtool will still create "
2811266e564dSmrg	      $echo "*** a static module, that should work as long as the dlopening application"
2812266e564dSmrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2813266e564dSmrg	      if test -z "$global_symbol_pipe"; then
2814266e564dSmrg		$echo
2815266e564dSmrg		$echo "*** However, this would only work if libtool was able to extract symbol"
2816266e564dSmrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2817266e564dSmrg		$echo "*** not find such a program.  So, this module is probably useless."
2818266e564dSmrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2819266e564dSmrg	      fi
2820266e564dSmrg	      if test "$build_old_libs" = no; then
2821266e564dSmrg		build_libtool_libs=module
2822266e564dSmrg		build_old_libs=yes
2823266e564dSmrg	      else
2824266e564dSmrg		build_libtool_libs=no
2825266e564dSmrg	      fi
2826266e564dSmrg	    fi
2827266e564dSmrg	  else
2828266e564dSmrg	    deplibs="$dir/$old_library $deplibs"
2829266e564dSmrg	    link_static=yes
2830266e564dSmrg	  fi
2831266e564dSmrg	fi # link shared/static library?
2832266e564dSmrg
2833266e564dSmrg	if test "$linkmode" = lib; then
2834266e564dSmrg	  if test -n "$dependency_libs" &&
2835266e564dSmrg	     { test "$hardcode_into_libs" != yes ||
2836266e564dSmrg	       test "$build_old_libs" = yes ||
2837266e564dSmrg	       test "$link_static" = yes; }; then
2838266e564dSmrg	    # Extract -R from dependency_libs
2839266e564dSmrg	    temp_deplibs=
2840266e564dSmrg	    for libdir in $dependency_libs; do
2841266e564dSmrg	      case $libdir in
2842266e564dSmrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2843266e564dSmrg		   case " $xrpath " in
2844266e564dSmrg		   *" $temp_xrpath "*) ;;
2845266e564dSmrg		   *) xrpath="$xrpath $temp_xrpath";;
2846266e564dSmrg		   esac;;
2847266e564dSmrg	      *) temp_deplibs="$temp_deplibs $libdir";;
2848266e564dSmrg	      esac
2849266e564dSmrg	    done
2850266e564dSmrg	    dependency_libs="$temp_deplibs"
2851266e564dSmrg	  fi
2852266e564dSmrg
2853266e564dSmrg	  newlib_search_path="$newlib_search_path $absdir"
2854266e564dSmrg	  # Link against this library
2855266e564dSmrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2856266e564dSmrg	  # ... and its dependency_libs
2857266e564dSmrg	  tmp_libs=
2858266e564dSmrg	  for deplib in $dependency_libs; do
2859266e564dSmrg	    newdependency_libs="$deplib $newdependency_libs"
2860266e564dSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
2861266e564dSmrg	      case "$tmp_libs " in
2862266e564dSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2863266e564dSmrg	      esac
2864266e564dSmrg	    fi
2865266e564dSmrg	    tmp_libs="$tmp_libs $deplib"
2866266e564dSmrg	  done
2867266e564dSmrg
2868266e564dSmrg	  if test "$link_all_deplibs" != no; then
2869266e564dSmrg	    # Add the search paths of all dependency libraries
2870266e564dSmrg	    for deplib in $dependency_libs; do
2871266e564dSmrg	      case $deplib in
2872266e564dSmrg	      -L*) path="$deplib" ;;
2873266e564dSmrg	      *.la)
2874266e564dSmrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2875266e564dSmrg		test "X$dir" = "X$deplib" && dir="."
2876266e564dSmrg		# We need an absolute path.
2877266e564dSmrg		case $dir in
2878266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2879266e564dSmrg		*)
2880266e564dSmrg		  absdir=`cd "$dir" && pwd`
2881266e564dSmrg		  if test -z "$absdir"; then
2882266e564dSmrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2883266e564dSmrg		    absdir="$dir"
2884266e564dSmrg		  fi
2885266e564dSmrg		  ;;
2886266e564dSmrg		esac
2887266e564dSmrg		if grep "^installed=no" $deplib > /dev/null; then
2888266e564dSmrg		  path="$absdir/$objdir"
2889266e564dSmrg		else
2890266e564dSmrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2891266e564dSmrg		  if test -z "$libdir"; then
2892266e564dSmrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2893266e564dSmrg		    exit $EXIT_FAILURE
2894266e564dSmrg		  fi
2895266e564dSmrg		  if test "$absdir" != "$libdir"; then
2896266e564dSmrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2897266e564dSmrg		  fi
2898266e564dSmrg		  path="$absdir"
2899266e564dSmrg		fi
2900266e564dSmrg		depdepl=
2901266e564dSmrg		case $host in
2902266e564dSmrg		*-*-darwin*)
2903266e564dSmrg		  # we do not want to link against static libs,
2904266e564dSmrg		  # but need to link against shared
2905266e564dSmrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2906266e564dSmrg		  if test -n "$deplibrary_names" ; then
2907266e564dSmrg		    for tmp in $deplibrary_names ; do
2908266e564dSmrg		      depdepl=$tmp
2909266e564dSmrg		    done
2910266e564dSmrg		    if test -f "$path/$depdepl" ; then
2911266e564dSmrg		      depdepl="$path/$depdepl"
2912266e564dSmrg		    fi
2913266e564dSmrg		    # do not add paths which are already there
2914266e564dSmrg		    case " $newlib_search_path " in
2915266e564dSmrg		    *" $path "*) ;;
2916266e564dSmrg		    *) newlib_search_path="$newlib_search_path $path";;
2917266e564dSmrg		    esac
2918266e564dSmrg		  fi
2919266e564dSmrg		  path=""
2920266e564dSmrg		  ;;
2921266e564dSmrg		*)
2922266e564dSmrg		  path="-L$path"
2923266e564dSmrg		  ;;
2924266e564dSmrg		esac
2925266e564dSmrg		;;
2926266e564dSmrg	      -l*)
2927266e564dSmrg		case $host in
2928266e564dSmrg		*-*-darwin*)
2929266e564dSmrg		  # Again, we only want to link against shared libraries
2930266e564dSmrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2931266e564dSmrg		  for tmp in $newlib_search_path ; do
2932266e564dSmrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2933266e564dSmrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2934266e564dSmrg		      break
2935266e564dSmrg		    fi
2936266e564dSmrg		  done
2937266e564dSmrg		  path=""
2938266e564dSmrg		  ;;
2939266e564dSmrg		*) continue ;;
2940266e564dSmrg		esac
2941266e564dSmrg		;;
2942266e564dSmrg	      *) continue ;;
2943266e564dSmrg	      esac
2944266e564dSmrg	      case " $deplibs " in
2945266e564dSmrg	      *" $path "*) ;;
2946266e564dSmrg	      *) deplibs="$path $deplibs" ;;
2947266e564dSmrg	      esac
2948266e564dSmrg	      case " $deplibs " in
2949266e564dSmrg	      *" $depdepl "*) ;;
2950266e564dSmrg	      *) deplibs="$depdepl $deplibs" ;;
2951266e564dSmrg	      esac
2952266e564dSmrg	    done
2953266e564dSmrg	  fi # link_all_deplibs != no
2954266e564dSmrg	fi # linkmode = lib
2955266e564dSmrg      done # for deplib in $libs
2956266e564dSmrg      dependency_libs="$newdependency_libs"
2957266e564dSmrg      if test "$pass" = dlpreopen; then
2958266e564dSmrg	# Link the dlpreopened libraries before other libraries
2959266e564dSmrg	for deplib in $save_deplibs; do
2960266e564dSmrg	  deplibs="$deplib $deplibs"
2961266e564dSmrg	done
2962266e564dSmrg      fi
2963266e564dSmrg      if test "$pass" != dlopen; then
2964266e564dSmrg	if test "$pass" != conv; then
2965266e564dSmrg	  # Make sure lib_search_path contains only unique directories.
2966266e564dSmrg	  lib_search_path=
2967266e564dSmrg	  for dir in $newlib_search_path; do
2968266e564dSmrg	    case "$lib_search_path " in
2969266e564dSmrg	    *" $dir "*) ;;
2970266e564dSmrg	    *) lib_search_path="$lib_search_path $dir" ;;
2971266e564dSmrg	    esac
2972266e564dSmrg	  done
2973266e564dSmrg	  newlib_search_path=
2974266e564dSmrg	fi
2975266e564dSmrg
2976266e564dSmrg	if test "$linkmode,$pass" != "prog,link"; then
2977266e564dSmrg	  vars="deplibs"
2978266e564dSmrg	else
2979266e564dSmrg	  vars="compile_deplibs finalize_deplibs"
2980266e564dSmrg	fi
2981266e564dSmrg	for var in $vars dependency_libs; do
2982266e564dSmrg	  # Add libraries to $var in reverse order
2983266e564dSmrg	  eval tmp_libs=\"\$$var\"
2984266e564dSmrg	  new_libs=
2985266e564dSmrg	  for deplib in $tmp_libs; do
2986266e564dSmrg	    # FIXME: Pedantically, this is the right thing to do, so
2987266e564dSmrg	    #        that some nasty dependency loop isn't accidentally
2988266e564dSmrg	    #        broken:
2989266e564dSmrg	    #new_libs="$deplib $new_libs"
2990266e564dSmrg	    # Pragmatically, this seems to cause very few problems in
2991266e564dSmrg	    # practice:
2992266e564dSmrg	    case $deplib in
2993266e564dSmrg	    -L*) new_libs="$deplib $new_libs" ;;
2994266e564dSmrg	    -R*) ;;
2995266e564dSmrg	    *)
2996266e564dSmrg	      # And here is the reason: when a library appears more
2997266e564dSmrg	      # than once as an explicit dependence of a library, or
2998266e564dSmrg	      # is implicitly linked in more than once by the
2999266e564dSmrg	      # compiler, it is considered special, and multiple
3000266e564dSmrg	      # occurrences thereof are not removed.  Compare this
3001266e564dSmrg	      # with having the same library being listed as a
3002266e564dSmrg	      # dependency of multiple other libraries: in this case,
3003266e564dSmrg	      # we know (pedantically, we assume) the library does not
3004266e564dSmrg	      # need to be listed more than once, so we keep only the
3005266e564dSmrg	      # last copy.  This is not always right, but it is rare
3006266e564dSmrg	      # enough that we require users that really mean to play
3007266e564dSmrg	      # such unportable linking tricks to link the library
3008266e564dSmrg	      # using -Wl,-lname, so that libtool does not consider it
3009266e564dSmrg	      # for duplicate removal.
3010266e564dSmrg	      case " $specialdeplibs " in
3011266e564dSmrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3012266e564dSmrg	      *)
3013266e564dSmrg		case " $new_libs " in
3014266e564dSmrg		*" $deplib "*) ;;
3015266e564dSmrg		*) new_libs="$deplib $new_libs" ;;
3016266e564dSmrg		esac
3017266e564dSmrg		;;
3018266e564dSmrg	      esac
3019266e564dSmrg	      ;;
3020266e564dSmrg	    esac
3021266e564dSmrg	  done
3022266e564dSmrg	  tmp_libs=
3023266e564dSmrg	  for deplib in $new_libs; do
3024266e564dSmrg	    case $deplib in
3025266e564dSmrg	    -L*)
3026266e564dSmrg	      case " $tmp_libs " in
3027266e564dSmrg	      *" $deplib "*) ;;
3028266e564dSmrg	      *) tmp_libs="$tmp_libs $deplib" ;;
3029266e564dSmrg	      esac
3030266e564dSmrg	      ;;
3031266e564dSmrg	    *) tmp_libs="$tmp_libs $deplib" ;;
3032266e564dSmrg	    esac
3033266e564dSmrg	  done
3034266e564dSmrg	  eval $var=\"$tmp_libs\"
3035266e564dSmrg	done # for var
3036266e564dSmrg      fi
3037266e564dSmrg      # Last step: remove runtime libs from dependency_libs
3038266e564dSmrg      # (they stay in deplibs)
3039266e564dSmrg      tmp_libs=
3040266e564dSmrg      for i in $dependency_libs ; do
3041266e564dSmrg	case " $predeps $postdeps $compiler_lib_search_path " in
3042266e564dSmrg	*" $i "*)
3043266e564dSmrg	  i=""
3044266e564dSmrg	  ;;
3045266e564dSmrg	esac
3046266e564dSmrg	if test -n "$i" ; then
3047266e564dSmrg	  tmp_libs="$tmp_libs $i"
3048266e564dSmrg	fi
3049266e564dSmrg      done
3050266e564dSmrg      dependency_libs=$tmp_libs
3051266e564dSmrg    done # for pass
3052266e564dSmrg    if test "$linkmode" = prog; then
3053266e564dSmrg      dlfiles="$newdlfiles"
3054266e564dSmrg      dlprefiles="$newdlprefiles"
3055266e564dSmrg    fi
3056266e564dSmrg
3057266e564dSmrg    case $linkmode in
3058266e564dSmrg    oldlib)
3059266e564dSmrg      if test -n "$deplibs"; then
3060266e564dSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3061266e564dSmrg      fi
3062266e564dSmrg
3063266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3064266e564dSmrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3065266e564dSmrg      fi
3066266e564dSmrg
3067266e564dSmrg      if test -n "$rpath"; then
3068266e564dSmrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3069266e564dSmrg      fi
3070266e564dSmrg
3071266e564dSmrg      if test -n "$xrpath"; then
3072266e564dSmrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3073266e564dSmrg      fi
3074266e564dSmrg
3075266e564dSmrg      if test -n "$vinfo"; then
3076266e564dSmrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3077266e564dSmrg      fi
3078266e564dSmrg
3079266e564dSmrg      if test -n "$release"; then
3080266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3081266e564dSmrg      fi
3082266e564dSmrg
3083266e564dSmrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3084266e564dSmrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3085266e564dSmrg      fi
3086266e564dSmrg
3087266e564dSmrg      # Now set the variables for building old libraries.
3088266e564dSmrg      build_libtool_libs=no
3089266e564dSmrg      oldlibs="$output"
3090266e564dSmrg      objs="$objs$old_deplibs"
3091266e564dSmrg      ;;
3092266e564dSmrg
3093266e564dSmrg    lib)
3094266e564dSmrg      # Make sure we only generate libraries of the form `libNAME.la'.
3095266e564dSmrg      case $outputname in
3096266e564dSmrg      lib*)
3097266e564dSmrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3098266e564dSmrg	eval shared_ext=\"$shrext_cmds\"
3099266e564dSmrg	eval libname=\"$libname_spec\"
3100266e564dSmrg	;;
3101266e564dSmrg      *)
3102266e564dSmrg	if test "$module" = no; then
3103266e564dSmrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3104266e564dSmrg	  $echo "$help" 1>&2
3105266e564dSmrg	  exit $EXIT_FAILURE
3106266e564dSmrg	fi
3107266e564dSmrg	if test "$need_lib_prefix" != no; then
3108266e564dSmrg	  # Add the "lib" prefix for modules if required
3109266e564dSmrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3110266e564dSmrg	  eval shared_ext=\"$shrext_cmds\"
3111266e564dSmrg	  eval libname=\"$libname_spec\"
3112266e564dSmrg	else
3113266e564dSmrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3114266e564dSmrg	fi
3115266e564dSmrg	;;
3116266e564dSmrg      esac
3117266e564dSmrg
3118266e564dSmrg      if test -n "$objs"; then
3119266e564dSmrg	if test "$deplibs_check_method" != pass_all; then
3120266e564dSmrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3121266e564dSmrg	  exit $EXIT_FAILURE
3122266e564dSmrg	else
3123266e564dSmrg	  $echo
3124266e564dSmrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3125266e564dSmrg	  $echo "*** objects $objs is not portable!"
3126266e564dSmrg	  libobjs="$libobjs $objs"
3127266e564dSmrg	fi
3128266e564dSmrg      fi
3129266e564dSmrg
3130266e564dSmrg      if test "$dlself" != no; then
3131266e564dSmrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3132266e564dSmrg      fi
3133266e564dSmrg
3134266e564dSmrg      set dummy $rpath
3135266e564dSmrg      if test "$#" -gt 2; then
3136266e564dSmrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3137266e564dSmrg      fi
3138266e564dSmrg      install_libdir="$2"
3139266e564dSmrg
3140266e564dSmrg      oldlibs=
3141266e564dSmrg      if test -z "$rpath"; then
3142266e564dSmrg	if test "$build_libtool_libs" = yes; then
3143266e564dSmrg	  # Building a libtool convenience library.
3144266e564dSmrg	  # Some compilers have problems with a `.al' extension so
3145266e564dSmrg	  # convenience libraries should have the same extension an
3146266e564dSmrg	  # archive normally would.
3147266e564dSmrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3148266e564dSmrg	  build_libtool_libs=convenience
3149266e564dSmrg	  build_old_libs=yes
3150266e564dSmrg	fi
3151266e564dSmrg
3152266e564dSmrg	if test -n "$vinfo"; then
3153266e564dSmrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3154266e564dSmrg	fi
3155266e564dSmrg
3156266e564dSmrg	if test -n "$release"; then
3157266e564dSmrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3158266e564dSmrg	fi
3159266e564dSmrg      else
3160266e564dSmrg
3161266e564dSmrg	# Parse the version information argument.
3162266e564dSmrg	save_ifs="$IFS"; IFS=':'
3163266e564dSmrg	set dummy $vinfo 0 0 0
3164266e564dSmrg	IFS="$save_ifs"
3165266e564dSmrg
3166266e564dSmrg	if test -n "$8"; then
3167266e564dSmrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3168266e564dSmrg	  $echo "$help" 1>&2
3169266e564dSmrg	  exit $EXIT_FAILURE
3170266e564dSmrg	fi
3171266e564dSmrg
3172266e564dSmrg	# convert absolute version numbers to libtool ages
3173266e564dSmrg	# this retains compatibility with .la files and attempts
3174266e564dSmrg	# to make the code below a bit more comprehensible
3175266e564dSmrg
3176266e564dSmrg	case $vinfo_number in
3177266e564dSmrg	yes)
3178266e564dSmrg	  number_major="$2"
3179266e564dSmrg	  number_minor="$3"
3180266e564dSmrg	  number_revision="$4"
3181266e564dSmrg	  #
3182266e564dSmrg	  # There are really only two kinds -- those that
3183266e564dSmrg	  # use the current revision as the major version
3184266e564dSmrg	  # and those that subtract age and use age as
3185266e564dSmrg	  # a minor version.  But, then there is irix
3186266e564dSmrg	  # which has an extra 1 added just for fun
3187266e564dSmrg	  #
3188266e564dSmrg	  case $version_type in
3189266e564dSmrg	  darwin|linux|osf|windows)
3190266e564dSmrg	    current=`expr $number_major + $number_minor`
3191266e564dSmrg	    age="$number_minor"
3192266e564dSmrg	    revision="$number_revision"
3193266e564dSmrg	    ;;
3194266e564dSmrg	  freebsd-aout|freebsd-elf|sunos)
3195266e564dSmrg	    current="$number_major"
3196266e564dSmrg	    revision="$number_minor"
3197266e564dSmrg	    age="0"
3198266e564dSmrg	    ;;
3199266e564dSmrg	  irix|nonstopux)
3200266e564dSmrg	    current=`expr $number_major + $number_minor - 1`
3201266e564dSmrg	    age="$number_minor"
3202266e564dSmrg	    revision="$number_minor"
3203266e564dSmrg	    ;;
3204266e564dSmrg	  esac
3205266e564dSmrg	  ;;
3206266e564dSmrg	no)
3207266e564dSmrg	  current="$2"
3208266e564dSmrg	  revision="$3"
3209266e564dSmrg	  age="$4"
3210266e564dSmrg	  ;;
3211266e564dSmrg	esac
3212266e564dSmrg
3213266e564dSmrg	# Check that each of the things are valid numbers.
3214266e564dSmrg	case $current in
3215266e564dSmrg	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]) ;;
3216266e564dSmrg	*)
3217266e564dSmrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3218266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3219266e564dSmrg	  exit $EXIT_FAILURE
3220266e564dSmrg	  ;;
3221266e564dSmrg	esac
3222266e564dSmrg
3223266e564dSmrg	case $revision in
3224266e564dSmrg	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]) ;;
3225266e564dSmrg	*)
3226266e564dSmrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3227266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3228266e564dSmrg	  exit $EXIT_FAILURE
3229266e564dSmrg	  ;;
3230266e564dSmrg	esac
3231266e564dSmrg
3232266e564dSmrg	case $age in
3233266e564dSmrg	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]) ;;
3234266e564dSmrg	*)
3235266e564dSmrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3236266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3237266e564dSmrg	  exit $EXIT_FAILURE
3238266e564dSmrg	  ;;
3239266e564dSmrg	esac
3240266e564dSmrg
3241266e564dSmrg	if test "$age" -gt "$current"; then
3242266e564dSmrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3243266e564dSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3244266e564dSmrg	  exit $EXIT_FAILURE
3245266e564dSmrg	fi
3246266e564dSmrg
3247266e564dSmrg	# Calculate the version variables.
3248266e564dSmrg	major=
3249266e564dSmrg	versuffix=
3250266e564dSmrg	verstring=
3251266e564dSmrg	case $version_type in
3252266e564dSmrg	none) ;;
3253266e564dSmrg
3254266e564dSmrg	darwin)
3255266e564dSmrg	  # Like Linux, but with the current version available in
3256266e564dSmrg	  # verstring for coding it into the library header
3257266e564dSmrg	  major=.`expr $current - $age`
3258266e564dSmrg	  versuffix="$major.$age.$revision"
3259266e564dSmrg	  # Darwin ld doesn't like 0 for these options...
3260266e564dSmrg	  minor_current=`expr $current + 1`
3261266e564dSmrg	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3262266e564dSmrg	  ;;
3263266e564dSmrg
3264266e564dSmrg	freebsd-aout)
3265266e564dSmrg	  major=".$current"
3266266e564dSmrg	  versuffix=".$current.$revision";
3267266e564dSmrg	  ;;
3268266e564dSmrg
3269266e564dSmrg	freebsd-elf)
3270266e564dSmrg	  major=".$current"
3271266e564dSmrg	  versuffix=".$current";
3272266e564dSmrg	  ;;
3273266e564dSmrg
3274266e564dSmrg	irix | nonstopux)
3275266e564dSmrg	  major=`expr $current - $age + 1`
3276266e564dSmrg
3277266e564dSmrg	  case $version_type in
3278266e564dSmrg	    nonstopux) verstring_prefix=nonstopux ;;
3279266e564dSmrg	    *)         verstring_prefix=sgi ;;
3280266e564dSmrg	  esac
3281266e564dSmrg	  verstring="$verstring_prefix$major.$revision"
3282266e564dSmrg
3283266e564dSmrg	  # Add in all the interfaces that we are compatible with.
3284266e564dSmrg	  loop=$revision
3285266e564dSmrg	  while test "$loop" -ne 0; do
3286266e564dSmrg	    iface=`expr $revision - $loop`
3287266e564dSmrg	    loop=`expr $loop - 1`
3288266e564dSmrg	    verstring="$verstring_prefix$major.$iface:$verstring"
3289266e564dSmrg	  done
3290266e564dSmrg
3291266e564dSmrg	  # Before this point, $major must not contain `.'.
3292266e564dSmrg	  major=.$major
3293266e564dSmrg	  versuffix="$major.$revision"
3294266e564dSmrg	  ;;
3295266e564dSmrg
3296266e564dSmrg	linux)
3297266e564dSmrg	  major=.`expr $current - $age`
3298266e564dSmrg	  versuffix="$major.$age.$revision"
3299266e564dSmrg	  ;;
3300266e564dSmrg
3301266e564dSmrg	osf)
3302266e564dSmrg	  major=.`expr $current - $age`
3303266e564dSmrg	  versuffix=".$current.$age.$revision"
3304266e564dSmrg	  verstring="$current.$age.$revision"
3305266e564dSmrg
3306266e564dSmrg	  # Add in all the interfaces that we are compatible with.
3307266e564dSmrg	  loop=$age
3308266e564dSmrg	  while test "$loop" -ne 0; do
3309266e564dSmrg	    iface=`expr $current - $loop`
3310266e564dSmrg	    loop=`expr $loop - 1`
3311266e564dSmrg	    verstring="$verstring:${iface}.0"
3312266e564dSmrg	  done
3313266e564dSmrg
3314266e564dSmrg	  # Make executables depend on our current version.
3315266e564dSmrg	  verstring="$verstring:${current}.0"
3316266e564dSmrg	  ;;
3317266e564dSmrg
3318266e564dSmrg	sunos)
3319266e564dSmrg	  major=".$current"
3320266e564dSmrg	  versuffix=".$current.$revision"
3321266e564dSmrg	  ;;
3322266e564dSmrg
3323266e564dSmrg	windows)
3324266e564dSmrg	  # Use '-' rather than '.', since we only want one
3325266e564dSmrg	  # extension on DOS 8.3 filesystems.
3326266e564dSmrg	  major=`expr $current - $age`
3327266e564dSmrg	  versuffix="-$major"
3328266e564dSmrg	  ;;
3329266e564dSmrg
3330266e564dSmrg	*)
3331266e564dSmrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3332266e564dSmrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3333266e564dSmrg	  exit $EXIT_FAILURE
3334266e564dSmrg	  ;;
3335266e564dSmrg	esac
3336266e564dSmrg
3337266e564dSmrg	# Clear the version info if we defaulted, and they specified a release.
3338266e564dSmrg	if test -z "$vinfo" && test -n "$release"; then
3339266e564dSmrg	  major=
3340266e564dSmrg	  case $version_type in
3341266e564dSmrg	  darwin)
3342266e564dSmrg	    # we can't check for "0.0" in archive_cmds due to quoting
3343266e564dSmrg	    # problems, so we reset it completely
3344266e564dSmrg	    verstring=
3345266e564dSmrg	    ;;
3346266e564dSmrg	  *)
3347266e564dSmrg	    verstring="0.0"
3348266e564dSmrg	    ;;
3349266e564dSmrg	  esac
3350266e564dSmrg	  if test "$need_version" = no; then
3351266e564dSmrg	    versuffix=
3352266e564dSmrg	  else
3353266e564dSmrg	    versuffix=".0.0"
3354266e564dSmrg	  fi
3355266e564dSmrg	fi
3356266e564dSmrg
3357266e564dSmrg	# Remove version info from name if versioning should be avoided
3358266e564dSmrg	if test "$avoid_version" = yes && test "$need_version" = no; then
3359266e564dSmrg	  major=
3360266e564dSmrg	  versuffix=
3361266e564dSmrg	  verstring=""
3362266e564dSmrg	fi
3363266e564dSmrg
3364266e564dSmrg	# Check to see if the archive will have undefined symbols.
3365266e564dSmrg	if test "$allow_undefined" = yes; then
3366266e564dSmrg	  if test "$allow_undefined_flag" = unsupported; then
3367266e564dSmrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3368266e564dSmrg	    build_libtool_libs=no
3369266e564dSmrg	    build_old_libs=yes
3370266e564dSmrg	  fi
3371266e564dSmrg	else
3372266e564dSmrg	  # Don't allow undefined symbols.
3373266e564dSmrg	  allow_undefined_flag="$no_undefined_flag"
3374266e564dSmrg	fi
3375266e564dSmrg      fi
3376266e564dSmrg
3377266e564dSmrg      if test "$mode" != relink; then
3378266e564dSmrg	# Remove our outputs, but don't remove object files since they
3379266e564dSmrg	# may have been created when compiling PIC objects.
3380266e564dSmrg	removelist=
3381266e564dSmrg	tempremovelist=`$echo "$output_objdir/*"`
3382266e564dSmrg	for p in $tempremovelist; do
3383266e564dSmrg	  case $p in
3384266e564dSmrg	    *.$objext)
3385266e564dSmrg	       ;;
3386266e564dSmrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3387266e564dSmrg	       if test "X$precious_files_regex" != "X"; then
3388266e564dSmrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3389266e564dSmrg	         then
3390266e564dSmrg		   continue
3391266e564dSmrg		 fi
3392266e564dSmrg	       fi
3393266e564dSmrg	       removelist="$removelist $p"
3394266e564dSmrg	       ;;
3395266e564dSmrg	    *) ;;
3396266e564dSmrg	  esac
3397266e564dSmrg	done
3398266e564dSmrg	if test -n "$removelist"; then
3399266e564dSmrg	  $show "${rm}r $removelist"
3400266e564dSmrg	  $run ${rm}r $removelist
3401266e564dSmrg	fi
3402266e564dSmrg      fi
3403266e564dSmrg
3404266e564dSmrg      # Now set the variables for building old libraries.
3405266e564dSmrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3406266e564dSmrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3407266e564dSmrg
3408266e564dSmrg	# Transform .lo files to .o files.
3409266e564dSmrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3410266e564dSmrg      fi
3411266e564dSmrg
3412266e564dSmrg      # Eliminate all temporary directories.
3413266e564dSmrg      for path in $notinst_path; do
3414266e564dSmrg	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3415266e564dSmrg	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3416266e564dSmrg	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3417266e564dSmrg      done
3418266e564dSmrg
3419266e564dSmrg      if test -n "$xrpath"; then
3420266e564dSmrg	# If the user specified any rpath flags, then add them.
3421266e564dSmrg	temp_xrpath=
3422266e564dSmrg	for libdir in $xrpath; do
3423266e564dSmrg	  temp_xrpath="$temp_xrpath -R$libdir"
3424266e564dSmrg	  case "$finalize_rpath " in
3425266e564dSmrg	  *" $libdir "*) ;;
3426266e564dSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3427266e564dSmrg	  esac
3428266e564dSmrg	done
3429266e564dSmrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3430266e564dSmrg	  dependency_libs="$temp_xrpath $dependency_libs"
3431266e564dSmrg	fi
3432266e564dSmrg      fi
3433266e564dSmrg
3434266e564dSmrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
3435266e564dSmrg      old_dlfiles="$dlfiles"
3436266e564dSmrg      dlfiles=
3437266e564dSmrg      for lib in $old_dlfiles; do
3438266e564dSmrg	case " $dlprefiles $dlfiles " in
3439266e564dSmrg	*" $lib "*) ;;
3440266e564dSmrg	*) dlfiles="$dlfiles $lib" ;;
3441266e564dSmrg	esac
3442266e564dSmrg      done
3443266e564dSmrg
3444266e564dSmrg      # Make sure dlprefiles contains only unique files
3445266e564dSmrg      old_dlprefiles="$dlprefiles"
3446266e564dSmrg      dlprefiles=
3447266e564dSmrg      for lib in $old_dlprefiles; do
3448266e564dSmrg	case "$dlprefiles " in
3449266e564dSmrg	*" $lib "*) ;;
3450266e564dSmrg	*) dlprefiles="$dlprefiles $lib" ;;
3451266e564dSmrg	esac
3452266e564dSmrg      done
3453266e564dSmrg
3454266e564dSmrg      if test "$build_libtool_libs" = yes; then
3455266e564dSmrg	if test -n "$rpath"; then
3456266e564dSmrg	  case $host in
3457266e564dSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3458266e564dSmrg	    # these systems don't actually have a c library (as such)!
3459266e564dSmrg	    ;;
3460266e564dSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
3461266e564dSmrg	    # Rhapsody C library is in the System framework
3462266e564dSmrg	    deplibs="$deplibs -framework System"
3463266e564dSmrg	    ;;
3464266e564dSmrg	  *-*-netbsd*)
3465266e564dSmrg	    # Don't link with libc until the a.out ld.so is fixed.
3466266e564dSmrg	    ;;
3467266e564dSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3468266e564dSmrg	    # Do not include libc due to us having libc/libc_r.
3469266e564dSmrg	    ;;
3470266e564dSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
3471266e564dSmrg	    # Causes problems with __ctype
3472266e564dSmrg	    ;;
3473266e564dSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3474266e564dSmrg	    # Compiler inserts libc in the correct place for threads to work
3475266e564dSmrg	    ;;
3476266e564dSmrg 	  *)
3477266e564dSmrg	    # Add libc to deplibs on all other systems if necessary.
3478266e564dSmrg	    if test "$build_libtool_need_lc" = "yes"; then
3479266e564dSmrg	      deplibs="$deplibs -lc"
3480266e564dSmrg	    fi
3481266e564dSmrg	    ;;
3482266e564dSmrg	  esac
3483266e564dSmrg	fi
3484266e564dSmrg
3485266e564dSmrg	# Transform deplibs into only deplibs that can be linked in shared.
3486266e564dSmrg	name_save=$name
3487266e564dSmrg	libname_save=$libname
3488266e564dSmrg	release_save=$release
3489266e564dSmrg	versuffix_save=$versuffix
3490266e564dSmrg	major_save=$major
3491266e564dSmrg	# I'm not sure if I'm treating the release correctly.  I think
3492266e564dSmrg	# release should show up in the -l (ie -lgmp5) so we don't want to
3493266e564dSmrg	# add it in twice.  Is that correct?
3494266e564dSmrg	release=""
3495266e564dSmrg	versuffix=""
3496266e564dSmrg	major=""
3497266e564dSmrg	newdeplibs=
3498266e564dSmrg	droppeddeps=no
3499266e564dSmrg	case $deplibs_check_method in
3500266e564dSmrg	pass_all)
3501266e564dSmrg	  # Don't check for shared/static.  Everything works.
3502266e564dSmrg	  # This might be a little naive.  We might want to check
3503266e564dSmrg	  # whether the library exists or not.  But this is on
3504266e564dSmrg	  # osf3 & osf4 and I'm not really sure... Just
3505266e564dSmrg	  # implementing what was already the behavior.
3506266e564dSmrg	  newdeplibs=$deplibs
3507266e564dSmrg	  ;;
3508266e564dSmrg	test_compile)
3509266e564dSmrg	  # This code stresses the "libraries are programs" paradigm to its
3510266e564dSmrg	  # limits. Maybe even breaks it.  We compile a program, linking it
3511266e564dSmrg	  # against the deplibs as a proxy for the library.  Then we can check
3512266e564dSmrg	  # whether they linked in statically or dynamically with ldd.
3513266e564dSmrg	  $rm conftest.c
3514266e564dSmrg	  cat > conftest.c <<EOF
3515266e564dSmrg	  int main() { return 0; }
3516266e564dSmrgEOF
3517266e564dSmrg	  $rm conftest
3518266e564dSmrg	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3519266e564dSmrg	  if test "$?" -eq 0 ; then
3520266e564dSmrg	    ldd_output=`ldd conftest`
3521266e564dSmrg	    for i in $deplibs; do
3522266e564dSmrg	      name=`expr $i : '-l\(.*\)'`
3523266e564dSmrg	      # If $name is empty we are operating on a -L argument.
3524266e564dSmrg              if test "$name" != "" && test "$name" -ne "0"; then
3525266e564dSmrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3526266e564dSmrg		  case " $predeps $postdeps " in
3527266e564dSmrg		  *" $i "*)
3528266e564dSmrg		    newdeplibs="$newdeplibs $i"
3529266e564dSmrg		    i=""
3530266e564dSmrg		    ;;
3531266e564dSmrg		  esac
3532266e564dSmrg	        fi
3533266e564dSmrg		if test -n "$i" ; then
3534266e564dSmrg		  libname=`eval \\$echo \"$libname_spec\"`
3535266e564dSmrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3536266e564dSmrg		  set dummy $deplib_matches
3537266e564dSmrg		  deplib_match=$2
3538266e564dSmrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3539266e564dSmrg		    newdeplibs="$newdeplibs $i"
3540266e564dSmrg		  else
3541266e564dSmrg		    droppeddeps=yes
3542266e564dSmrg		    $echo
3543266e564dSmrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3544266e564dSmrg		    $echo "*** I have the capability to make that library automatically link in when"
3545266e564dSmrg		    $echo "*** you link to this library.  But I can only do this if you have a"
3546266e564dSmrg		    $echo "*** shared version of the library, which I believe you do not have"
3547266e564dSmrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3548266e564dSmrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3549266e564dSmrg		  fi
3550266e564dSmrg		fi
3551266e564dSmrg	      else
3552266e564dSmrg		newdeplibs="$newdeplibs $i"
3553266e564dSmrg	      fi
3554266e564dSmrg	    done
3555266e564dSmrg	  else
3556266e564dSmrg	    # Error occurred in the first compile.  Let's try to salvage
3557266e564dSmrg	    # the situation: Compile a separate program for each library.
3558266e564dSmrg	    for i in $deplibs; do
3559266e564dSmrg	      name=`expr $i : '-l\(.*\)'`
3560266e564dSmrg	      # If $name is empty we are operating on a -L argument.
3561266e564dSmrg              if test "$name" != "" && test "$name" != "0"; then
3562266e564dSmrg		$rm conftest
3563266e564dSmrg		$LTCC $LTCFLAGS -o conftest conftest.c $i
3564266e564dSmrg		# Did it work?
3565266e564dSmrg		if test "$?" -eq 0 ; then
3566266e564dSmrg		  ldd_output=`ldd conftest`
3567266e564dSmrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3568266e564dSmrg		    case " $predeps $postdeps " in
3569266e564dSmrg		    *" $i "*)
3570266e564dSmrg		      newdeplibs="$newdeplibs $i"
3571266e564dSmrg		      i=""
3572266e564dSmrg		      ;;
3573266e564dSmrg		    esac
3574266e564dSmrg		  fi
3575266e564dSmrg		  if test -n "$i" ; then
3576266e564dSmrg		    libname=`eval \\$echo \"$libname_spec\"`
3577266e564dSmrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3578266e564dSmrg		    set dummy $deplib_matches
3579266e564dSmrg		    deplib_match=$2
3580266e564dSmrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3581266e564dSmrg		      newdeplibs="$newdeplibs $i"
3582266e564dSmrg		    else
3583266e564dSmrg		      droppeddeps=yes
3584266e564dSmrg		      $echo
3585266e564dSmrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3586266e564dSmrg		      $echo "*** I have the capability to make that library automatically link in when"
3587266e564dSmrg		      $echo "*** you link to this library.  But I can only do this if you have a"
3588266e564dSmrg		      $echo "*** shared version of the library, which you do not appear to have"
3589266e564dSmrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3590266e564dSmrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3591266e564dSmrg		    fi
3592266e564dSmrg		  fi
3593266e564dSmrg		else
3594266e564dSmrg		  droppeddeps=yes
3595266e564dSmrg		  $echo
3596266e564dSmrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3597266e564dSmrg		  $echo "***  make it link in!  You will probably need to install it or some"
3598266e564dSmrg		  $echo "*** library that it depends on before this library will be fully"
3599266e564dSmrg		  $echo "*** functional.  Installing it before continuing would be even better."
3600266e564dSmrg		fi
3601266e564dSmrg	      else
3602266e564dSmrg		newdeplibs="$newdeplibs $i"
3603266e564dSmrg	      fi
3604266e564dSmrg	    done
3605266e564dSmrg	  fi
3606266e564dSmrg	  ;;
3607266e564dSmrg	file_magic*)
3608266e564dSmrg	  set dummy $deplibs_check_method
3609266e564dSmrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3610266e564dSmrg	  for a_deplib in $deplibs; do
3611266e564dSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
3612266e564dSmrg	    # If $name is empty we are operating on a -L argument.
3613266e564dSmrg            if test "$name" != "" && test  "$name" != "0"; then
3614266e564dSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3615266e564dSmrg		case " $predeps $postdeps " in
3616266e564dSmrg		*" $a_deplib "*)
3617266e564dSmrg		  newdeplibs="$newdeplibs $a_deplib"
3618266e564dSmrg		  a_deplib=""
3619266e564dSmrg		  ;;
3620266e564dSmrg		esac
3621266e564dSmrg	      fi
3622266e564dSmrg	      if test -n "$a_deplib" ; then
3623266e564dSmrg		libname=`eval \\$echo \"$libname_spec\"`
3624266e564dSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3625266e564dSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3626266e564dSmrg		  for potent_lib in $potential_libs; do
3627266e564dSmrg		      # Follow soft links.
3628266e564dSmrg		      if ls -lLd "$potent_lib" 2>/dev/null \
3629266e564dSmrg			 | grep " -> " >/dev/null; then
3630266e564dSmrg			continue
3631266e564dSmrg		      fi
3632266e564dSmrg		      # The statement above tries to avoid entering an
3633266e564dSmrg		      # endless loop below, in case of cyclic links.
3634266e564dSmrg		      # We might still enter an endless loop, since a link
3635266e564dSmrg		      # loop can be closed while we follow links,
3636266e564dSmrg		      # but so what?
3637266e564dSmrg		      potlib="$potent_lib"
3638266e564dSmrg		      while test -h "$potlib" 2>/dev/null; do
3639266e564dSmrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3640266e564dSmrg			case $potliblink in
3641266e564dSmrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3642266e564dSmrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3643266e564dSmrg			esac
3644266e564dSmrg		      done
3645266e564dSmrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3646266e564dSmrg			 | ${SED} 10q \
3647266e564dSmrg			 | $EGREP "$file_magic_regex" > /dev/null; then
3648266e564dSmrg			newdeplibs="$newdeplibs $a_deplib"
3649266e564dSmrg			a_deplib=""
3650266e564dSmrg			break 2
3651266e564dSmrg		      fi
3652266e564dSmrg		  done
3653266e564dSmrg		done
3654266e564dSmrg	      fi
3655266e564dSmrg	      if test -n "$a_deplib" ; then
3656266e564dSmrg		droppeddeps=yes
3657266e564dSmrg		$echo
3658266e564dSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3659266e564dSmrg		$echo "*** I have the capability to make that library automatically link in when"
3660266e564dSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
3661266e564dSmrg		$echo "*** shared version of the library, which you do not appear to have"
3662266e564dSmrg		$echo "*** because I did check the linker path looking for a file starting"
3663266e564dSmrg		if test -z "$potlib" ; then
3664266e564dSmrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3665266e564dSmrg		else
3666266e564dSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3667266e564dSmrg		  $echo "*** using a file magic. Last file checked: $potlib"
3668266e564dSmrg		fi
3669266e564dSmrg	      fi
3670266e564dSmrg	    else
3671266e564dSmrg	      # Add a -L argument.
3672266e564dSmrg	      newdeplibs="$newdeplibs $a_deplib"
3673266e564dSmrg	    fi
3674266e564dSmrg	  done # Gone through all deplibs.
3675266e564dSmrg	  ;;
3676266e564dSmrg	match_pattern*)
3677266e564dSmrg	  set dummy $deplibs_check_method
3678266e564dSmrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3679266e564dSmrg	  for a_deplib in $deplibs; do
3680266e564dSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
3681266e564dSmrg	    # If $name is empty we are operating on a -L argument.
3682266e564dSmrg	    if test -n "$name" && test "$name" != "0"; then
3683266e564dSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3684266e564dSmrg		case " $predeps $postdeps " in
3685266e564dSmrg		*" $a_deplib "*)
3686266e564dSmrg		  newdeplibs="$newdeplibs $a_deplib"
3687266e564dSmrg		  a_deplib=""
3688266e564dSmrg		  ;;
3689266e564dSmrg		esac
3690266e564dSmrg	      fi
3691266e564dSmrg	      if test -n "$a_deplib" ; then
3692266e564dSmrg		libname=`eval \\$echo \"$libname_spec\"`
3693266e564dSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3694266e564dSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3695266e564dSmrg		  for potent_lib in $potential_libs; do
3696266e564dSmrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
3697266e564dSmrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
3698266e564dSmrg		        | ${SED} 10q \
3699266e564dSmrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
3700266e564dSmrg		      newdeplibs="$newdeplibs $a_deplib"
3701266e564dSmrg		      a_deplib=""
3702266e564dSmrg		      break 2
3703266e564dSmrg		    fi
3704266e564dSmrg		  done
3705266e564dSmrg		done
3706266e564dSmrg	      fi
3707266e564dSmrg	      if test -n "$a_deplib" ; then
3708266e564dSmrg		droppeddeps=yes
3709266e564dSmrg		$echo
3710266e564dSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3711266e564dSmrg		$echo "*** I have the capability to make that library automatically link in when"
3712266e564dSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
3713266e564dSmrg		$echo "*** shared version of the library, which you do not appear to have"
3714266e564dSmrg		$echo "*** because I did check the linker path looking for a file starting"
3715266e564dSmrg		if test -z "$potlib" ; then
3716266e564dSmrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3717266e564dSmrg		else
3718266e564dSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3719266e564dSmrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
3720266e564dSmrg		fi
3721266e564dSmrg	      fi
3722266e564dSmrg	    else
3723266e564dSmrg	      # Add a -L argument.
3724266e564dSmrg	      newdeplibs="$newdeplibs $a_deplib"
3725266e564dSmrg	    fi
3726266e564dSmrg	  done # Gone through all deplibs.
3727266e564dSmrg	  ;;
3728266e564dSmrg	none | unknown | *)
3729266e564dSmrg	  newdeplibs=""
3730266e564dSmrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3731266e564dSmrg	    -e 's/ -[LR][^ ]*//g'`
3732266e564dSmrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3733266e564dSmrg	    for i in $predeps $postdeps ; do
3734266e564dSmrg	      # can't use Xsed below, because $i might contain '/'
3735266e564dSmrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3736266e564dSmrg	    done
3737266e564dSmrg	  fi
3738266e564dSmrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3739266e564dSmrg	    | grep . >/dev/null; then
3740266e564dSmrg	    $echo
3741266e564dSmrg	    if test "X$deplibs_check_method" = "Xnone"; then
3742266e564dSmrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3743266e564dSmrg	    else
3744266e564dSmrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3745266e564dSmrg	    fi
3746266e564dSmrg	    $echo "*** All declared inter-library dependencies are being dropped."
3747266e564dSmrg	    droppeddeps=yes
3748266e564dSmrg	  fi
3749266e564dSmrg	  ;;
3750266e564dSmrg	esac
3751266e564dSmrg	versuffix=$versuffix_save
3752266e564dSmrg	major=$major_save
3753266e564dSmrg	release=$release_save
3754266e564dSmrg	libname=$libname_save
3755266e564dSmrg	name=$name_save
3756266e564dSmrg
3757266e564dSmrg	case $host in
3758266e564dSmrg	*-*-rhapsody* | *-*-darwin1.[012])
3759266e564dSmrg	  # On Rhapsody replace the C library is the System framework
3760266e564dSmrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3761266e564dSmrg	  ;;
3762266e564dSmrg	esac
3763266e564dSmrg
3764266e564dSmrg	if test "$droppeddeps" = yes; then
3765266e564dSmrg	  if test "$module" = yes; then
3766266e564dSmrg	    $echo
3767266e564dSmrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3768266e564dSmrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3769266e564dSmrg	    $echo "*** a static module, that should work as long as the dlopening"
3770266e564dSmrg	    $echo "*** application is linked with the -dlopen flag."
3771266e564dSmrg	    if test -z "$global_symbol_pipe"; then
3772266e564dSmrg	      $echo
3773266e564dSmrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
3774266e564dSmrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3775266e564dSmrg	      $echo "*** not find such a program.  So, this module is probably useless."
3776266e564dSmrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3777266e564dSmrg	    fi
3778266e564dSmrg	    if test "$build_old_libs" = no; then
3779266e564dSmrg	      oldlibs="$output_objdir/$libname.$libext"
3780266e564dSmrg	      build_libtool_libs=module
3781266e564dSmrg	      build_old_libs=yes
3782266e564dSmrg	    else
3783266e564dSmrg	      build_libtool_libs=no
3784266e564dSmrg	    fi
3785266e564dSmrg	  else
3786266e564dSmrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
3787266e564dSmrg	    $echo "*** automatically added whenever a program is linked with this library"
3788266e564dSmrg	    $echo "*** or is declared to -dlopen it."
3789266e564dSmrg
3790266e564dSmrg	    if test "$allow_undefined" = no; then
3791266e564dSmrg	      $echo
3792266e564dSmrg	      $echo "*** Since this library must not contain undefined symbols,"
3793266e564dSmrg	      $echo "*** because either the platform does not support them or"
3794266e564dSmrg	      $echo "*** it was explicitly requested with -no-undefined,"
3795266e564dSmrg	      $echo "*** libtool will only create a static version of it."
3796266e564dSmrg	      if test "$build_old_libs" = no; then
3797266e564dSmrg		oldlibs="$output_objdir/$libname.$libext"
3798266e564dSmrg		build_libtool_libs=module
3799266e564dSmrg		build_old_libs=yes
3800266e564dSmrg	      else
3801266e564dSmrg		build_libtool_libs=no
3802266e564dSmrg	      fi
3803266e564dSmrg	    fi
3804266e564dSmrg	  fi
3805266e564dSmrg	fi
3806266e564dSmrg	# Done checking deplibs!
3807266e564dSmrg	deplibs=$newdeplibs
3808266e564dSmrg      fi
3809266e564dSmrg
3810266e564dSmrg
3811266e564dSmrg      # move library search paths that coincide with paths to not yet
3812266e564dSmrg      # installed libraries to the beginning of the library search list
3813266e564dSmrg      new_libs=
3814266e564dSmrg      for path in $notinst_path; do
3815266e564dSmrg	case " $new_libs " in
3816266e564dSmrg	*" -L$path/$objdir "*) ;;
3817266e564dSmrg	*)
3818266e564dSmrg	  case " $deplibs " in
3819266e564dSmrg	  *" -L$path/$objdir "*)
3820266e564dSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
3821266e564dSmrg	  esac
3822266e564dSmrg	  ;;
3823266e564dSmrg	esac
3824266e564dSmrg      done
3825266e564dSmrg      for deplib in $deplibs; do
3826266e564dSmrg	case $deplib in
3827266e564dSmrg	-L*)
3828266e564dSmrg	  case " $new_libs " in
3829266e564dSmrg	  *" $deplib "*) ;;
3830266e564dSmrg	  *) new_libs="$new_libs $deplib" ;;
3831266e564dSmrg	  esac
3832266e564dSmrg	  ;;
3833266e564dSmrg	*) new_libs="$new_libs $deplib" ;;
3834266e564dSmrg	esac
3835266e564dSmrg      done
3836266e564dSmrg      deplibs="$new_libs"
3837266e564dSmrg
3838266e564dSmrg
3839266e564dSmrg      # All the library-specific variables (install_libdir is set above).
3840266e564dSmrg      library_names=
3841266e564dSmrg      old_library=
3842266e564dSmrg      dlname=
3843266e564dSmrg
3844266e564dSmrg      # Test again, we may have decided not to build it any more
3845266e564dSmrg      if test "$build_libtool_libs" = yes; then
3846266e564dSmrg	if test "$hardcode_into_libs" = yes; then
3847266e564dSmrg	  # Hardcode the library paths
3848266e564dSmrg	  hardcode_libdirs=
3849266e564dSmrg	  dep_rpath=
3850266e564dSmrg	  rpath="$finalize_rpath"
3851266e564dSmrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3852266e564dSmrg	  for libdir in $rpath; do
3853266e564dSmrg	    if test -n "$hardcode_libdir_flag_spec"; then
3854266e564dSmrg	      if test -n "$hardcode_libdir_separator"; then
3855266e564dSmrg		if test -z "$hardcode_libdirs"; then
3856266e564dSmrg		  hardcode_libdirs="$libdir"
3857266e564dSmrg		else
3858266e564dSmrg		  # Just accumulate the unique libdirs.
3859266e564dSmrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3860266e564dSmrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3861266e564dSmrg		    ;;
3862266e564dSmrg		  *)
3863266e564dSmrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3864266e564dSmrg		    ;;
3865266e564dSmrg		  esac
3866266e564dSmrg		fi
3867266e564dSmrg	      else
3868266e564dSmrg		eval flag=\"$hardcode_libdir_flag_spec\"
3869266e564dSmrg		dep_rpath="$dep_rpath $flag"
3870266e564dSmrg	      fi
3871266e564dSmrg	    elif test -n "$runpath_var"; then
3872266e564dSmrg	      case "$perm_rpath " in
3873266e564dSmrg	      *" $libdir "*) ;;
3874266e564dSmrg	      *) perm_rpath="$perm_rpath $libdir" ;;
3875266e564dSmrg	      esac
3876266e564dSmrg	    fi
3877266e564dSmrg	  done
3878266e564dSmrg	  # Substitute the hardcoded libdirs into the rpath.
3879266e564dSmrg	  if test -n "$hardcode_libdir_separator" &&
3880266e564dSmrg	     test -n "$hardcode_libdirs"; then
3881266e564dSmrg	    libdir="$hardcode_libdirs"
3882266e564dSmrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3883266e564dSmrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3884266e564dSmrg	    else
3885266e564dSmrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3886266e564dSmrg	    fi
3887266e564dSmrg	  fi
3888266e564dSmrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3889266e564dSmrg	    # We should set the runpath_var.
3890266e564dSmrg	    rpath=
3891266e564dSmrg	    for dir in $perm_rpath; do
3892266e564dSmrg	      rpath="$rpath$dir:"
3893266e564dSmrg	    done
3894266e564dSmrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3895266e564dSmrg	  fi
3896266e564dSmrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3897266e564dSmrg	fi
3898266e564dSmrg
3899266e564dSmrg	shlibpath="$finalize_shlibpath"
3900266e564dSmrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3901266e564dSmrg	if test -n "$shlibpath"; then
3902266e564dSmrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3903266e564dSmrg	fi
3904266e564dSmrg
3905266e564dSmrg	# Get the real and link names of the library.
3906266e564dSmrg	eval shared_ext=\"$shrext_cmds\"
3907266e564dSmrg	eval library_names=\"$library_names_spec\"
3908266e564dSmrg	set dummy $library_names
3909266e564dSmrg	realname="$2"
3910266e564dSmrg	shift; shift
3911266e564dSmrg
3912266e564dSmrg	if test -n "$soname_spec"; then
3913266e564dSmrg	  eval soname=\"$soname_spec\"
3914266e564dSmrg	else
3915266e564dSmrg	  soname="$realname"
3916266e564dSmrg	fi
3917266e564dSmrg	if test -z "$dlname"; then
3918266e564dSmrg	  dlname=$soname
3919266e564dSmrg	fi
3920266e564dSmrg
3921266e564dSmrg	lib="$output_objdir/$realname"
3922266e564dSmrg	linknames=
3923266e564dSmrg	for link
3924266e564dSmrg	do
3925266e564dSmrg	  linknames="$linknames $link"
3926266e564dSmrg	done
3927266e564dSmrg
3928266e564dSmrg	# Use standard objects if they are pic
3929266e564dSmrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3930266e564dSmrg
3931266e564dSmrg	# Prepare the list of exported symbols
3932266e564dSmrg	if test -z "$export_symbols"; then
3933266e564dSmrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3934266e564dSmrg	    $show "generating symbol list for \`$libname.la'"
3935266e564dSmrg	    export_symbols="$output_objdir/$libname.exp"
3936266e564dSmrg	    $run $rm $export_symbols
3937266e564dSmrg	    cmds=$export_symbols_cmds
3938266e564dSmrg	    save_ifs="$IFS"; IFS='~'
3939266e564dSmrg	    for cmd in $cmds; do
3940266e564dSmrg	      IFS="$save_ifs"
3941266e564dSmrg	      eval cmd=\"$cmd\"
3942266e564dSmrg	      if len=`expr "X$cmd" : ".*"` &&
3943266e564dSmrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3944266e564dSmrg	        $show "$cmd"
3945266e564dSmrg	        $run eval "$cmd" || exit $?
3946266e564dSmrg	        skipped_export=false
3947266e564dSmrg	      else
3948266e564dSmrg	        # The command line is too long to execute in one step.
3949266e564dSmrg	        $show "using reloadable object file for export list..."
3950266e564dSmrg	        skipped_export=:
3951266e564dSmrg		# Break out early, otherwise skipped_export may be
3952266e564dSmrg		# set to false by a later but shorter cmd.
3953266e564dSmrg		break
3954266e564dSmrg	      fi
3955266e564dSmrg	    done
3956266e564dSmrg	    IFS="$save_ifs"
3957266e564dSmrg	    if test -n "$export_symbols_regex"; then
3958266e564dSmrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3959266e564dSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3960266e564dSmrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3961266e564dSmrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3962266e564dSmrg	    fi
3963266e564dSmrg	  fi
3964266e564dSmrg	fi
3965266e564dSmrg
3966266e564dSmrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
3967266e564dSmrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3968266e564dSmrg	fi
3969266e564dSmrg
3970266e564dSmrg	tmp_deplibs=
3971266e564dSmrg	for test_deplib in $deplibs; do
3972266e564dSmrg		case " $convenience " in
3973266e564dSmrg		*" $test_deplib "*) ;;
3974266e564dSmrg		*)
3975266e564dSmrg			tmp_deplibs="$tmp_deplibs $test_deplib"
3976266e564dSmrg			;;
3977266e564dSmrg		esac
3978266e564dSmrg	done
3979266e564dSmrg	deplibs="$tmp_deplibs"
3980266e564dSmrg
3981266e564dSmrg	if test -n "$convenience"; then
3982266e564dSmrg	  if test -n "$whole_archive_flag_spec"; then
3983266e564dSmrg	    save_libobjs=$libobjs
3984266e564dSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3985266e564dSmrg	  else
3986266e564dSmrg	    gentop="$output_objdir/${outputname}x"
3987266e564dSmrg	    generated="$generated $gentop"
3988266e564dSmrg
3989266e564dSmrg	    func_extract_archives $gentop $convenience
3990266e564dSmrg	    libobjs="$libobjs $func_extract_archives_result"
3991266e564dSmrg	  fi
3992266e564dSmrg	fi
3993266e564dSmrg	
3994266e564dSmrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3995266e564dSmrg	  eval flag=\"$thread_safe_flag_spec\"
3996266e564dSmrg	  linker_flags="$linker_flags $flag"
3997266e564dSmrg	fi
3998266e564dSmrg
3999266e564dSmrg	# Make a backup of the uninstalled library when relinking
4000266e564dSmrg	if test "$mode" = relink; then
4001266e564dSmrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4002266e564dSmrg	fi
4003266e564dSmrg
4004266e564dSmrg	# Do each of the archive commands.
4005266e564dSmrg	if test "$module" = yes && test -n "$module_cmds" ; then
4006266e564dSmrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4007266e564dSmrg	    eval test_cmds=\"$module_expsym_cmds\"
4008266e564dSmrg	    cmds=$module_expsym_cmds
4009266e564dSmrg	  else
4010266e564dSmrg	    eval test_cmds=\"$module_cmds\"
4011266e564dSmrg	    cmds=$module_cmds
4012266e564dSmrg	  fi
4013266e564dSmrg	else
4014266e564dSmrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4015266e564dSmrg	  eval test_cmds=\"$archive_expsym_cmds\"
4016266e564dSmrg	  cmds=$archive_expsym_cmds
4017266e564dSmrg	else
4018266e564dSmrg	  eval test_cmds=\"$archive_cmds\"
4019266e564dSmrg	  cmds=$archive_cmds
4020266e564dSmrg	  fi
4021266e564dSmrg	fi
4022266e564dSmrg
4023266e564dSmrg	if test "X$skipped_export" != "X:" &&
4024266e564dSmrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4025266e564dSmrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4026266e564dSmrg	  :
4027266e564dSmrg	else
4028266e564dSmrg	  # The command line is too long to link in one step, link piecewise.
4029266e564dSmrg	  $echo "creating reloadable object files..."
4030266e564dSmrg
4031266e564dSmrg	  # Save the value of $output and $libobjs because we want to
4032266e564dSmrg	  # use them later.  If we have whole_archive_flag_spec, we
4033266e564dSmrg	  # want to use save_libobjs as it was before
4034266e564dSmrg	  # whole_archive_flag_spec was expanded, because we can't
4035266e564dSmrg	  # assume the linker understands whole_archive_flag_spec.
4036266e564dSmrg	  # This may have to be revisited, in case too many
4037266e564dSmrg	  # convenience libraries get linked in and end up exceeding
4038266e564dSmrg	  # the spec.
4039266e564dSmrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4040266e564dSmrg	    save_libobjs=$libobjs
4041266e564dSmrg	  fi
4042266e564dSmrg	  save_output=$output
4043266e564dSmrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4044266e564dSmrg
4045266e564dSmrg	  # Clear the reloadable object creation command queue and
4046266e564dSmrg	  # initialize k to one.
4047266e564dSmrg	  test_cmds=
4048266e564dSmrg	  concat_cmds=
4049266e564dSmrg	  objlist=
4050266e564dSmrg	  delfiles=
4051266e564dSmrg	  last_robj=
4052266e564dSmrg	  k=1
4053266e564dSmrg	  output=$output_objdir/$output_la-${k}.$objext
4054266e564dSmrg	  # Loop over the list of objects to be linked.
4055266e564dSmrg	  for obj in $save_libobjs
4056266e564dSmrg	  do
4057266e564dSmrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4058266e564dSmrg	    if test "X$objlist" = X ||
4059266e564dSmrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4060266e564dSmrg		 test "$len" -le "$max_cmd_len"; }; then
4061266e564dSmrg	      objlist="$objlist $obj"
4062266e564dSmrg	    else
4063266e564dSmrg	      # The command $test_cmds is almost too long, add a
4064266e564dSmrg	      # command to the queue.
4065266e564dSmrg	      if test "$k" -eq 1 ; then
4066266e564dSmrg		# The first file doesn't have a previous command to add.
4067266e564dSmrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4068266e564dSmrg	      else
4069266e564dSmrg		# All subsequent reloadable object files will link in
4070266e564dSmrg		# the last one created.
4071266e564dSmrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4072266e564dSmrg	      fi
4073266e564dSmrg	      last_robj=$output_objdir/$output_la-${k}.$objext
4074266e564dSmrg	      k=`expr $k + 1`
4075266e564dSmrg	      output=$output_objdir/$output_la-${k}.$objext
4076266e564dSmrg	      objlist=$obj
4077266e564dSmrg	      len=1
4078266e564dSmrg	    fi
4079266e564dSmrg	  done
4080266e564dSmrg	  # Handle the remaining objects by creating one last
4081266e564dSmrg	  # reloadable object file.  All subsequent reloadable object
4082266e564dSmrg	  # files will link in the last one created.
4083266e564dSmrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4084266e564dSmrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4085266e564dSmrg
4086266e564dSmrg	  if ${skipped_export-false}; then
4087266e564dSmrg	    $show "generating symbol list for \`$libname.la'"
4088266e564dSmrg	    export_symbols="$output_objdir/$libname.exp"
4089266e564dSmrg	    $run $rm $export_symbols
4090266e564dSmrg	    libobjs=$output
4091266e564dSmrg	    # Append the command to create the export file.
4092266e564dSmrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4093266e564dSmrg          fi
4094266e564dSmrg
4095266e564dSmrg	  # Set up a command to remove the reloadable object files
4096266e564dSmrg	  # after they are used.
4097266e564dSmrg	  i=0
4098266e564dSmrg	  while test "$i" -lt "$k"
4099266e564dSmrg	  do
4100266e564dSmrg	    i=`expr $i + 1`
4101266e564dSmrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4102266e564dSmrg	  done
4103266e564dSmrg
4104266e564dSmrg	  $echo "creating a temporary reloadable object file: $output"
4105266e564dSmrg
4106266e564dSmrg	  # Loop through the commands generated above and execute them.
4107266e564dSmrg	  save_ifs="$IFS"; IFS='~'
4108266e564dSmrg	  for cmd in $concat_cmds; do
4109266e564dSmrg	    IFS="$save_ifs"
4110266e564dSmrg	    $show "$cmd"
4111266e564dSmrg	    $run eval "$cmd" || exit $?
4112266e564dSmrg	  done
4113266e564dSmrg	  IFS="$save_ifs"
4114266e564dSmrg
4115266e564dSmrg	  libobjs=$output
4116266e564dSmrg	  # Restore the value of output.
4117266e564dSmrg	  output=$save_output
4118266e564dSmrg
4119266e564dSmrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4120266e564dSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4121266e564dSmrg	  fi
4122266e564dSmrg	  # Expand the library linking commands again to reset the
4123266e564dSmrg	  # value of $libobjs for piecewise linking.
4124266e564dSmrg
4125266e564dSmrg	  # Do each of the archive commands.
4126266e564dSmrg	  if test "$module" = yes && test -n "$module_cmds" ; then
4127266e564dSmrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4128266e564dSmrg	      cmds=$module_expsym_cmds
4129266e564dSmrg	    else
4130266e564dSmrg	      cmds=$module_cmds
4131266e564dSmrg	    fi
4132266e564dSmrg	  else
4133266e564dSmrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4134266e564dSmrg	    cmds=$archive_expsym_cmds
4135266e564dSmrg	  else
4136266e564dSmrg	    cmds=$archive_cmds
4137266e564dSmrg	    fi
4138266e564dSmrg	  fi
4139266e564dSmrg
4140266e564dSmrg	  # Append the command to remove the reloadable object files
4141266e564dSmrg	  # to the just-reset $cmds.
4142266e564dSmrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
4143266e564dSmrg	fi
4144266e564dSmrg	save_ifs="$IFS"; IFS='~'
4145266e564dSmrg	for cmd in $cmds; do
4146266e564dSmrg	  IFS="$save_ifs"
4147266e564dSmrg	  eval cmd=\"$cmd\"
4148266e564dSmrg	  $show "$cmd"
4149266e564dSmrg	  $run eval "$cmd" || {
4150266e564dSmrg	    lt_exit=$?
4151266e564dSmrg
4152266e564dSmrg	    # Restore the uninstalled library and exit
4153266e564dSmrg	    if test "$mode" = relink; then
4154266e564dSmrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4155266e564dSmrg	    fi
4156266e564dSmrg
4157266e564dSmrg	    exit $lt_exit
4158266e564dSmrg	  }
4159266e564dSmrg	done
4160266e564dSmrg	IFS="$save_ifs"
4161266e564dSmrg
4162266e564dSmrg	# Restore the uninstalled library and exit
4163266e564dSmrg	if test "$mode" = relink; then
4164266e564dSmrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4165266e564dSmrg
4166266e564dSmrg	  if test -n "$convenience"; then
4167266e564dSmrg	    if test -z "$whole_archive_flag_spec"; then
4168266e564dSmrg	      $show "${rm}r $gentop"
4169266e564dSmrg	      $run ${rm}r "$gentop"
4170266e564dSmrg	    fi
4171266e564dSmrg	  fi
4172266e564dSmrg
4173266e564dSmrg	  exit $EXIT_SUCCESS
4174266e564dSmrg	fi
4175266e564dSmrg
4176266e564dSmrg	# Create links to the real library.
4177266e564dSmrg	for linkname in $linknames; do
4178266e564dSmrg	  if test "$realname" != "$linkname"; then
4179266e564dSmrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4180266e564dSmrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4181266e564dSmrg	  fi
4182266e564dSmrg	done
4183266e564dSmrg
4184266e564dSmrg	# If -module or -export-dynamic was specified, set the dlname.
4185266e564dSmrg	if test "$module" = yes || test "$export_dynamic" = yes; then
4186266e564dSmrg	  # On all known operating systems, these are identical.
4187266e564dSmrg	  dlname="$soname"
4188266e564dSmrg	fi
4189266e564dSmrg      fi
4190266e564dSmrg      ;;
4191266e564dSmrg
4192266e564dSmrg    obj)
4193266e564dSmrg      if test -n "$deplibs"; then
4194266e564dSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4195266e564dSmrg      fi
4196266e564dSmrg
4197266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4198266e564dSmrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4199266e564dSmrg      fi
4200266e564dSmrg
4201266e564dSmrg      if test -n "$rpath"; then
4202266e564dSmrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4203266e564dSmrg      fi
4204266e564dSmrg
4205266e564dSmrg      if test -n "$xrpath"; then
4206266e564dSmrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4207266e564dSmrg      fi
4208266e564dSmrg
4209266e564dSmrg      if test -n "$vinfo"; then
4210266e564dSmrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4211266e564dSmrg      fi
4212266e564dSmrg
4213266e564dSmrg      if test -n "$release"; then
4214266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4215266e564dSmrg      fi
4216266e564dSmrg
4217266e564dSmrg      case $output in
4218266e564dSmrg      *.lo)
4219266e564dSmrg	if test -n "$objs$old_deplibs"; then
4220266e564dSmrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4221266e564dSmrg	  exit $EXIT_FAILURE
4222266e564dSmrg	fi
4223266e564dSmrg	libobj="$output"
4224266e564dSmrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4225266e564dSmrg	;;
4226266e564dSmrg      *)
4227266e564dSmrg	libobj=
4228266e564dSmrg	obj="$output"
4229266e564dSmrg	;;
4230266e564dSmrg      esac
4231266e564dSmrg
4232266e564dSmrg      # Delete the old objects.
4233266e564dSmrg      $run $rm $obj $libobj
4234266e564dSmrg
4235266e564dSmrg      # Objects from convenience libraries.  This assumes
4236266e564dSmrg      # single-version convenience libraries.  Whenever we create
4237266e564dSmrg      # different ones for PIC/non-PIC, this we'll have to duplicate
4238266e564dSmrg      # the extraction.
4239266e564dSmrg      reload_conv_objs=
4240266e564dSmrg      gentop=
4241266e564dSmrg      # reload_cmds runs $LD directly, so let us get rid of
4242266e564dSmrg      # -Wl from whole_archive_flag_spec
4243266e564dSmrg      wl=
4244266e564dSmrg
4245266e564dSmrg      if test -n "$convenience"; then
4246266e564dSmrg	if test -n "$whole_archive_flag_spec"; then
4247266e564dSmrg	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4248266e564dSmrg	else
4249266e564dSmrg	  gentop="$output_objdir/${obj}x"
4250266e564dSmrg	  generated="$generated $gentop"
4251266e564dSmrg
4252266e564dSmrg	  func_extract_archives $gentop $convenience
4253266e564dSmrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4254266e564dSmrg	fi
4255266e564dSmrg      fi
4256266e564dSmrg
4257266e564dSmrg      # Create the old-style object.
4258266e564dSmrg      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
4259266e564dSmrg
4260266e564dSmrg      output="$obj"
4261266e564dSmrg      cmds=$reload_cmds
4262266e564dSmrg      save_ifs="$IFS"; IFS='~'
4263266e564dSmrg      for cmd in $cmds; do
4264266e564dSmrg	IFS="$save_ifs"
4265266e564dSmrg	eval cmd=\"$cmd\"
4266266e564dSmrg	$show "$cmd"
4267266e564dSmrg	$run eval "$cmd" || exit $?
4268266e564dSmrg      done
4269266e564dSmrg      IFS="$save_ifs"
4270266e564dSmrg
4271266e564dSmrg      # Exit if we aren't doing a library object file.
4272266e564dSmrg      if test -z "$libobj"; then
4273266e564dSmrg	if test -n "$gentop"; then
4274266e564dSmrg	  $show "${rm}r $gentop"
4275266e564dSmrg	  $run ${rm}r $gentop
4276266e564dSmrg	fi
4277266e564dSmrg
4278266e564dSmrg	exit $EXIT_SUCCESS
4279266e564dSmrg      fi
4280266e564dSmrg
4281266e564dSmrg      if test "$build_libtool_libs" != yes; then
4282266e564dSmrg	if test -n "$gentop"; then
4283266e564dSmrg	  $show "${rm}r $gentop"
4284266e564dSmrg	  $run ${rm}r $gentop
4285266e564dSmrg	fi
4286266e564dSmrg
4287266e564dSmrg	# Create an invalid libtool object if no PIC, so that we don't
4288266e564dSmrg	# accidentally link it into a program.
4289266e564dSmrg	# $show "echo timestamp > $libobj"
4290266e564dSmrg	# $run eval "echo timestamp > $libobj" || exit $?
4291266e564dSmrg	exit $EXIT_SUCCESS
4292266e564dSmrg      fi
4293266e564dSmrg
4294266e564dSmrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
4295266e564dSmrg	# Only do commands if we really have different PIC objects.
4296266e564dSmrg	reload_objs="$libobjs $reload_conv_objs"
4297266e564dSmrg	output="$libobj"
4298266e564dSmrg	cmds=$reload_cmds
4299266e564dSmrg	save_ifs="$IFS"; IFS='~'
4300266e564dSmrg	for cmd in $cmds; do
4301266e564dSmrg	  IFS="$save_ifs"
4302266e564dSmrg	  eval cmd=\"$cmd\"
4303266e564dSmrg	  $show "$cmd"
4304266e564dSmrg	  $run eval "$cmd" || exit $?
4305266e564dSmrg	done
4306266e564dSmrg	IFS="$save_ifs"
4307266e564dSmrg      fi
4308266e564dSmrg
4309266e564dSmrg      if test -n "$gentop"; then
4310266e564dSmrg	$show "${rm}r $gentop"
4311266e564dSmrg	$run ${rm}r $gentop
4312266e564dSmrg      fi
4313266e564dSmrg
4314266e564dSmrg      exit $EXIT_SUCCESS
4315266e564dSmrg      ;;
4316266e564dSmrg
4317266e564dSmrg    prog)
4318266e564dSmrg      case $host in
4319266e564dSmrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4320266e564dSmrg      esac
4321266e564dSmrg      if test -n "$vinfo"; then
4322266e564dSmrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4323266e564dSmrg      fi
4324266e564dSmrg
4325266e564dSmrg      if test -n "$release"; then
4326266e564dSmrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4327266e564dSmrg      fi
4328266e564dSmrg
4329266e564dSmrg      if test "$preload" = yes; then
4330266e564dSmrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4331266e564dSmrg	   test "$dlopen_self_static" = unknown; then
4332266e564dSmrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4333266e564dSmrg	fi
4334266e564dSmrg      fi
4335266e564dSmrg
4336266e564dSmrg      case $host in
4337266e564dSmrg      *-*-rhapsody* | *-*-darwin1.[012])
4338266e564dSmrg	# On Rhapsody replace the C library is the System framework
4339266e564dSmrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4340266e564dSmrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4341266e564dSmrg	;;
4342266e564dSmrg      esac
4343266e564dSmrg
4344266e564dSmrg      case $host in
4345266e564dSmrg      *darwin*)
4346266e564dSmrg        # Don't allow lazy linking, it breaks C++ global constructors
4347266e564dSmrg        if test "$tagname" = CXX ; then
4348266e564dSmrg        compile_command="$compile_command ${wl}-bind_at_load"
4349266e564dSmrg        finalize_command="$finalize_command ${wl}-bind_at_load"
4350266e564dSmrg        fi
4351266e564dSmrg        ;;
4352266e564dSmrg      esac
4353266e564dSmrg
4354266e564dSmrg
4355266e564dSmrg      # move library search paths that coincide with paths to not yet
4356266e564dSmrg      # installed libraries to the beginning of the library search list
4357266e564dSmrg      new_libs=
4358266e564dSmrg      for path in $notinst_path; do
4359266e564dSmrg	case " $new_libs " in
4360266e564dSmrg	*" -L$path/$objdir "*) ;;
4361266e564dSmrg	*)
4362266e564dSmrg	  case " $compile_deplibs " in
4363266e564dSmrg	  *" -L$path/$objdir "*)
4364266e564dSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
4365266e564dSmrg	  esac
4366266e564dSmrg	  ;;
4367266e564dSmrg	esac
4368266e564dSmrg      done
4369266e564dSmrg      for deplib in $compile_deplibs; do
4370266e564dSmrg	case $deplib in
4371266e564dSmrg	-L*)
4372266e564dSmrg	  case " $new_libs " in
4373266e564dSmrg	  *" $deplib "*) ;;
4374266e564dSmrg	  *) new_libs="$new_libs $deplib" ;;
4375266e564dSmrg	  esac
4376266e564dSmrg	  ;;
4377266e564dSmrg	*) new_libs="$new_libs $deplib" ;;
4378266e564dSmrg	esac
4379266e564dSmrg      done
4380266e564dSmrg      compile_deplibs="$new_libs"
4381266e564dSmrg
4382266e564dSmrg
4383266e564dSmrg      compile_command="$compile_command $compile_deplibs"
4384266e564dSmrg      finalize_command="$finalize_command $finalize_deplibs"
4385266e564dSmrg
4386266e564dSmrg      if test -n "$rpath$xrpath"; then
4387266e564dSmrg	# If the user specified any rpath flags, then add them.
4388266e564dSmrg	for libdir in $rpath $xrpath; do
4389266e564dSmrg	  # This is the magic to use -rpath.
4390266e564dSmrg	  case "$finalize_rpath " in
4391266e564dSmrg	  *" $libdir "*) ;;
4392266e564dSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4393266e564dSmrg	  esac
4394266e564dSmrg	done
4395266e564dSmrg      fi
4396266e564dSmrg
4397266e564dSmrg      # Now hardcode the library paths
4398266e564dSmrg      rpath=
4399266e564dSmrg      hardcode_libdirs=
4400266e564dSmrg      for libdir in $compile_rpath $finalize_rpath; do
4401266e564dSmrg	if test -n "$hardcode_libdir_flag_spec"; then
4402266e564dSmrg	  if test -n "$hardcode_libdir_separator"; then
4403266e564dSmrg	    if test -z "$hardcode_libdirs"; then
4404266e564dSmrg	      hardcode_libdirs="$libdir"
4405266e564dSmrg	    else
4406266e564dSmrg	      # Just accumulate the unique libdirs.
4407266e564dSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4408266e564dSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4409266e564dSmrg		;;
4410266e564dSmrg	      *)
4411266e564dSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4412266e564dSmrg		;;
4413266e564dSmrg	      esac
4414266e564dSmrg	    fi
4415266e564dSmrg	  else
4416266e564dSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4417266e564dSmrg	    rpath="$rpath $flag"
4418266e564dSmrg	  fi
4419266e564dSmrg	elif test -n "$runpath_var"; then
4420266e564dSmrg	  case "$perm_rpath " in
4421266e564dSmrg	  *" $libdir "*) ;;
4422266e564dSmrg	  *) perm_rpath="$perm_rpath $libdir" ;;
4423266e564dSmrg	  esac
4424266e564dSmrg	fi
4425266e564dSmrg	case $host in
4426266e564dSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4427266e564dSmrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4428266e564dSmrg	  case :$dllsearchpath: in
4429266e564dSmrg	  *":$libdir:"*) ;;
4430266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
4431266e564dSmrg	  esac
4432266e564dSmrg	  case :$dllsearchpath: in
4433266e564dSmrg	  *":$testbindir:"*) ;;
4434266e564dSmrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4435266e564dSmrg	  esac
4436266e564dSmrg	  ;;
4437266e564dSmrg	esac
4438266e564dSmrg      done
4439266e564dSmrg      # Substitute the hardcoded libdirs into the rpath.
4440266e564dSmrg      if test -n "$hardcode_libdir_separator" &&
4441266e564dSmrg	 test -n "$hardcode_libdirs"; then
4442266e564dSmrg	libdir="$hardcode_libdirs"
4443266e564dSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4444266e564dSmrg      fi
4445266e564dSmrg      compile_rpath="$rpath"
4446266e564dSmrg
4447266e564dSmrg      rpath=
4448266e564dSmrg      hardcode_libdirs=
4449266e564dSmrg      for libdir in $finalize_rpath; do
4450266e564dSmrg	if test -n "$hardcode_libdir_flag_spec"; then
4451266e564dSmrg	  if test -n "$hardcode_libdir_separator"; then
4452266e564dSmrg	    if test -z "$hardcode_libdirs"; then
4453266e564dSmrg	      hardcode_libdirs="$libdir"
4454266e564dSmrg	    else
4455266e564dSmrg	      # Just accumulate the unique libdirs.
4456266e564dSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4457266e564dSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4458266e564dSmrg		;;
4459266e564dSmrg	      *)
4460266e564dSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4461266e564dSmrg		;;
4462266e564dSmrg	      esac
4463266e564dSmrg	    fi
4464266e564dSmrg	  else
4465266e564dSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4466266e564dSmrg	    rpath="$rpath $flag"
4467266e564dSmrg	  fi
4468266e564dSmrg	elif test -n "$runpath_var"; then
4469266e564dSmrg	  case "$finalize_perm_rpath " in
4470266e564dSmrg	  *" $libdir "*) ;;
4471266e564dSmrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4472266e564dSmrg	  esac
4473266e564dSmrg	fi
4474266e564dSmrg      done
4475266e564dSmrg      # Substitute the hardcoded libdirs into the rpath.
4476266e564dSmrg      if test -n "$hardcode_libdir_separator" &&
4477266e564dSmrg	 test -n "$hardcode_libdirs"; then
4478266e564dSmrg	libdir="$hardcode_libdirs"
4479266e564dSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4480266e564dSmrg      fi
4481266e564dSmrg      finalize_rpath="$rpath"
4482266e564dSmrg
4483266e564dSmrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4484266e564dSmrg	# Transform all the library objects into standard objects.
4485266e564dSmrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4486266e564dSmrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4487266e564dSmrg      fi
4488266e564dSmrg
4489266e564dSmrg      dlsyms=
4490266e564dSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4491266e564dSmrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4492266e564dSmrg	  dlsyms="${outputname}S.c"
4493266e564dSmrg	else
4494266e564dSmrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4495266e564dSmrg	fi
4496266e564dSmrg      fi
4497266e564dSmrg
4498266e564dSmrg      if test -n "$dlsyms"; then
4499266e564dSmrg	case $dlsyms in
4500266e564dSmrg	"") ;;
4501266e564dSmrg	*.c)
4502266e564dSmrg	  # Discover the nlist of each of the dlfiles.
4503266e564dSmrg	  nlist="$output_objdir/${outputname}.nm"
4504266e564dSmrg
4505266e564dSmrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
4506266e564dSmrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4507266e564dSmrg
4508266e564dSmrg	  # Parse the name list into a source file.
4509266e564dSmrg	  $show "creating $output_objdir/$dlsyms"
4510266e564dSmrg
4511266e564dSmrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4512266e564dSmrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4513266e564dSmrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4514266e564dSmrg
4515266e564dSmrg#ifdef __cplusplus
4516266e564dSmrgextern \"C\" {
4517266e564dSmrg#endif
4518266e564dSmrg
4519266e564dSmrg/* Prevent the only kind of declaration conflicts we can make. */
4520266e564dSmrg#define lt_preloaded_symbols some_other_symbol
4521266e564dSmrg
4522266e564dSmrg/* External symbol declarations for the compiler. */\
4523266e564dSmrg"
4524266e564dSmrg
4525266e564dSmrg	  if test "$dlself" = yes; then
4526266e564dSmrg	    $show "generating symbol list for \`$output'"
4527266e564dSmrg
4528266e564dSmrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4529266e564dSmrg
4530266e564dSmrg	    # Add our own program objects to the symbol list.
4531266e564dSmrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4532266e564dSmrg	    for arg in $progfiles; do
4533266e564dSmrg	      $show "extracting global C symbols from \`$arg'"
4534266e564dSmrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4535266e564dSmrg	    done
4536266e564dSmrg
4537266e564dSmrg	    if test -n "$exclude_expsyms"; then
4538266e564dSmrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4539266e564dSmrg	      $run eval '$mv "$nlist"T "$nlist"'
4540266e564dSmrg	    fi
4541266e564dSmrg
4542266e564dSmrg	    if test -n "$export_symbols_regex"; then
4543266e564dSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4544266e564dSmrg	      $run eval '$mv "$nlist"T "$nlist"'
4545266e564dSmrg	    fi
4546266e564dSmrg
4547266e564dSmrg	    # Prepare the list of exported symbols
4548266e564dSmrg	    if test -z "$export_symbols"; then
4549266e564dSmrg	      export_symbols="$output_objdir/$outputname.exp"
4550266e564dSmrg	      $run $rm $export_symbols
4551266e564dSmrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4552266e564dSmrg              case $host in
4553266e564dSmrg              *cygwin* | *mingw* )
4554266e564dSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4555266e564dSmrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4556266e564dSmrg                ;;
4557266e564dSmrg              esac
4558266e564dSmrg	    else
4559266e564dSmrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4560266e564dSmrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4561266e564dSmrg	      $run eval 'mv "$nlist"T "$nlist"'
4562266e564dSmrg              case $host in
4563266e564dSmrg              *cygwin* | *mingw* )
4564266e564dSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4565266e564dSmrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4566266e564dSmrg                ;;
4567266e564dSmrg              esac
4568266e564dSmrg	    fi
4569266e564dSmrg	  fi
4570266e564dSmrg
4571266e564dSmrg	  for arg in $dlprefiles; do
4572266e564dSmrg	    $show "extracting global C symbols from \`$arg'"
4573266e564dSmrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4574266e564dSmrg	    $run eval '$echo ": $name " >> "$nlist"'
4575266e564dSmrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4576266e564dSmrg	  done
4577266e564dSmrg
4578266e564dSmrg	  if test -z "$run"; then
4579266e564dSmrg	    # Make sure we have at least an empty file.
4580266e564dSmrg	    test -f "$nlist" || : > "$nlist"
4581266e564dSmrg
4582266e564dSmrg	    if test -n "$exclude_expsyms"; then
4583266e564dSmrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4584266e564dSmrg	      $mv "$nlist"T "$nlist"
4585266e564dSmrg	    fi
4586266e564dSmrg
4587266e564dSmrg	    # Try sorting and uniquifying the output.
4588266e564dSmrg	    if grep -v "^: " < "$nlist" |
4589266e564dSmrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
4590266e564dSmrg		  sort -k 3
4591266e564dSmrg		else
4592266e564dSmrg		  sort +2
4593266e564dSmrg		fi |
4594266e564dSmrg		uniq > "$nlist"S; then
4595266e564dSmrg	      :
4596266e564dSmrg	    else
4597266e564dSmrg	      grep -v "^: " < "$nlist" > "$nlist"S
4598266e564dSmrg	    fi
4599266e564dSmrg
4600266e564dSmrg	    if test -f "$nlist"S; then
4601266e564dSmrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4602266e564dSmrg	    else
4603266e564dSmrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4604266e564dSmrg	    fi
4605266e564dSmrg
4606266e564dSmrg	    $echo >> "$output_objdir/$dlsyms" "\
4607266e564dSmrg
4608266e564dSmrg#undef lt_preloaded_symbols
4609266e564dSmrg
4610266e564dSmrg#if defined (__STDC__) && __STDC__
4611266e564dSmrg# define lt_ptr void *
4612266e564dSmrg#else
4613266e564dSmrg# define lt_ptr char *
4614266e564dSmrg# define const
4615266e564dSmrg#endif
4616266e564dSmrg
4617266e564dSmrg/* The mapping between symbol names and symbols. */
4618266e564dSmrg"
4619266e564dSmrg
4620266e564dSmrg	    case $host in
4621266e564dSmrg	    *cygwin* | *mingw* )
4622266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4623266e564dSmrg/* DATA imports from DLLs on WIN32 can't be const, because
4624266e564dSmrg   runtime relocations are performed -- see ld's documentation
4625266e564dSmrg   on pseudo-relocs */
4626266e564dSmrgstruct {
4627266e564dSmrg"
4628266e564dSmrg	      ;;
4629266e564dSmrg	    * )
4630266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4631266e564dSmrgconst struct {
4632266e564dSmrg"
4633266e564dSmrg	      ;;
4634266e564dSmrg	    esac
4635266e564dSmrg
4636266e564dSmrg
4637266e564dSmrg	  $echo >> "$output_objdir/$dlsyms" "\
4638266e564dSmrg  const char *name;
4639266e564dSmrg  lt_ptr address;
4640266e564dSmrg}
4641266e564dSmrglt_preloaded_symbols[] =
4642266e564dSmrg{\
4643266e564dSmrg"
4644266e564dSmrg
4645266e564dSmrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4646266e564dSmrg
4647266e564dSmrg	    $echo >> "$output_objdir/$dlsyms" "\
4648266e564dSmrg  {0, (lt_ptr) 0}
4649266e564dSmrg};
4650266e564dSmrg
4651266e564dSmrg/* This works around a problem in FreeBSD linker */
4652266e564dSmrg#ifdef FREEBSD_WORKAROUND
4653266e564dSmrgstatic const void *lt_preloaded_setup() {
4654266e564dSmrg  return lt_preloaded_symbols;
4655266e564dSmrg}
4656266e564dSmrg#endif
4657266e564dSmrg
4658266e564dSmrg#ifdef __cplusplus
4659266e564dSmrg}
4660266e564dSmrg#endif\
4661266e564dSmrg"
4662266e564dSmrg	  fi
4663266e564dSmrg
4664266e564dSmrg	  pic_flag_for_symtable=
4665266e564dSmrg	  case $host in
4666266e564dSmrg	  # compiling the symbol table file with pic_flag works around
4667266e564dSmrg	  # a FreeBSD bug that causes programs to crash when -lm is
4668266e564dSmrg	  # linked before any other PIC object.  But we must not use
4669266e564dSmrg	  # pic_flag when linking with -static.  The problem exists in
4670266e564dSmrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4671266e564dSmrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4672266e564dSmrg	    case "$compile_command " in
4673266e564dSmrg	    *" -static "*) ;;
4674266e564dSmrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4675266e564dSmrg	    esac;;
4676266e564dSmrg	  *-*-hpux*)
4677266e564dSmrg	    case "$compile_command " in
4678266e564dSmrg	    *" -static "*) ;;
4679266e564dSmrg	    *) pic_flag_for_symtable=" $pic_flag";;
4680266e564dSmrg	    esac
4681266e564dSmrg	  esac
4682266e564dSmrg
4683266e564dSmrg	  # Now compile the dynamic symbol file.
4684266e564dSmrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4685266e564dSmrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4686266e564dSmrg
4687266e564dSmrg	  # Clean up the generated files.
4688266e564dSmrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4689266e564dSmrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4690266e564dSmrg
4691266e564dSmrg	  # Transform the symbol file into the correct name.
4692266e564dSmrg          case $host in
4693266e564dSmrg          *cygwin* | *mingw* )
4694266e564dSmrg            if test -f "$output_objdir/${outputname}.def" ; then
4695266e564dSmrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4696266e564dSmrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4697266e564dSmrg            else
4698266e564dSmrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4699266e564dSmrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4700266e564dSmrg             fi
4701266e564dSmrg            ;;
4702266e564dSmrg          * )
4703266e564dSmrg            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4704266e564dSmrg            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4705266e564dSmrg            ;;
4706266e564dSmrg          esac
4707266e564dSmrg	  ;;
4708266e564dSmrg	*)
4709266e564dSmrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4710266e564dSmrg	  exit $EXIT_FAILURE
4711266e564dSmrg	  ;;
4712266e564dSmrg	esac
4713266e564dSmrg      else
4714266e564dSmrg	# We keep going just in case the user didn't refer to
4715266e564dSmrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4716266e564dSmrg	# really was required.
4717266e564dSmrg
4718266e564dSmrg	# Nullify the symbol file.
4719266e564dSmrg	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4720266e564dSmrg	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4721266e564dSmrg      fi
4722266e564dSmrg
4723266e564dSmrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4724266e564dSmrg	# Replace the output file specification.
4725266e564dSmrg	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4726266e564dSmrg	link_command="$compile_command$compile_rpath"
4727266e564dSmrg
4728266e564dSmrg	# We have no uninstalled library dependencies, so finalize right now.
4729266e564dSmrg	$show "$link_command"
4730266e564dSmrg	$run eval "$link_command"
4731266e564dSmrg	exit_status=$?
4732266e564dSmrg
4733266e564dSmrg	# Delete the generated files.
4734266e564dSmrg	if test -n "$dlsyms"; then
4735266e564dSmrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
4736266e564dSmrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
4737266e564dSmrg	fi
4738266e564dSmrg
4739266e564dSmrg	exit $exit_status
4740266e564dSmrg      fi
4741266e564dSmrg
4742266e564dSmrg      if test -n "$shlibpath_var"; then
4743266e564dSmrg	# We should set the shlibpath_var
4744266e564dSmrg	rpath=
4745266e564dSmrg	for dir in $temp_rpath; do
4746266e564dSmrg	  case $dir in
4747266e564dSmrg	  [\\/]* | [A-Za-z]:[\\/]*)
4748266e564dSmrg	    # Absolute path.
4749266e564dSmrg	    rpath="$rpath$dir:"
4750266e564dSmrg	    ;;
4751266e564dSmrg	  *)
4752266e564dSmrg	    # Relative path: add a thisdir entry.
4753266e564dSmrg	    rpath="$rpath\$thisdir/$dir:"
4754266e564dSmrg	    ;;
4755266e564dSmrg	  esac
4756266e564dSmrg	done
4757266e564dSmrg	temp_rpath="$rpath"
4758266e564dSmrg      fi
4759266e564dSmrg
4760266e564dSmrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4761266e564dSmrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4762266e564dSmrg      fi
4763266e564dSmrg      if test -n "$finalize_shlibpath"; then
4764266e564dSmrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4765266e564dSmrg      fi
4766266e564dSmrg
4767266e564dSmrg      compile_var=
4768266e564dSmrg      finalize_var=
4769266e564dSmrg      if test -n "$runpath_var"; then
4770266e564dSmrg	if test -n "$perm_rpath"; then
4771266e564dSmrg	  # We should set the runpath_var.
4772266e564dSmrg	  rpath=
4773266e564dSmrg	  for dir in $perm_rpath; do
4774266e564dSmrg	    rpath="$rpath$dir:"
4775266e564dSmrg	  done
4776266e564dSmrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4777266e564dSmrg	fi
4778266e564dSmrg	if test -n "$finalize_perm_rpath"; then
4779266e564dSmrg	  # We should set the runpath_var.
4780266e564dSmrg	  rpath=
4781266e564dSmrg	  for dir in $finalize_perm_rpath; do
4782266e564dSmrg	    rpath="$rpath$dir:"
4783266e564dSmrg	  done
4784266e564dSmrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4785266e564dSmrg	fi
4786266e564dSmrg      fi
4787266e564dSmrg
4788266e564dSmrg      if test "$no_install" = yes; then
4789266e564dSmrg	# We don't need to create a wrapper script.
4790266e564dSmrg	link_command="$compile_var$compile_command$compile_rpath"
4791266e564dSmrg	# Replace the output file specification.
4792266e564dSmrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4793266e564dSmrg	# Delete the old output file.
4794266e564dSmrg	$run $rm $output
4795266e564dSmrg	# Link the executable and exit
4796266e564dSmrg	$show "$link_command"
4797266e564dSmrg	$run eval "$link_command" || exit $?
4798266e564dSmrg	exit $EXIT_SUCCESS
4799266e564dSmrg      fi
4800266e564dSmrg
4801266e564dSmrg      if test "$hardcode_action" = relink; then
4802266e564dSmrg	# Fast installation is not supported
4803266e564dSmrg	link_command="$compile_var$compile_command$compile_rpath"
4804266e564dSmrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
4805266e564dSmrg
4806266e564dSmrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4807266e564dSmrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4808266e564dSmrg      else
4809266e564dSmrg	if test "$fast_install" != no; then
4810266e564dSmrg	  link_command="$finalize_var$compile_command$finalize_rpath"
4811266e564dSmrg	  if test "$fast_install" = yes; then
4812266e564dSmrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4813266e564dSmrg	  else
4814266e564dSmrg	    # fast_install is set to needless
4815266e564dSmrg	    relink_command=
4816266e564dSmrg	  fi
4817266e564dSmrg	else
4818266e564dSmrg	  link_command="$compile_var$compile_command$compile_rpath"
4819266e564dSmrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4820266e564dSmrg	fi
4821266e564dSmrg      fi
4822266e564dSmrg
4823266e564dSmrg      # Replace the output file specification.
4824266e564dSmrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4825266e564dSmrg
4826266e564dSmrg      # Delete the old output files.
4827266e564dSmrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4828266e564dSmrg
4829266e564dSmrg      $show "$link_command"
4830266e564dSmrg      $run eval "$link_command" || exit $?
4831266e564dSmrg
4832266e564dSmrg      # Now create the wrapper script.
4833266e564dSmrg      $show "creating $output"
4834266e564dSmrg
4835266e564dSmrg      # Quote the relink command for shipping.
4836266e564dSmrg      if test -n "$relink_command"; then
4837266e564dSmrg	# Preserve any variables that may affect compiler behavior
4838266e564dSmrg	for var in $variables_saved_for_relink; do
4839266e564dSmrg	  if eval test -z \"\${$var+set}\"; then
4840266e564dSmrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4841266e564dSmrg	  elif eval var_value=\$$var; test -z "$var_value"; then
4842266e564dSmrg	    relink_command="$var=; export $var; $relink_command"
4843266e564dSmrg	  else
4844266e564dSmrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4845266e564dSmrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4846266e564dSmrg	  fi
4847266e564dSmrg	done
4848266e564dSmrg	relink_command="(cd `pwd`; $relink_command)"
4849266e564dSmrg	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4850266e564dSmrg      fi
4851266e564dSmrg
4852266e564dSmrg      # Quote $echo for shipping.
4853266e564dSmrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4854266e564dSmrg	case $progpath in
4855266e564dSmrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4856266e564dSmrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4857266e564dSmrg	esac
4858266e564dSmrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4859266e564dSmrg      else
4860266e564dSmrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4861266e564dSmrg      fi
4862266e564dSmrg
4863266e564dSmrg      # Only actually do things if our run command is non-null.
4864266e564dSmrg      if test -z "$run"; then
4865266e564dSmrg	# win32 will think the script is a binary if it has
4866266e564dSmrg	# a .exe suffix, so we strip it off here.
4867266e564dSmrg	case $output in
4868266e564dSmrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4869266e564dSmrg	esac
4870266e564dSmrg	# test for cygwin because mv fails w/o .exe extensions
4871266e564dSmrg	case $host in
4872266e564dSmrg	  *cygwin*)
4873266e564dSmrg	    exeext=.exe
4874266e564dSmrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4875266e564dSmrg	  *) exeext= ;;
4876266e564dSmrg	esac
4877266e564dSmrg	case $host in
4878266e564dSmrg	  *cygwin* | *mingw* )
4879266e564dSmrg            output_name=`basename $output`
4880266e564dSmrg            output_path=`dirname $output`
4881266e564dSmrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4882266e564dSmrg            cwrapper="$output_path/$output_name.exe"
4883266e564dSmrg            $rm $cwrappersource $cwrapper
4884266e564dSmrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4885266e564dSmrg
4886266e564dSmrg	    cat > $cwrappersource <<EOF
4887266e564dSmrg
4888266e564dSmrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4889266e564dSmrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4890266e564dSmrg
4891266e564dSmrg   The $output program cannot be directly executed until all the libtool
4892266e564dSmrg   libraries that it depends on are installed.
4893266e564dSmrg
4894266e564dSmrg   This wrapper executable should never be moved out of the build directory.
4895266e564dSmrg   If it is, it will not operate correctly.
4896266e564dSmrg
4897266e564dSmrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4898266e564dSmrg   but could eventually absorb all of the scripts functionality and
4899266e564dSmrg   exec $objdir/$outputname directly.
4900266e564dSmrg*/
4901266e564dSmrgEOF
4902266e564dSmrg	    cat >> $cwrappersource<<"EOF"
4903266e564dSmrg#include <stdio.h>
4904266e564dSmrg#include <stdlib.h>
4905266e564dSmrg#include <unistd.h>
4906266e564dSmrg#include <malloc.h>
4907266e564dSmrg#include <stdarg.h>
4908266e564dSmrg#include <assert.h>
4909266e564dSmrg#include <string.h>
4910266e564dSmrg#include <ctype.h>
4911266e564dSmrg#include <sys/stat.h>
4912266e564dSmrg
4913266e564dSmrg#if defined(PATH_MAX)
4914266e564dSmrg# define LT_PATHMAX PATH_MAX
4915266e564dSmrg#elif defined(MAXPATHLEN)
4916266e564dSmrg# define LT_PATHMAX MAXPATHLEN
4917266e564dSmrg#else
4918266e564dSmrg# define LT_PATHMAX 1024
4919266e564dSmrg#endif
4920266e564dSmrg
4921266e564dSmrg#ifndef DIR_SEPARATOR
4922266e564dSmrg# define DIR_SEPARATOR '/'
4923266e564dSmrg# define PATH_SEPARATOR ':'
4924266e564dSmrg#endif
4925266e564dSmrg
4926266e564dSmrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4927266e564dSmrg  defined (__OS2__)
4928266e564dSmrg# define HAVE_DOS_BASED_FILE_SYSTEM
4929266e564dSmrg# ifndef DIR_SEPARATOR_2
4930266e564dSmrg#  define DIR_SEPARATOR_2 '\\'
4931266e564dSmrg# endif
4932266e564dSmrg# ifndef PATH_SEPARATOR_2
4933266e564dSmrg#  define PATH_SEPARATOR_2 ';'
4934266e564dSmrg# endif
4935266e564dSmrg#endif
4936266e564dSmrg
4937266e564dSmrg#ifndef DIR_SEPARATOR_2
4938266e564dSmrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4939266e564dSmrg#else /* DIR_SEPARATOR_2 */
4940266e564dSmrg# define IS_DIR_SEPARATOR(ch) \
4941266e564dSmrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4942266e564dSmrg#endif /* DIR_SEPARATOR_2 */
4943266e564dSmrg
4944266e564dSmrg#ifndef PATH_SEPARATOR_2
4945266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4946266e564dSmrg#else /* PATH_SEPARATOR_2 */
4947266e564dSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4948266e564dSmrg#endif /* PATH_SEPARATOR_2 */
4949266e564dSmrg
4950266e564dSmrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4951266e564dSmrg#define XFREE(stale) do { \
4952266e564dSmrg  if (stale) { free ((void *) stale); stale = 0; } \
4953266e564dSmrg} while (0)
4954266e564dSmrg
4955266e564dSmrg/* -DDEBUG is fairly common in CFLAGS.  */
4956266e564dSmrg#undef DEBUG
4957266e564dSmrg#if defined DEBUGWRAPPER
4958266e564dSmrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4959266e564dSmrg#else
4960266e564dSmrg# define DEBUG(format, ...)
4961266e564dSmrg#endif
4962266e564dSmrg
4963266e564dSmrgconst char *program_name = NULL;
4964266e564dSmrg
4965266e564dSmrgvoid * xmalloc (size_t num);
4966266e564dSmrgchar * xstrdup (const char *string);
4967266e564dSmrgconst char * base_name (const char *name);
4968266e564dSmrgchar * find_executable(const char *wrapper);
4969266e564dSmrgint    check_executable(const char *path);
4970266e564dSmrgchar * strendzap(char *str, const char *pat);
4971266e564dSmrgvoid lt_fatal (const char *message, ...);
4972266e564dSmrg
4973266e564dSmrgint
4974266e564dSmrgmain (int argc, char *argv[])
4975266e564dSmrg{
4976266e564dSmrg  char **newargz;
4977266e564dSmrg  int i;
4978266e564dSmrg
4979266e564dSmrg  program_name = (char *) xstrdup (base_name (argv[0]));
4980266e564dSmrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
4981266e564dSmrg  DEBUG("(main) program_name : %s\n",program_name);
4982266e564dSmrg  newargz = XMALLOC(char *, argc+2);
4983266e564dSmrgEOF
4984266e564dSmrg
4985266e564dSmrg            cat >> $cwrappersource <<EOF
4986266e564dSmrg  newargz[0] = (char *) xstrdup("$SHELL");
4987266e564dSmrgEOF
4988266e564dSmrg
4989266e564dSmrg            cat >> $cwrappersource <<"EOF"
4990266e564dSmrg  newargz[1] = find_executable(argv[0]);
4991266e564dSmrg  if (newargz[1] == NULL)
4992266e564dSmrg    lt_fatal("Couldn't find %s", argv[0]);
4993266e564dSmrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
4994266e564dSmrg  /* we know the script has the same name, without the .exe */
4995266e564dSmrg  /* so make sure newargz[1] doesn't end in .exe */
4996266e564dSmrg  strendzap(newargz[1],".exe");
4997266e564dSmrg  for (i = 1; i < argc; i++)
4998266e564dSmrg    newargz[i+1] = xstrdup(argv[i]);
4999266e564dSmrg  newargz[argc+1] = NULL;
5000266e564dSmrg
5001266e564dSmrg  for (i=0; i<argc+1; i++)
5002266e564dSmrg  {
5003266e564dSmrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5004266e564dSmrg    ;
5005266e564dSmrg  }
5006266e564dSmrg
5007266e564dSmrgEOF
5008266e564dSmrg
5009266e564dSmrg            case $host_os in
5010266e564dSmrg              mingw*)
5011266e564dSmrg                cat >> $cwrappersource <<EOF
5012266e564dSmrg  execv("$SHELL",(char const **)newargz);
5013266e564dSmrgEOF
5014266e564dSmrg              ;;
5015266e564dSmrg              *)
5016266e564dSmrg                cat >> $cwrappersource <<EOF
5017266e564dSmrg  execv("$SHELL",newargz);
5018266e564dSmrgEOF
5019266e564dSmrg              ;;
5020266e564dSmrg            esac
5021266e564dSmrg
5022266e564dSmrg            cat >> $cwrappersource <<"EOF"
5023266e564dSmrg  return 127;
5024266e564dSmrg}
5025266e564dSmrg
5026266e564dSmrgvoid *
5027266e564dSmrgxmalloc (size_t num)
5028266e564dSmrg{
5029266e564dSmrg  void * p = (void *) malloc (num);
5030266e564dSmrg  if (!p)
5031266e564dSmrg    lt_fatal ("Memory exhausted");
5032266e564dSmrg
5033266e564dSmrg  return p;
5034266e564dSmrg}
5035266e564dSmrg
5036266e564dSmrgchar *
5037266e564dSmrgxstrdup (const char *string)
5038266e564dSmrg{
5039266e564dSmrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5040266e564dSmrg;
5041266e564dSmrg}
5042266e564dSmrg
5043266e564dSmrgconst char *
5044266e564dSmrgbase_name (const char *name)
5045266e564dSmrg{
5046266e564dSmrg  const char *base;
5047266e564dSmrg
5048266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5049266e564dSmrg  /* Skip over the disk name in MSDOS pathnames. */
5050266e564dSmrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5051266e564dSmrg    name += 2;
5052266e564dSmrg#endif
5053266e564dSmrg
5054266e564dSmrg  for (base = name; *name; name++)
5055266e564dSmrg    if (IS_DIR_SEPARATOR (*name))
5056266e564dSmrg      base = name + 1;
5057266e564dSmrg  return base;
5058266e564dSmrg}
5059266e564dSmrg
5060266e564dSmrgint
5061266e564dSmrgcheck_executable(const char * path)
5062266e564dSmrg{
5063266e564dSmrg  struct stat st;
5064266e564dSmrg
5065266e564dSmrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5066266e564dSmrg  if ((!path) || (!*path))
5067266e564dSmrg    return 0;
5068266e564dSmrg
5069266e564dSmrg  if ((stat (path, &st) >= 0) &&
5070266e564dSmrg      (
5071266e564dSmrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5072266e564dSmrg#if defined (S_IXOTH)
5073266e564dSmrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5074266e564dSmrg#endif
5075266e564dSmrg#if defined (S_IXGRP)
5076266e564dSmrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5077266e564dSmrg#endif
5078266e564dSmrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
5079266e564dSmrg      )
5080266e564dSmrg    return 1;
5081266e564dSmrg  else
5082266e564dSmrg    return 0;
5083266e564dSmrg}
5084266e564dSmrg
5085266e564dSmrg/* Searches for the full path of the wrapper.  Returns
5086266e564dSmrg   newly allocated full path name if found, NULL otherwise */
5087266e564dSmrgchar *
5088266e564dSmrgfind_executable (const char* wrapper)
5089266e564dSmrg{
5090266e564dSmrg  int has_slash = 0;
5091266e564dSmrg  const char* p;
5092266e564dSmrg  const char* p_next;
5093266e564dSmrg  /* static buffer for getcwd */
5094266e564dSmrg  char tmp[LT_PATHMAX + 1];
5095266e564dSmrg  int tmp_len;
5096266e564dSmrg  char* concat_name;
5097266e564dSmrg
5098266e564dSmrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5099266e564dSmrg
5100266e564dSmrg  if ((wrapper == NULL) || (*wrapper == '\0'))
5101266e564dSmrg    return NULL;
5102266e564dSmrg
5103266e564dSmrg  /* Absolute path? */
5104266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5105266e564dSmrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5106266e564dSmrg  {
5107266e564dSmrg    concat_name = xstrdup (wrapper);
5108266e564dSmrg    if (check_executable(concat_name))
5109266e564dSmrg      return concat_name;
5110266e564dSmrg    XFREE(concat_name);
5111266e564dSmrg  }
5112266e564dSmrg  else
5113266e564dSmrg  {
5114266e564dSmrg#endif
5115266e564dSmrg    if (IS_DIR_SEPARATOR (wrapper[0]))
5116266e564dSmrg    {
5117266e564dSmrg      concat_name = xstrdup (wrapper);
5118266e564dSmrg      if (check_executable(concat_name))
5119266e564dSmrg        return concat_name;
5120266e564dSmrg      XFREE(concat_name);
5121266e564dSmrg    }
5122266e564dSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5123266e564dSmrg  }
5124266e564dSmrg#endif
5125266e564dSmrg
5126266e564dSmrg  for (p = wrapper; *p; p++)
5127266e564dSmrg    if (*p == '/')
5128266e564dSmrg    {
5129266e564dSmrg      has_slash = 1;
5130266e564dSmrg      break;
5131266e564dSmrg    }
5132266e564dSmrg  if (!has_slash)
5133266e564dSmrg  {
5134266e564dSmrg    /* no slashes; search PATH */
5135266e564dSmrg    const char* path = getenv ("PATH");
5136266e564dSmrg    if (path != NULL)
5137266e564dSmrg    {
5138266e564dSmrg      for (p = path; *p; p = p_next)
5139266e564dSmrg      {
5140266e564dSmrg        const char* q;
5141266e564dSmrg        size_t p_len;
5142266e564dSmrg        for (q = p; *q; q++)
5143266e564dSmrg          if (IS_PATH_SEPARATOR(*q))
5144266e564dSmrg            break;
5145266e564dSmrg        p_len = q - p;
5146266e564dSmrg        p_next = (*q == '\0' ? q : q + 1);
5147266e564dSmrg        if (p_len == 0)
5148266e564dSmrg        {
5149266e564dSmrg          /* empty path: current directory */
5150266e564dSmrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
5151266e564dSmrg            lt_fatal ("getcwd failed");
5152266e564dSmrg          tmp_len = strlen(tmp);
5153266e564dSmrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5154266e564dSmrg          memcpy (concat_name, tmp, tmp_len);
5155266e564dSmrg          concat_name[tmp_len] = '/';
5156266e564dSmrg          strcpy (concat_name + tmp_len + 1, wrapper);
5157266e564dSmrg        }
5158266e564dSmrg        else
5159266e564dSmrg        {
5160266e564dSmrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5161266e564dSmrg          memcpy (concat_name, p, p_len);
5162266e564dSmrg          concat_name[p_len] = '/';
5163266e564dSmrg          strcpy (concat_name + p_len + 1, wrapper);
5164266e564dSmrg        }
5165266e564dSmrg        if (check_executable(concat_name))
5166266e564dSmrg          return concat_name;
5167266e564dSmrg        XFREE(concat_name);
5168266e564dSmrg      }
5169266e564dSmrg    }
5170266e564dSmrg    /* not found in PATH; assume curdir */
5171266e564dSmrg  }
5172266e564dSmrg  /* Relative path | not found in path: prepend cwd */
5173266e564dSmrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
5174266e564dSmrg    lt_fatal ("getcwd failed");
5175266e564dSmrg  tmp_len = strlen(tmp);
5176266e564dSmrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5177266e564dSmrg  memcpy (concat_name, tmp, tmp_len);
5178266e564dSmrg  concat_name[tmp_len] = '/';
5179266e564dSmrg  strcpy (concat_name + tmp_len + 1, wrapper);
5180266e564dSmrg
5181266e564dSmrg  if (check_executable(concat_name))
5182266e564dSmrg    return concat_name;
5183266e564dSmrg  XFREE(concat_name);
5184266e564dSmrg  return NULL;
5185266e564dSmrg}
5186266e564dSmrg
5187266e564dSmrgchar *
5188266e564dSmrgstrendzap(char *str, const char *pat)
5189266e564dSmrg{
5190266e564dSmrg  size_t len, patlen;
5191266e564dSmrg
5192266e564dSmrg  assert(str != NULL);
5193266e564dSmrg  assert(pat != NULL);
5194266e564dSmrg
5195266e564dSmrg  len = strlen(str);
5196266e564dSmrg  patlen = strlen(pat);
5197266e564dSmrg
5198266e564dSmrg  if (patlen <= len)
5199266e564dSmrg  {
5200266e564dSmrg    str += len - patlen;
5201266e564dSmrg    if (strcmp(str, pat) == 0)
5202266e564dSmrg      *str = '\0';
5203266e564dSmrg  }
5204266e564dSmrg  return str;
5205266e564dSmrg}
5206266e564dSmrg
5207266e564dSmrgstatic void
5208266e564dSmrglt_error_core (int exit_status, const char * mode,
5209266e564dSmrg          const char * message, va_list ap)
5210266e564dSmrg{
5211266e564dSmrg  fprintf (stderr, "%s: %s: ", program_name, mode);
5212266e564dSmrg  vfprintf (stderr, message, ap);
5213266e564dSmrg  fprintf (stderr, ".\n");
5214266e564dSmrg
5215266e564dSmrg  if (exit_status >= 0)
5216266e564dSmrg    exit (exit_status);
5217266e564dSmrg}
5218266e564dSmrg
5219266e564dSmrgvoid
5220266e564dSmrglt_fatal (const char *message, ...)
5221266e564dSmrg{
5222266e564dSmrg  va_list ap;
5223266e564dSmrg  va_start (ap, message);
5224266e564dSmrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5225266e564dSmrg  va_end (ap);
5226266e564dSmrg}
5227266e564dSmrgEOF
5228266e564dSmrg          # we should really use a build-platform specific compiler
5229266e564dSmrg          # here, but OTOH, the wrappers (shell script and this C one)
5230266e564dSmrg          # are only useful if you want to execute the "real" binary.
5231266e564dSmrg          # Since the "real" binary is built for $host, then this
5232266e564dSmrg          # wrapper might as well be built for $host, too.
5233266e564dSmrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5234266e564dSmrg          ;;
5235266e564dSmrg        esac
5236266e564dSmrg        $rm $output
5237266e564dSmrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5238266e564dSmrg
5239266e564dSmrg	$echo > $output "\
5240266e564dSmrg#! $SHELL
5241266e564dSmrg
5242266e564dSmrg# $output - temporary wrapper script for $objdir/$outputname
5243266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5244266e564dSmrg#
5245266e564dSmrg# The $output program cannot be directly executed until all the libtool
5246266e564dSmrg# libraries that it depends on are installed.
5247266e564dSmrg#
5248266e564dSmrg# This wrapper script should never be moved out of the build directory.
5249266e564dSmrg# If it is, it will not operate correctly.
5250266e564dSmrg
5251266e564dSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
5252266e564dSmrg# metacharacters that are still active within double-quoted strings.
5253266e564dSmrgXsed='${SED} -e 1s/^X//'
5254266e564dSmrgsed_quote_subst='$sed_quote_subst'
5255266e564dSmrg
5256266e564dSmrg# The HP-UX ksh and POSIX shell print the target directory to stdout
5257266e564dSmrg# if CDPATH is set.
5258266e564dSmrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5259266e564dSmrg
5260266e564dSmrgrelink_command=\"$relink_command\"
5261266e564dSmrg
5262266e564dSmrg# This environment variable determines our operation mode.
5263266e564dSmrgif test \"\$libtool_install_magic\" = \"$magic\"; then
5264266e564dSmrg  # install mode needs the following variable:
5265266e564dSmrg  notinst_deplibs='$notinst_deplibs'
5266266e564dSmrgelse
5267266e564dSmrg  # When we are sourced in execute mode, \$file and \$echo are already set.
5268266e564dSmrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5269266e564dSmrg    echo=\"$qecho\"
5270266e564dSmrg    file=\"\$0\"
5271266e564dSmrg    # Make sure echo works.
5272266e564dSmrg    if test \"X\$1\" = X--no-reexec; then
5273266e564dSmrg      # Discard the --no-reexec flag, and continue.
5274266e564dSmrg      shift
5275266e564dSmrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5276266e564dSmrg      # Yippee, \$echo works!
5277266e564dSmrg      :
5278266e564dSmrg    else
5279266e564dSmrg      # Restart under the correct shell, and then maybe \$echo will work.
5280266e564dSmrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5281266e564dSmrg    fi
5282266e564dSmrg  fi\
5283266e564dSmrg"
5284266e564dSmrg	$echo >> $output "\
5285266e564dSmrg
5286266e564dSmrg  # Find the directory that this script lives in.
5287266e564dSmrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5288266e564dSmrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5289266e564dSmrg
5290266e564dSmrg  # Follow symbolic links until we get to the real thisdir.
5291266e564dSmrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5292266e564dSmrg  while test -n \"\$file\"; do
5293266e564dSmrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5294266e564dSmrg
5295266e564dSmrg    # If there was a directory component, then change thisdir.
5296266e564dSmrg    if test \"x\$destdir\" != \"x\$file\"; then
5297266e564dSmrg      case \"\$destdir\" in
5298266e564dSmrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5299266e564dSmrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
5300266e564dSmrg      esac
5301266e564dSmrg    fi
5302266e564dSmrg
5303266e564dSmrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5304266e564dSmrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5305266e564dSmrg  done
5306266e564dSmrg
5307266e564dSmrg  # Try to get the absolute directory name.
5308266e564dSmrg  absdir=\`cd \"\$thisdir\" && pwd\`
5309266e564dSmrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5310266e564dSmrg"
5311266e564dSmrg
5312266e564dSmrg	if test "$fast_install" = yes; then
5313266e564dSmrg	  $echo >> $output "\
5314266e564dSmrg  program=lt-'$outputname'$exeext
5315266e564dSmrg  progdir=\"\$thisdir/$objdir\"
5316266e564dSmrg
5317266e564dSmrg  if test ! -f \"\$progdir/\$program\" || \\
5318266e564dSmrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5319266e564dSmrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5320266e564dSmrg
5321266e564dSmrg    file=\"\$\$-\$program\"
5322266e564dSmrg
5323266e564dSmrg    if test ! -d \"\$progdir\"; then
5324266e564dSmrg      $mkdir \"\$progdir\"
5325266e564dSmrg    else
5326266e564dSmrg      $rm \"\$progdir/\$file\"
5327266e564dSmrg    fi"
5328266e564dSmrg
5329266e564dSmrg	  $echo >> $output "\
5330266e564dSmrg
5331266e564dSmrg    # relink executable if necessary
5332266e564dSmrg    if test -n \"\$relink_command\"; then
5333266e564dSmrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5334266e564dSmrg      else
5335266e564dSmrg	$echo \"\$relink_command_output\" >&2
5336266e564dSmrg	$rm \"\$progdir/\$file\"
5337266e564dSmrg	exit $EXIT_FAILURE
5338266e564dSmrg      fi
5339266e564dSmrg    fi
5340266e564dSmrg
5341266e564dSmrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5342266e564dSmrg    { $rm \"\$progdir/\$program\";
5343266e564dSmrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5344266e564dSmrg    $rm \"\$progdir/\$file\"
5345266e564dSmrg  fi"
5346266e564dSmrg	else
5347266e564dSmrg	  $echo >> $output "\
5348266e564dSmrg  program='$outputname'
5349266e564dSmrg  progdir=\"\$thisdir/$objdir\"
5350266e564dSmrg"
5351266e564dSmrg	fi
5352266e564dSmrg
5353266e564dSmrg	$echo >> $output "\
5354266e564dSmrg
5355266e564dSmrg  if test -f \"\$progdir/\$program\"; then"
5356266e564dSmrg
5357266e564dSmrg	# Export our shlibpath_var if we have one.
5358266e564dSmrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5359266e564dSmrg	  $echo >> $output "\
5360266e564dSmrg    # Add our own library path to $shlibpath_var
5361266e564dSmrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5362266e564dSmrg
5363266e564dSmrg    # Some systems cannot cope with colon-terminated $shlibpath_var
5364266e564dSmrg    # The second colon is a workaround for a bug in BeOS R4 sed
5365266e564dSmrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5366266e564dSmrg
5367266e564dSmrg    export $shlibpath_var
5368266e564dSmrg"
5369266e564dSmrg	fi
5370266e564dSmrg
5371266e564dSmrg	# fixup the dll searchpath if we need to.
5372266e564dSmrg	if test -n "$dllsearchpath"; then
5373266e564dSmrg	  $echo >> $output "\
5374266e564dSmrg    # Add the dll search path components to the executable PATH
5375266e564dSmrg    PATH=$dllsearchpath:\$PATH
5376266e564dSmrg"
5377266e564dSmrg	fi
5378266e564dSmrg
5379266e564dSmrg	$echo >> $output "\
5380266e564dSmrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5381266e564dSmrg      # Run the actual program with our arguments.
5382266e564dSmrg"
5383266e564dSmrg	case $host in
5384266e564dSmrg	# Backslashes separate directories on plain windows
5385266e564dSmrg	*-*-mingw | *-*-os2*)
5386266e564dSmrg	  $echo >> $output "\
5387266e564dSmrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5388266e564dSmrg"
5389266e564dSmrg	  ;;
5390266e564dSmrg
5391266e564dSmrg	*)
5392266e564dSmrg	  $echo >> $output "\
5393266e564dSmrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5394266e564dSmrg"
5395266e564dSmrg	  ;;
5396266e564dSmrg	esac
5397266e564dSmrg	$echo >> $output "\
5398266e564dSmrg      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5399266e564dSmrg      exit $EXIT_FAILURE
5400266e564dSmrg    fi
5401266e564dSmrg  else
5402266e564dSmrg    # The program doesn't exist.
5403266e564dSmrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5404266e564dSmrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5405266e564dSmrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5406266e564dSmrg    exit $EXIT_FAILURE
5407266e564dSmrg  fi
5408266e564dSmrgfi\
5409266e564dSmrg"
5410266e564dSmrg	chmod +x $output
5411266e564dSmrg      fi
5412266e564dSmrg      exit $EXIT_SUCCESS
5413266e564dSmrg      ;;
5414266e564dSmrg    esac
5415266e564dSmrg
5416266e564dSmrg    # See if we need to build an old-fashioned archive.
5417266e564dSmrg    for oldlib in $oldlibs; do
5418266e564dSmrg
5419266e564dSmrg      if test "$build_libtool_libs" = convenience; then
5420266e564dSmrg	oldobjs="$libobjs_save"
5421266e564dSmrg	addlibs="$convenience"
5422266e564dSmrg	build_libtool_libs=no
5423266e564dSmrg      else
5424266e564dSmrg	if test "$build_libtool_libs" = module; then
5425266e564dSmrg	  oldobjs="$libobjs_save"
5426266e564dSmrg	  build_libtool_libs=no
5427266e564dSmrg	else
5428266e564dSmrg	  oldobjs="$old_deplibs $non_pic_objects"
5429266e564dSmrg	fi
5430266e564dSmrg	addlibs="$old_convenience"
5431266e564dSmrg      fi
5432266e564dSmrg
5433266e564dSmrg      if test -n "$addlibs"; then
5434266e564dSmrg	gentop="$output_objdir/${outputname}x"
5435266e564dSmrg	generated="$generated $gentop"
5436266e564dSmrg
5437266e564dSmrg	func_extract_archives $gentop $addlibs
5438266e564dSmrg	oldobjs="$oldobjs $func_extract_archives_result"
5439266e564dSmrg      fi
5440266e564dSmrg
5441266e564dSmrg      # Do each command in the archive commands.
5442266e564dSmrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5443266e564dSmrg       cmds=$old_archive_from_new_cmds
5444266e564dSmrg      else
5445266e564dSmrg	# POSIX demands no paths to be encoded in archives.  We have
5446266e564dSmrg	# to avoid creating archives with duplicate basenames if we
5447266e564dSmrg	# might have to extract them afterwards, e.g., when creating a
5448266e564dSmrg	# static archive out of a convenience library, or when linking
5449266e564dSmrg	# the entirety of a libtool archive into another (currently
5450266e564dSmrg	# not supported by libtool).
5451266e564dSmrg	if (for obj in $oldobjs
5452266e564dSmrg	    do
5453266e564dSmrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5454266e564dSmrg	    done | sort | sort -uc >/dev/null 2>&1); then
5455266e564dSmrg	  :
5456266e564dSmrg	else
5457266e564dSmrg	  $echo "copying selected object files to avoid basename conflicts..."
5458266e564dSmrg
5459266e564dSmrg	  if test -z "$gentop"; then
5460266e564dSmrg	    gentop="$output_objdir/${outputname}x"
5461266e564dSmrg	    generated="$generated $gentop"
5462266e564dSmrg
5463266e564dSmrg	    $show "${rm}r $gentop"
5464266e564dSmrg	    $run ${rm}r "$gentop"
5465266e564dSmrg	    $show "$mkdir $gentop"
5466266e564dSmrg	    $run $mkdir "$gentop"
5467266e564dSmrg	    exit_status=$?
5468266e564dSmrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5469266e564dSmrg	      exit $exit_status
5470266e564dSmrg	    fi
5471266e564dSmrg	  fi
5472266e564dSmrg
5473266e564dSmrg	  save_oldobjs=$oldobjs
5474266e564dSmrg	  oldobjs=
5475266e564dSmrg	  counter=1
5476266e564dSmrg	  for obj in $save_oldobjs
5477266e564dSmrg	  do
5478266e564dSmrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5479266e564dSmrg	    case " $oldobjs " in
5480266e564dSmrg	    " ") oldobjs=$obj ;;
5481266e564dSmrg	    *[\ /]"$objbase "*)
5482266e564dSmrg	      while :; do
5483266e564dSmrg		# Make sure we don't pick an alternate name that also
5484266e564dSmrg		# overlaps.
5485266e564dSmrg		newobj=lt$counter-$objbase
5486266e564dSmrg		counter=`expr $counter + 1`
5487266e564dSmrg		case " $oldobjs " in
5488266e564dSmrg		*[\ /]"$newobj "*) ;;
5489266e564dSmrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5490266e564dSmrg		esac
5491266e564dSmrg	      done
5492266e564dSmrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5493266e564dSmrg	      $run ln "$obj" "$gentop/$newobj" ||
5494266e564dSmrg	      $run cp "$obj" "$gentop/$newobj"
5495266e564dSmrg	      oldobjs="$oldobjs $gentop/$newobj"
5496266e564dSmrg	      ;;
5497266e564dSmrg	    *) oldobjs="$oldobjs $obj" ;;
5498266e564dSmrg	    esac
5499266e564dSmrg	  done
5500266e564dSmrg	fi
5501266e564dSmrg
5502266e564dSmrg	eval cmds=\"$old_archive_cmds\"
5503266e564dSmrg
5504266e564dSmrg	if len=`expr "X$cmds" : ".*"` &&
5505266e564dSmrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5506266e564dSmrg	  cmds=$old_archive_cmds
5507266e564dSmrg	else
5508266e564dSmrg	  # the command line is too long to link in one step, link in parts
5509266e564dSmrg	  $echo "using piecewise archive linking..."
5510266e564dSmrg	  save_RANLIB=$RANLIB
5511266e564dSmrg	  RANLIB=:
5512266e564dSmrg	  objlist=
5513266e564dSmrg	  concat_cmds=
5514266e564dSmrg	  save_oldobjs=$oldobjs
5515266e564dSmrg
5516266e564dSmrg	  # Is there a better way of finding the last object in the list?
5517266e564dSmrg	  for obj in $save_oldobjs
5518266e564dSmrg	  do
5519266e564dSmrg	    last_oldobj=$obj
5520266e564dSmrg	  done
5521266e564dSmrg	  for obj in $save_oldobjs
5522266e564dSmrg	  do
5523266e564dSmrg	    oldobjs="$objlist $obj"
5524266e564dSmrg	    objlist="$objlist $obj"
5525266e564dSmrg	    eval test_cmds=\"$old_archive_cmds\"
5526266e564dSmrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5527266e564dSmrg	       test "$len" -le "$max_cmd_len"; then
5528266e564dSmrg	      :
5529266e564dSmrg	    else
5530266e564dSmrg	      # the above command should be used before it gets too long
5531266e564dSmrg	      oldobjs=$objlist
5532266e564dSmrg	      if test "$obj" = "$last_oldobj" ; then
5533266e564dSmrg	        RANLIB=$save_RANLIB
5534266e564dSmrg	      fi
5535266e564dSmrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5536266e564dSmrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5537266e564dSmrg	      objlist=
5538266e564dSmrg	    fi
5539266e564dSmrg	  done
5540266e564dSmrg	  RANLIB=$save_RANLIB
5541266e564dSmrg	  oldobjs=$objlist
5542266e564dSmrg	  if test "X$oldobjs" = "X" ; then
5543266e564dSmrg	    eval cmds=\"\$concat_cmds\"
5544266e564dSmrg	  else
5545266e564dSmrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5546266e564dSmrg	  fi
5547266e564dSmrg	fi
5548266e564dSmrg      fi
5549266e564dSmrg      save_ifs="$IFS"; IFS='~'
5550266e564dSmrg      for cmd in $cmds; do
5551266e564dSmrg        eval cmd=\"$cmd\"
5552266e564dSmrg	IFS="$save_ifs"
5553266e564dSmrg	$show "$cmd"
5554266e564dSmrg	$run eval "$cmd" || exit $?
5555266e564dSmrg      done
5556266e564dSmrg      IFS="$save_ifs"
5557266e564dSmrg    done
5558266e564dSmrg
5559266e564dSmrg    if test -n "$generated"; then
5560266e564dSmrg      $show "${rm}r$generated"
5561266e564dSmrg      $run ${rm}r$generated
5562266e564dSmrg    fi
5563266e564dSmrg
5564266e564dSmrg    # Now create the libtool archive.
5565266e564dSmrg    case $output in
5566266e564dSmrg    *.la)
5567266e564dSmrg      old_library=
5568266e564dSmrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
5569266e564dSmrg      $show "creating $output"
5570266e564dSmrg
5571266e564dSmrg      # Preserve any variables that may affect compiler behavior
5572266e564dSmrg      for var in $variables_saved_for_relink; do
5573266e564dSmrg	if eval test -z \"\${$var+set}\"; then
5574266e564dSmrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5575266e564dSmrg	elif eval var_value=\$$var; test -z "$var_value"; then
5576266e564dSmrg	  relink_command="$var=; export $var; $relink_command"
5577266e564dSmrg	else
5578266e564dSmrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5579266e564dSmrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5580266e564dSmrg	fi
5581266e564dSmrg      done
5582266e564dSmrg      # Quote the link command for shipping.
5583266e564dSmrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5584266e564dSmrg      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5585266e564dSmrg      if test "$hardcode_automatic" = yes ; then
5586266e564dSmrg	relink_command=
5587266e564dSmrg      fi
5588266e564dSmrg
5589266e564dSmrg
5590266e564dSmrg      # Only create the output if not a dry run.
5591266e564dSmrg      if test -z "$run"; then
5592266e564dSmrg	for installed in no yes; do
5593266e564dSmrg	  if test "$installed" = yes; then
5594266e564dSmrg	    if test -z "$install_libdir"; then
5595266e564dSmrg	      break
5596266e564dSmrg	    fi
5597266e564dSmrg	    output="$output_objdir/$outputname"i
5598266e564dSmrg	    # Replace all uninstalled libtool libraries with the installed ones
5599266e564dSmrg	    newdependency_libs=
5600266e564dSmrg	    for deplib in $dependency_libs; do
5601266e564dSmrg	      case $deplib in
5602266e564dSmrg	      *.la)
5603266e564dSmrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5604266e564dSmrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5605266e564dSmrg		if test -z "$libdir"; then
5606266e564dSmrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5607266e564dSmrg		  exit $EXIT_FAILURE
5608266e564dSmrg		fi
5609266e564dSmrg		newdependency_libs="$newdependency_libs $libdir/$name"
5610266e564dSmrg		;;
5611266e564dSmrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5612266e564dSmrg	      esac
5613266e564dSmrg	    done
5614266e564dSmrg	    dependency_libs="$newdependency_libs"
5615266e564dSmrg	    newdlfiles=
5616266e564dSmrg	    for lib in $dlfiles; do
5617266e564dSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5618266e564dSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5619266e564dSmrg	      if test -z "$libdir"; then
5620266e564dSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5621266e564dSmrg		exit $EXIT_FAILURE
5622266e564dSmrg	      fi
5623266e564dSmrg	      newdlfiles="$newdlfiles $libdir/$name"
5624266e564dSmrg	    done
5625266e564dSmrg	    dlfiles="$newdlfiles"
5626266e564dSmrg	    newdlprefiles=
5627266e564dSmrg	    for lib in $dlprefiles; do
5628266e564dSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5629266e564dSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5630266e564dSmrg	      if test -z "$libdir"; then
5631266e564dSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5632266e564dSmrg		exit $EXIT_FAILURE
5633266e564dSmrg	      fi
5634266e564dSmrg	      newdlprefiles="$newdlprefiles $libdir/$name"
5635266e564dSmrg	    done
5636266e564dSmrg	    dlprefiles="$newdlprefiles"
5637266e564dSmrg	  else
5638266e564dSmrg	    newdlfiles=
5639266e564dSmrg	    for lib in $dlfiles; do
5640266e564dSmrg	      case $lib in
5641266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5642266e564dSmrg		*) abs=`pwd`"/$lib" ;;
5643266e564dSmrg	      esac
5644266e564dSmrg	      newdlfiles="$newdlfiles $abs"
5645266e564dSmrg	    done
5646266e564dSmrg	    dlfiles="$newdlfiles"
5647266e564dSmrg	    newdlprefiles=
5648266e564dSmrg	    for lib in $dlprefiles; do
5649266e564dSmrg	      case $lib in
5650266e564dSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5651266e564dSmrg		*) abs=`pwd`"/$lib" ;;
5652266e564dSmrg	      esac
5653266e564dSmrg	      newdlprefiles="$newdlprefiles $abs"
5654266e564dSmrg	    done
5655266e564dSmrg	    dlprefiles="$newdlprefiles"
5656266e564dSmrg	  fi
5657266e564dSmrg	  $rm $output
5658266e564dSmrg	  # place dlname in correct position for cygwin
5659266e564dSmrg	  tdlname=$dlname
5660266e564dSmrg	  case $host,$output,$installed,$module,$dlname in
5661266e564dSmrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5662266e564dSmrg	  esac
5663266e564dSmrg	  $echo > $output "\
5664266e564dSmrg# $outputname - a libtool library file
5665266e564dSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5666266e564dSmrg#
5667266e564dSmrg# Please DO NOT delete this file!
5668266e564dSmrg# It is necessary for linking the library.
5669266e564dSmrg
5670266e564dSmrg# The name that we can dlopen(3).
5671266e564dSmrgdlname='$tdlname'
5672266e564dSmrg
5673266e564dSmrg# Names of this library.
5674266e564dSmrglibrary_names='$library_names'
5675266e564dSmrg
5676266e564dSmrg# The name of the static archive.
5677266e564dSmrgold_library='$old_library'
5678266e564dSmrg
5679266e564dSmrg# Libraries that this one depends upon.
5680266e564dSmrgdependency_libs='$dependency_libs'
5681266e564dSmrg
5682266e564dSmrg# Version information for $libname.
5683266e564dSmrgcurrent=$current
5684266e564dSmrgage=$age
5685266e564dSmrgrevision=$revision
5686266e564dSmrg
5687266e564dSmrg# Is this an already installed library?
5688266e564dSmrginstalled=$installed
5689266e564dSmrg
5690266e564dSmrg# Should we warn about portability when linking against -modules?
5691266e564dSmrgshouldnotlink=$module
5692266e564dSmrg
5693266e564dSmrg# Files to dlopen/dlpreopen
5694266e564dSmrgdlopen='$dlfiles'
5695266e564dSmrgdlpreopen='$dlprefiles'
5696266e564dSmrg
5697266e564dSmrg# Directory that this library needs to be installed in:
5698266e564dSmrglibdir='$install_libdir'"
5699266e564dSmrg	  if test "$installed" = no && test "$need_relink" = yes; then
5700266e564dSmrg	    $echo >> $output "\
5701266e564dSmrgrelink_command=\"$relink_command\""
5702266e564dSmrg	  fi
5703266e564dSmrg	done
5704266e564dSmrg      fi
5705266e564dSmrg
5706266e564dSmrg      # Do a symbolic link so that the libtool archive can be found in
5707266e564dSmrg      # LD_LIBRARY_PATH before the program is installed.
5708266e564dSmrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5709266e564dSmrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5710266e564dSmrg      ;;
5711266e564dSmrg    esac
5712266e564dSmrg    exit $EXIT_SUCCESS
5713266e564dSmrg    ;;
5714266e564dSmrg
5715266e564dSmrg  # libtool install mode
5716266e564dSmrg  install)
5717266e564dSmrg    modename="$modename: install"
5718266e564dSmrg
5719266e564dSmrg    # There may be an optional sh(1) argument at the beginning of
5720266e564dSmrg    # install_prog (especially on Windows NT).
5721266e564dSmrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5722266e564dSmrg       # Allow the use of GNU shtool's install command.
5723266e564dSmrg       $echo "X$nonopt" | grep shtool > /dev/null; then
5724266e564dSmrg      # Aesthetically quote it.
5725266e564dSmrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5726266e564dSmrg      case $arg in
5727266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5728266e564dSmrg	arg="\"$arg\""
5729266e564dSmrg	;;
5730266e564dSmrg      esac
5731266e564dSmrg      install_prog="$arg "
5732266e564dSmrg      arg="$1"
5733266e564dSmrg      shift
5734266e564dSmrg    else
5735266e564dSmrg      install_prog=
5736266e564dSmrg      arg=$nonopt
5737266e564dSmrg    fi
5738266e564dSmrg
5739266e564dSmrg    # The real first argument should be the name of the installation program.
5740266e564dSmrg    # Aesthetically quote it.
5741266e564dSmrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5742266e564dSmrg    case $arg in
5743266e564dSmrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5744266e564dSmrg      arg="\"$arg\""
5745266e564dSmrg      ;;
5746266e564dSmrg    esac
5747266e564dSmrg    install_prog="$install_prog$arg"
5748266e564dSmrg
5749266e564dSmrg    # We need to accept at least all the BSD install flags.
5750266e564dSmrg    dest=
5751266e564dSmrg    files=
5752266e564dSmrg    opts=
5753266e564dSmrg    prev=
5754266e564dSmrg    install_type=
5755266e564dSmrg    isdir=no
5756266e564dSmrg    stripme=
5757266e564dSmrg    for arg
5758266e564dSmrg    do
5759266e564dSmrg      if test -n "$dest"; then
5760266e564dSmrg	files="$files $dest"
5761266e564dSmrg	dest=$arg
5762266e564dSmrg	continue
5763266e564dSmrg      fi
5764266e564dSmrg
5765266e564dSmrg      case $arg in
5766266e564dSmrg      -d) isdir=yes ;;
5767266e564dSmrg      -f) 
5768266e564dSmrg      	case " $install_prog " in
5769266e564dSmrg	*[\\\ /]cp\ *) ;;
5770266e564dSmrg	*) prev=$arg ;;
5771266e564dSmrg	esac
5772266e564dSmrg	;;
5773266e564dSmrg      -g | -m | -o) prev=$arg ;;
5774266e564dSmrg      -s)
5775266e564dSmrg	stripme=" -s"
5776266e564dSmrg	continue
5777266e564dSmrg	;;
5778266e564dSmrg      -*)
5779266e564dSmrg	;;
5780266e564dSmrg      *)
5781266e564dSmrg	# If the previous option needed an argument, then skip it.
5782266e564dSmrg	if test -n "$prev"; then
5783266e564dSmrg	  prev=
5784266e564dSmrg	else
5785266e564dSmrg	  dest=$arg
5786266e564dSmrg	  continue
5787266e564dSmrg	fi
5788266e564dSmrg	;;
5789266e564dSmrg      esac
5790266e564dSmrg
5791266e564dSmrg      # Aesthetically quote the argument.
5792266e564dSmrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5793266e564dSmrg      case $arg in
5794266e564dSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5795266e564dSmrg	arg="\"$arg\""
5796266e564dSmrg	;;
5797266e564dSmrg      esac
5798266e564dSmrg      install_prog="$install_prog $arg"
5799266e564dSmrg    done
5800266e564dSmrg
5801266e564dSmrg    if test -z "$install_prog"; then
5802266e564dSmrg      $echo "$modename: you must specify an install program" 1>&2
5803266e564dSmrg      $echo "$help" 1>&2
5804266e564dSmrg      exit $EXIT_FAILURE
5805266e564dSmrg    fi
5806266e564dSmrg
5807266e564dSmrg    if test -n "$prev"; then
5808266e564dSmrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5809266e564dSmrg      $echo "$help" 1>&2
5810266e564dSmrg      exit $EXIT_FAILURE
5811266e564dSmrg    fi
5812266e564dSmrg
5813266e564dSmrg    if test -z "$files"; then
5814266e564dSmrg      if test -z "$dest"; then
5815266e564dSmrg	$echo "$modename: no file or destination specified" 1>&2
5816266e564dSmrg      else
5817266e564dSmrg	$echo "$modename: you must specify a destination" 1>&2
5818266e564dSmrg      fi
5819266e564dSmrg      $echo "$help" 1>&2
5820266e564dSmrg      exit $EXIT_FAILURE
5821266e564dSmrg    fi
5822266e564dSmrg
5823266e564dSmrg    # Strip any trailing slash from the destination.
5824266e564dSmrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5825266e564dSmrg
5826266e564dSmrg    # Check to see that the destination is a directory.
5827266e564dSmrg    test -d "$dest" && isdir=yes
5828266e564dSmrg    if test "$isdir" = yes; then
5829266e564dSmrg      destdir="$dest"
5830266e564dSmrg      destname=
5831266e564dSmrg    else
5832266e564dSmrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5833266e564dSmrg      test "X$destdir" = "X$dest" && destdir=.
5834266e564dSmrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5835266e564dSmrg
5836266e564dSmrg      # Not a directory, so check to see that there is only one file specified.
5837266e564dSmrg      set dummy $files
5838266e564dSmrg      if test "$#" -gt 2; then
5839266e564dSmrg	$echo "$modename: \`$dest' is not a directory" 1>&2
5840266e564dSmrg	$echo "$help" 1>&2
5841266e564dSmrg	exit $EXIT_FAILURE
5842266e564dSmrg      fi
5843266e564dSmrg    fi
5844266e564dSmrg    case $destdir in
5845266e564dSmrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
5846266e564dSmrg    *)
5847266e564dSmrg      for file in $files; do
5848266e564dSmrg	case $file in
5849266e564dSmrg	*.lo) ;;
5850266e564dSmrg	*)
5851266e564dSmrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5852266e564dSmrg	  $echo "$help" 1>&2
5853266e564dSmrg	  exit $EXIT_FAILURE
5854266e564dSmrg	  ;;
5855266e564dSmrg	esac
5856266e564dSmrg      done
5857266e564dSmrg      ;;
5858266e564dSmrg    esac
5859266e564dSmrg
5860266e564dSmrg    # This variable tells wrapper scripts just to set variables rather
5861266e564dSmrg    # than running their programs.
5862266e564dSmrg    libtool_install_magic="$magic"
5863266e564dSmrg
5864266e564dSmrg    staticlibs=
5865266e564dSmrg    future_libdirs=
5866266e564dSmrg    current_libdirs=
5867266e564dSmrg    for file in $files; do
5868266e564dSmrg
5869266e564dSmrg      # Do each installation.
5870266e564dSmrg      case $file in
5871266e564dSmrg      *.$libext)
5872266e564dSmrg	# Do the static libraries later.
5873266e564dSmrg	staticlibs="$staticlibs $file"
5874266e564dSmrg	;;
5875266e564dSmrg
5876266e564dSmrg      *.la)
5877266e564dSmrg	# Check to see that this really is a libtool archive.
5878266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5879266e564dSmrg	else
5880266e564dSmrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5881266e564dSmrg	  $echo "$help" 1>&2
5882266e564dSmrg	  exit $EXIT_FAILURE
5883266e564dSmrg	fi
5884266e564dSmrg
5885266e564dSmrg	library_names=
5886266e564dSmrg	old_library=
5887266e564dSmrg	relink_command=
5888266e564dSmrg	# If there is no directory component, then add one.
5889266e564dSmrg	case $file in
5890266e564dSmrg	*/* | *\\*) . $file ;;
5891266e564dSmrg	*) . ./$file ;;
5892266e564dSmrg	esac
5893266e564dSmrg
5894266e564dSmrg	# Add the libdir to current_libdirs if it is the destination.
5895266e564dSmrg	if test "X$destdir" = "X$libdir"; then
5896266e564dSmrg	  case "$current_libdirs " in
5897266e564dSmrg	  *" $libdir "*) ;;
5898266e564dSmrg	  *) current_libdirs="$current_libdirs $libdir" ;;
5899266e564dSmrg	  esac
5900266e564dSmrg	else
5901266e564dSmrg	  # Note the libdir as a future libdir.
5902266e564dSmrg	  case "$future_libdirs " in
5903266e564dSmrg	  *" $libdir "*) ;;
5904266e564dSmrg	  *) future_libdirs="$future_libdirs $libdir" ;;
5905266e564dSmrg	  esac
5906266e564dSmrg	fi
5907266e564dSmrg
5908266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5909266e564dSmrg	test "X$dir" = "X$file/" && dir=
5910266e564dSmrg	dir="$dir$objdir"
5911266e564dSmrg
5912266e564dSmrg	if test -n "$relink_command"; then
5913266e564dSmrg	  # Determine the prefix the user has applied to our future dir.
5914266e564dSmrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5915266e564dSmrg
5916266e564dSmrg	  # Don't allow the user to place us outside of our expected
5917266e564dSmrg	  # location b/c this prevents finding dependent libraries that
5918266e564dSmrg	  # are installed to the same prefix.
5919266e564dSmrg	  # At present, this check doesn't affect windows .dll's that
5920266e564dSmrg	  # are installed into $libdir/../bin (currently, that works fine)
5921266e564dSmrg	  # but it's something to keep an eye on.
5922266e564dSmrg	  if test "$inst_prefix_dir" = "$destdir"; then
5923266e564dSmrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5924266e564dSmrg	    exit $EXIT_FAILURE
5925266e564dSmrg	  fi
5926266e564dSmrg
5927266e564dSmrg	  if test -n "$inst_prefix_dir"; then
5928266e564dSmrg	    # Stick the inst_prefix_dir data into the link command.
5929266e564dSmrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5930266e564dSmrg	  else
5931266e564dSmrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5932266e564dSmrg	  fi
5933266e564dSmrg
5934266e564dSmrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
5935266e564dSmrg	  $show "$relink_command"
5936266e564dSmrg	  if $run eval "$relink_command"; then :
5937266e564dSmrg	  else
5938266e564dSmrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5939266e564dSmrg	    exit $EXIT_FAILURE
5940266e564dSmrg	  fi
5941266e564dSmrg	fi
5942266e564dSmrg
5943266e564dSmrg	# See the names of the shared library.
5944266e564dSmrg	set dummy $library_names
5945266e564dSmrg	if test -n "$2"; then
5946266e564dSmrg	  realname="$2"
5947266e564dSmrg	  shift
5948266e564dSmrg	  shift
5949266e564dSmrg
5950266e564dSmrg	  srcname="$realname"
5951266e564dSmrg	  test -n "$relink_command" && srcname="$realname"T
5952266e564dSmrg
5953266e564dSmrg	  # Install the shared library and build the symlinks.
5954266e564dSmrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
5955266e564dSmrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5956266e564dSmrg	  if test -n "$stripme" && test -n "$striplib"; then
5957266e564dSmrg	    $show "$striplib $destdir/$realname"
5958266e564dSmrg	    $run eval "$striplib $destdir/$realname" || exit $?
5959266e564dSmrg	  fi
5960266e564dSmrg
5961266e564dSmrg	  if test "$#" -gt 0; then
5962266e564dSmrg	    # Delete the old symlinks, and create new ones.
5963266e564dSmrg	    # Try `ln -sf' first, because the `ln' binary might depend on
5964266e564dSmrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
5965266e564dSmrg	    # so we also need to try rm && ln -s.
5966266e564dSmrg	    for linkname
5967266e564dSmrg	    do
5968266e564dSmrg	      if test "$linkname" != "$realname"; then
5969266e564dSmrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5970266e564dSmrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5971266e564dSmrg	      fi
5972266e564dSmrg	    done
5973266e564dSmrg	  fi
5974266e564dSmrg
5975266e564dSmrg	  # Do each command in the postinstall commands.
5976266e564dSmrg	  lib="$destdir/$realname"
5977266e564dSmrg	  cmds=$postinstall_cmds
5978266e564dSmrg	  save_ifs="$IFS"; IFS='~'
5979266e564dSmrg	  for cmd in $cmds; do
5980266e564dSmrg	    IFS="$save_ifs"
5981266e564dSmrg	    eval cmd=\"$cmd\"
5982266e564dSmrg	    $show "$cmd"
5983266e564dSmrg	    $run eval "$cmd" || {
5984266e564dSmrg	      lt_exit=$?
5985266e564dSmrg
5986266e564dSmrg	      # Restore the uninstalled library and exit
5987266e564dSmrg	      if test "$mode" = relink; then
5988266e564dSmrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5989266e564dSmrg	      fi
5990266e564dSmrg
5991266e564dSmrg	      exit $lt_exit
5992266e564dSmrg	    }
5993266e564dSmrg	  done
5994266e564dSmrg	  IFS="$save_ifs"
5995266e564dSmrg	fi
5996266e564dSmrg
5997266e564dSmrg	# Install the pseudo-library for information purposes.
5998266e564dSmrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5999266e564dSmrg	instname="$dir/$name"i
6000266e564dSmrg	$show "$install_prog $instname $destdir/$name"
6001266e564dSmrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
6002266e564dSmrg
6003266e564dSmrg	# Maybe install the static library, too.
6004266e564dSmrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6005266e564dSmrg	;;
6006266e564dSmrg
6007266e564dSmrg      *.lo)
6008266e564dSmrg	# Install (i.e. copy) a libtool object.
6009266e564dSmrg
6010266e564dSmrg	# Figure out destination file name, if it wasn't already specified.
6011266e564dSmrg	if test -n "$destname"; then
6012266e564dSmrg	  destfile="$destdir/$destname"
6013266e564dSmrg	else
6014266e564dSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6015266e564dSmrg	  destfile="$destdir/$destfile"
6016266e564dSmrg	fi
6017266e564dSmrg
6018266e564dSmrg	# Deduce the name of the destination old-style object file.
6019266e564dSmrg	case $destfile in
6020266e564dSmrg	*.lo)
6021266e564dSmrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6022266e564dSmrg	  ;;
6023266e564dSmrg	*.$objext)
6024266e564dSmrg	  staticdest="$destfile"
6025266e564dSmrg	  destfile=
6026266e564dSmrg	  ;;
6027266e564dSmrg	*)
6028266e564dSmrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6029266e564dSmrg	  $echo "$help" 1>&2
6030266e564dSmrg	  exit $EXIT_FAILURE
6031266e564dSmrg	  ;;
6032266e564dSmrg	esac
6033266e564dSmrg
6034266e564dSmrg	# Install the libtool object if requested.
6035266e564dSmrg	if test -n "$destfile"; then
6036266e564dSmrg	  $show "$install_prog $file $destfile"
6037266e564dSmrg	  $run eval "$install_prog $file $destfile" || exit $?
6038266e564dSmrg	fi
6039266e564dSmrg
6040266e564dSmrg	# Install the old object if enabled.
6041266e564dSmrg	if test "$build_old_libs" = yes; then
6042266e564dSmrg	  # Deduce the name of the old-style object file.
6043266e564dSmrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6044266e564dSmrg
6045266e564dSmrg	  $show "$install_prog $staticobj $staticdest"
6046266e564dSmrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6047266e564dSmrg	fi
6048266e564dSmrg	exit $EXIT_SUCCESS
6049266e564dSmrg	;;
6050266e564dSmrg
6051266e564dSmrg      *)
6052266e564dSmrg	# Figure out destination file name, if it wasn't already specified.
6053266e564dSmrg	if test -n "$destname"; then
6054266e564dSmrg	  destfile="$destdir/$destname"
6055266e564dSmrg	else
6056266e564dSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6057266e564dSmrg	  destfile="$destdir/$destfile"
6058266e564dSmrg	fi
6059266e564dSmrg
6060266e564dSmrg	# If the file is missing, and there is a .exe on the end, strip it
6061266e564dSmrg	# because it is most likely a libtool script we actually want to
6062266e564dSmrg	# install
6063266e564dSmrg	stripped_ext=""
6064266e564dSmrg	case $file in
6065266e564dSmrg	  *.exe)
6066266e564dSmrg	    if test ! -f "$file"; then
6067266e564dSmrg	      file=`$echo $file|${SED} 's,.exe$,,'`
6068266e564dSmrg	      stripped_ext=".exe"
6069266e564dSmrg	    fi
6070266e564dSmrg	    ;;
6071266e564dSmrg	esac
6072266e564dSmrg
6073266e564dSmrg	# Do a test to see if this is really a libtool program.
6074266e564dSmrg	case $host in
6075266e564dSmrg	*cygwin*|*mingw*)
6076266e564dSmrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6077266e564dSmrg	    ;;
6078266e564dSmrg	*)
6079266e564dSmrg	    wrapper=$file
6080266e564dSmrg	    ;;
6081266e564dSmrg	esac
6082266e564dSmrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6083266e564dSmrg	  notinst_deplibs=
6084266e564dSmrg	  relink_command=
6085266e564dSmrg
6086266e564dSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6087266e564dSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6088266e564dSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6089266e564dSmrg	  # `FILE.' does not work on cygwin managed mounts.
6090266e564dSmrg	  #
6091266e564dSmrg	  # If there is no directory component, then add one.
6092266e564dSmrg	  case $wrapper in
6093266e564dSmrg	  */* | *\\*) . ${wrapper} ;;
6094266e564dSmrg	  *) . ./${wrapper} ;;
6095266e564dSmrg	  esac
6096266e564dSmrg
6097266e564dSmrg	  # Check the variables that should have been set.
6098266e564dSmrg	  if test -z "$notinst_deplibs"; then
6099266e564dSmrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6100266e564dSmrg	    exit $EXIT_FAILURE
6101266e564dSmrg	  fi
6102266e564dSmrg
6103266e564dSmrg	  finalize=yes
6104266e564dSmrg	  for lib in $notinst_deplibs; do
6105266e564dSmrg	    # Check to see that each library is installed.
6106266e564dSmrg	    libdir=
6107266e564dSmrg	    if test -f "$lib"; then
6108266e564dSmrg	      # If there is no directory component, then add one.
6109266e564dSmrg	      case $lib in
6110266e564dSmrg	      */* | *\\*) . $lib ;;
6111266e564dSmrg	      *) . ./$lib ;;
6112266e564dSmrg	      esac
6113266e564dSmrg	    fi
6114266e564dSmrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6115266e564dSmrg	    if test -n "$libdir" && test ! -f "$libfile"; then
6116266e564dSmrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6117266e564dSmrg	      finalize=no
6118266e564dSmrg	    fi
6119266e564dSmrg	  done
6120266e564dSmrg
6121266e564dSmrg	  relink_command=
6122266e564dSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6123266e564dSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6124266e564dSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6125266e564dSmrg	  # `FILE.' does not work on cygwin managed mounts.
6126266e564dSmrg	  #
6127266e564dSmrg	  # If there is no directory component, then add one.
6128266e564dSmrg	  case $wrapper in
6129266e564dSmrg	  */* | *\\*) . ${wrapper} ;;
6130266e564dSmrg	  *) . ./${wrapper} ;;
6131266e564dSmrg	  esac
6132266e564dSmrg
6133266e564dSmrg	  outputname=
6134266e564dSmrg	  if test "$fast_install" = no && test -n "$relink_command"; then
6135266e564dSmrg	    if test "$finalize" = yes && test -z "$run"; then
6136266e564dSmrg	      tmpdir=`func_mktempdir`
6137266e564dSmrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6138266e564dSmrg	      outputname="$tmpdir/$file"
6139266e564dSmrg	      # Replace the output file specification.
6140266e564dSmrg	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6141266e564dSmrg
6142266e564dSmrg	      $show "$relink_command"
6143266e564dSmrg	      if $run eval "$relink_command"; then :
6144266e564dSmrg	      else
6145266e564dSmrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6146266e564dSmrg		${rm}r "$tmpdir"
6147266e564dSmrg		continue
6148266e564dSmrg	      fi
6149266e564dSmrg	      file="$outputname"
6150266e564dSmrg	    else
6151266e564dSmrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6152266e564dSmrg	    fi
6153266e564dSmrg	  else
6154266e564dSmrg	    # Install the binary that we compiled earlier.
6155266e564dSmrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6156266e564dSmrg	  fi
6157266e564dSmrg	fi
6158266e564dSmrg
6159266e564dSmrg	# remove .exe since cygwin /usr/bin/install will append another
6160266e564dSmrg	# one anyway 
6161266e564dSmrg	case $install_prog,$host in
6162266e564dSmrg	*/usr/bin/install*,*cygwin*)
6163266e564dSmrg	  case $file:$destfile in
6164266e564dSmrg	  *.exe:*.exe)
6165266e564dSmrg	    # this is ok
6166266e564dSmrg	    ;;
6167266e564dSmrg	  *.exe:*)
6168266e564dSmrg	    destfile=$destfile.exe
6169266e564dSmrg	    ;;
6170266e564dSmrg	  *:*.exe)
6171266e564dSmrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6172266e564dSmrg	    ;;
6173266e564dSmrg	  esac
6174266e564dSmrg	  ;;
6175266e564dSmrg	esac
6176266e564dSmrg	$show "$install_prog$stripme $file $destfile"
6177266e564dSmrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6178266e564dSmrg	test -n "$outputname" && ${rm}r "$tmpdir"
6179266e564dSmrg	;;
6180266e564dSmrg      esac
6181266e564dSmrg    done
6182266e564dSmrg
6183266e564dSmrg    for file in $staticlibs; do
6184266e564dSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6185266e564dSmrg
6186266e564dSmrg      # Set up the ranlib parameters.
6187266e564dSmrg      oldlib="$destdir/$name"
6188266e564dSmrg
6189266e564dSmrg      $show "$install_prog $file $oldlib"
6190266e564dSmrg      $run eval "$install_prog \$file \$oldlib" || exit $?
6191266e564dSmrg
6192266e564dSmrg      if test -n "$stripme" && test -n "$old_striplib"; then
6193266e564dSmrg	$show "$old_striplib $oldlib"
6194266e564dSmrg	$run eval "$old_striplib $oldlib" || exit $?
6195266e564dSmrg      fi
6196266e564dSmrg
6197266e564dSmrg      # Do each command in the postinstall commands.
6198266e564dSmrg      cmds=$old_postinstall_cmds
6199266e564dSmrg      save_ifs="$IFS"; IFS='~'
6200266e564dSmrg      for cmd in $cmds; do
6201266e564dSmrg	IFS="$save_ifs"
6202266e564dSmrg	eval cmd=\"$cmd\"
6203266e564dSmrg	$show "$cmd"
6204266e564dSmrg	$run eval "$cmd" || exit $?
6205266e564dSmrg      done
6206266e564dSmrg      IFS="$save_ifs"
6207266e564dSmrg    done
6208266e564dSmrg
6209266e564dSmrg    if test -n "$future_libdirs"; then
6210266e564dSmrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6211266e564dSmrg    fi
6212266e564dSmrg
6213266e564dSmrg    if test -n "$current_libdirs"; then
6214266e564dSmrg      # Maybe just do a dry run.
6215266e564dSmrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
6216266e564dSmrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6217266e564dSmrg    else
6218266e564dSmrg      exit $EXIT_SUCCESS
6219266e564dSmrg    fi
6220266e564dSmrg    ;;
6221266e564dSmrg
6222266e564dSmrg  # libtool finish mode
6223266e564dSmrg  finish)
6224266e564dSmrg    modename="$modename: finish"
6225266e564dSmrg    libdirs="$nonopt"
6226266e564dSmrg    admincmds=
6227266e564dSmrg
6228266e564dSmrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6229266e564dSmrg      for dir
6230266e564dSmrg      do
6231266e564dSmrg	libdirs="$libdirs $dir"
6232266e564dSmrg      done
6233266e564dSmrg
6234266e564dSmrg      for libdir in $libdirs; do
6235266e564dSmrg	if test -n "$finish_cmds"; then
6236266e564dSmrg	  # Do each command in the finish commands.
6237266e564dSmrg	  cmds=$finish_cmds
6238266e564dSmrg	  save_ifs="$IFS"; IFS='~'
6239266e564dSmrg	  for cmd in $cmds; do
6240266e564dSmrg	    IFS="$save_ifs"
6241266e564dSmrg	    eval cmd=\"$cmd\"
6242266e564dSmrg	    $show "$cmd"
6243266e564dSmrg	    $run eval "$cmd" || admincmds="$admincmds
6244266e564dSmrg       $cmd"
6245266e564dSmrg	  done
6246266e564dSmrg	  IFS="$save_ifs"
6247266e564dSmrg	fi
6248266e564dSmrg	if test -n "$finish_eval"; then
6249266e564dSmrg	  # Do the single finish_eval.
6250266e564dSmrg	  eval cmds=\"$finish_eval\"
6251266e564dSmrg	  $run eval "$cmds" || admincmds="$admincmds
6252266e564dSmrg       $cmds"
6253266e564dSmrg	fi
6254266e564dSmrg      done
6255266e564dSmrg    fi
6256266e564dSmrg
6257266e564dSmrg    # Exit here if they wanted silent mode.
6258266e564dSmrg    test "$show" = : && exit $EXIT_SUCCESS
6259266e564dSmrg
6260266e564dSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
6261266e564dSmrg    $echo "Libraries have been installed in:"
6262266e564dSmrg    for libdir in $libdirs; do
6263266e564dSmrg      $echo "   $libdir"
6264266e564dSmrg    done
6265266e564dSmrg    $echo
6266266e564dSmrg    $echo "If you ever happen to want to link against installed libraries"
6267266e564dSmrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6268266e564dSmrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6269266e564dSmrg    $echo "flag during linking and do at least one of the following:"
6270266e564dSmrg    if test -n "$shlibpath_var"; then
6271266e564dSmrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6272266e564dSmrg      $echo "     during execution"
6273266e564dSmrg    fi
6274266e564dSmrg    if test -n "$runpath_var"; then
6275266e564dSmrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6276266e564dSmrg      $echo "     during linking"
6277266e564dSmrg    fi
6278266e564dSmrg    if test -n "$hardcode_libdir_flag_spec"; then
6279266e564dSmrg      libdir=LIBDIR
6280266e564dSmrg      eval flag=\"$hardcode_libdir_flag_spec\"
6281266e564dSmrg
6282266e564dSmrg      $echo "   - use the \`$flag' linker flag"
6283266e564dSmrg    fi
6284266e564dSmrg    if test -n "$admincmds"; then
6285266e564dSmrg      $echo "   - have your system administrator run these commands:$admincmds"
6286266e564dSmrg    fi
6287266e564dSmrg    if test -f /etc/ld.so.conf; then
6288266e564dSmrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6289266e564dSmrg    fi
6290266e564dSmrg    $echo
6291266e564dSmrg    $echo "See any operating system documentation about shared libraries for"
6292266e564dSmrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6293266e564dSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
6294266e564dSmrg    exit $EXIT_SUCCESS
6295266e564dSmrg    ;;
6296266e564dSmrg
6297266e564dSmrg  # libtool execute mode
6298266e564dSmrg  execute)
6299266e564dSmrg    modename="$modename: execute"
6300266e564dSmrg
6301266e564dSmrg    # The first argument is the command name.
6302266e564dSmrg    cmd="$nonopt"
6303266e564dSmrg    if test -z "$cmd"; then
6304266e564dSmrg      $echo "$modename: you must specify a COMMAND" 1>&2
6305266e564dSmrg      $echo "$help"
6306266e564dSmrg      exit $EXIT_FAILURE
6307266e564dSmrg    fi
6308266e564dSmrg
6309266e564dSmrg    # Handle -dlopen flags immediately.
6310266e564dSmrg    for file in $execute_dlfiles; do
6311266e564dSmrg      if test ! -f "$file"; then
6312266e564dSmrg	$echo "$modename: \`$file' is not a file" 1>&2
6313266e564dSmrg	$echo "$help" 1>&2
6314266e564dSmrg	exit $EXIT_FAILURE
6315266e564dSmrg      fi
6316266e564dSmrg
6317266e564dSmrg      dir=
6318266e564dSmrg      case $file in
6319266e564dSmrg      *.la)
6320266e564dSmrg	# Check to see that this really is a libtool archive.
6321266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6322266e564dSmrg	else
6323266e564dSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6324266e564dSmrg	  $echo "$help" 1>&2
6325266e564dSmrg	  exit $EXIT_FAILURE
6326266e564dSmrg	fi
6327266e564dSmrg
6328266e564dSmrg	# Read the libtool library.
6329266e564dSmrg	dlname=
6330266e564dSmrg	library_names=
6331266e564dSmrg
6332266e564dSmrg	# If there is no directory component, then add one.
6333266e564dSmrg	case $file in
6334266e564dSmrg	*/* | *\\*) . $file ;;
6335266e564dSmrg	*) . ./$file ;;
6336266e564dSmrg	esac
6337266e564dSmrg
6338266e564dSmrg	# Skip this library if it cannot be dlopened.
6339266e564dSmrg	if test -z "$dlname"; then
6340266e564dSmrg	  # Warn if it was a shared library.
6341266e564dSmrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6342266e564dSmrg	  continue
6343266e564dSmrg	fi
6344266e564dSmrg
6345266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6346266e564dSmrg	test "X$dir" = "X$file" && dir=.
6347266e564dSmrg
6348266e564dSmrg	if test -f "$dir/$objdir/$dlname"; then
6349266e564dSmrg	  dir="$dir/$objdir"
6350266e564dSmrg	else
6351266e564dSmrg	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6352266e564dSmrg	  exit $EXIT_FAILURE
6353266e564dSmrg	fi
6354266e564dSmrg	;;
6355266e564dSmrg
6356266e564dSmrg      *.lo)
6357266e564dSmrg	# Just add the directory containing the .lo file.
6358266e564dSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6359266e564dSmrg	test "X$dir" = "X$file" && dir=.
6360266e564dSmrg	;;
6361266e564dSmrg
6362266e564dSmrg      *)
6363266e564dSmrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6364266e564dSmrg	continue
6365266e564dSmrg	;;
6366266e564dSmrg      esac
6367266e564dSmrg
6368266e564dSmrg      # Get the absolute pathname.
6369266e564dSmrg      absdir=`cd "$dir" && pwd`
6370266e564dSmrg      test -n "$absdir" && dir="$absdir"
6371266e564dSmrg
6372266e564dSmrg      # Now add the directory to shlibpath_var.
6373266e564dSmrg      if eval "test -z \"\$$shlibpath_var\""; then
6374266e564dSmrg	eval "$shlibpath_var=\"\$dir\""
6375266e564dSmrg      else
6376266e564dSmrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6377266e564dSmrg      fi
6378266e564dSmrg    done
6379266e564dSmrg
6380266e564dSmrg    # This variable tells wrapper scripts just to set shlibpath_var
6381266e564dSmrg    # rather than running their programs.
6382266e564dSmrg    libtool_execute_magic="$magic"
6383266e564dSmrg
6384266e564dSmrg    # Check if any of the arguments is a wrapper script.
6385266e564dSmrg    args=
6386266e564dSmrg    for file
6387266e564dSmrg    do
6388266e564dSmrg      case $file in
6389266e564dSmrg      -*) ;;
6390266e564dSmrg      *)
6391266e564dSmrg	# Do a test to see if this is really a libtool program.
6392266e564dSmrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6393266e564dSmrg	  # If there is no directory component, then add one.
6394266e564dSmrg	  case $file in
6395266e564dSmrg	  */* | *\\*) . $file ;;
6396266e564dSmrg	  *) . ./$file ;;
6397266e564dSmrg	  esac
6398266e564dSmrg
6399266e564dSmrg	  # Transform arg to wrapped name.
6400266e564dSmrg	  file="$progdir/$program"
6401266e564dSmrg	fi
6402266e564dSmrg	;;
6403266e564dSmrg      esac
6404266e564dSmrg      # Quote arguments (to preserve shell metacharacters).
6405266e564dSmrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6406266e564dSmrg      args="$args \"$file\""
6407266e564dSmrg    done
6408266e564dSmrg
6409266e564dSmrg    if test -z "$run"; then
6410266e564dSmrg      if test -n "$shlibpath_var"; then
6411266e564dSmrg	# Export the shlibpath_var.
6412266e564dSmrg	eval "export $shlibpath_var"
6413266e564dSmrg      fi
6414266e564dSmrg
6415266e564dSmrg      # Restore saved environment variables
6416266e564dSmrg      if test "${save_LC_ALL+set}" = set; then
6417266e564dSmrg	LC_ALL="$save_LC_ALL"; export LC_ALL
6418266e564dSmrg      fi
6419266e564dSmrg      if test "${save_LANG+set}" = set; then
6420266e564dSmrg	LANG="$save_LANG"; export LANG
6421266e564dSmrg      fi
6422266e564dSmrg
6423266e564dSmrg      # Now prepare to actually exec the command.
6424266e564dSmrg      exec_cmd="\$cmd$args"
6425266e564dSmrg    else
6426266e564dSmrg      # Display what would be done.
6427266e564dSmrg      if test -n "$shlibpath_var"; then
6428266e564dSmrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6429266e564dSmrg	$echo "export $shlibpath_var"
6430266e564dSmrg      fi
6431266e564dSmrg      $echo "$cmd$args"
6432266e564dSmrg      exit $EXIT_SUCCESS
6433266e564dSmrg    fi
6434266e564dSmrg    ;;
6435266e564dSmrg
6436266e564dSmrg  # libtool clean and uninstall mode
6437266e564dSmrg  clean | uninstall)
6438266e564dSmrg    modename="$modename: $mode"
6439266e564dSmrg    rm="$nonopt"
6440266e564dSmrg    files=
6441266e564dSmrg    rmforce=
6442266e564dSmrg    exit_status=0
6443266e564dSmrg
6444266e564dSmrg    # This variable tells wrapper scripts just to set variables rather
6445266e564dSmrg    # than running their programs.
6446266e564dSmrg    libtool_install_magic="$magic"
6447266e564dSmrg
6448266e564dSmrg    for arg
6449266e564dSmrg    do
6450266e564dSmrg      case $arg in
6451266e564dSmrg      -f) rm="$rm $arg"; rmforce=yes ;;
6452266e564dSmrg      -*) rm="$rm $arg" ;;
6453266e564dSmrg      *) files="$files $arg" ;;
6454266e564dSmrg      esac
6455266e564dSmrg    done
6456266e564dSmrg
6457266e564dSmrg    if test -z "$rm"; then
6458266e564dSmrg      $echo "$modename: you must specify an RM program" 1>&2
6459266e564dSmrg      $echo "$help" 1>&2
6460266e564dSmrg      exit $EXIT_FAILURE
6461266e564dSmrg    fi
6462266e564dSmrg
6463266e564dSmrg    rmdirs=
6464266e564dSmrg
6465266e564dSmrg    origobjdir="$objdir"
6466266e564dSmrg    for file in $files; do
6467266e564dSmrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6468266e564dSmrg      if test "X$dir" = "X$file"; then
6469266e564dSmrg	dir=.
6470266e564dSmrg	objdir="$origobjdir"
6471266e564dSmrg      else
6472266e564dSmrg	objdir="$dir/$origobjdir"
6473266e564dSmrg      fi
6474266e564dSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6475266e564dSmrg      test "$mode" = uninstall && objdir="$dir"
6476266e564dSmrg
6477266e564dSmrg      # Remember objdir for removal later, being careful to avoid duplicates
6478266e564dSmrg      if test "$mode" = clean; then
6479266e564dSmrg	case " $rmdirs " in
6480266e564dSmrg	  *" $objdir "*) ;;
6481266e564dSmrg	  *) rmdirs="$rmdirs $objdir" ;;
6482266e564dSmrg	esac
6483266e564dSmrg      fi
6484266e564dSmrg
6485266e564dSmrg      # Don't error if the file doesn't exist and rm -f was used.
6486266e564dSmrg      if (test -L "$file") >/dev/null 2>&1 \
6487266e564dSmrg	|| (test -h "$file") >/dev/null 2>&1 \
6488266e564dSmrg	|| test -f "$file"; then
6489266e564dSmrg	:
6490266e564dSmrg      elif test -d "$file"; then
6491266e564dSmrg	exit_status=1
6492266e564dSmrg	continue
6493266e564dSmrg      elif test "$rmforce" = yes; then
6494266e564dSmrg	continue
6495266e564dSmrg      fi
6496266e564dSmrg
6497266e564dSmrg      rmfiles="$file"
6498266e564dSmrg
6499266e564dSmrg      case $name in
6500266e564dSmrg      *.la)
6501266e564dSmrg	# Possibly a libtool archive, so verify it.
6502266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6503266e564dSmrg	  . $dir/$name
6504266e564dSmrg
6505266e564dSmrg	  # Delete the libtool libraries and symlinks.
6506266e564dSmrg	  for n in $library_names; do
6507266e564dSmrg	    rmfiles="$rmfiles $objdir/$n"
6508266e564dSmrg	  done
6509266e564dSmrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6510266e564dSmrg
6511266e564dSmrg	  case "$mode" in
6512266e564dSmrg	  clean)
6513266e564dSmrg	    case "  $library_names " in
6514266e564dSmrg	    # "  " in the beginning catches empty $dlname
6515266e564dSmrg	    *" $dlname "*) ;;
6516266e564dSmrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6517266e564dSmrg	    esac
6518266e564dSmrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6519266e564dSmrg	    ;;
6520266e564dSmrg	  uninstall)
6521266e564dSmrg	    if test -n "$library_names"; then
6522266e564dSmrg	      # Do each command in the postuninstall commands.
6523266e564dSmrg	      cmds=$postuninstall_cmds
6524266e564dSmrg	      save_ifs="$IFS"; IFS='~'
6525266e564dSmrg	      for cmd in $cmds; do
6526266e564dSmrg		IFS="$save_ifs"
6527266e564dSmrg		eval cmd=\"$cmd\"
6528266e564dSmrg		$show "$cmd"
6529266e564dSmrg		$run eval "$cmd"
6530266e564dSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6531266e564dSmrg		  exit_status=1
6532266e564dSmrg		fi
6533266e564dSmrg	      done
6534266e564dSmrg	      IFS="$save_ifs"
6535266e564dSmrg	    fi
6536266e564dSmrg
6537266e564dSmrg	    if test -n "$old_library"; then
6538266e564dSmrg	      # Do each command in the old_postuninstall commands.
6539266e564dSmrg	      cmds=$old_postuninstall_cmds
6540266e564dSmrg	      save_ifs="$IFS"; IFS='~'
6541266e564dSmrg	      for cmd in $cmds; do
6542266e564dSmrg		IFS="$save_ifs"
6543266e564dSmrg		eval cmd=\"$cmd\"
6544266e564dSmrg		$show "$cmd"
6545266e564dSmrg		$run eval "$cmd"
6546266e564dSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6547266e564dSmrg		  exit_status=1
6548266e564dSmrg		fi
6549266e564dSmrg	      done
6550266e564dSmrg	      IFS="$save_ifs"
6551266e564dSmrg	    fi
6552266e564dSmrg	    # FIXME: should reinstall the best remaining shared library.
6553266e564dSmrg	    ;;
6554266e564dSmrg	  esac
6555266e564dSmrg	fi
6556266e564dSmrg	;;
6557266e564dSmrg
6558266e564dSmrg      *.lo)
6559266e564dSmrg	# Possibly a libtool object, so verify it.
6560266e564dSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6561266e564dSmrg
6562266e564dSmrg	  # Read the .lo file
6563266e564dSmrg	  . $dir/$name
6564266e564dSmrg
6565266e564dSmrg	  # Add PIC object to the list of files to remove.
6566266e564dSmrg	  if test -n "$pic_object" \
6567266e564dSmrg	     && test "$pic_object" != none; then
6568266e564dSmrg	    rmfiles="$rmfiles $dir/$pic_object"
6569266e564dSmrg	  fi
6570266e564dSmrg
6571266e564dSmrg	  # Add non-PIC object to the list of files to remove.
6572266e564dSmrg	  if test -n "$non_pic_object" \
6573266e564dSmrg	     && test "$non_pic_object" != none; then
6574266e564dSmrg	    rmfiles="$rmfiles $dir/$non_pic_object"
6575266e564dSmrg	  fi
6576266e564dSmrg	fi
6577266e564dSmrg	;;
6578266e564dSmrg
6579266e564dSmrg      *)
6580266e564dSmrg	if test "$mode" = clean ; then
6581266e564dSmrg	  noexename=$name
6582266e564dSmrg	  case $file in
6583266e564dSmrg	  *.exe)
6584266e564dSmrg	    file=`$echo $file|${SED} 's,.exe$,,'`
6585266e564dSmrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6586266e564dSmrg	    # $file with .exe has already been added to rmfiles,
6587266e564dSmrg	    # add $file without .exe
6588266e564dSmrg	    rmfiles="$rmfiles $file"
6589266e564dSmrg	    ;;
6590266e564dSmrg	  esac
6591266e564dSmrg	  # Do a test to see if this is a libtool program.
6592266e564dSmrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6593266e564dSmrg	    relink_command=
6594266e564dSmrg	    . $dir/$noexename
6595266e564dSmrg
6596266e564dSmrg	    # note $name still contains .exe if it was in $file originally
6597266e564dSmrg	    # as does the version of $file that was added into $rmfiles
6598266e564dSmrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6599266e564dSmrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
6600266e564dSmrg	      rmfiles="$rmfiles $objdir/lt-$name"
6601266e564dSmrg	    fi
6602266e564dSmrg	    if test "X$noexename" != "X$name" ; then
6603266e564dSmrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6604266e564dSmrg	    fi
6605266e564dSmrg	  fi
6606266e564dSmrg	fi
6607266e564dSmrg	;;
6608266e564dSmrg      esac
6609266e564dSmrg      $show "$rm $rmfiles"
6610266e564dSmrg      $run $rm $rmfiles || exit_status=1
6611266e564dSmrg    done
6612266e564dSmrg    objdir="$origobjdir"
6613266e564dSmrg
6614266e564dSmrg    # Try to remove the ${objdir}s in the directories where we deleted files
6615266e564dSmrg    for dir in $rmdirs; do
6616266e564dSmrg      if test -d "$dir"; then
6617266e564dSmrg	$show "rmdir $dir"
6618266e564dSmrg	$run rmdir $dir >/dev/null 2>&1
6619266e564dSmrg      fi
6620266e564dSmrg    done
6621266e564dSmrg
6622266e564dSmrg    exit $exit_status
6623266e564dSmrg    ;;
6624266e564dSmrg
6625266e564dSmrg  "")
6626266e564dSmrg    $echo "$modename: you must specify a MODE" 1>&2
6627266e564dSmrg    $echo "$generic_help" 1>&2
6628266e564dSmrg    exit $EXIT_FAILURE
6629266e564dSmrg    ;;
6630266e564dSmrg  esac
6631266e564dSmrg
6632266e564dSmrg  if test -z "$exec_cmd"; then
6633266e564dSmrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6634266e564dSmrg    $echo "$generic_help" 1>&2
6635266e564dSmrg    exit $EXIT_FAILURE
6636266e564dSmrg  fi
6637266e564dSmrgfi # test -z "$show_help"
6638266e564dSmrg
6639266e564dSmrgif test -n "$exec_cmd"; then
6640266e564dSmrg  eval exec $exec_cmd
6641266e564dSmrg  exit $EXIT_FAILURE
6642266e564dSmrgfi
6643266e564dSmrg
6644266e564dSmrg# We need to display help for each of the modes.
6645266e564dSmrgcase $mode in
6646266e564dSmrg"") $echo \
6647266e564dSmrg"Usage: $modename [OPTION]... [MODE-ARG]...
6648266e564dSmrg
6649266e564dSmrgProvide generalized library-building support services.
6650266e564dSmrg
6651266e564dSmrg    --config          show all configuration variables
6652266e564dSmrg    --debug           enable verbose shell tracing
6653266e564dSmrg-n, --dry-run         display commands without modifying any files
6654266e564dSmrg    --features        display basic configuration information and exit
6655266e564dSmrg    --finish          same as \`--mode=finish'
6656266e564dSmrg    --help            display this help message and exit
6657266e564dSmrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6658266e564dSmrg    --quiet           same as \`--silent'
6659266e564dSmrg    --silent          don't print informational messages
6660266e564dSmrg    --tag=TAG         use configuration variables from tag TAG
6661266e564dSmrg    --version         print version information
6662266e564dSmrg
6663266e564dSmrgMODE must be one of the following:
6664266e564dSmrg
6665266e564dSmrg      clean           remove files from the build directory
6666266e564dSmrg      compile         compile a source file into a libtool object
6667266e564dSmrg      execute         automatically set library path, then run a program
6668266e564dSmrg      finish          complete the installation of libtool libraries
6669266e564dSmrg      install         install libraries or executables
6670266e564dSmrg      link            create a library or an executable
6671266e564dSmrg      uninstall       remove libraries from an installed directory
6672266e564dSmrg
6673266e564dSmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6674266e564dSmrga more detailed description of MODE.
6675266e564dSmrg
6676266e564dSmrgReport bugs to <bug-libtool@gnu.org>."
6677266e564dSmrg  exit $EXIT_SUCCESS
6678266e564dSmrg  ;;
6679266e564dSmrg
6680266e564dSmrgclean)
6681266e564dSmrg  $echo \
6682266e564dSmrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6683266e564dSmrg
6684266e564dSmrgRemove files from the build directory.
6685266e564dSmrg
6686266e564dSmrgRM is the name of the program to use to delete files associated with each FILE
6687266e564dSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6688266e564dSmrgto RM.
6689266e564dSmrg
6690266e564dSmrgIf FILE is a libtool library, object or program, all the files associated
6691266e564dSmrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6692266e564dSmrg  ;;
6693266e564dSmrg
6694266e564dSmrgcompile)
6695266e564dSmrg  $echo \
6696266e564dSmrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6697266e564dSmrg
6698266e564dSmrgCompile a source file into a libtool library object.
6699266e564dSmrg
6700266e564dSmrgThis mode accepts the following additional options:
6701266e564dSmrg
6702266e564dSmrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6703266e564dSmrg  -prefer-pic       try to building PIC objects only
6704266e564dSmrg  -prefer-non-pic   try to building non-PIC objects only
6705266e564dSmrg  -static           always build a \`.o' file suitable for static linking
6706266e564dSmrg
6707266e564dSmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6708266e564dSmrgfrom the given SOURCEFILE.
6709266e564dSmrg
6710266e564dSmrgThe output file name is determined by removing the directory component from
6711266e564dSmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
6712266e564dSmrglibrary object suffix, \`.lo'."
6713266e564dSmrg  ;;
6714266e564dSmrg
6715266e564dSmrgexecute)
6716266e564dSmrg  $echo \
6717266e564dSmrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6718266e564dSmrg
6719266e564dSmrgAutomatically set library path, then run a program.
6720266e564dSmrg
6721266e564dSmrgThis mode accepts the following additional options:
6722266e564dSmrg
6723266e564dSmrg  -dlopen FILE      add the directory containing FILE to the library path
6724266e564dSmrg
6725266e564dSmrgThis mode sets the library path environment variable according to \`-dlopen'
6726266e564dSmrgflags.
6727266e564dSmrg
6728266e564dSmrgIf any of the ARGS are libtool executable wrappers, then they are translated
6729266e564dSmrginto their corresponding uninstalled binary, and any of their required library
6730266e564dSmrgdirectories are added to the library path.
6731266e564dSmrg
6732266e564dSmrgThen, COMMAND is executed, with ARGS as arguments."
6733266e564dSmrg  ;;
6734266e564dSmrg
6735266e564dSmrgfinish)
6736266e564dSmrg  $echo \
6737266e564dSmrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6738266e564dSmrg
6739266e564dSmrgComplete the installation of libtool libraries.
6740266e564dSmrg
6741266e564dSmrgEach LIBDIR is a directory that contains libtool libraries.
6742266e564dSmrg
6743266e564dSmrgThe commands that this mode executes may require superuser privileges.  Use
6744266e564dSmrgthe \`--dry-run' option if you just want to see what would be executed."
6745266e564dSmrg  ;;
6746266e564dSmrg
6747266e564dSmrginstall)
6748266e564dSmrg  $echo \
6749266e564dSmrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6750266e564dSmrg
6751266e564dSmrgInstall executables or libraries.
6752266e564dSmrg
6753266e564dSmrgINSTALL-COMMAND is the installation command.  The first component should be
6754266e564dSmrgeither the \`install' or \`cp' program.
6755266e564dSmrg
6756266e564dSmrgThe rest of the components are interpreted as arguments to that command (only
6757266e564dSmrgBSD-compatible install options are recognized)."
6758266e564dSmrg  ;;
6759266e564dSmrg
6760266e564dSmrglink)
6761266e564dSmrg  $echo \
6762266e564dSmrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6763266e564dSmrg
6764266e564dSmrgLink object files or libraries together to form another library, or to
6765266e564dSmrgcreate an executable program.
6766266e564dSmrg
6767266e564dSmrgLINK-COMMAND is a command using the C compiler that you would use to create
6768266e564dSmrga program from several object files.
6769266e564dSmrg
6770266e564dSmrgThe following components of LINK-COMMAND are treated specially:
6771266e564dSmrg
6772266e564dSmrg  -all-static       do not do any dynamic linking at all
6773266e564dSmrg  -avoid-version    do not add a version suffix if possible
6774266e564dSmrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6775266e564dSmrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6776266e564dSmrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6777266e564dSmrg  -export-symbols SYMFILE
6778266e564dSmrg		    try to export only the symbols listed in SYMFILE
6779266e564dSmrg  -export-symbols-regex REGEX
6780266e564dSmrg		    try to export only the symbols matching REGEX
6781266e564dSmrg  -LLIBDIR          search LIBDIR for required installed libraries
6782266e564dSmrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
6783266e564dSmrg  -module           build a library that can dlopened
6784266e564dSmrg  -no-fast-install  disable the fast-install mode
6785266e564dSmrg  -no-install       link a not-installable executable
6786266e564dSmrg  -no-undefined     declare that a library does not refer to external symbols
6787266e564dSmrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6788266e564dSmrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
6789266e564dSmrg  -precious-files-regex REGEX
6790266e564dSmrg                    don't remove output files matching REGEX
6791266e564dSmrg  -release RELEASE  specify package release information
6792266e564dSmrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6793266e564dSmrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6794266e564dSmrg  -static           do not do any dynamic linking of libtool libraries
6795266e564dSmrg  -version-info CURRENT[:REVISION[:AGE]]
6796266e564dSmrg		    specify library version info [each variable defaults to 0]
6797266e564dSmrg
6798266e564dSmrgAll other options (arguments beginning with \`-') are ignored.
6799266e564dSmrg
6800266e564dSmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
6801266e564dSmrgtreated as uninstalled libtool libraries, other files are standard or library
6802266e564dSmrgobject files.
6803266e564dSmrg
6804266e564dSmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6805266e564dSmrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
6806266e564dSmrgrequired, except when creating a convenience library.
6807266e564dSmrg
6808266e564dSmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6809266e564dSmrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
6810266e564dSmrg
6811266e564dSmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6812266e564dSmrgis created, otherwise an executable program is created."
6813266e564dSmrg  ;;
6814266e564dSmrg
6815266e564dSmrguninstall)
6816266e564dSmrg  $echo \
6817266e564dSmrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6818266e564dSmrg
6819266e564dSmrgRemove libraries from an installation directory.
6820266e564dSmrg
6821266e564dSmrgRM is the name of the program to use to delete files associated with each FILE
6822266e564dSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6823266e564dSmrgto RM.
6824266e564dSmrg
6825266e564dSmrgIf FILE is a libtool library, all the files associated with it are deleted.
6826266e564dSmrgOtherwise, only FILE itself is deleted using RM."
6827266e564dSmrg  ;;
6828266e564dSmrg
6829266e564dSmrg*)
6830266e564dSmrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6831266e564dSmrg  $echo "$help" 1>&2
6832266e564dSmrg  exit $EXIT_FAILURE
6833266e564dSmrg  ;;
6834266e564dSmrgesac
6835266e564dSmrg
6836266e564dSmrg$echo
6837266e564dSmrg$echo "Try \`$modename --help' for more information about other modes."
6838266e564dSmrg
6839266e564dSmrgexit $?
6840266e564dSmrg
6841266e564dSmrg# The TAGs below are defined such that we never get into a situation
6842266e564dSmrg# in which we disable both kinds of libraries.  Given conflicting
6843266e564dSmrg# choices, we go for a static library, that is the most portable,
6844266e564dSmrg# since we can't tell whether shared libraries were disabled because
6845266e564dSmrg# the user asked for that or because the platform doesn't support
6846266e564dSmrg# them.  This is particularly important on AIX, because we don't
6847266e564dSmrg# support having both static and shared libraries enabled at the same
6848266e564dSmrg# time on that platform, so we default to a shared-only configuration.
6849266e564dSmrg# If a disable-shared tag is given, we'll fallback to a static-only
6850266e564dSmrg# configuration.  But we'll never go from static-only to shared-only.
6851266e564dSmrg
6852266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6853266e564dSmrgdisable_libs=shared
6854266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-shared
6855266e564dSmrg
6856266e564dSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6857266e564dSmrgdisable_libs=static
6858266e564dSmrg# ### END LIBTOOL TAG CONFIG: disable-static
6859266e564dSmrg
6860266e564dSmrg# Local Variables:
6861266e564dSmrg# mode:shell-script
6862266e564dSmrg# sh-indentation:2
6863266e564dSmrg# End:
6864