ltmain.sh revision 943345d3
1943345d3Smrg# ltmain.sh - Provide generalized library-building support services.
2943345d3Smrg# NOTE: Changing this file will not affect anything until you rerun configure.
3943345d3Smrg#
4943345d3Smrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5943345d3Smrg# Free Software Foundation, Inc.
6943345d3Smrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7943345d3Smrg#
8943345d3Smrg# This program is free software; you can redistribute it and/or modify
9943345d3Smrg# it under the terms of the GNU General Public License as published by
10943345d3Smrg# the Free Software Foundation; either version 2 of the License, or
11943345d3Smrg# (at your option) any later version.
12943345d3Smrg#
13943345d3Smrg# This program is distributed in the hope that it will be useful, but
14943345d3Smrg# WITHOUT ANY WARRANTY; without even the implied warranty of
15943345d3Smrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16943345d3Smrg# General Public License for more details.
17943345d3Smrg#
18943345d3Smrg# You should have received a copy of the GNU General Public License
19943345d3Smrg# along with this program; if not, write to the Free Software
20943345d3Smrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21943345d3Smrg#
22943345d3Smrg# As a special exception to the GNU General Public License, if you
23943345d3Smrg# distribute this file as part of a program that contains a
24943345d3Smrg# configuration script generated by Autoconf, you may include it under
25943345d3Smrg# the same distribution terms that you use for the rest of that program.
26943345d3Smrg
27943345d3Smrgbasename="s,^.*/,,g"
28943345d3Smrg
29943345d3Smrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30943345d3Smrg# is ksh but when the shell is invoked as "sh" and the current value of
31943345d3Smrg# the _XPG environment variable is not equal to 1 (one), the special
32943345d3Smrg# positional parameter $0, within a function call, is the name of the
33943345d3Smrg# function.
34943345d3Smrgprogpath="$0"
35943345d3Smrg
36943345d3Smrg# The name of this program:
37943345d3Smrgprogname=`echo "$progpath" | $SED $basename`
38943345d3Smrgmodename="$progname"
39943345d3Smrg
40943345d3Smrg# Global variables:
41943345d3SmrgEXIT_SUCCESS=0
42943345d3SmrgEXIT_FAILURE=1
43943345d3Smrg
44943345d3SmrgPROGRAM=ltmain.sh
45943345d3SmrgPACKAGE=libtool
46943345d3SmrgVERSION=1.5.22
47943345d3SmrgTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
48943345d3Smrg
49943345d3Smrg# See if we are running on zsh, and set the options which allow our
50943345d3Smrg# commands through without removal of \ escapes.
51943345d3Smrgif test -n "${ZSH_VERSION+set}" ; then
52943345d3Smrg  setopt NO_GLOB_SUBST
53943345d3Smrgfi
54943345d3Smrg
55943345d3Smrg# Check that we have a working $echo.
56943345d3Smrgif test "X$1" = X--no-reexec; then
57943345d3Smrg  # Discard the --no-reexec flag, and continue.
58943345d3Smrg  shift
59943345d3Smrgelif test "X$1" = X--fallback-echo; then
60943345d3Smrg  # Avoid inline document here, it may be left over
61943345d3Smrg  :
62943345d3Smrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63943345d3Smrg  # Yippee, $echo works!
64943345d3Smrg  :
65943345d3Smrgelse
66943345d3Smrg  # Restart under the correct shell, and then maybe $echo will work.
67943345d3Smrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68943345d3Smrgfi
69943345d3Smrg
70943345d3Smrgif test "X$1" = X--fallback-echo; then
71943345d3Smrg  # used as fallback echo
72943345d3Smrg  shift
73943345d3Smrg  cat <<EOF
74943345d3Smrg$*
75943345d3SmrgEOF
76943345d3Smrg  exit $EXIT_SUCCESS
77943345d3Smrgfi
78943345d3Smrg
79943345d3Smrgdefault_mode=
80943345d3Smrghelp="Try \`$progname --help' for more information."
81943345d3Smrgmagic="%%%MAGIC variable%%%"
82943345d3Smrgmkdir="mkdir"
83943345d3Smrgmv="mv -f"
84943345d3Smrgrm="rm -f"
85943345d3Smrg
86943345d3Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
87943345d3Smrg# metacharacters that are still active within double-quoted strings.
88943345d3SmrgXsed="${SED}"' -e 1s/^X//'
89943345d3Smrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90943345d3Smrg# test EBCDIC or ASCII
91943345d3Smrgcase `echo X|tr X '\101'` in
92943345d3Smrg A) # ASCII based system
93943345d3Smrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94943345d3Smrg  SP2NL='tr \040 \012'
95943345d3Smrg  NL2SP='tr \015\012 \040\040'
96943345d3Smrg  ;;
97943345d3Smrg *) # EBCDIC based system
98943345d3Smrg  SP2NL='tr \100 \n'
99943345d3Smrg  NL2SP='tr \r\n \100\100'
100943345d3Smrg  ;;
101943345d3Smrgesac
102943345d3Smrg
103943345d3Smrg# NLS nuisances.
104943345d3Smrg# Only set LANG and LC_ALL to C if already set.
105943345d3Smrg# These must not be set unconditionally because not all systems understand
106943345d3Smrg# e.g. LANG=C (notably SCO).
107943345d3Smrg# We save the old values to restore during execute mode.
108943345d3Smrgif test "${LC_ALL+set}" = set; then
109943345d3Smrg  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110943345d3Smrgfi
111943345d3Smrgif test "${LANG+set}" = set; then
112943345d3Smrg  save_LANG="$LANG"; LANG=C; export LANG
113943345d3Smrgfi
114943345d3Smrg
115943345d3Smrg# Make sure IFS has a sensible default
116943345d3Smrglt_nl='
117943345d3Smrg'
118943345d3SmrgIFS=" 	$lt_nl"
119943345d3Smrg
120943345d3Smrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121943345d3Smrg  $echo "$modename: not configured to build any kind of library" 1>&2
122943345d3Smrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
123943345d3Smrg  exit $EXIT_FAILURE
124943345d3Smrgfi
125943345d3Smrg
126943345d3Smrg# Global variables.
127943345d3Smrgmode=$default_mode
128943345d3Smrgnonopt=
129943345d3Smrgprev=
130943345d3Smrgprevopt=
131943345d3Smrgrun=
132943345d3Smrgshow="$echo"
133943345d3Smrgshow_help=
134943345d3Smrgexecute_dlfiles=
135943345d3Smrgduplicate_deps=no
136943345d3Smrgpreserve_args=
137943345d3Smrglo2o="s/\\.lo\$/.${objext}/"
138943345d3Smrgo2lo="s/\\.${objext}\$/.lo/"
139943345d3Smrg
140943345d3Smrg#####################################
141943345d3Smrg# Shell function definitions:
142943345d3Smrg# This seems to be the best place for them
143943345d3Smrg
144943345d3Smrg# func_mktempdir [string]
145943345d3Smrg# Make a temporary directory that won't clash with other running
146943345d3Smrg# libtool processes, and avoids race conditions if possible.  If
147943345d3Smrg# given, STRING is the basename for that directory.
148943345d3Smrgfunc_mktempdir ()
149943345d3Smrg{
150943345d3Smrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
151943345d3Smrg
152943345d3Smrg    if test "$run" = ":"; then
153943345d3Smrg      # Return a directory name, but don't create it in dry-run mode
154943345d3Smrg      my_tmpdir="${my_template}-$$"
155943345d3Smrg    else
156943345d3Smrg
157943345d3Smrg      # If mktemp works, use that first and foremost
158943345d3Smrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
159943345d3Smrg
160943345d3Smrg      if test ! -d "$my_tmpdir"; then
161943345d3Smrg	# Failing that, at least try and use $RANDOM to avoid a race
162943345d3Smrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
163943345d3Smrg
164943345d3Smrg	save_mktempdir_umask=`umask`
165943345d3Smrg	umask 0077
166943345d3Smrg	$mkdir "$my_tmpdir"
167943345d3Smrg	umask $save_mktempdir_umask
168943345d3Smrg      fi
169943345d3Smrg
170943345d3Smrg      # If we're not in dry-run mode, bomb out on failure
171943345d3Smrg      test -d "$my_tmpdir" || {
172943345d3Smrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
173943345d3Smrg	exit $EXIT_FAILURE
174943345d3Smrg      }
175943345d3Smrg    fi
176943345d3Smrg
177943345d3Smrg    $echo "X$my_tmpdir" | $Xsed
178943345d3Smrg}
179943345d3Smrg
180943345d3Smrg
181943345d3Smrg# func_win32_libid arg
182943345d3Smrg# return the library type of file 'arg'
183943345d3Smrg#
184943345d3Smrg# Need a lot of goo to handle *both* DLLs and import libs
185943345d3Smrg# Has to be a shell function in order to 'eat' the argument
186943345d3Smrg# that is supplied when $file_magic_command is called.
187943345d3Smrgfunc_win32_libid ()
188943345d3Smrg{
189943345d3Smrg  win32_libid_type="unknown"
190943345d3Smrg  win32_fileres=`file -L $1 2>/dev/null`
191943345d3Smrg  case $win32_fileres in
192943345d3Smrg  *ar\ archive\ import\ library*) # definitely import
193943345d3Smrg    win32_libid_type="x86 archive import"
194943345d3Smrg    ;;
195943345d3Smrg  *ar\ archive*) # could be an import, or static
196943345d3Smrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
197943345d3Smrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198943345d3Smrg      win32_nmres=`eval $NM -f posix -A $1 | \
199943345d3Smrg	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200943345d3Smrg      case $win32_nmres in
201943345d3Smrg      import*)  win32_libid_type="x86 archive import";;
202943345d3Smrg      *)        win32_libid_type="x86 archive static";;
203943345d3Smrg      esac
204943345d3Smrg    fi
205943345d3Smrg    ;;
206943345d3Smrg  *DLL*)
207943345d3Smrg    win32_libid_type="x86 DLL"
208943345d3Smrg    ;;
209943345d3Smrg  *executable*) # but shell scripts are "executable" too...
210943345d3Smrg    case $win32_fileres in
211943345d3Smrg    *MS\ Windows\ PE\ Intel*)
212943345d3Smrg      win32_libid_type="x86 DLL"
213943345d3Smrg      ;;
214943345d3Smrg    esac
215943345d3Smrg    ;;
216943345d3Smrg  esac
217943345d3Smrg  $echo $win32_libid_type
218943345d3Smrg}
219943345d3Smrg
220943345d3Smrg
221943345d3Smrg# func_infer_tag arg
222943345d3Smrg# Infer tagged configuration to use if any are available and
223943345d3Smrg# if one wasn't chosen via the "--tag" command line option.
224943345d3Smrg# Only attempt this if the compiler in the base compile
225943345d3Smrg# command doesn't match the default compiler.
226943345d3Smrg# arg is usually of the form 'gcc ...'
227943345d3Smrgfunc_infer_tag ()
228943345d3Smrg{
229943345d3Smrg    if test -n "$available_tags" && test -z "$tagname"; then
230943345d3Smrg      CC_quoted=
231943345d3Smrg      for arg in $CC; do
232943345d3Smrg	case $arg in
233943345d3Smrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
234943345d3Smrg	  arg="\"$arg\""
235943345d3Smrg	  ;;
236943345d3Smrg	esac
237943345d3Smrg	CC_quoted="$CC_quoted $arg"
238943345d3Smrg      done
239943345d3Smrg      case $@ in
240943345d3Smrg      # Blanks in the command may have been stripped by the calling shell,
241943345d3Smrg      # but not from the CC environment variable when configure was run.
242943345d3Smrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
243943345d3Smrg      # Blanks at the start of $base_compile will cause this to fail
244943345d3Smrg      # if we don't check for them as well.
245943345d3Smrg      *)
246943345d3Smrg	for z in $available_tags; do
247943345d3Smrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248943345d3Smrg	    # Evaluate the configuration.
249943345d3Smrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250943345d3Smrg	    CC_quoted=
251943345d3Smrg	    for arg in $CC; do
252943345d3Smrg	    # Double-quote args containing other shell metacharacters.
253943345d3Smrg	    case $arg in
254943345d3Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
255943345d3Smrg	      arg="\"$arg\""
256943345d3Smrg	      ;;
257943345d3Smrg	    esac
258943345d3Smrg	    CC_quoted="$CC_quoted $arg"
259943345d3Smrg	  done
260943345d3Smrg	    case "$@ " in
261943345d3Smrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
262943345d3Smrg	      # The compiler in the base compile command matches
263943345d3Smrg	      # the one in the tagged configuration.
264943345d3Smrg	      # Assume this is the tagged configuration we want.
265943345d3Smrg	      tagname=$z
266943345d3Smrg	      break
267943345d3Smrg	      ;;
268943345d3Smrg	    esac
269943345d3Smrg	  fi
270943345d3Smrg	done
271943345d3Smrg	# If $tagname still isn't set, then no tagged configuration
272943345d3Smrg	# was found and let the user know that the "--tag" command
273943345d3Smrg	# line option must be used.
274943345d3Smrg	if test -z "$tagname"; then
275943345d3Smrg	  $echo "$modename: unable to infer tagged configuration"
276943345d3Smrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
277943345d3Smrg	  exit $EXIT_FAILURE
278943345d3Smrg#        else
279943345d3Smrg#          $echo "$modename: using $tagname tagged configuration"
280943345d3Smrg	fi
281943345d3Smrg	;;
282943345d3Smrg      esac
283943345d3Smrg    fi
284943345d3Smrg}
285943345d3Smrg
286943345d3Smrg
287943345d3Smrg# func_extract_an_archive dir oldlib
288943345d3Smrgfunc_extract_an_archive ()
289943345d3Smrg{
290943345d3Smrg    f_ex_an_ar_dir="$1"; shift
291943345d3Smrg    f_ex_an_ar_oldlib="$1"
292943345d3Smrg
293943345d3Smrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294943345d3Smrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295943345d3Smrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296943345d3Smrg     :
297943345d3Smrg    else
298943345d3Smrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299943345d3Smrg      exit $EXIT_FAILURE
300943345d3Smrg    fi
301943345d3Smrg}
302943345d3Smrg
303943345d3Smrg# func_extract_archives gentop oldlib ...
304943345d3Smrgfunc_extract_archives ()
305943345d3Smrg{
306943345d3Smrg    my_gentop="$1"; shift
307943345d3Smrg    my_oldlibs=${1+"$@"}
308943345d3Smrg    my_oldobjs=""
309943345d3Smrg    my_xlib=""
310943345d3Smrg    my_xabs=""
311943345d3Smrg    my_xdir=""
312943345d3Smrg    my_status=""
313943345d3Smrg
314943345d3Smrg    $show "${rm}r $my_gentop"
315943345d3Smrg    $run ${rm}r "$my_gentop"
316943345d3Smrg    $show "$mkdir $my_gentop"
317943345d3Smrg    $run $mkdir "$my_gentop"
318943345d3Smrg    my_status=$?
319943345d3Smrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320943345d3Smrg      exit $my_status
321943345d3Smrg    fi
322943345d3Smrg
323943345d3Smrg    for my_xlib in $my_oldlibs; do
324943345d3Smrg      # Extract the objects.
325943345d3Smrg      case $my_xlib in
326943345d3Smrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327943345d3Smrg	*) my_xabs=`pwd`"/$my_xlib" ;;
328943345d3Smrg      esac
329943345d3Smrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330943345d3Smrg      my_xdir="$my_gentop/$my_xlib"
331943345d3Smrg
332943345d3Smrg      $show "${rm}r $my_xdir"
333943345d3Smrg      $run ${rm}r "$my_xdir"
334943345d3Smrg      $show "$mkdir $my_xdir"
335943345d3Smrg      $run $mkdir "$my_xdir"
336943345d3Smrg      exit_status=$?
337943345d3Smrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338943345d3Smrg	exit $exit_status
339943345d3Smrg      fi
340943345d3Smrg      case $host in
341943345d3Smrg      *-darwin*)
342943345d3Smrg	$show "Extracting $my_xabs"
343943345d3Smrg	# Do not bother doing anything if just a dry run
344943345d3Smrg	if test -z "$run"; then
345943345d3Smrg	  darwin_orig_dir=`pwd`
346943345d3Smrg	  cd $my_xdir || exit $?
347943345d3Smrg	  darwin_archive=$my_xabs
348943345d3Smrg	  darwin_curdir=`pwd`
349943345d3Smrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350943345d3Smrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351943345d3Smrg	  if test -n "$darwin_arches"; then 
352943345d3Smrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353943345d3Smrg	    darwin_arch=
354943345d3Smrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
355943345d3Smrg	    for darwin_arch in  $darwin_arches ; do
356943345d3Smrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357943345d3Smrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358943345d3Smrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359943345d3Smrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360943345d3Smrg	      cd "$darwin_curdir"
361943345d3Smrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362943345d3Smrg	    done # $darwin_arches
363943345d3Smrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364943345d3Smrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365943345d3Smrg	    darwin_file=
366943345d3Smrg	    darwin_files=
367943345d3Smrg	    for darwin_file in $darwin_filelist; do
368943345d3Smrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369943345d3Smrg	      lipo -create -output "$darwin_file" $darwin_files
370943345d3Smrg	    done # $darwin_filelist
371943345d3Smrg	    ${rm}r unfat-$$
372943345d3Smrg	    cd "$darwin_orig_dir"
373943345d3Smrg	  else
374943345d3Smrg	    cd "$darwin_orig_dir"
375943345d3Smrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
376943345d3Smrg	  fi # $darwin_arches
377943345d3Smrg	fi # $run
378943345d3Smrg	;;
379943345d3Smrg      *)
380943345d3Smrg        func_extract_an_archive "$my_xdir" "$my_xabs"
381943345d3Smrg        ;;
382943345d3Smrg      esac
383943345d3Smrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384943345d3Smrg    done
385943345d3Smrg    func_extract_archives_result="$my_oldobjs"
386943345d3Smrg}
387943345d3Smrg# End of Shell function definitions
388943345d3Smrg#####################################
389943345d3Smrg
390943345d3Smrg# Darwin sucks
391943345d3Smrgeval std_shrext=\"$shrext_cmds\"
392943345d3Smrg
393943345d3Smrgdisable_libs=no
394943345d3Smrg
395943345d3Smrg# Parse our command line options once, thoroughly.
396943345d3Smrgwhile test "$#" -gt 0
397943345d3Smrgdo
398943345d3Smrg  arg="$1"
399943345d3Smrg  shift
400943345d3Smrg
401943345d3Smrg  case $arg in
402943345d3Smrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403943345d3Smrg  *) optarg= ;;
404943345d3Smrg  esac
405943345d3Smrg
406943345d3Smrg  # If the previous option needs an argument, assign it.
407943345d3Smrg  if test -n "$prev"; then
408943345d3Smrg    case $prev in
409943345d3Smrg    execute_dlfiles)
410943345d3Smrg      execute_dlfiles="$execute_dlfiles $arg"
411943345d3Smrg      ;;
412943345d3Smrg    tag)
413943345d3Smrg      tagname="$arg"
414943345d3Smrg      preserve_args="${preserve_args}=$arg"
415943345d3Smrg
416943345d3Smrg      # Check whether tagname contains only valid characters
417943345d3Smrg      case $tagname in
418943345d3Smrg      *[!-_A-Za-z0-9,/]*)
419943345d3Smrg	$echo "$progname: invalid tag name: $tagname" 1>&2
420943345d3Smrg	exit $EXIT_FAILURE
421943345d3Smrg	;;
422943345d3Smrg      esac
423943345d3Smrg
424943345d3Smrg      case $tagname in
425943345d3Smrg      CC)
426943345d3Smrg	# Don't test for the "default" C tag, as we know, it's there, but
427943345d3Smrg	# not specially marked.
428943345d3Smrg	;;
429943345d3Smrg      *)
430943345d3Smrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431943345d3Smrg	  taglist="$taglist $tagname"
432943345d3Smrg	  # Evaluate the configuration.
433943345d3Smrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434943345d3Smrg	else
435943345d3Smrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
436943345d3Smrg	fi
437943345d3Smrg	;;
438943345d3Smrg      esac
439943345d3Smrg      ;;
440943345d3Smrg    *)
441943345d3Smrg      eval "$prev=\$arg"
442943345d3Smrg      ;;
443943345d3Smrg    esac
444943345d3Smrg
445943345d3Smrg    prev=
446943345d3Smrg    prevopt=
447943345d3Smrg    continue
448943345d3Smrg  fi
449943345d3Smrg
450943345d3Smrg  # Have we seen a non-optional argument yet?
451943345d3Smrg  case $arg in
452943345d3Smrg  --help)
453943345d3Smrg    show_help=yes
454943345d3Smrg    ;;
455943345d3Smrg
456943345d3Smrg  --version)
457943345d3Smrg    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458943345d3Smrg    $echo
459943345d3Smrg    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
460943345d3Smrg    $echo "This is free software; see the source for copying conditions.  There is NO"
461943345d3Smrg    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462943345d3Smrg    exit $?
463943345d3Smrg    ;;
464943345d3Smrg
465943345d3Smrg  --config)
466943345d3Smrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467943345d3Smrg    # Now print the configurations for the tags.
468943345d3Smrg    for tagname in $taglist; do
469943345d3Smrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470943345d3Smrg    done
471943345d3Smrg    exit $?
472943345d3Smrg    ;;
473943345d3Smrg
474943345d3Smrg  --debug)
475943345d3Smrg    $echo "$progname: enabling shell trace mode"
476943345d3Smrg    set -x
477943345d3Smrg    preserve_args="$preserve_args $arg"
478943345d3Smrg    ;;
479943345d3Smrg
480943345d3Smrg  --dry-run | -n)
481943345d3Smrg    run=:
482943345d3Smrg    ;;
483943345d3Smrg
484943345d3Smrg  --features)
485943345d3Smrg    $echo "host: $host"
486943345d3Smrg    if test "$build_libtool_libs" = yes; then
487943345d3Smrg      $echo "enable shared libraries"
488943345d3Smrg    else
489943345d3Smrg      $echo "disable shared libraries"
490943345d3Smrg    fi
491943345d3Smrg    if test "$build_old_libs" = yes; then
492943345d3Smrg      $echo "enable static libraries"
493943345d3Smrg    else
494943345d3Smrg      $echo "disable static libraries"
495943345d3Smrg    fi
496943345d3Smrg    exit $?
497943345d3Smrg    ;;
498943345d3Smrg
499943345d3Smrg  --finish) mode="finish" ;;
500943345d3Smrg
501943345d3Smrg  --mode) prevopt="--mode" prev=mode ;;
502943345d3Smrg  --mode=*) mode="$optarg" ;;
503943345d3Smrg
504943345d3Smrg  --preserve-dup-deps) duplicate_deps="yes" ;;
505943345d3Smrg
506943345d3Smrg  --quiet | --silent)
507943345d3Smrg    show=:
508943345d3Smrg    preserve_args="$preserve_args $arg"
509943345d3Smrg    ;;
510943345d3Smrg
511943345d3Smrg  --tag)
512943345d3Smrg    prevopt="--tag"
513943345d3Smrg    prev=tag
514943345d3Smrg    preserve_args="$preserve_args --tag"
515943345d3Smrg    ;;
516943345d3Smrg  --tag=*)
517943345d3Smrg    set tag "$optarg" ${1+"$@"}
518943345d3Smrg    shift
519943345d3Smrg    prev=tag
520943345d3Smrg    preserve_args="$preserve_args --tag"
521943345d3Smrg    ;;
522943345d3Smrg
523943345d3Smrg  -dlopen)
524943345d3Smrg    prevopt="-dlopen"
525943345d3Smrg    prev=execute_dlfiles
526943345d3Smrg    ;;
527943345d3Smrg
528943345d3Smrg  -*)
529943345d3Smrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
530943345d3Smrg    $echo "$help" 1>&2
531943345d3Smrg    exit $EXIT_FAILURE
532943345d3Smrg    ;;
533943345d3Smrg
534943345d3Smrg  *)
535943345d3Smrg    nonopt="$arg"
536943345d3Smrg    break
537943345d3Smrg    ;;
538943345d3Smrg  esac
539943345d3Smrgdone
540943345d3Smrg
541943345d3Smrgif test -n "$prevopt"; then
542943345d3Smrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543943345d3Smrg  $echo "$help" 1>&2
544943345d3Smrg  exit $EXIT_FAILURE
545943345d3Smrgfi
546943345d3Smrg
547943345d3Smrgcase $disable_libs in
548943345d3Smrgno) 
549943345d3Smrg  ;;
550943345d3Smrgshared)
551943345d3Smrg  build_libtool_libs=no
552943345d3Smrg  build_old_libs=yes
553943345d3Smrg  ;;
554943345d3Smrgstatic)
555943345d3Smrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556943345d3Smrg  ;;
557943345d3Smrgesac
558943345d3Smrg
559943345d3Smrg# If this variable is set in any of the actions, the command in it
560943345d3Smrg# will be execed at the end.  This prevents here-documents from being
561943345d3Smrg# left over by shells.
562943345d3Smrgexec_cmd=
563943345d3Smrg
564943345d3Smrgif test -z "$show_help"; then
565943345d3Smrg
566943345d3Smrg  # Infer the operation mode.
567943345d3Smrg  if test -z "$mode"; then
568943345d3Smrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569943345d3Smrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570943345d3Smrg    case $nonopt in
571943345d3Smrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572943345d3Smrg      mode=link
573943345d3Smrg      for arg
574943345d3Smrg      do
575943345d3Smrg	case $arg in
576943345d3Smrg	-c)
577943345d3Smrg	   mode=compile
578943345d3Smrg	   break
579943345d3Smrg	   ;;
580943345d3Smrg	esac
581943345d3Smrg      done
582943345d3Smrg      ;;
583943345d3Smrg    *db | *dbx | *strace | *truss)
584943345d3Smrg      mode=execute
585943345d3Smrg      ;;
586943345d3Smrg    *install*|cp|mv)
587943345d3Smrg      mode=install
588943345d3Smrg      ;;
589943345d3Smrg    *rm)
590943345d3Smrg      mode=uninstall
591943345d3Smrg      ;;
592943345d3Smrg    *)
593943345d3Smrg      # If we have no mode, but dlfiles were specified, then do execute mode.
594943345d3Smrg      test -n "$execute_dlfiles" && mode=execute
595943345d3Smrg
596943345d3Smrg      # Just use the default operation mode.
597943345d3Smrg      if test -z "$mode"; then
598943345d3Smrg	if test -n "$nonopt"; then
599943345d3Smrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600943345d3Smrg	else
601943345d3Smrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602943345d3Smrg	fi
603943345d3Smrg      fi
604943345d3Smrg      ;;
605943345d3Smrg    esac
606943345d3Smrg  fi
607943345d3Smrg
608943345d3Smrg  # Only execute mode is allowed to have -dlopen flags.
609943345d3Smrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
610943345d3Smrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611943345d3Smrg    $echo "$help" 1>&2
612943345d3Smrg    exit $EXIT_FAILURE
613943345d3Smrg  fi
614943345d3Smrg
615943345d3Smrg  # Change the help message to a mode-specific one.
616943345d3Smrg  generic_help="$help"
617943345d3Smrg  help="Try \`$modename --help --mode=$mode' for more information."
618943345d3Smrg
619943345d3Smrg  # These modes are in order of execution frequency so that they run quickly.
620943345d3Smrg  case $mode in
621943345d3Smrg  # libtool compile mode
622943345d3Smrg  compile)
623943345d3Smrg    modename="$modename: compile"
624943345d3Smrg    # Get the compilation command and the source file.
625943345d3Smrg    base_compile=
626943345d3Smrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
627943345d3Smrg    suppress_opt=yes
628943345d3Smrg    suppress_output=
629943345d3Smrg    arg_mode=normal
630943345d3Smrg    libobj=
631943345d3Smrg    later=
632943345d3Smrg
633943345d3Smrg    for arg
634943345d3Smrg    do
635943345d3Smrg      case $arg_mode in
636943345d3Smrg      arg  )
637943345d3Smrg	# do not "continue".  Instead, add this to base_compile
638943345d3Smrg	lastarg="$arg"
639943345d3Smrg	arg_mode=normal
640943345d3Smrg	;;
641943345d3Smrg
642943345d3Smrg      target )
643943345d3Smrg	libobj="$arg"
644943345d3Smrg	arg_mode=normal
645943345d3Smrg	continue
646943345d3Smrg	;;
647943345d3Smrg
648943345d3Smrg      normal )
649943345d3Smrg	# Accept any command-line options.
650943345d3Smrg	case $arg in
651943345d3Smrg	-o)
652943345d3Smrg	  if test -n "$libobj" ; then
653943345d3Smrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
654943345d3Smrg	    exit $EXIT_FAILURE
655943345d3Smrg	  fi
656943345d3Smrg	  arg_mode=target
657943345d3Smrg	  continue
658943345d3Smrg	  ;;
659943345d3Smrg
660943345d3Smrg	-static | -prefer-pic | -prefer-non-pic)
661943345d3Smrg	  later="$later $arg"
662943345d3Smrg	  continue
663943345d3Smrg	  ;;
664943345d3Smrg
665943345d3Smrg	-no-suppress)
666943345d3Smrg	  suppress_opt=no
667943345d3Smrg	  continue
668943345d3Smrg	  ;;
669943345d3Smrg
670943345d3Smrg	-Xcompiler)
671943345d3Smrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
672943345d3Smrg	  continue      #  The current "srcfile" will either be retained or
673943345d3Smrg	  ;;            #  replaced later.  I would guess that would be a bug.
674943345d3Smrg
675943345d3Smrg	-Wc,*)
676943345d3Smrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
677943345d3Smrg	  lastarg=
678943345d3Smrg	  save_ifs="$IFS"; IFS=','
679943345d3Smrg 	  for arg in $args; do
680943345d3Smrg	    IFS="$save_ifs"
681943345d3Smrg
682943345d3Smrg	    # Double-quote args containing other shell metacharacters.
683943345d3Smrg	    # Many Bourne shells cannot handle close brackets correctly
684943345d3Smrg	    # in scan sets, so we specify it separately.
685943345d3Smrg	    case $arg in
686943345d3Smrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
687943345d3Smrg	      arg="\"$arg\""
688943345d3Smrg	      ;;
689943345d3Smrg	    esac
690943345d3Smrg	    lastarg="$lastarg $arg"
691943345d3Smrg	  done
692943345d3Smrg	  IFS="$save_ifs"
693943345d3Smrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
694943345d3Smrg
695943345d3Smrg	  # Add the arguments to base_compile.
696943345d3Smrg	  base_compile="$base_compile $lastarg"
697943345d3Smrg	  continue
698943345d3Smrg	  ;;
699943345d3Smrg
700943345d3Smrg	* )
701943345d3Smrg	  # Accept the current argument as the source file.
702943345d3Smrg	  # The previous "srcfile" becomes the current argument.
703943345d3Smrg	  #
704943345d3Smrg	  lastarg="$srcfile"
705943345d3Smrg	  srcfile="$arg"
706943345d3Smrg	  ;;
707943345d3Smrg	esac  #  case $arg
708943345d3Smrg	;;
709943345d3Smrg      esac    #  case $arg_mode
710943345d3Smrg
711943345d3Smrg      # Aesthetically quote the previous argument.
712943345d3Smrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
713943345d3Smrg
714943345d3Smrg      case $lastarg in
715943345d3Smrg      # Double-quote args containing other shell metacharacters.
716943345d3Smrg      # Many Bourne shells cannot handle close brackets correctly
717943345d3Smrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
718943345d3Smrg      # in scan sets (worked around with variable expansion),
719943345d3Smrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
720943345d3Smrg      # at all, so we specify them separately.
721943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722943345d3Smrg	lastarg="\"$lastarg\""
723943345d3Smrg	;;
724943345d3Smrg      esac
725943345d3Smrg
726943345d3Smrg      base_compile="$base_compile $lastarg"
727943345d3Smrg    done # for arg
728943345d3Smrg
729943345d3Smrg    case $arg_mode in
730943345d3Smrg    arg)
731943345d3Smrg      $echo "$modename: you must specify an argument for -Xcompile"
732943345d3Smrg      exit $EXIT_FAILURE
733943345d3Smrg      ;;
734943345d3Smrg    target)
735943345d3Smrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
736943345d3Smrg      exit $EXIT_FAILURE
737943345d3Smrg      ;;
738943345d3Smrg    *)
739943345d3Smrg      # Get the name of the library object.
740943345d3Smrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
741943345d3Smrg      ;;
742943345d3Smrg    esac
743943345d3Smrg
744943345d3Smrg    # Recognize several different file suffixes.
745943345d3Smrg    # If the user specifies -o file.o, it is replaced with file.lo
746943345d3Smrg    xform='[cCFSifmso]'
747943345d3Smrg    case $libobj in
748943345d3Smrg    *.ada) xform=ada ;;
749943345d3Smrg    *.adb) xform=adb ;;
750943345d3Smrg    *.ads) xform=ads ;;
751943345d3Smrg    *.asm) xform=asm ;;
752943345d3Smrg    *.c++) xform=c++ ;;
753943345d3Smrg    *.cc) xform=cc ;;
754943345d3Smrg    *.ii) xform=ii ;;
755943345d3Smrg    *.class) xform=class ;;
756943345d3Smrg    *.cpp) xform=cpp ;;
757943345d3Smrg    *.cxx) xform=cxx ;;
758943345d3Smrg    *.f90) xform=f90 ;;
759943345d3Smrg    *.for) xform=for ;;
760943345d3Smrg    *.java) xform=java ;;
761943345d3Smrg    esac
762943345d3Smrg
763943345d3Smrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764943345d3Smrg
765943345d3Smrg    case $libobj in
766943345d3Smrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
767943345d3Smrg    *)
768943345d3Smrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
769943345d3Smrg      exit $EXIT_FAILURE
770943345d3Smrg      ;;
771943345d3Smrg    esac
772943345d3Smrg
773943345d3Smrg    func_infer_tag $base_compile
774943345d3Smrg
775943345d3Smrg    for arg in $later; do
776943345d3Smrg      case $arg in
777943345d3Smrg      -static)
778943345d3Smrg	build_old_libs=yes
779943345d3Smrg	continue
780943345d3Smrg	;;
781943345d3Smrg
782943345d3Smrg      -prefer-pic)
783943345d3Smrg	pic_mode=yes
784943345d3Smrg	continue
785943345d3Smrg	;;
786943345d3Smrg
787943345d3Smrg      -prefer-non-pic)
788943345d3Smrg	pic_mode=no
789943345d3Smrg	continue
790943345d3Smrg	;;
791943345d3Smrg      esac
792943345d3Smrg    done
793943345d3Smrg
794943345d3Smrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
795943345d3Smrg    case $qlibobj in
796943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
797943345d3Smrg	qlibobj="\"$qlibobj\"" ;;
798943345d3Smrg    esac
799943345d3Smrg    test "X$libobj" != "X$qlibobj" \
800943345d3Smrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
801943345d3Smrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802943345d3Smrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803943345d3Smrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804943345d3Smrg    if test "X$xdir" = "X$obj"; then
805943345d3Smrg      xdir=
806943345d3Smrg    else
807943345d3Smrg      xdir=$xdir/
808943345d3Smrg    fi
809943345d3Smrg    lobj=${xdir}$objdir/$objname
810943345d3Smrg
811943345d3Smrg    if test -z "$base_compile"; then
812943345d3Smrg      $echo "$modename: you must specify a compilation command" 1>&2
813943345d3Smrg      $echo "$help" 1>&2
814943345d3Smrg      exit $EXIT_FAILURE
815943345d3Smrg    fi
816943345d3Smrg
817943345d3Smrg    # Delete any leftover library objects.
818943345d3Smrg    if test "$build_old_libs" = yes; then
819943345d3Smrg      removelist="$obj $lobj $libobj ${libobj}T"
820943345d3Smrg    else
821943345d3Smrg      removelist="$lobj $libobj ${libobj}T"
822943345d3Smrg    fi
823943345d3Smrg
824943345d3Smrg    $run $rm $removelist
825943345d3Smrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826943345d3Smrg
827943345d3Smrg    # On Cygwin there's no "real" PIC flag so we must build both object types
828943345d3Smrg    case $host_os in
829943345d3Smrg    cygwin* | mingw* | pw32* | os2*)
830943345d3Smrg      pic_mode=default
831943345d3Smrg      ;;
832943345d3Smrg    esac
833943345d3Smrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
834943345d3Smrg      # non-PIC code in shared libraries is not supported
835943345d3Smrg      pic_mode=default
836943345d3Smrg    fi
837943345d3Smrg
838943345d3Smrg    # Calculate the filename of the output object if compiler does
839943345d3Smrg    # not support -o with -c
840943345d3Smrg    if test "$compiler_c_o" = no; then
841943345d3Smrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842943345d3Smrg      lockfile="$output_obj.lock"
843943345d3Smrg      removelist="$removelist $output_obj $lockfile"
844943345d3Smrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845943345d3Smrg    else
846943345d3Smrg      output_obj=
847943345d3Smrg      need_locks=no
848943345d3Smrg      lockfile=
849943345d3Smrg    fi
850943345d3Smrg
851943345d3Smrg    # Lock this critical section if it is needed
852943345d3Smrg    # We use this script file to make the link, it avoids creating a new file
853943345d3Smrg    if test "$need_locks" = yes; then
854943345d3Smrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
855943345d3Smrg	$show "Waiting for $lockfile to be removed"
856943345d3Smrg	sleep 2
857943345d3Smrg      done
858943345d3Smrg    elif test "$need_locks" = warn; then
859943345d3Smrg      if test -f "$lockfile"; then
860943345d3Smrg	$echo "\
861943345d3Smrg*** ERROR, $lockfile exists and contains:
862943345d3Smrg`cat $lockfile 2>/dev/null`
863943345d3Smrg
864943345d3SmrgThis indicates that another process is trying to use the same
865943345d3Smrgtemporary object file, and libtool could not work around it because
866943345d3Smrgyour compiler does not support \`-c' and \`-o' together.  If you
867943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better
868943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better
869943345d3Smrgcompiler."
870943345d3Smrg
871943345d3Smrg	$run $rm $removelist
872943345d3Smrg	exit $EXIT_FAILURE
873943345d3Smrg      fi
874943345d3Smrg      $echo "$srcfile" > "$lockfile"
875943345d3Smrg    fi
876943345d3Smrg
877943345d3Smrg    if test -n "$fix_srcfile_path"; then
878943345d3Smrg      eval srcfile=\"$fix_srcfile_path\"
879943345d3Smrg    fi
880943345d3Smrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
881943345d3Smrg    case $qsrcfile in
882943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
883943345d3Smrg      qsrcfile="\"$qsrcfile\"" ;;
884943345d3Smrg    esac
885943345d3Smrg
886943345d3Smrg    $run $rm "$libobj" "${libobj}T"
887943345d3Smrg
888943345d3Smrg    # Create a libtool object file (analogous to a ".la" file),
889943345d3Smrg    # but don't create it if we're doing a dry run.
890943345d3Smrg    test -z "$run" && cat > ${libobj}T <<EOF
891943345d3Smrg# $libobj - a libtool object file
892943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893943345d3Smrg#
894943345d3Smrg# Please DO NOT delete this file!
895943345d3Smrg# It is necessary for linking the library.
896943345d3Smrg
897943345d3Smrg# Name of the PIC object.
898943345d3SmrgEOF
899943345d3Smrg
900943345d3Smrg    # Only build a PIC object if we are building libtool libraries.
901943345d3Smrg    if test "$build_libtool_libs" = yes; then
902943345d3Smrg      # Without this assignment, base_compile gets emptied.
903943345d3Smrg      fbsd_hideous_sh_bug=$base_compile
904943345d3Smrg
905943345d3Smrg      if test "$pic_mode" != no; then
906943345d3Smrg	command="$base_compile $qsrcfile $pic_flag"
907943345d3Smrg      else
908943345d3Smrg	# Don't build PIC code
909943345d3Smrg	command="$base_compile $qsrcfile"
910943345d3Smrg      fi
911943345d3Smrg
912943345d3Smrg      if test ! -d "${xdir}$objdir"; then
913943345d3Smrg	$show "$mkdir ${xdir}$objdir"
914943345d3Smrg	$run $mkdir ${xdir}$objdir
915943345d3Smrg	exit_status=$?
916943345d3Smrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917943345d3Smrg	  exit $exit_status
918943345d3Smrg	fi
919943345d3Smrg      fi
920943345d3Smrg
921943345d3Smrg      if test -z "$output_obj"; then
922943345d3Smrg	# Place PIC objects in $objdir
923943345d3Smrg	command="$command -o $lobj"
924943345d3Smrg      fi
925943345d3Smrg
926943345d3Smrg      $run $rm "$lobj" "$output_obj"
927943345d3Smrg
928943345d3Smrg      $show "$command"
929943345d3Smrg      if $run eval "$command"; then :
930943345d3Smrg      else
931943345d3Smrg	test -n "$output_obj" && $run $rm $removelist
932943345d3Smrg	exit $EXIT_FAILURE
933943345d3Smrg      fi
934943345d3Smrg
935943345d3Smrg      if test "$need_locks" = warn &&
936943345d3Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937943345d3Smrg	$echo "\
938943345d3Smrg*** ERROR, $lockfile contains:
939943345d3Smrg`cat $lockfile 2>/dev/null`
940943345d3Smrg
941943345d3Smrgbut it should contain:
942943345d3Smrg$srcfile
943943345d3Smrg
944943345d3SmrgThis indicates that another process is trying to use the same
945943345d3Smrgtemporary object file, and libtool could not work around it because
946943345d3Smrgyour compiler does not support \`-c' and \`-o' together.  If you
947943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better
948943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better
949943345d3Smrgcompiler."
950943345d3Smrg
951943345d3Smrg	$run $rm $removelist
952943345d3Smrg	exit $EXIT_FAILURE
953943345d3Smrg      fi
954943345d3Smrg
955943345d3Smrg      # Just move the object if needed, then go on to compile the next one
956943345d3Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957943345d3Smrg	$show "$mv $output_obj $lobj"
958943345d3Smrg	if $run $mv $output_obj $lobj; then :
959943345d3Smrg	else
960943345d3Smrg	  error=$?
961943345d3Smrg	  $run $rm $removelist
962943345d3Smrg	  exit $error
963943345d3Smrg	fi
964943345d3Smrg      fi
965943345d3Smrg
966943345d3Smrg      # Append the name of the PIC object to the libtool object file.
967943345d3Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
968943345d3Smrgpic_object='$objdir/$objname'
969943345d3Smrg
970943345d3SmrgEOF
971943345d3Smrg
972943345d3Smrg      # Allow error messages only from the first compilation.
973943345d3Smrg      if test "$suppress_opt" = yes; then
974943345d3Smrg        suppress_output=' >/dev/null 2>&1'
975943345d3Smrg      fi
976943345d3Smrg    else
977943345d3Smrg      # No PIC object so indicate it doesn't exist in the libtool
978943345d3Smrg      # object file.
979943345d3Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
980943345d3Smrgpic_object=none
981943345d3Smrg
982943345d3SmrgEOF
983943345d3Smrg    fi
984943345d3Smrg
985943345d3Smrg    # Only build a position-dependent object if we build old libraries.
986943345d3Smrg    if test "$build_old_libs" = yes; then
987943345d3Smrg      if test "$pic_mode" != yes; then
988943345d3Smrg	# Don't build PIC code
989943345d3Smrg	command="$base_compile $qsrcfile"
990943345d3Smrg      else
991943345d3Smrg	command="$base_compile $qsrcfile $pic_flag"
992943345d3Smrg      fi
993943345d3Smrg      if test "$compiler_c_o" = yes; then
994943345d3Smrg	command="$command -o $obj"
995943345d3Smrg      fi
996943345d3Smrg
997943345d3Smrg      # Suppress compiler output if we already did a PIC compilation.
998943345d3Smrg      command="$command$suppress_output"
999943345d3Smrg      $run $rm "$obj" "$output_obj"
1000943345d3Smrg      $show "$command"
1001943345d3Smrg      if $run eval "$command"; then :
1002943345d3Smrg      else
1003943345d3Smrg	$run $rm $removelist
1004943345d3Smrg	exit $EXIT_FAILURE
1005943345d3Smrg      fi
1006943345d3Smrg
1007943345d3Smrg      if test "$need_locks" = warn &&
1008943345d3Smrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009943345d3Smrg	$echo "\
1010943345d3Smrg*** ERROR, $lockfile contains:
1011943345d3Smrg`cat $lockfile 2>/dev/null`
1012943345d3Smrg
1013943345d3Smrgbut it should contain:
1014943345d3Smrg$srcfile
1015943345d3Smrg
1016943345d3SmrgThis indicates that another process is trying to use the same
1017943345d3Smrgtemporary object file, and libtool could not work around it because
1018943345d3Smrgyour compiler does not support \`-c' and \`-o' together.  If you
1019943345d3Smrgrepeat this compilation, it may succeed, by chance, but you had better
1020943345d3Smrgavoid parallel builds (make -j) in this platform, or get a better
1021943345d3Smrgcompiler."
1022943345d3Smrg
1023943345d3Smrg	$run $rm $removelist
1024943345d3Smrg	exit $EXIT_FAILURE
1025943345d3Smrg      fi
1026943345d3Smrg
1027943345d3Smrg      # Just move the object if needed
1028943345d3Smrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029943345d3Smrg	$show "$mv $output_obj $obj"
1030943345d3Smrg	if $run $mv $output_obj $obj; then :
1031943345d3Smrg	else
1032943345d3Smrg	  error=$?
1033943345d3Smrg	  $run $rm $removelist
1034943345d3Smrg	  exit $error
1035943345d3Smrg	fi
1036943345d3Smrg      fi
1037943345d3Smrg
1038943345d3Smrg      # Append the name of the non-PIC object the libtool object file.
1039943345d3Smrg      # Only append if the libtool object file exists.
1040943345d3Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
1041943345d3Smrg# Name of the non-PIC object.
1042943345d3Smrgnon_pic_object='$objname'
1043943345d3Smrg
1044943345d3SmrgEOF
1045943345d3Smrg    else
1046943345d3Smrg      # Append the name of the non-PIC object the libtool object file.
1047943345d3Smrg      # Only append if the libtool object file exists.
1048943345d3Smrg      test -z "$run" && cat >> ${libobj}T <<EOF
1049943345d3Smrg# Name of the non-PIC object.
1050943345d3Smrgnon_pic_object=none
1051943345d3Smrg
1052943345d3SmrgEOF
1053943345d3Smrg    fi
1054943345d3Smrg
1055943345d3Smrg    $run $mv "${libobj}T" "${libobj}"
1056943345d3Smrg
1057943345d3Smrg    # Unlock the critical section if it was locked
1058943345d3Smrg    if test "$need_locks" != no; then
1059943345d3Smrg      $run $rm "$lockfile"
1060943345d3Smrg    fi
1061943345d3Smrg
1062943345d3Smrg    exit $EXIT_SUCCESS
1063943345d3Smrg    ;;
1064943345d3Smrg
1065943345d3Smrg  # libtool link mode
1066943345d3Smrg  link | relink)
1067943345d3Smrg    modename="$modename: link"
1068943345d3Smrg    case $host in
1069943345d3Smrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1070943345d3Smrg      # It is impossible to link a dll without this setting, and
1071943345d3Smrg      # we shouldn't force the makefile maintainer to figure out
1072943345d3Smrg      # which system we are compiling for in order to pass an extra
1073943345d3Smrg      # flag for every libtool invocation.
1074943345d3Smrg      # allow_undefined=no
1075943345d3Smrg
1076943345d3Smrg      # FIXME: Unfortunately, there are problems with the above when trying
1077943345d3Smrg      # to make a dll which has undefined symbols, in which case not
1078943345d3Smrg      # even a static library is built.  For now, we need to specify
1079943345d3Smrg      # -no-undefined on the libtool link line when we can be certain
1080943345d3Smrg      # that all symbols are satisfied, otherwise we get a static library.
1081943345d3Smrg      allow_undefined=yes
1082943345d3Smrg      ;;
1083943345d3Smrg    *)
1084943345d3Smrg      allow_undefined=yes
1085943345d3Smrg      ;;
1086943345d3Smrg    esac
1087943345d3Smrg    libtool_args="$nonopt"
1088943345d3Smrg    base_compile="$nonopt $@"
1089943345d3Smrg    compile_command="$nonopt"
1090943345d3Smrg    finalize_command="$nonopt"
1091943345d3Smrg
1092943345d3Smrg    compile_rpath=
1093943345d3Smrg    finalize_rpath=
1094943345d3Smrg    compile_shlibpath=
1095943345d3Smrg    finalize_shlibpath=
1096943345d3Smrg    convenience=
1097943345d3Smrg    old_convenience=
1098943345d3Smrg    deplibs=
1099943345d3Smrg    old_deplibs=
1100943345d3Smrg    compiler_flags=
1101943345d3Smrg    linker_flags=
1102943345d3Smrg    dllsearchpath=
1103943345d3Smrg    lib_search_path=`pwd`
1104943345d3Smrg    inst_prefix_dir=
1105943345d3Smrg
1106943345d3Smrg    avoid_version=no
1107943345d3Smrg    dlfiles=
1108943345d3Smrg    dlprefiles=
1109943345d3Smrg    dlself=no
1110943345d3Smrg    export_dynamic=no
1111943345d3Smrg    export_symbols=
1112943345d3Smrg    export_symbols_regex=
1113943345d3Smrg    generated=
1114943345d3Smrg    libobjs=
1115943345d3Smrg    ltlibs=
1116943345d3Smrg    module=no
1117943345d3Smrg    no_install=no
1118943345d3Smrg    objs=
1119943345d3Smrg    non_pic_objects=
1120943345d3Smrg    notinst_path= # paths that contain not-installed libtool libraries
1121943345d3Smrg    precious_files_regex=
1122943345d3Smrg    prefer_static_libs=no
1123943345d3Smrg    preload=no
1124943345d3Smrg    prev=
1125943345d3Smrg    prevarg=
1126943345d3Smrg    release=
1127943345d3Smrg    rpath=
1128943345d3Smrg    xrpath=
1129943345d3Smrg    perm_rpath=
1130943345d3Smrg    temp_rpath=
1131943345d3Smrg    thread_safe=no
1132943345d3Smrg    vinfo=
1133943345d3Smrg    vinfo_number=no
1134943345d3Smrg
1135943345d3Smrg    func_infer_tag $base_compile
1136943345d3Smrg
1137943345d3Smrg    # We need to know -static, to get the right output filenames.
1138943345d3Smrg    for arg
1139943345d3Smrg    do
1140943345d3Smrg      case $arg in
1141943345d3Smrg      -all-static | -static)
1142943345d3Smrg	if test "X$arg" = "X-all-static"; then
1143943345d3Smrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144943345d3Smrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1145943345d3Smrg	  fi
1146943345d3Smrg	  if test -n "$link_static_flag"; then
1147943345d3Smrg	    dlopen_self=$dlopen_self_static
1148943345d3Smrg	  fi
1149943345d3Smrg	  prefer_static_libs=yes
1150943345d3Smrg	else
1151943345d3Smrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152943345d3Smrg	    dlopen_self=$dlopen_self_static
1153943345d3Smrg	  fi
1154943345d3Smrg	  prefer_static_libs=built
1155943345d3Smrg	fi
1156943345d3Smrg	build_libtool_libs=no
1157943345d3Smrg	build_old_libs=yes
1158943345d3Smrg	break
1159943345d3Smrg	;;
1160943345d3Smrg      esac
1161943345d3Smrg    done
1162943345d3Smrg
1163943345d3Smrg    # See if our shared archives depend on static archives.
1164943345d3Smrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1165943345d3Smrg
1166943345d3Smrg    # Go through the arguments, transforming them on the way.
1167943345d3Smrg    while test "$#" -gt 0; do
1168943345d3Smrg      arg="$1"
1169943345d3Smrg      shift
1170943345d3Smrg      case $arg in
1171943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1172943345d3Smrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1173943345d3Smrg	;;
1174943345d3Smrg      *) qarg=$arg ;;
1175943345d3Smrg      esac
1176943345d3Smrg      libtool_args="$libtool_args $qarg"
1177943345d3Smrg
1178943345d3Smrg      # If the previous option needs an argument, assign it.
1179943345d3Smrg      if test -n "$prev"; then
1180943345d3Smrg	case $prev in
1181943345d3Smrg	output)
1182943345d3Smrg	  compile_command="$compile_command @OUTPUT@"
1183943345d3Smrg	  finalize_command="$finalize_command @OUTPUT@"
1184943345d3Smrg	  ;;
1185943345d3Smrg	esac
1186943345d3Smrg
1187943345d3Smrg	case $prev in
1188943345d3Smrg	dlfiles|dlprefiles)
1189943345d3Smrg	  if test "$preload" = no; then
1190943345d3Smrg	    # Add the symbol object into the linking commands.
1191943345d3Smrg	    compile_command="$compile_command @SYMFILE@"
1192943345d3Smrg	    finalize_command="$finalize_command @SYMFILE@"
1193943345d3Smrg	    preload=yes
1194943345d3Smrg	  fi
1195943345d3Smrg	  case $arg in
1196943345d3Smrg	  *.la | *.lo) ;;  # We handle these cases below.
1197943345d3Smrg	  force)
1198943345d3Smrg	    if test "$dlself" = no; then
1199943345d3Smrg	      dlself=needless
1200943345d3Smrg	      export_dynamic=yes
1201943345d3Smrg	    fi
1202943345d3Smrg	    prev=
1203943345d3Smrg	    continue
1204943345d3Smrg	    ;;
1205943345d3Smrg	  self)
1206943345d3Smrg	    if test "$prev" = dlprefiles; then
1207943345d3Smrg	      dlself=yes
1208943345d3Smrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1209943345d3Smrg	      dlself=yes
1210943345d3Smrg	    else
1211943345d3Smrg	      dlself=needless
1212943345d3Smrg	      export_dynamic=yes
1213943345d3Smrg	    fi
1214943345d3Smrg	    prev=
1215943345d3Smrg	    continue
1216943345d3Smrg	    ;;
1217943345d3Smrg	  *)
1218943345d3Smrg	    if test "$prev" = dlfiles; then
1219943345d3Smrg	      dlfiles="$dlfiles $arg"
1220943345d3Smrg	    else
1221943345d3Smrg	      dlprefiles="$dlprefiles $arg"
1222943345d3Smrg	    fi
1223943345d3Smrg	    prev=
1224943345d3Smrg	    continue
1225943345d3Smrg	    ;;
1226943345d3Smrg	  esac
1227943345d3Smrg	  ;;
1228943345d3Smrg	expsyms)
1229943345d3Smrg	  export_symbols="$arg"
1230943345d3Smrg	  if test ! -f "$arg"; then
1231943345d3Smrg	    $echo "$modename: symbol file \`$arg' does not exist"
1232943345d3Smrg	    exit $EXIT_FAILURE
1233943345d3Smrg	  fi
1234943345d3Smrg	  prev=
1235943345d3Smrg	  continue
1236943345d3Smrg	  ;;
1237943345d3Smrg	expsyms_regex)
1238943345d3Smrg	  export_symbols_regex="$arg"
1239943345d3Smrg	  prev=
1240943345d3Smrg	  continue
1241943345d3Smrg	  ;;
1242943345d3Smrg	inst_prefix)
1243943345d3Smrg	  inst_prefix_dir="$arg"
1244943345d3Smrg	  prev=
1245943345d3Smrg	  continue
1246943345d3Smrg	  ;;
1247943345d3Smrg	precious_regex)
1248943345d3Smrg	  precious_files_regex="$arg"
1249943345d3Smrg	  prev=
1250943345d3Smrg	  continue
1251943345d3Smrg	  ;;
1252943345d3Smrg	release)
1253943345d3Smrg	  release="-$arg"
1254943345d3Smrg	  prev=
1255943345d3Smrg	  continue
1256943345d3Smrg	  ;;
1257943345d3Smrg	objectlist)
1258943345d3Smrg	  if test -f "$arg"; then
1259943345d3Smrg	    save_arg=$arg
1260943345d3Smrg	    moreargs=
1261943345d3Smrg	    for fil in `cat $save_arg`
1262943345d3Smrg	    do
1263943345d3Smrg#	      moreargs="$moreargs $fil"
1264943345d3Smrg	      arg=$fil
1265943345d3Smrg	      # A libtool-controlled object.
1266943345d3Smrg
1267943345d3Smrg	      # Check to see that this really is a libtool object.
1268943345d3Smrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1269943345d3Smrg		pic_object=
1270943345d3Smrg		non_pic_object=
1271943345d3Smrg
1272943345d3Smrg		# Read the .lo file
1273943345d3Smrg		# If there is no directory component, then add one.
1274943345d3Smrg		case $arg in
1275943345d3Smrg		*/* | *\\*) . $arg ;;
1276943345d3Smrg		*) . ./$arg ;;
1277943345d3Smrg		esac
1278943345d3Smrg
1279943345d3Smrg		if test -z "$pic_object" || \
1280943345d3Smrg		   test -z "$non_pic_object" ||
1281943345d3Smrg		   test "$pic_object" = none && \
1282943345d3Smrg		   test "$non_pic_object" = none; then
1283943345d3Smrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1284943345d3Smrg		  exit $EXIT_FAILURE
1285943345d3Smrg		fi
1286943345d3Smrg
1287943345d3Smrg		# Extract subdirectory from the argument.
1288943345d3Smrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1289943345d3Smrg		if test "X$xdir" = "X$arg"; then
1290943345d3Smrg		  xdir=
1291943345d3Smrg		else
1292943345d3Smrg		  xdir="$xdir/"
1293943345d3Smrg		fi
1294943345d3Smrg
1295943345d3Smrg		if test "$pic_object" != none; then
1296943345d3Smrg		  # Prepend the subdirectory the object is found in.
1297943345d3Smrg		  pic_object="$xdir$pic_object"
1298943345d3Smrg
1299943345d3Smrg		  if test "$prev" = dlfiles; then
1300943345d3Smrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1301943345d3Smrg		      dlfiles="$dlfiles $pic_object"
1302943345d3Smrg		      prev=
1303943345d3Smrg		      continue
1304943345d3Smrg		    else
1305943345d3Smrg		      # If libtool objects are unsupported, then we need to preload.
1306943345d3Smrg		      prev=dlprefiles
1307943345d3Smrg		    fi
1308943345d3Smrg		  fi
1309943345d3Smrg
1310943345d3Smrg		  # CHECK ME:  I think I busted this.  -Ossama
1311943345d3Smrg		  if test "$prev" = dlprefiles; then
1312943345d3Smrg		    # Preload the old-style object.
1313943345d3Smrg		    dlprefiles="$dlprefiles $pic_object"
1314943345d3Smrg		    prev=
1315943345d3Smrg		  fi
1316943345d3Smrg
1317943345d3Smrg		  # A PIC object.
1318943345d3Smrg		  libobjs="$libobjs $pic_object"
1319943345d3Smrg		  arg="$pic_object"
1320943345d3Smrg		fi
1321943345d3Smrg
1322943345d3Smrg		# Non-PIC object.
1323943345d3Smrg		if test "$non_pic_object" != none; then
1324943345d3Smrg		  # Prepend the subdirectory the object is found in.
1325943345d3Smrg		  non_pic_object="$xdir$non_pic_object"
1326943345d3Smrg
1327943345d3Smrg		  # A standard non-PIC object
1328943345d3Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1329943345d3Smrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
1330943345d3Smrg		    arg="$non_pic_object"
1331943345d3Smrg		  fi
1332943345d3Smrg		else
1333943345d3Smrg		  # If the PIC object exists, use it instead.
1334943345d3Smrg		  # $xdir was prepended to $pic_object above.
1335943345d3Smrg		  non_pic_object="$pic_object"
1336943345d3Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1337943345d3Smrg		fi
1338943345d3Smrg	      else
1339943345d3Smrg		# Only an error if not doing a dry-run.
1340943345d3Smrg		if test -z "$run"; then
1341943345d3Smrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342943345d3Smrg		  exit $EXIT_FAILURE
1343943345d3Smrg		else
1344943345d3Smrg		  # Dry-run case.
1345943345d3Smrg
1346943345d3Smrg		  # Extract subdirectory from the argument.
1347943345d3Smrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1348943345d3Smrg		  if test "X$xdir" = "X$arg"; then
1349943345d3Smrg		    xdir=
1350943345d3Smrg		  else
1351943345d3Smrg		    xdir="$xdir/"
1352943345d3Smrg		  fi
1353943345d3Smrg
1354943345d3Smrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1355943345d3Smrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1356943345d3Smrg		  libobjs="$libobjs $pic_object"
1357943345d3Smrg		  non_pic_objects="$non_pic_objects $non_pic_object"
1358943345d3Smrg		fi
1359943345d3Smrg	      fi
1360943345d3Smrg	    done
1361943345d3Smrg	  else
1362943345d3Smrg	    $echo "$modename: link input file \`$save_arg' does not exist"
1363943345d3Smrg	    exit $EXIT_FAILURE
1364943345d3Smrg	  fi
1365943345d3Smrg	  arg=$save_arg
1366943345d3Smrg	  prev=
1367943345d3Smrg	  continue
1368943345d3Smrg	  ;;
1369943345d3Smrg	rpath | xrpath)
1370943345d3Smrg	  # We need an absolute path.
1371943345d3Smrg	  case $arg in
1372943345d3Smrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1373943345d3Smrg	  *)
1374943345d3Smrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1375943345d3Smrg	    exit $EXIT_FAILURE
1376943345d3Smrg	    ;;
1377943345d3Smrg	  esac
1378943345d3Smrg	  if test "$prev" = rpath; then
1379943345d3Smrg	    case "$rpath " in
1380943345d3Smrg	    *" $arg "*) ;;
1381943345d3Smrg	    *) rpath="$rpath $arg" ;;
1382943345d3Smrg	    esac
1383943345d3Smrg	  else
1384943345d3Smrg	    case "$xrpath " in
1385943345d3Smrg	    *" $arg "*) ;;
1386943345d3Smrg	    *) xrpath="$xrpath $arg" ;;
1387943345d3Smrg	    esac
1388943345d3Smrg	  fi
1389943345d3Smrg	  prev=
1390943345d3Smrg	  continue
1391943345d3Smrg	  ;;
1392943345d3Smrg	xcompiler)
1393943345d3Smrg	  compiler_flags="$compiler_flags $qarg"
1394943345d3Smrg	  prev=
1395943345d3Smrg	  compile_command="$compile_command $qarg"
1396943345d3Smrg	  finalize_command="$finalize_command $qarg"
1397943345d3Smrg	  continue
1398943345d3Smrg	  ;;
1399943345d3Smrg	xlinker)
1400943345d3Smrg	  linker_flags="$linker_flags $qarg"
1401943345d3Smrg	  compiler_flags="$compiler_flags $wl$qarg"
1402943345d3Smrg	  prev=
1403943345d3Smrg	  compile_command="$compile_command $wl$qarg"
1404943345d3Smrg	  finalize_command="$finalize_command $wl$qarg"
1405943345d3Smrg	  continue
1406943345d3Smrg	  ;;
1407943345d3Smrg	xcclinker)
1408943345d3Smrg	  linker_flags="$linker_flags $qarg"
1409943345d3Smrg	  compiler_flags="$compiler_flags $qarg"
1410943345d3Smrg	  prev=
1411943345d3Smrg	  compile_command="$compile_command $qarg"
1412943345d3Smrg	  finalize_command="$finalize_command $qarg"
1413943345d3Smrg	  continue
1414943345d3Smrg	  ;;
1415943345d3Smrg	shrext)
1416943345d3Smrg  	  shrext_cmds="$arg"
1417943345d3Smrg	  prev=
1418943345d3Smrg	  continue
1419943345d3Smrg	  ;;
1420943345d3Smrg	darwin_framework|darwin_framework_skip)
1421943345d3Smrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1422943345d3Smrg	  compile_command="$compile_command $arg"
1423943345d3Smrg	  finalize_command="$finalize_command $arg"
1424943345d3Smrg	  prev=
1425943345d3Smrg	  continue
1426943345d3Smrg	  ;;
1427943345d3Smrg	*)
1428943345d3Smrg	  eval "$prev=\"\$arg\""
1429943345d3Smrg	  prev=
1430943345d3Smrg	  continue
1431943345d3Smrg	  ;;
1432943345d3Smrg	esac
1433943345d3Smrg      fi # test -n "$prev"
1434943345d3Smrg
1435943345d3Smrg      prevarg="$arg"
1436943345d3Smrg
1437943345d3Smrg      case $arg in
1438943345d3Smrg      -all-static)
1439943345d3Smrg	if test -n "$link_static_flag"; then
1440943345d3Smrg	  compile_command="$compile_command $link_static_flag"
1441943345d3Smrg	  finalize_command="$finalize_command $link_static_flag"
1442943345d3Smrg	fi
1443943345d3Smrg	continue
1444943345d3Smrg	;;
1445943345d3Smrg
1446943345d3Smrg      -allow-undefined)
1447943345d3Smrg	# FIXME: remove this flag sometime in the future.
1448943345d3Smrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1449943345d3Smrg	continue
1450943345d3Smrg	;;
1451943345d3Smrg
1452943345d3Smrg      -avoid-version)
1453943345d3Smrg	avoid_version=yes
1454943345d3Smrg	continue
1455943345d3Smrg	;;
1456943345d3Smrg
1457943345d3Smrg      -dlopen)
1458943345d3Smrg	prev=dlfiles
1459943345d3Smrg	continue
1460943345d3Smrg	;;
1461943345d3Smrg
1462943345d3Smrg      -dlpreopen)
1463943345d3Smrg	prev=dlprefiles
1464943345d3Smrg	continue
1465943345d3Smrg	;;
1466943345d3Smrg
1467943345d3Smrg      -export-dynamic)
1468943345d3Smrg	export_dynamic=yes
1469943345d3Smrg	continue
1470943345d3Smrg	;;
1471943345d3Smrg
1472943345d3Smrg      -export-symbols | -export-symbols-regex)
1473943345d3Smrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474943345d3Smrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1475943345d3Smrg	  exit $EXIT_FAILURE
1476943345d3Smrg	fi
1477943345d3Smrg	if test "X$arg" = "X-export-symbols"; then
1478943345d3Smrg	  prev=expsyms
1479943345d3Smrg	else
1480943345d3Smrg	  prev=expsyms_regex
1481943345d3Smrg	fi
1482943345d3Smrg	continue
1483943345d3Smrg	;;
1484943345d3Smrg
1485943345d3Smrg      -framework|-arch|-isysroot)
1486943345d3Smrg	case " $CC " in
1487943345d3Smrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1488943345d3Smrg		prev=darwin_framework_skip ;;
1489943345d3Smrg	  *) compiler_flags="$compiler_flags $arg"
1490943345d3Smrg	     prev=darwin_framework ;;
1491943345d3Smrg	esac
1492943345d3Smrg	compile_command="$compile_command $arg"
1493943345d3Smrg	finalize_command="$finalize_command $arg"
1494943345d3Smrg	continue
1495943345d3Smrg	;;
1496943345d3Smrg
1497943345d3Smrg      -inst-prefix-dir)
1498943345d3Smrg	prev=inst_prefix
1499943345d3Smrg	continue
1500943345d3Smrg	;;
1501943345d3Smrg
1502943345d3Smrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1503943345d3Smrg      # so, if we see these flags be careful not to treat them like -L
1504943345d3Smrg      -L[A-Z][A-Z]*:*)
1505943345d3Smrg	case $with_gcc/$host in
1506943345d3Smrg	no/*-*-irix* | /*-*-irix*)
1507943345d3Smrg	  compile_command="$compile_command $arg"
1508943345d3Smrg	  finalize_command="$finalize_command $arg"
1509943345d3Smrg	  ;;
1510943345d3Smrg	esac
1511943345d3Smrg	continue
1512943345d3Smrg	;;
1513943345d3Smrg
1514943345d3Smrg      -L*)
1515943345d3Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1516943345d3Smrg	# We need an absolute path.
1517943345d3Smrg	case $dir in
1518943345d3Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1519943345d3Smrg	*)
1520943345d3Smrg	  absdir=`cd "$dir" && pwd`
1521943345d3Smrg	  if test -z "$absdir"; then
1522943345d3Smrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1523943345d3Smrg	    absdir="$dir"
1524943345d3Smrg	    notinst_path="$notinst_path $dir"
1525943345d3Smrg	  fi
1526943345d3Smrg	  dir="$absdir"
1527943345d3Smrg	  ;;
1528943345d3Smrg	esac
1529943345d3Smrg	case "$deplibs " in
1530943345d3Smrg	*" -L$dir "*) ;;
1531943345d3Smrg	*)
1532943345d3Smrg	  deplibs="$deplibs -L$dir"
1533943345d3Smrg	  lib_search_path="$lib_search_path $dir"
1534943345d3Smrg	  ;;
1535943345d3Smrg	esac
1536943345d3Smrg	case $host in
1537943345d3Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1538943345d3Smrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539943345d3Smrg	  case :$dllsearchpath: in
1540943345d3Smrg	  *":$dir:"*) ;;
1541943345d3Smrg	  *) dllsearchpath="$dllsearchpath:$dir";;
1542943345d3Smrg	  esac
1543943345d3Smrg	  case :$dllsearchpath: in
1544943345d3Smrg	  *":$testbindir:"*) ;;
1545943345d3Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1546943345d3Smrg	  esac
1547943345d3Smrg	  ;;
1548943345d3Smrg	esac
1549943345d3Smrg	continue
1550943345d3Smrg	;;
1551943345d3Smrg
1552943345d3Smrg      -l*)
1553943345d3Smrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554943345d3Smrg	  case $host in
1555943345d3Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1556943345d3Smrg	    # These systems don't actually have a C or math library (as such)
1557943345d3Smrg	    continue
1558943345d3Smrg	    ;;
1559943345d3Smrg	  *-*-os2*)
1560943345d3Smrg	    # These systems don't actually have a C library (as such)
1561943345d3Smrg	    test "X$arg" = "X-lc" && continue
1562943345d3Smrg	    ;;
1563943345d3Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1564943345d3Smrg	    # Do not include libc due to us having libc/libc_r.
1565943345d3Smrg	    test "X$arg" = "X-lc" && continue
1566943345d3Smrg	    ;;
1567943345d3Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
1568943345d3Smrg	    # Rhapsody C and math libraries are in the System framework
1569943345d3Smrg	    deplibs="$deplibs -framework System"
1570943345d3Smrg	    continue
1571943345d3Smrg	    ;;
1572943345d3Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
1573943345d3Smrg	    # Causes problems with __ctype
1574943345d3Smrg	    test "X$arg" = "X-lc" && continue
1575943345d3Smrg	    ;;
1576943345d3Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1577943345d3Smrg	    # Compiler inserts libc in the correct place for threads to work
1578943345d3Smrg	    test "X$arg" = "X-lc" && continue
1579943345d3Smrg	    ;;
1580943345d3Smrg	  esac
1581943345d3Smrg	elif test "X$arg" = "X-lc_r"; then
1582943345d3Smrg	 case $host in
1583943345d3Smrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1584943345d3Smrg	   # Do not include libc_r directly, use -pthread flag.
1585943345d3Smrg	   continue
1586943345d3Smrg	   ;;
1587943345d3Smrg	 esac
1588943345d3Smrg	fi
1589943345d3Smrg	deplibs="$deplibs $arg"
1590943345d3Smrg	continue
1591943345d3Smrg	;;
1592943345d3Smrg
1593943345d3Smrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594943345d3Smrg      # classes, name mangling, and exception handling.
1595943345d3Smrg      -model)
1596943345d3Smrg	compile_command="$compile_command $arg"
1597943345d3Smrg	compiler_flags="$compiler_flags $arg"
1598943345d3Smrg	finalize_command="$finalize_command $arg"
1599943345d3Smrg	prev=xcompiler
1600943345d3Smrg	continue
1601943345d3Smrg	;;
1602943345d3Smrg
1603943345d3Smrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1604943345d3Smrg	compiler_flags="$compiler_flags $arg"
1605943345d3Smrg	compile_command="$compile_command $arg"
1606943345d3Smrg	finalize_command="$finalize_command $arg"
1607943345d3Smrg	continue
1608943345d3Smrg	;;
1609943345d3Smrg
1610943345d3Smrg      -module)
1611943345d3Smrg	module=yes
1612943345d3Smrg	continue
1613943345d3Smrg	;;
1614943345d3Smrg
1615943345d3Smrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1616943345d3Smrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1617943345d3Smrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618943345d3Smrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
1619943345d3Smrg      # -q* pass through compiler args for the IBM compiler
1620943345d3Smrg      # -m* pass through architecture-specific compiler args for GCC
1621943345d3Smrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
1622943345d3Smrg      # compiler args for GCC
1623943345d3Smrg      # -pg pass through profiling flag for GCC
1624943345d3Smrg      # @file GCC response files
1625943345d3Smrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626943345d3Smrg      -t[45]*|-txscale*|@*)
1627943345d3Smrg
1628943345d3Smrg	# Unknown arguments in both finalize_command and compile_command need
1629943345d3Smrg	# to be aesthetically quoted because they are evaled later.
1630943345d3Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631943345d3Smrg	case $arg in
1632943345d3Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1633943345d3Smrg	  arg="\"$arg\""
1634943345d3Smrg	  ;;
1635943345d3Smrg	esac
1636943345d3Smrg        compile_command="$compile_command $arg"
1637943345d3Smrg        finalize_command="$finalize_command $arg"
1638943345d3Smrg        compiler_flags="$compiler_flags $arg"
1639943345d3Smrg        continue
1640943345d3Smrg        ;;
1641943345d3Smrg
1642943345d3Smrg      -shrext)
1643943345d3Smrg	prev=shrext
1644943345d3Smrg	continue
1645943345d3Smrg	;;
1646943345d3Smrg
1647943345d3Smrg      -no-fast-install)
1648943345d3Smrg	fast_install=no
1649943345d3Smrg	continue
1650943345d3Smrg	;;
1651943345d3Smrg
1652943345d3Smrg      -no-install)
1653943345d3Smrg	case $host in
1654943345d3Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1655943345d3Smrg	  # The PATH hackery in wrapper scripts is required on Windows
1656943345d3Smrg	  # in order for the loader to find any dlls it needs.
1657943345d3Smrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1658943345d3Smrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1659943345d3Smrg	  fast_install=no
1660943345d3Smrg	  ;;
1661943345d3Smrg	*) no_install=yes ;;
1662943345d3Smrg	esac
1663943345d3Smrg	continue
1664943345d3Smrg	;;
1665943345d3Smrg
1666943345d3Smrg      -no-undefined)
1667943345d3Smrg	allow_undefined=no
1668943345d3Smrg	continue
1669943345d3Smrg	;;
1670943345d3Smrg
1671943345d3Smrg      -objectlist)
1672943345d3Smrg	prev=objectlist
1673943345d3Smrg	continue
1674943345d3Smrg	;;
1675943345d3Smrg
1676943345d3Smrg      -o) prev=output ;;
1677943345d3Smrg
1678943345d3Smrg      -precious-files-regex)
1679943345d3Smrg	prev=precious_regex
1680943345d3Smrg	continue
1681943345d3Smrg	;;
1682943345d3Smrg
1683943345d3Smrg      -release)
1684943345d3Smrg	prev=release
1685943345d3Smrg	continue
1686943345d3Smrg	;;
1687943345d3Smrg
1688943345d3Smrg      -rpath)
1689943345d3Smrg	prev=rpath
1690943345d3Smrg	continue
1691943345d3Smrg	;;
1692943345d3Smrg
1693943345d3Smrg      -R)
1694943345d3Smrg	prev=xrpath
1695943345d3Smrg	continue
1696943345d3Smrg	;;
1697943345d3Smrg
1698943345d3Smrg      -R*)
1699943345d3Smrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1700943345d3Smrg	# We need an absolute path.
1701943345d3Smrg	case $dir in
1702943345d3Smrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
1703943345d3Smrg	*)
1704943345d3Smrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1705943345d3Smrg	  exit $EXIT_FAILURE
1706943345d3Smrg	  ;;
1707943345d3Smrg	esac
1708943345d3Smrg	case "$xrpath " in
1709943345d3Smrg	*" $dir "*) ;;
1710943345d3Smrg	*) xrpath="$xrpath $dir" ;;
1711943345d3Smrg	esac
1712943345d3Smrg	continue
1713943345d3Smrg	;;
1714943345d3Smrg
1715943345d3Smrg      -static)
1716943345d3Smrg	# The effects of -static are defined in a previous loop.
1717943345d3Smrg	# We used to do the same as -all-static on platforms that
1718943345d3Smrg	# didn't have a PIC flag, but the assumption that the effects
1719943345d3Smrg	# would be equivalent was wrong.  It would break on at least
1720943345d3Smrg	# Digital Unix and AIX.
1721943345d3Smrg	continue
1722943345d3Smrg	;;
1723943345d3Smrg
1724943345d3Smrg      -thread-safe)
1725943345d3Smrg	thread_safe=yes
1726943345d3Smrg	continue
1727943345d3Smrg	;;
1728943345d3Smrg
1729943345d3Smrg      -version-info)
1730943345d3Smrg	prev=vinfo
1731943345d3Smrg	continue
1732943345d3Smrg	;;
1733943345d3Smrg      -version-number)
1734943345d3Smrg	prev=vinfo
1735943345d3Smrg	vinfo_number=yes
1736943345d3Smrg	continue
1737943345d3Smrg	;;
1738943345d3Smrg
1739943345d3Smrg      -Wc,*)
1740943345d3Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1741943345d3Smrg	arg=
1742943345d3Smrg	save_ifs="$IFS"; IFS=','
1743943345d3Smrg	for flag in $args; do
1744943345d3Smrg	  IFS="$save_ifs"
1745943345d3Smrg	  case $flag in
1746943345d3Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1747943345d3Smrg	    flag="\"$flag\""
1748943345d3Smrg	    ;;
1749943345d3Smrg	  esac
1750943345d3Smrg	  arg="$arg $wl$flag"
1751943345d3Smrg	  compiler_flags="$compiler_flags $flag"
1752943345d3Smrg	done
1753943345d3Smrg	IFS="$save_ifs"
1754943345d3Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1755943345d3Smrg	;;
1756943345d3Smrg
1757943345d3Smrg      -Wl,*)
1758943345d3Smrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1759943345d3Smrg	arg=
1760943345d3Smrg	save_ifs="$IFS"; IFS=','
1761943345d3Smrg	for flag in $args; do
1762943345d3Smrg	  IFS="$save_ifs"
1763943345d3Smrg	  case $flag in
1764943345d3Smrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1765943345d3Smrg	    flag="\"$flag\""
1766943345d3Smrg	    ;;
1767943345d3Smrg	  esac
1768943345d3Smrg	  arg="$arg $wl$flag"
1769943345d3Smrg	  compiler_flags="$compiler_flags $wl$flag"
1770943345d3Smrg	  linker_flags="$linker_flags $flag"
1771943345d3Smrg	done
1772943345d3Smrg	IFS="$save_ifs"
1773943345d3Smrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1774943345d3Smrg	;;
1775943345d3Smrg
1776943345d3Smrg      -Xcompiler)
1777943345d3Smrg	prev=xcompiler
1778943345d3Smrg	continue
1779943345d3Smrg	;;
1780943345d3Smrg
1781943345d3Smrg      -Xlinker)
1782943345d3Smrg	prev=xlinker
1783943345d3Smrg	continue
1784943345d3Smrg	;;
1785943345d3Smrg
1786943345d3Smrg      -XCClinker)
1787943345d3Smrg	prev=xcclinker
1788943345d3Smrg	continue
1789943345d3Smrg	;;
1790943345d3Smrg
1791943345d3Smrg      # Some other compiler flag.
1792943345d3Smrg      -* | +*)
1793943345d3Smrg	# Unknown arguments in both finalize_command and compile_command need
1794943345d3Smrg	# to be aesthetically quoted because they are evaled later.
1795943345d3Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796943345d3Smrg	case $arg in
1797943345d3Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1798943345d3Smrg	  arg="\"$arg\""
1799943345d3Smrg	  ;;
1800943345d3Smrg	esac
1801943345d3Smrg	;;
1802943345d3Smrg
1803943345d3Smrg      *.$objext)
1804943345d3Smrg	# A standard object.
1805943345d3Smrg	objs="$objs $arg"
1806943345d3Smrg	;;
1807943345d3Smrg
1808943345d3Smrg      *.lo)
1809943345d3Smrg	# A libtool-controlled object.
1810943345d3Smrg
1811943345d3Smrg	# Check to see that this really is a libtool object.
1812943345d3Smrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1813943345d3Smrg	  pic_object=
1814943345d3Smrg	  non_pic_object=
1815943345d3Smrg
1816943345d3Smrg	  # Read the .lo file
1817943345d3Smrg	  # If there is no directory component, then add one.
1818943345d3Smrg	  case $arg in
1819943345d3Smrg	  */* | *\\*) . $arg ;;
1820943345d3Smrg	  *) . ./$arg ;;
1821943345d3Smrg	  esac
1822943345d3Smrg
1823943345d3Smrg	  if test -z "$pic_object" || \
1824943345d3Smrg	     test -z "$non_pic_object" ||
1825943345d3Smrg	     test "$pic_object" = none && \
1826943345d3Smrg	     test "$non_pic_object" = none; then
1827943345d3Smrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1828943345d3Smrg	    exit $EXIT_FAILURE
1829943345d3Smrg	  fi
1830943345d3Smrg
1831943345d3Smrg	  # Extract subdirectory from the argument.
1832943345d3Smrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1833943345d3Smrg	  if test "X$xdir" = "X$arg"; then
1834943345d3Smrg	    xdir=
1835943345d3Smrg 	  else
1836943345d3Smrg	    xdir="$xdir/"
1837943345d3Smrg	  fi
1838943345d3Smrg
1839943345d3Smrg	  if test "$pic_object" != none; then
1840943345d3Smrg	    # Prepend the subdirectory the object is found in.
1841943345d3Smrg	    pic_object="$xdir$pic_object"
1842943345d3Smrg
1843943345d3Smrg	    if test "$prev" = dlfiles; then
1844943345d3Smrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1845943345d3Smrg		dlfiles="$dlfiles $pic_object"
1846943345d3Smrg		prev=
1847943345d3Smrg		continue
1848943345d3Smrg	      else
1849943345d3Smrg		# If libtool objects are unsupported, then we need to preload.
1850943345d3Smrg		prev=dlprefiles
1851943345d3Smrg	      fi
1852943345d3Smrg	    fi
1853943345d3Smrg
1854943345d3Smrg	    # CHECK ME:  I think I busted this.  -Ossama
1855943345d3Smrg	    if test "$prev" = dlprefiles; then
1856943345d3Smrg	      # Preload the old-style object.
1857943345d3Smrg	      dlprefiles="$dlprefiles $pic_object"
1858943345d3Smrg	      prev=
1859943345d3Smrg	    fi
1860943345d3Smrg
1861943345d3Smrg	    # A PIC object.
1862943345d3Smrg	    libobjs="$libobjs $pic_object"
1863943345d3Smrg	    arg="$pic_object"
1864943345d3Smrg	  fi
1865943345d3Smrg
1866943345d3Smrg	  # Non-PIC object.
1867943345d3Smrg	  if test "$non_pic_object" != none; then
1868943345d3Smrg	    # Prepend the subdirectory the object is found in.
1869943345d3Smrg	    non_pic_object="$xdir$non_pic_object"
1870943345d3Smrg
1871943345d3Smrg	    # A standard non-PIC object
1872943345d3Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1873943345d3Smrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
1874943345d3Smrg	      arg="$non_pic_object"
1875943345d3Smrg	    fi
1876943345d3Smrg	  else
1877943345d3Smrg	    # If the PIC object exists, use it instead.
1878943345d3Smrg	    # $xdir was prepended to $pic_object above.
1879943345d3Smrg	    non_pic_object="$pic_object"
1880943345d3Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1881943345d3Smrg	  fi
1882943345d3Smrg	else
1883943345d3Smrg	  # Only an error if not doing a dry-run.
1884943345d3Smrg	  if test -z "$run"; then
1885943345d3Smrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886943345d3Smrg	    exit $EXIT_FAILURE
1887943345d3Smrg	  else
1888943345d3Smrg	    # Dry-run case.
1889943345d3Smrg
1890943345d3Smrg	    # Extract subdirectory from the argument.
1891943345d3Smrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1892943345d3Smrg	    if test "X$xdir" = "X$arg"; then
1893943345d3Smrg	      xdir=
1894943345d3Smrg	    else
1895943345d3Smrg	      xdir="$xdir/"
1896943345d3Smrg	    fi
1897943345d3Smrg
1898943345d3Smrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1899943345d3Smrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1900943345d3Smrg	    libobjs="$libobjs $pic_object"
1901943345d3Smrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1902943345d3Smrg	  fi
1903943345d3Smrg	fi
1904943345d3Smrg	;;
1905943345d3Smrg
1906943345d3Smrg      *.$libext)
1907943345d3Smrg	# An archive.
1908943345d3Smrg	deplibs="$deplibs $arg"
1909943345d3Smrg	old_deplibs="$old_deplibs $arg"
1910943345d3Smrg	continue
1911943345d3Smrg	;;
1912943345d3Smrg
1913943345d3Smrg      *.la)
1914943345d3Smrg	# A libtool-controlled library.
1915943345d3Smrg
1916943345d3Smrg	if test "$prev" = dlfiles; then
1917943345d3Smrg	  # This library was specified with -dlopen.
1918943345d3Smrg	  dlfiles="$dlfiles $arg"
1919943345d3Smrg	  prev=
1920943345d3Smrg	elif test "$prev" = dlprefiles; then
1921943345d3Smrg	  # The library was specified with -dlpreopen.
1922943345d3Smrg	  dlprefiles="$dlprefiles $arg"
1923943345d3Smrg	  prev=
1924943345d3Smrg	else
1925943345d3Smrg	  deplibs="$deplibs $arg"
1926943345d3Smrg	fi
1927943345d3Smrg	continue
1928943345d3Smrg	;;
1929943345d3Smrg
1930943345d3Smrg      # Some other compiler argument.
1931943345d3Smrg      *)
1932943345d3Smrg	# Unknown arguments in both finalize_command and compile_command need
1933943345d3Smrg	# to be aesthetically quoted because they are evaled later.
1934943345d3Smrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1935943345d3Smrg	case $arg in
1936943345d3Smrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1937943345d3Smrg	  arg="\"$arg\""
1938943345d3Smrg	  ;;
1939943345d3Smrg	esac
1940943345d3Smrg	;;
1941943345d3Smrg      esac # arg
1942943345d3Smrg
1943943345d3Smrg      # Now actually substitute the argument into the commands.
1944943345d3Smrg      if test -n "$arg"; then
1945943345d3Smrg	compile_command="$compile_command $arg"
1946943345d3Smrg	finalize_command="$finalize_command $arg"
1947943345d3Smrg      fi
1948943345d3Smrg    done # argument parsing loop
1949943345d3Smrg
1950943345d3Smrg    if test -n "$prev"; then
1951943345d3Smrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1952943345d3Smrg      $echo "$help" 1>&2
1953943345d3Smrg      exit $EXIT_FAILURE
1954943345d3Smrg    fi
1955943345d3Smrg
1956943345d3Smrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957943345d3Smrg      eval arg=\"$export_dynamic_flag_spec\"
1958943345d3Smrg      compile_command="$compile_command $arg"
1959943345d3Smrg      finalize_command="$finalize_command $arg"
1960943345d3Smrg    fi
1961943345d3Smrg
1962943345d3Smrg    oldlibs=
1963943345d3Smrg    # calculate the name of the file, without its directory
1964943345d3Smrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1965943345d3Smrg    libobjs_save="$libobjs"
1966943345d3Smrg
1967943345d3Smrg    if test -n "$shlibpath_var"; then
1968943345d3Smrg      # get the directories listed in $shlibpath_var
1969943345d3Smrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970943345d3Smrg    else
1971943345d3Smrg      shlib_search_path=
1972943345d3Smrg    fi
1973943345d3Smrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974943345d3Smrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975943345d3Smrg
1976943345d3Smrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1977943345d3Smrg    if test "X$output_objdir" = "X$output"; then
1978943345d3Smrg      output_objdir="$objdir"
1979943345d3Smrg    else
1980943345d3Smrg      output_objdir="$output_objdir/$objdir"
1981943345d3Smrg    fi
1982943345d3Smrg    # Create the object directory.
1983943345d3Smrg    if test ! -d "$output_objdir"; then
1984943345d3Smrg      $show "$mkdir $output_objdir"
1985943345d3Smrg      $run $mkdir $output_objdir
1986943345d3Smrg      exit_status=$?
1987943345d3Smrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988943345d3Smrg	exit $exit_status
1989943345d3Smrg      fi
1990943345d3Smrg    fi
1991943345d3Smrg
1992943345d3Smrg    # Determine the type of output
1993943345d3Smrg    case $output in
1994943345d3Smrg    "")
1995943345d3Smrg      $echo "$modename: you must specify an output file" 1>&2
1996943345d3Smrg      $echo "$help" 1>&2
1997943345d3Smrg      exit $EXIT_FAILURE
1998943345d3Smrg      ;;
1999943345d3Smrg    *.$libext) linkmode=oldlib ;;
2000943345d3Smrg    *.lo | *.$objext) linkmode=obj ;;
2001943345d3Smrg    *.la) linkmode=lib ;;
2002943345d3Smrg    *) linkmode=prog ;; # Anything else should be a program.
2003943345d3Smrg    esac
2004943345d3Smrg
2005943345d3Smrg    case $host in
2006943345d3Smrg    *cygwin* | *mingw* | *pw32*)
2007943345d3Smrg      # don't eliminate duplications in $postdeps and $predeps
2008943345d3Smrg      duplicate_compiler_generated_deps=yes
2009943345d3Smrg      ;;
2010943345d3Smrg    *)
2011943345d3Smrg      duplicate_compiler_generated_deps=$duplicate_deps
2012943345d3Smrg      ;;
2013943345d3Smrg    esac
2014943345d3Smrg    specialdeplibs=
2015943345d3Smrg
2016943345d3Smrg    libs=
2017943345d3Smrg    # Find all interdependent deplibs by searching for libraries
2018943345d3Smrg    # that are linked more than once (e.g. -la -lb -la)
2019943345d3Smrg    for deplib in $deplibs; do
2020943345d3Smrg      if test "X$duplicate_deps" = "Xyes" ; then
2021943345d3Smrg	case "$libs " in
2022943345d3Smrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023943345d3Smrg	esac
2024943345d3Smrg      fi
2025943345d3Smrg      libs="$libs $deplib"
2026943345d3Smrg    done
2027943345d3Smrg
2028943345d3Smrg    if test "$linkmode" = lib; then
2029943345d3Smrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2030943345d3Smrg
2031943345d3Smrg      # Compute libraries that are listed more than once in $predeps
2032943345d3Smrg      # $postdeps and mark them as special (i.e., whose duplicates are
2033943345d3Smrg      # not to be eliminated).
2034943345d3Smrg      pre_post_deps=
2035943345d3Smrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2036943345d3Smrg	for pre_post_dep in $predeps $postdeps; do
2037943345d3Smrg	  case "$pre_post_deps " in
2038943345d3Smrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2039943345d3Smrg	  esac
2040943345d3Smrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
2041943345d3Smrg	done
2042943345d3Smrg      fi
2043943345d3Smrg      pre_post_deps=
2044943345d3Smrg    fi
2045943345d3Smrg
2046943345d3Smrg    deplibs=
2047943345d3Smrg    newdependency_libs=
2048943345d3Smrg    newlib_search_path=
2049943345d3Smrg    need_relink=no # whether we're linking any uninstalled libtool libraries
2050943345d3Smrg    notinst_deplibs= # not-installed libtool libraries
2051943345d3Smrg    case $linkmode in
2052943345d3Smrg    lib)
2053943345d3Smrg	passes="conv link"
2054943345d3Smrg	for file in $dlfiles $dlprefiles; do
2055943345d3Smrg	  case $file in
2056943345d3Smrg	  *.la) ;;
2057943345d3Smrg	  *)
2058943345d3Smrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2059943345d3Smrg	    exit $EXIT_FAILURE
2060943345d3Smrg	    ;;
2061943345d3Smrg	  esac
2062943345d3Smrg	done
2063943345d3Smrg	;;
2064943345d3Smrg    prog)
2065943345d3Smrg	compile_deplibs=
2066943345d3Smrg	finalize_deplibs=
2067943345d3Smrg	alldeplibs=no
2068943345d3Smrg	newdlfiles=
2069943345d3Smrg	newdlprefiles=
2070943345d3Smrg	passes="conv scan dlopen dlpreopen link"
2071943345d3Smrg	;;
2072943345d3Smrg    *)  passes="conv"
2073943345d3Smrg	;;
2074943345d3Smrg    esac
2075943345d3Smrg    for pass in $passes; do
2076943345d3Smrg      if test "$linkmode,$pass" = "lib,link" ||
2077943345d3Smrg	 test "$linkmode,$pass" = "prog,scan"; then
2078943345d3Smrg	libs="$deplibs"
2079943345d3Smrg	deplibs=
2080943345d3Smrg      fi
2081943345d3Smrg      if test "$linkmode" = prog; then
2082943345d3Smrg	case $pass in
2083943345d3Smrg	dlopen) libs="$dlfiles" ;;
2084943345d3Smrg	dlpreopen) libs="$dlprefiles" ;;
2085943345d3Smrg	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2086943345d3Smrg	esac
2087943345d3Smrg      fi
2088943345d3Smrg      if test "$pass" = dlopen; then
2089943345d3Smrg	# Collect dlpreopened libraries
2090943345d3Smrg	save_deplibs="$deplibs"
2091943345d3Smrg	deplibs=
2092943345d3Smrg      fi
2093943345d3Smrg      for deplib in $libs; do
2094943345d3Smrg	lib=
2095943345d3Smrg	found=no
2096943345d3Smrg	case $deplib in
2097943345d3Smrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2098943345d3Smrg	  if test "$linkmode,$pass" = "prog,link"; then
2099943345d3Smrg	    compile_deplibs="$deplib $compile_deplibs"
2100943345d3Smrg	    finalize_deplibs="$deplib $finalize_deplibs"
2101943345d3Smrg	  else
2102943345d3Smrg	    compiler_flags="$compiler_flags $deplib"
2103943345d3Smrg	  fi
2104943345d3Smrg	  continue
2105943345d3Smrg	  ;;
2106943345d3Smrg	-l*)
2107943345d3Smrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2108943345d3Smrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2109943345d3Smrg	    continue
2110943345d3Smrg	  fi
2111943345d3Smrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2112943345d3Smrg	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2113943345d3Smrg	    for search_ext in .la $std_shrext .so .a; do
2114943345d3Smrg	      # Search the libtool library
2115943345d3Smrg	      lib="$searchdir/lib${name}${search_ext}"
2116943345d3Smrg	      if test -f "$lib"; then
2117943345d3Smrg		if test "$search_ext" = ".la"; then
2118943345d3Smrg		  found=yes
2119943345d3Smrg		else
2120943345d3Smrg		  found=no
2121943345d3Smrg		fi
2122943345d3Smrg		break 2
2123943345d3Smrg	      fi
2124943345d3Smrg	    done
2125943345d3Smrg	  done
2126943345d3Smrg	  if test "$found" != yes; then
2127943345d3Smrg	    # deplib doesn't seem to be a libtool library
2128943345d3Smrg	    if test "$linkmode,$pass" = "prog,link"; then
2129943345d3Smrg	      compile_deplibs="$deplib $compile_deplibs"
2130943345d3Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2131943345d3Smrg	    else
2132943345d3Smrg	      deplibs="$deplib $deplibs"
2133943345d3Smrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2134943345d3Smrg	    fi
2135943345d3Smrg	    continue
2136943345d3Smrg	  else # deplib is a libtool library
2137943345d3Smrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2138943345d3Smrg	    # We need to do some special things here, and not later.
2139943345d3Smrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2140943345d3Smrg	      case " $predeps $postdeps " in
2141943345d3Smrg	      *" $deplib "*)
2142943345d3Smrg		if (${SED} -e '2q' $lib |
2143943345d3Smrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2144943345d3Smrg		  library_names=
2145943345d3Smrg		  old_library=
2146943345d3Smrg		  case $lib in
2147943345d3Smrg		  */* | *\\*) . $lib ;;
2148943345d3Smrg		  *) . ./$lib ;;
2149943345d3Smrg		  esac
2150943345d3Smrg		  for l in $old_library $library_names; do
2151943345d3Smrg		    ll="$l"
2152943345d3Smrg		  done
2153943345d3Smrg		  if test "X$ll" = "X$old_library" ; then # only static version available
2154943345d3Smrg		    found=no
2155943345d3Smrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2156943345d3Smrg		    test "X$ladir" = "X$lib" && ladir="."
2157943345d3Smrg		    lib=$ladir/$old_library
2158943345d3Smrg		    if test "$linkmode,$pass" = "prog,link"; then
2159943345d3Smrg		      compile_deplibs="$deplib $compile_deplibs"
2160943345d3Smrg		      finalize_deplibs="$deplib $finalize_deplibs"
2161943345d3Smrg		    else
2162943345d3Smrg		      deplibs="$deplib $deplibs"
2163943345d3Smrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2164943345d3Smrg		    fi
2165943345d3Smrg		    continue
2166943345d3Smrg		  fi
2167943345d3Smrg		fi
2168943345d3Smrg	        ;;
2169943345d3Smrg	      *) ;;
2170943345d3Smrg	      esac
2171943345d3Smrg	    fi
2172943345d3Smrg	  fi
2173943345d3Smrg	  ;; # -l
2174943345d3Smrg	-L*)
2175943345d3Smrg	  case $linkmode in
2176943345d3Smrg	  lib)
2177943345d3Smrg	    deplibs="$deplib $deplibs"
2178943345d3Smrg	    test "$pass" = conv && continue
2179943345d3Smrg	    newdependency_libs="$deplib $newdependency_libs"
2180943345d3Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2181943345d3Smrg	    ;;
2182943345d3Smrg	  prog)
2183943345d3Smrg	    if test "$pass" = conv; then
2184943345d3Smrg	      deplibs="$deplib $deplibs"
2185943345d3Smrg	      continue
2186943345d3Smrg	    fi
2187943345d3Smrg	    if test "$pass" = scan; then
2188943345d3Smrg	      deplibs="$deplib $deplibs"
2189943345d3Smrg	    else
2190943345d3Smrg	      compile_deplibs="$deplib $compile_deplibs"
2191943345d3Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2192943345d3Smrg	    fi
2193943345d3Smrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2194943345d3Smrg	    ;;
2195943345d3Smrg	  *)
2196943345d3Smrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2197943345d3Smrg	    ;;
2198943345d3Smrg	  esac # linkmode
2199943345d3Smrg	  continue
2200943345d3Smrg	  ;; # -L
2201943345d3Smrg	-R*)
2202943345d3Smrg	  if test "$pass" = link; then
2203943345d3Smrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2204943345d3Smrg	    # Make sure the xrpath contains only unique directories.
2205943345d3Smrg	    case "$xrpath " in
2206943345d3Smrg	    *" $dir "*) ;;
2207943345d3Smrg	    *) xrpath="$xrpath $dir" ;;
2208943345d3Smrg	    esac
2209943345d3Smrg	  fi
2210943345d3Smrg	  deplibs="$deplib $deplibs"
2211943345d3Smrg	  continue
2212943345d3Smrg	  ;;
2213943345d3Smrg	*.la) lib="$deplib" ;;
2214943345d3Smrg	*.$libext)
2215943345d3Smrg	  if test "$pass" = conv; then
2216943345d3Smrg	    deplibs="$deplib $deplibs"
2217943345d3Smrg	    continue
2218943345d3Smrg	  fi
2219943345d3Smrg	  case $linkmode in
2220943345d3Smrg	  lib)
2221943345d3Smrg	    valid_a_lib=no
2222943345d3Smrg	    case $deplibs_check_method in
2223943345d3Smrg	      match_pattern*)
2224943345d3Smrg		set dummy $deplibs_check_method
2225943345d3Smrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2226943345d3Smrg		if eval $echo \"$deplib\" 2>/dev/null \
2227943345d3Smrg		    | $SED 10q \
2228943345d3Smrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
2229943345d3Smrg		  valid_a_lib=yes
2230943345d3Smrg		fi
2231943345d3Smrg		;;
2232943345d3Smrg	      pass_all)
2233943345d3Smrg		valid_a_lib=yes
2234943345d3Smrg		;;
2235943345d3Smrg            esac
2236943345d3Smrg	    if test "$valid_a_lib" != yes; then
2237943345d3Smrg	      $echo
2238943345d3Smrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2239943345d3Smrg	      $echo "*** I have the capability to make that library automatically link in when"
2240943345d3Smrg	      $echo "*** you link to this library.  But I can only do this if you have a"
2241943345d3Smrg	      $echo "*** shared version of the library, which you do not appear to have"
2242943345d3Smrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2243943345d3Smrg	      $echo "*** that it is just a static archive that I should not used here."
2244943345d3Smrg	    else
2245943345d3Smrg	      $echo
2246943345d3Smrg	      $echo "*** Warning: Linking the shared library $output against the"
2247943345d3Smrg	      $echo "*** static library $deplib is not portable!"
2248943345d3Smrg	      deplibs="$deplib $deplibs"
2249943345d3Smrg	    fi
2250943345d3Smrg	    continue
2251943345d3Smrg	    ;;
2252943345d3Smrg	  prog)
2253943345d3Smrg	    if test "$pass" != link; then
2254943345d3Smrg	      deplibs="$deplib $deplibs"
2255943345d3Smrg	    else
2256943345d3Smrg	      compile_deplibs="$deplib $compile_deplibs"
2257943345d3Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2258943345d3Smrg	    fi
2259943345d3Smrg	    continue
2260943345d3Smrg	    ;;
2261943345d3Smrg	  esac # linkmode
2262943345d3Smrg	  ;; # *.$libext
2263943345d3Smrg	*.lo | *.$objext)
2264943345d3Smrg	  if test "$pass" = conv; then
2265943345d3Smrg	    deplibs="$deplib $deplibs"
2266943345d3Smrg	  elif test "$linkmode" = prog; then
2267943345d3Smrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2268943345d3Smrg	      # If there is no dlopen support or we're linking statically,
2269943345d3Smrg	      # we need to preload.
2270943345d3Smrg	      newdlprefiles="$newdlprefiles $deplib"
2271943345d3Smrg	      compile_deplibs="$deplib $compile_deplibs"
2272943345d3Smrg	      finalize_deplibs="$deplib $finalize_deplibs"
2273943345d3Smrg	    else
2274943345d3Smrg	      newdlfiles="$newdlfiles $deplib"
2275943345d3Smrg	    fi
2276943345d3Smrg	  fi
2277943345d3Smrg	  continue
2278943345d3Smrg	  ;;
2279943345d3Smrg	%DEPLIBS%)
2280943345d3Smrg	  alldeplibs=yes
2281943345d3Smrg	  continue
2282943345d3Smrg	  ;;
2283943345d3Smrg	esac # case $deplib
2284943345d3Smrg	if test "$found" = yes || test -f "$lib"; then :
2285943345d3Smrg	else
2286943345d3Smrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2287943345d3Smrg	  exit $EXIT_FAILURE
2288943345d3Smrg	fi
2289943345d3Smrg
2290943345d3Smrg	# Check to see that this really is a libtool archive.
2291943345d3Smrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2292943345d3Smrg	else
2293943345d3Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2294943345d3Smrg	  exit $EXIT_FAILURE
2295943345d3Smrg	fi
2296943345d3Smrg
2297943345d3Smrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2298943345d3Smrg	test "X$ladir" = "X$lib" && ladir="."
2299943345d3Smrg
2300943345d3Smrg	dlname=
2301943345d3Smrg	dlopen=
2302943345d3Smrg	dlpreopen=
2303943345d3Smrg	libdir=
2304943345d3Smrg	library_names=
2305943345d3Smrg	old_library=
2306943345d3Smrg	# If the library was installed with an old release of libtool,
2307943345d3Smrg	# it will not redefine variables installed, or shouldnotlink
2308943345d3Smrg	installed=yes
2309943345d3Smrg	shouldnotlink=no
2310943345d3Smrg	avoidtemprpath=
2311943345d3Smrg
2312943345d3Smrg
2313943345d3Smrg	# Read the .la file
2314943345d3Smrg	case $lib in
2315943345d3Smrg	*/* | *\\*) . $lib ;;
2316943345d3Smrg	*) . ./$lib ;;
2317943345d3Smrg	esac
2318943345d3Smrg
2319943345d3Smrg	if test "$linkmode,$pass" = "lib,link" ||
2320943345d3Smrg	   test "$linkmode,$pass" = "prog,scan" ||
2321943345d3Smrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2322943345d3Smrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2323943345d3Smrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2324943345d3Smrg	fi
2325943345d3Smrg
2326943345d3Smrg	if test "$pass" = conv; then
2327943345d3Smrg	  # Only check for convenience libraries
2328943345d3Smrg	  deplibs="$lib $deplibs"
2329943345d3Smrg	  if test -z "$libdir"; then
2330943345d3Smrg	    if test -z "$old_library"; then
2331943345d3Smrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2332943345d3Smrg	      exit $EXIT_FAILURE
2333943345d3Smrg	    fi
2334943345d3Smrg	    # It is a libtool convenience library, so add in its objects.
2335943345d3Smrg	    convenience="$convenience $ladir/$objdir/$old_library"
2336943345d3Smrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2337943345d3Smrg	    tmp_libs=
2338943345d3Smrg	    for deplib in $dependency_libs; do
2339943345d3Smrg	      deplibs="$deplib $deplibs"
2340943345d3Smrg              if test "X$duplicate_deps" = "Xyes" ; then
2341943345d3Smrg	        case "$tmp_libs " in
2342943345d3Smrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2343943345d3Smrg	        esac
2344943345d3Smrg              fi
2345943345d3Smrg	      tmp_libs="$tmp_libs $deplib"
2346943345d3Smrg	    done
2347943345d3Smrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2348943345d3Smrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2349943345d3Smrg	    exit $EXIT_FAILURE
2350943345d3Smrg	  fi
2351943345d3Smrg	  continue
2352943345d3Smrg	fi # $pass = conv
2353943345d3Smrg
2354943345d3Smrg
2355943345d3Smrg	# Get the name of the library we link against.
2356943345d3Smrg	linklib=
2357943345d3Smrg	for l in $old_library $library_names; do
2358943345d3Smrg	  linklib="$l"
2359943345d3Smrg	done
2360943345d3Smrg	if test -z "$linklib"; then
2361943345d3Smrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2362943345d3Smrg	  exit $EXIT_FAILURE
2363943345d3Smrg	fi
2364943345d3Smrg
2365943345d3Smrg	# This library was specified with -dlopen.
2366943345d3Smrg	if test "$pass" = dlopen; then
2367943345d3Smrg	  if test -z "$libdir"; then
2368943345d3Smrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2369943345d3Smrg	    exit $EXIT_FAILURE
2370943345d3Smrg	  fi
2371943345d3Smrg	  if test -z "$dlname" ||
2372943345d3Smrg	     test "$dlopen_support" != yes ||
2373943345d3Smrg	     test "$build_libtool_libs" = no; then
2374943345d3Smrg	    # If there is no dlname, no dlopen support or we're linking
2375943345d3Smrg	    # statically, we need to preload.  We also need to preload any
2376943345d3Smrg	    # dependent libraries so libltdl's deplib preloader doesn't
2377943345d3Smrg	    # bomb out in the load deplibs phase.
2378943345d3Smrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
2379943345d3Smrg	  else
2380943345d3Smrg	    newdlfiles="$newdlfiles $lib"
2381943345d3Smrg	  fi
2382943345d3Smrg	  continue
2383943345d3Smrg	fi # $pass = dlopen
2384943345d3Smrg
2385943345d3Smrg	# We need an absolute path.
2386943345d3Smrg	case $ladir in
2387943345d3Smrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2388943345d3Smrg	*)
2389943345d3Smrg	  abs_ladir=`cd "$ladir" && pwd`
2390943345d3Smrg	  if test -z "$abs_ladir"; then
2391943345d3Smrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2392943345d3Smrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2393943345d3Smrg	    abs_ladir="$ladir"
2394943345d3Smrg	  fi
2395943345d3Smrg	  ;;
2396943345d3Smrg	esac
2397943345d3Smrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2398943345d3Smrg
2399943345d3Smrg	# Find the relevant object directory and library name.
2400943345d3Smrg	if test "X$installed" = Xyes; then
2401943345d3Smrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2402943345d3Smrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2403943345d3Smrg	    dir="$ladir"
2404943345d3Smrg	    absdir="$abs_ladir"
2405943345d3Smrg	    libdir="$abs_ladir"
2406943345d3Smrg	  else
2407943345d3Smrg	    dir="$libdir"
2408943345d3Smrg	    absdir="$libdir"
2409943345d3Smrg	  fi
2410943345d3Smrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2411943345d3Smrg	else
2412943345d3Smrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2413943345d3Smrg	    dir="$ladir"
2414943345d3Smrg	    absdir="$abs_ladir"
2415943345d3Smrg	    # Remove this search path later
2416943345d3Smrg	    notinst_path="$notinst_path $abs_ladir"
2417943345d3Smrg	  else
2418943345d3Smrg	    dir="$ladir/$objdir"
2419943345d3Smrg	    absdir="$abs_ladir/$objdir"
2420943345d3Smrg	    # Remove this search path later
2421943345d3Smrg	    notinst_path="$notinst_path $abs_ladir"
2422943345d3Smrg	  fi
2423943345d3Smrg	fi # $installed = yes
2424943345d3Smrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2425943345d3Smrg
2426943345d3Smrg	# This library was specified with -dlpreopen.
2427943345d3Smrg	if test "$pass" = dlpreopen; then
2428943345d3Smrg	  if test -z "$libdir"; then
2429943345d3Smrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2430943345d3Smrg	    exit $EXIT_FAILURE
2431943345d3Smrg	  fi
2432943345d3Smrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2433943345d3Smrg	  # are required to link).
2434943345d3Smrg	  if test -n "$old_library"; then
2435943345d3Smrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
2436943345d3Smrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2437943345d3Smrg	  elif test -n "$dlname"; then
2438943345d3Smrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
2439943345d3Smrg	  else
2440943345d3Smrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
2441943345d3Smrg	  fi
2442943345d3Smrg	fi # $pass = dlpreopen
2443943345d3Smrg
2444943345d3Smrg	if test -z "$libdir"; then
2445943345d3Smrg	  # Link the convenience library
2446943345d3Smrg	  if test "$linkmode" = lib; then
2447943345d3Smrg	    deplibs="$dir/$old_library $deplibs"
2448943345d3Smrg	  elif test "$linkmode,$pass" = "prog,link"; then
2449943345d3Smrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
2450943345d3Smrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2451943345d3Smrg	  else
2452943345d3Smrg	    deplibs="$lib $deplibs" # used for prog,scan pass
2453943345d3Smrg	  fi
2454943345d3Smrg	  continue
2455943345d3Smrg	fi
2456943345d3Smrg
2457943345d3Smrg
2458943345d3Smrg	if test "$linkmode" = prog && test "$pass" != link; then
2459943345d3Smrg	  newlib_search_path="$newlib_search_path $ladir"
2460943345d3Smrg	  deplibs="$lib $deplibs"
2461943345d3Smrg
2462943345d3Smrg	  linkalldeplibs=no
2463943345d3Smrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2464943345d3Smrg	     test "$build_libtool_libs" = no; then
2465943345d3Smrg	    linkalldeplibs=yes
2466943345d3Smrg	  fi
2467943345d3Smrg
2468943345d3Smrg	  tmp_libs=
2469943345d3Smrg	  for deplib in $dependency_libs; do
2470943345d3Smrg	    case $deplib in
2471943345d3Smrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2472943345d3Smrg	    esac
2473943345d3Smrg	    # Need to link against all dependency_libs?
2474943345d3Smrg	    if test "$linkalldeplibs" = yes; then
2475943345d3Smrg	      deplibs="$deplib $deplibs"
2476943345d3Smrg	    else
2477943345d3Smrg	      # Need to hardcode shared library paths
2478943345d3Smrg	      # or/and link against static libraries
2479943345d3Smrg	      newdependency_libs="$deplib $newdependency_libs"
2480943345d3Smrg	    fi
2481943345d3Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
2482943345d3Smrg	      case "$tmp_libs " in
2483943345d3Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2484943345d3Smrg	      esac
2485943345d3Smrg	    fi
2486943345d3Smrg	    tmp_libs="$tmp_libs $deplib"
2487943345d3Smrg	  done # for deplib
2488943345d3Smrg	  continue
2489943345d3Smrg	fi # $linkmode = prog...
2490943345d3Smrg
2491943345d3Smrg	if test "$linkmode,$pass" = "prog,link"; then
2492943345d3Smrg	  if test -n "$library_names" &&
2493943345d3Smrg	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2494943345d3Smrg	    # We need to hardcode the library path
2495943345d3Smrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2496943345d3Smrg	      # Make sure the rpath contains only unique directories.
2497943345d3Smrg	      case "$temp_rpath " in
2498943345d3Smrg	      *" $dir "*) ;;
2499943345d3Smrg	      *" $absdir "*) ;;
2500943345d3Smrg	      *) temp_rpath="$temp_rpath $absdir" ;;
2501943345d3Smrg	      esac
2502943345d3Smrg	    fi
2503943345d3Smrg
2504943345d3Smrg	    # Hardcode the library path.
2505943345d3Smrg	    # Skip directories that are in the system default run-time
2506943345d3Smrg	    # search path.
2507943345d3Smrg	    case " $sys_lib_dlsearch_path " in
2508943345d3Smrg	    *" $absdir "*) ;;
2509943345d3Smrg	    *)
2510943345d3Smrg	      case "$compile_rpath " in
2511943345d3Smrg	      *" $absdir "*) ;;
2512943345d3Smrg	      *) compile_rpath="$compile_rpath $absdir"
2513943345d3Smrg	      esac
2514943345d3Smrg	      ;;
2515943345d3Smrg	    esac
2516943345d3Smrg	    case " $sys_lib_dlsearch_path " in
2517943345d3Smrg	    *" $libdir "*) ;;
2518943345d3Smrg	    *)
2519943345d3Smrg	      case "$finalize_rpath " in
2520943345d3Smrg	      *" $libdir "*) ;;
2521943345d3Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
2522943345d3Smrg	      esac
2523943345d3Smrg	      ;;
2524943345d3Smrg	    esac
2525943345d3Smrg	  fi # $linkmode,$pass = prog,link...
2526943345d3Smrg
2527943345d3Smrg	  if test "$alldeplibs" = yes &&
2528943345d3Smrg	     { test "$deplibs_check_method" = pass_all ||
2529943345d3Smrg	       { test "$build_libtool_libs" = yes &&
2530943345d3Smrg		 test -n "$library_names"; }; }; then
2531943345d3Smrg	    # We only need to search for static libraries
2532943345d3Smrg	    continue
2533943345d3Smrg	  fi
2534943345d3Smrg	fi
2535943345d3Smrg
2536943345d3Smrg	link_static=no # Whether the deplib will be linked statically
2537943345d3Smrg	use_static_libs=$prefer_static_libs
2538943345d3Smrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
2539943345d3Smrg	  use_static_libs=no
2540943345d3Smrg	fi
2541943345d3Smrg	if test -n "$library_names" &&
2542943345d3Smrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2543943345d3Smrg	  if test "$installed" = no; then
2544943345d3Smrg	    notinst_deplibs="$notinst_deplibs $lib"
2545943345d3Smrg	    need_relink=yes
2546943345d3Smrg	  fi
2547943345d3Smrg	  # This is a shared library
2548943345d3Smrg
2549943345d3Smrg	  # Warn about portability, can't link against -module's on
2550943345d3Smrg	  # some systems (darwin)
2551943345d3Smrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2552943345d3Smrg	    $echo
2553943345d3Smrg	    if test "$linkmode" = prog; then
2554943345d3Smrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
2555943345d3Smrg	    else
2556943345d3Smrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2557943345d3Smrg	    fi
2558943345d3Smrg	    $echo "*** $linklib is not portable!"
2559943345d3Smrg	  fi
2560943345d3Smrg	  if test "$linkmode" = lib &&
2561943345d3Smrg	     test "$hardcode_into_libs" = yes; then
2562943345d3Smrg	    # Hardcode the library path.
2563943345d3Smrg	    # Skip directories that are in the system default run-time
2564943345d3Smrg	    # search path.
2565943345d3Smrg	    case " $sys_lib_dlsearch_path " in
2566943345d3Smrg	    *" $absdir "*) ;;
2567943345d3Smrg	    *)
2568943345d3Smrg	      case "$compile_rpath " in
2569943345d3Smrg	      *" $absdir "*) ;;
2570943345d3Smrg	      *) compile_rpath="$compile_rpath $absdir"
2571943345d3Smrg	      esac
2572943345d3Smrg	      ;;
2573943345d3Smrg	    esac
2574943345d3Smrg	    case " $sys_lib_dlsearch_path " in
2575943345d3Smrg	    *" $libdir "*) ;;
2576943345d3Smrg	    *)
2577943345d3Smrg	      case "$finalize_rpath " in
2578943345d3Smrg	      *" $libdir "*) ;;
2579943345d3Smrg	      *) finalize_rpath="$finalize_rpath $libdir"
2580943345d3Smrg	      esac
2581943345d3Smrg	      ;;
2582943345d3Smrg	    esac
2583943345d3Smrg	  fi
2584943345d3Smrg
2585943345d3Smrg	  if test -n "$old_archive_from_expsyms_cmds"; then
2586943345d3Smrg	    # figure out the soname
2587943345d3Smrg	    set dummy $library_names
2588943345d3Smrg	    realname="$2"
2589943345d3Smrg	    shift; shift
2590943345d3Smrg	    libname=`eval \\$echo \"$libname_spec\"`
2591943345d3Smrg	    # use dlname if we got it. it's perfectly good, no?
2592943345d3Smrg	    if test -n "$dlname"; then
2593943345d3Smrg	      soname="$dlname"
2594943345d3Smrg	    elif test -n "$soname_spec"; then
2595943345d3Smrg	      # bleh windows
2596943345d3Smrg	      case $host in
2597943345d3Smrg	      *cygwin* | mingw*)
2598943345d3Smrg		major=`expr $current - $age`
2599943345d3Smrg		versuffix="-$major"
2600943345d3Smrg		;;
2601943345d3Smrg	      esac
2602943345d3Smrg	      eval soname=\"$soname_spec\"
2603943345d3Smrg	    else
2604943345d3Smrg	      soname="$realname"
2605943345d3Smrg	    fi
2606943345d3Smrg
2607943345d3Smrg	    # Make a new name for the extract_expsyms_cmds to use
2608943345d3Smrg	    soroot="$soname"
2609943345d3Smrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2610943345d3Smrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2611943345d3Smrg
2612943345d3Smrg	    # If the library has no export list, then create one now
2613943345d3Smrg	    if test -f "$output_objdir/$soname-def"; then :
2614943345d3Smrg	    else
2615943345d3Smrg	      $show "extracting exported symbol list from \`$soname'"
2616943345d3Smrg	      save_ifs="$IFS"; IFS='~'
2617943345d3Smrg	      cmds=$extract_expsyms_cmds
2618943345d3Smrg	      for cmd in $cmds; do
2619943345d3Smrg		IFS="$save_ifs"
2620943345d3Smrg		eval cmd=\"$cmd\"
2621943345d3Smrg		$show "$cmd"
2622943345d3Smrg		$run eval "$cmd" || exit $?
2623943345d3Smrg	      done
2624943345d3Smrg	      IFS="$save_ifs"
2625943345d3Smrg	    fi
2626943345d3Smrg
2627943345d3Smrg	    # Create $newlib
2628943345d3Smrg	    if test -f "$output_objdir/$newlib"; then :; else
2629943345d3Smrg	      $show "generating import library for \`$soname'"
2630943345d3Smrg	      save_ifs="$IFS"; IFS='~'
2631943345d3Smrg	      cmds=$old_archive_from_expsyms_cmds
2632943345d3Smrg	      for cmd in $cmds; do
2633943345d3Smrg		IFS="$save_ifs"
2634943345d3Smrg		eval cmd=\"$cmd\"
2635943345d3Smrg		$show "$cmd"
2636943345d3Smrg		$run eval "$cmd" || exit $?
2637943345d3Smrg	      done
2638943345d3Smrg	      IFS="$save_ifs"
2639943345d3Smrg	    fi
2640943345d3Smrg	    # make sure the library variables are pointing to the new library
2641943345d3Smrg	    dir=$output_objdir
2642943345d3Smrg	    linklib=$newlib
2643943345d3Smrg	  fi # test -n "$old_archive_from_expsyms_cmds"
2644943345d3Smrg
2645943345d3Smrg	  if test "$linkmode" = prog || test "$mode" != relink; then
2646943345d3Smrg	    add_shlibpath=
2647943345d3Smrg	    add_dir=
2648943345d3Smrg	    add=
2649943345d3Smrg	    lib_linked=yes
2650943345d3Smrg	    case $hardcode_action in
2651943345d3Smrg	    immediate | unsupported)
2652943345d3Smrg	      if test "$hardcode_direct" = no; then
2653943345d3Smrg		add="$dir/$linklib"
2654943345d3Smrg		case $host in
2655943345d3Smrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2656943345d3Smrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2657943345d3Smrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2658943345d3Smrg		    *-*-unixware7*) add_dir="-L$dir" ;;
2659943345d3Smrg		  *-*-darwin* )
2660943345d3Smrg		    # if the lib is a module then we can not link against
2661943345d3Smrg		    # it, someone is ignoring the new warnings I added
2662943345d3Smrg		    if /usr/bin/file -L $add 2> /dev/null |
2663943345d3Smrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
2664943345d3Smrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
2665943345d3Smrg		      if test -z "$old_library" ; then
2666943345d3Smrg		        $echo
2667943345d3Smrg		        $echo "** And there doesn't seem to be a static archive available"
2668943345d3Smrg		        $echo "** The link will probably fail, sorry"
2669943345d3Smrg		      else
2670943345d3Smrg		        add="$dir/$old_library"
2671943345d3Smrg		      fi
2672943345d3Smrg		    fi
2673943345d3Smrg		esac
2674943345d3Smrg	      elif test "$hardcode_minus_L" = no; then
2675943345d3Smrg		case $host in
2676943345d3Smrg		*-*-sunos*) add_shlibpath="$dir" ;;
2677943345d3Smrg		esac
2678943345d3Smrg		add_dir="-L$dir"
2679943345d3Smrg		add="-l$name"
2680943345d3Smrg	      elif test "$hardcode_shlibpath_var" = no; then
2681943345d3Smrg		add_shlibpath="$dir"
2682943345d3Smrg		add="-l$name"
2683943345d3Smrg	      else
2684943345d3Smrg		lib_linked=no
2685943345d3Smrg	      fi
2686943345d3Smrg	      ;;
2687943345d3Smrg	    relink)
2688943345d3Smrg	      if test "$hardcode_direct" = yes; then
2689943345d3Smrg		add="$dir/$linklib"
2690943345d3Smrg	      elif test "$hardcode_minus_L" = yes; then
2691943345d3Smrg		add_dir="-L$dir"
2692943345d3Smrg		# Try looking first in the location we're being installed to.
2693943345d3Smrg		if test -n "$inst_prefix_dir"; then
2694943345d3Smrg		  case $libdir in
2695943345d3Smrg		    [\\/]*)
2696943345d3Smrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2697943345d3Smrg		      ;;
2698943345d3Smrg		  esac
2699943345d3Smrg		fi
2700943345d3Smrg		add="-l$name"
2701943345d3Smrg	      elif test "$hardcode_shlibpath_var" = yes; then
2702943345d3Smrg		add_shlibpath="$dir"
2703943345d3Smrg		add="-l$name"
2704943345d3Smrg	      else
2705943345d3Smrg		lib_linked=no
2706943345d3Smrg	      fi
2707943345d3Smrg	      ;;
2708943345d3Smrg	    *) lib_linked=no ;;
2709943345d3Smrg	    esac
2710943345d3Smrg
2711943345d3Smrg	    if test "$lib_linked" != yes; then
2712943345d3Smrg	      $echo "$modename: configuration error: unsupported hardcode properties"
2713943345d3Smrg	      exit $EXIT_FAILURE
2714943345d3Smrg	    fi
2715943345d3Smrg
2716943345d3Smrg	    if test -n "$add_shlibpath"; then
2717943345d3Smrg	      case :$compile_shlibpath: in
2718943345d3Smrg	      *":$add_shlibpath:"*) ;;
2719943345d3Smrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2720943345d3Smrg	      esac
2721943345d3Smrg	    fi
2722943345d3Smrg	    if test "$linkmode" = prog; then
2723943345d3Smrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2724943345d3Smrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2725943345d3Smrg	    else
2726943345d3Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2727943345d3Smrg	      test -n "$add" && deplibs="$add $deplibs"
2728943345d3Smrg	      if test "$hardcode_direct" != yes && \
2729943345d3Smrg		 test "$hardcode_minus_L" != yes && \
2730943345d3Smrg		 test "$hardcode_shlibpath_var" = yes; then
2731943345d3Smrg		case :$finalize_shlibpath: in
2732943345d3Smrg		*":$libdir:"*) ;;
2733943345d3Smrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2734943345d3Smrg		esac
2735943345d3Smrg	      fi
2736943345d3Smrg	    fi
2737943345d3Smrg	  fi
2738943345d3Smrg
2739943345d3Smrg	  if test "$linkmode" = prog || test "$mode" = relink; then
2740943345d3Smrg	    add_shlibpath=
2741943345d3Smrg	    add_dir=
2742943345d3Smrg	    add=
2743943345d3Smrg	    # Finalize command for both is simple: just hardcode it.
2744943345d3Smrg	    if test "$hardcode_direct" = yes; then
2745943345d3Smrg	      add="$libdir/$linklib"
2746943345d3Smrg	    elif test "$hardcode_minus_L" = yes; then
2747943345d3Smrg	      add_dir="-L$libdir"
2748943345d3Smrg	      add="-l$name"
2749943345d3Smrg	    elif test "$hardcode_shlibpath_var" = yes; then
2750943345d3Smrg	      case :$finalize_shlibpath: in
2751943345d3Smrg	      *":$libdir:"*) ;;
2752943345d3Smrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2753943345d3Smrg	      esac
2754943345d3Smrg	      add="-l$name"
2755943345d3Smrg	    elif test "$hardcode_automatic" = yes; then
2756943345d3Smrg	      if test -n "$inst_prefix_dir" &&
2757943345d3Smrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2758943345d3Smrg	        add="$inst_prefix_dir$libdir/$linklib"
2759943345d3Smrg	      else
2760943345d3Smrg	        add="$libdir/$linklib"
2761943345d3Smrg	      fi
2762943345d3Smrg	    else
2763943345d3Smrg	      # We cannot seem to hardcode it, guess we'll fake it.
2764943345d3Smrg	      add_dir="-L$libdir"
2765943345d3Smrg	      # Try looking first in the location we're being installed to.
2766943345d3Smrg	      if test -n "$inst_prefix_dir"; then
2767943345d3Smrg		case $libdir in
2768943345d3Smrg		  [\\/]*)
2769943345d3Smrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2770943345d3Smrg		    ;;
2771943345d3Smrg		esac
2772943345d3Smrg	      fi
2773943345d3Smrg	      add="-l$name"
2774943345d3Smrg	    fi
2775943345d3Smrg
2776943345d3Smrg	    if test "$linkmode" = prog; then
2777943345d3Smrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2778943345d3Smrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2779943345d3Smrg	    else
2780943345d3Smrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2781943345d3Smrg	      test -n "$add" && deplibs="$add $deplibs"
2782943345d3Smrg	    fi
2783943345d3Smrg	  fi
2784943345d3Smrg	elif test "$linkmode" = prog; then
2785943345d3Smrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2786943345d3Smrg	  # is not unsupported.  This is valid on all known static and
2787943345d3Smrg	  # shared platforms.
2788943345d3Smrg	  if test "$hardcode_direct" != unsupported; then
2789943345d3Smrg	    test -n "$old_library" && linklib="$old_library"
2790943345d3Smrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
2791943345d3Smrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2792943345d3Smrg	  else
2793943345d3Smrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2794943345d3Smrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2795943345d3Smrg	  fi
2796943345d3Smrg	elif test "$build_libtool_libs" = yes; then
2797943345d3Smrg	  # Not a shared library
2798943345d3Smrg	  if test "$deplibs_check_method" != pass_all; then
2799943345d3Smrg	    # We're trying link a shared library against a static one
2800943345d3Smrg	    # but the system doesn't support it.
2801943345d3Smrg
2802943345d3Smrg	    # Just print a warning and add the library to dependency_libs so
2803943345d3Smrg	    # that the program can be linked against the static library.
2804943345d3Smrg	    $echo
2805943345d3Smrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
2806943345d3Smrg	    $echo "*** I have the capability to make that library automatically link in when"
2807943345d3Smrg	    $echo "*** you link to this library.  But I can only do this if you have a"
2808943345d3Smrg	    $echo "*** shared version of the library, which you do not appear to have."
2809943345d3Smrg	    if test "$module" = yes; then
2810943345d3Smrg	      $echo "*** But as you try to build a module library, libtool will still create "
2811943345d3Smrg	      $echo "*** a static module, that should work as long as the dlopening application"
2812943345d3Smrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2813943345d3Smrg	      if test -z "$global_symbol_pipe"; then
2814943345d3Smrg		$echo
2815943345d3Smrg		$echo "*** However, this would only work if libtool was able to extract symbol"
2816943345d3Smrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2817943345d3Smrg		$echo "*** not find such a program.  So, this module is probably useless."
2818943345d3Smrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2819943345d3Smrg	      fi
2820943345d3Smrg	      if test "$build_old_libs" = no; then
2821943345d3Smrg		build_libtool_libs=module
2822943345d3Smrg		build_old_libs=yes
2823943345d3Smrg	      else
2824943345d3Smrg		build_libtool_libs=no
2825943345d3Smrg	      fi
2826943345d3Smrg	    fi
2827943345d3Smrg	  else
2828943345d3Smrg	    deplibs="$dir/$old_library $deplibs"
2829943345d3Smrg	    link_static=yes
2830943345d3Smrg	  fi
2831943345d3Smrg	fi # link shared/static library?
2832943345d3Smrg
2833943345d3Smrg	if test "$linkmode" = lib; then
2834943345d3Smrg	  if test -n "$dependency_libs" &&
2835943345d3Smrg	     { test "$hardcode_into_libs" != yes ||
2836943345d3Smrg	       test "$build_old_libs" = yes ||
2837943345d3Smrg	       test "$link_static" = yes; }; then
2838943345d3Smrg	    # Extract -R from dependency_libs
2839943345d3Smrg	    temp_deplibs=
2840943345d3Smrg	    for libdir in $dependency_libs; do
2841943345d3Smrg	      case $libdir in
2842943345d3Smrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2843943345d3Smrg		   case " $xrpath " in
2844943345d3Smrg		   *" $temp_xrpath "*) ;;
2845943345d3Smrg		   *) xrpath="$xrpath $temp_xrpath";;
2846943345d3Smrg		   esac;;
2847943345d3Smrg	      *) temp_deplibs="$temp_deplibs $libdir";;
2848943345d3Smrg	      esac
2849943345d3Smrg	    done
2850943345d3Smrg	    dependency_libs="$temp_deplibs"
2851943345d3Smrg	  fi
2852943345d3Smrg
2853943345d3Smrg	  newlib_search_path="$newlib_search_path $absdir"
2854943345d3Smrg	  # Link against this library
2855943345d3Smrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2856943345d3Smrg	  # ... and its dependency_libs
2857943345d3Smrg	  tmp_libs=
2858943345d3Smrg	  for deplib in $dependency_libs; do
2859943345d3Smrg	    newdependency_libs="$deplib $newdependency_libs"
2860943345d3Smrg	    if test "X$duplicate_deps" = "Xyes" ; then
2861943345d3Smrg	      case "$tmp_libs " in
2862943345d3Smrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2863943345d3Smrg	      esac
2864943345d3Smrg	    fi
2865943345d3Smrg	    tmp_libs="$tmp_libs $deplib"
2866943345d3Smrg	  done
2867943345d3Smrg
2868943345d3Smrg	  if test "$link_all_deplibs" != no; then
2869943345d3Smrg	    # Add the search paths of all dependency libraries
2870943345d3Smrg	    for deplib in $dependency_libs; do
2871943345d3Smrg	      case $deplib in
2872943345d3Smrg	      -L*) path="$deplib" ;;
2873943345d3Smrg	      *.la)
2874943345d3Smrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2875943345d3Smrg		test "X$dir" = "X$deplib" && dir="."
2876943345d3Smrg		# We need an absolute path.
2877943345d3Smrg		case $dir in
2878943345d3Smrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2879943345d3Smrg		*)
2880943345d3Smrg		  absdir=`cd "$dir" && pwd`
2881943345d3Smrg		  if test -z "$absdir"; then
2882943345d3Smrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2883943345d3Smrg		    absdir="$dir"
2884943345d3Smrg		  fi
2885943345d3Smrg		  ;;
2886943345d3Smrg		esac
2887943345d3Smrg		if grep "^installed=no" $deplib > /dev/null; then
2888943345d3Smrg		  path="$absdir/$objdir"
2889943345d3Smrg		else
2890943345d3Smrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2891943345d3Smrg		  if test -z "$libdir"; then
2892943345d3Smrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2893943345d3Smrg		    exit $EXIT_FAILURE
2894943345d3Smrg		  fi
2895943345d3Smrg		  if test "$absdir" != "$libdir"; then
2896943345d3Smrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2897943345d3Smrg		  fi
2898943345d3Smrg		  path="$absdir"
2899943345d3Smrg		fi
2900943345d3Smrg		depdepl=
2901943345d3Smrg		case $host in
2902943345d3Smrg		*-*-darwin*)
2903943345d3Smrg		  # we do not want to link against static libs,
2904943345d3Smrg		  # but need to link against shared
2905943345d3Smrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2906943345d3Smrg		  if test -n "$deplibrary_names" ; then
2907943345d3Smrg		    for tmp in $deplibrary_names ; do
2908943345d3Smrg		      depdepl=$tmp
2909943345d3Smrg		    done
2910943345d3Smrg		    if test -f "$path/$depdepl" ; then
2911943345d3Smrg		      depdepl="$path/$depdepl"
2912943345d3Smrg		    fi
2913943345d3Smrg		    # do not add paths which are already there
2914943345d3Smrg		    case " $newlib_search_path " in
2915943345d3Smrg		    *" $path "*) ;;
2916943345d3Smrg		    *) newlib_search_path="$newlib_search_path $path";;
2917943345d3Smrg		    esac
2918943345d3Smrg		  fi
2919943345d3Smrg		  path=""
2920943345d3Smrg		  ;;
2921943345d3Smrg		*)
2922943345d3Smrg		  path="-L$path"
2923943345d3Smrg		  ;;
2924943345d3Smrg		esac
2925943345d3Smrg		;;
2926943345d3Smrg	      -l*)
2927943345d3Smrg		case $host in
2928943345d3Smrg		*-*-darwin*)
2929943345d3Smrg		  # Again, we only want to link against shared libraries
2930943345d3Smrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2931943345d3Smrg		  for tmp in $newlib_search_path ; do
2932943345d3Smrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2933943345d3Smrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2934943345d3Smrg		      break
2935943345d3Smrg		    fi
2936943345d3Smrg		  done
2937943345d3Smrg		  path=""
2938943345d3Smrg		  ;;
2939943345d3Smrg		*) continue ;;
2940943345d3Smrg		esac
2941943345d3Smrg		;;
2942943345d3Smrg	      *) continue ;;
2943943345d3Smrg	      esac
2944943345d3Smrg	      case " $deplibs " in
2945943345d3Smrg	      *" $path "*) ;;
2946943345d3Smrg	      *) deplibs="$path $deplibs" ;;
2947943345d3Smrg	      esac
2948943345d3Smrg	      case " $deplibs " in
2949943345d3Smrg	      *" $depdepl "*) ;;
2950943345d3Smrg	      *) deplibs="$depdepl $deplibs" ;;
2951943345d3Smrg	      esac
2952943345d3Smrg	    done
2953943345d3Smrg	  fi # link_all_deplibs != no
2954943345d3Smrg	fi # linkmode = lib
2955943345d3Smrg      done # for deplib in $libs
2956943345d3Smrg      dependency_libs="$newdependency_libs"
2957943345d3Smrg      if test "$pass" = dlpreopen; then
2958943345d3Smrg	# Link the dlpreopened libraries before other libraries
2959943345d3Smrg	for deplib in $save_deplibs; do
2960943345d3Smrg	  deplibs="$deplib $deplibs"
2961943345d3Smrg	done
2962943345d3Smrg      fi
2963943345d3Smrg      if test "$pass" != dlopen; then
2964943345d3Smrg	if test "$pass" != conv; then
2965943345d3Smrg	  # Make sure lib_search_path contains only unique directories.
2966943345d3Smrg	  lib_search_path=
2967943345d3Smrg	  for dir in $newlib_search_path; do
2968943345d3Smrg	    case "$lib_search_path " in
2969943345d3Smrg	    *" $dir "*) ;;
2970943345d3Smrg	    *) lib_search_path="$lib_search_path $dir" ;;
2971943345d3Smrg	    esac
2972943345d3Smrg	  done
2973943345d3Smrg	  newlib_search_path=
2974943345d3Smrg	fi
2975943345d3Smrg
2976943345d3Smrg	if test "$linkmode,$pass" != "prog,link"; then
2977943345d3Smrg	  vars="deplibs"
2978943345d3Smrg	else
2979943345d3Smrg	  vars="compile_deplibs finalize_deplibs"
2980943345d3Smrg	fi
2981943345d3Smrg	for var in $vars dependency_libs; do
2982943345d3Smrg	  # Add libraries to $var in reverse order
2983943345d3Smrg	  eval tmp_libs=\"\$$var\"
2984943345d3Smrg	  new_libs=
2985943345d3Smrg	  for deplib in $tmp_libs; do
2986943345d3Smrg	    # FIXME: Pedantically, this is the right thing to do, so
2987943345d3Smrg	    #        that some nasty dependency loop isn't accidentally
2988943345d3Smrg	    #        broken:
2989943345d3Smrg	    #new_libs="$deplib $new_libs"
2990943345d3Smrg	    # Pragmatically, this seems to cause very few problems in
2991943345d3Smrg	    # practice:
2992943345d3Smrg	    case $deplib in
2993943345d3Smrg	    -L*) new_libs="$deplib $new_libs" ;;
2994943345d3Smrg	    -R*) ;;
2995943345d3Smrg	    *)
2996943345d3Smrg	      # And here is the reason: when a library appears more
2997943345d3Smrg	      # than once as an explicit dependence of a library, or
2998943345d3Smrg	      # is implicitly linked in more than once by the
2999943345d3Smrg	      # compiler, it is considered special, and multiple
3000943345d3Smrg	      # occurrences thereof are not removed.  Compare this
3001943345d3Smrg	      # with having the same library being listed as a
3002943345d3Smrg	      # dependency of multiple other libraries: in this case,
3003943345d3Smrg	      # we know (pedantically, we assume) the library does not
3004943345d3Smrg	      # need to be listed more than once, so we keep only the
3005943345d3Smrg	      # last copy.  This is not always right, but it is rare
3006943345d3Smrg	      # enough that we require users that really mean to play
3007943345d3Smrg	      # such unportable linking tricks to link the library
3008943345d3Smrg	      # using -Wl,-lname, so that libtool does not consider it
3009943345d3Smrg	      # for duplicate removal.
3010943345d3Smrg	      case " $specialdeplibs " in
3011943345d3Smrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3012943345d3Smrg	      *)
3013943345d3Smrg		case " $new_libs " in
3014943345d3Smrg		*" $deplib "*) ;;
3015943345d3Smrg		*) new_libs="$deplib $new_libs" ;;
3016943345d3Smrg		esac
3017943345d3Smrg		;;
3018943345d3Smrg	      esac
3019943345d3Smrg	      ;;
3020943345d3Smrg	    esac
3021943345d3Smrg	  done
3022943345d3Smrg	  tmp_libs=
3023943345d3Smrg	  for deplib in $new_libs; do
3024943345d3Smrg	    case $deplib in
3025943345d3Smrg	    -L*)
3026943345d3Smrg	      case " $tmp_libs " in
3027943345d3Smrg	      *" $deplib "*) ;;
3028943345d3Smrg	      *) tmp_libs="$tmp_libs $deplib" ;;
3029943345d3Smrg	      esac
3030943345d3Smrg	      ;;
3031943345d3Smrg	    *) tmp_libs="$tmp_libs $deplib" ;;
3032943345d3Smrg	    esac
3033943345d3Smrg	  done
3034943345d3Smrg	  eval $var=\"$tmp_libs\"
3035943345d3Smrg	done # for var
3036943345d3Smrg      fi
3037943345d3Smrg      # Last step: remove runtime libs from dependency_libs
3038943345d3Smrg      # (they stay in deplibs)
3039943345d3Smrg      tmp_libs=
3040943345d3Smrg      for i in $dependency_libs ; do
3041943345d3Smrg	case " $predeps $postdeps $compiler_lib_search_path " in
3042943345d3Smrg	*" $i "*)
3043943345d3Smrg	  i=""
3044943345d3Smrg	  ;;
3045943345d3Smrg	esac
3046943345d3Smrg	if test -n "$i" ; then
3047943345d3Smrg	  tmp_libs="$tmp_libs $i"
3048943345d3Smrg	fi
3049943345d3Smrg      done
3050943345d3Smrg      dependency_libs=$tmp_libs
3051943345d3Smrg    done # for pass
3052943345d3Smrg    if test "$linkmode" = prog; then
3053943345d3Smrg      dlfiles="$newdlfiles"
3054943345d3Smrg      dlprefiles="$newdlprefiles"
3055943345d3Smrg    fi
3056943345d3Smrg
3057943345d3Smrg    case $linkmode in
3058943345d3Smrg    oldlib)
3059943345d3Smrg      if test -n "$deplibs"; then
3060943345d3Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3061943345d3Smrg      fi
3062943345d3Smrg
3063943345d3Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3064943345d3Smrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3065943345d3Smrg      fi
3066943345d3Smrg
3067943345d3Smrg      if test -n "$rpath"; then
3068943345d3Smrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3069943345d3Smrg      fi
3070943345d3Smrg
3071943345d3Smrg      if test -n "$xrpath"; then
3072943345d3Smrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3073943345d3Smrg      fi
3074943345d3Smrg
3075943345d3Smrg      if test -n "$vinfo"; then
3076943345d3Smrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3077943345d3Smrg      fi
3078943345d3Smrg
3079943345d3Smrg      if test -n "$release"; then
3080943345d3Smrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3081943345d3Smrg      fi
3082943345d3Smrg
3083943345d3Smrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3084943345d3Smrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3085943345d3Smrg      fi
3086943345d3Smrg
3087943345d3Smrg      # Now set the variables for building old libraries.
3088943345d3Smrg      build_libtool_libs=no
3089943345d3Smrg      oldlibs="$output"
3090943345d3Smrg      objs="$objs$old_deplibs"
3091943345d3Smrg      ;;
3092943345d3Smrg
3093943345d3Smrg    lib)
3094943345d3Smrg      # Make sure we only generate libraries of the form `libNAME.la'.
3095943345d3Smrg      case $outputname in
3096943345d3Smrg      lib*)
3097943345d3Smrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3098943345d3Smrg	eval shared_ext=\"$shrext_cmds\"
3099943345d3Smrg	eval libname=\"$libname_spec\"
3100943345d3Smrg	;;
3101943345d3Smrg      *)
3102943345d3Smrg	if test "$module" = no; then
3103943345d3Smrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3104943345d3Smrg	  $echo "$help" 1>&2
3105943345d3Smrg	  exit $EXIT_FAILURE
3106943345d3Smrg	fi
3107943345d3Smrg	if test "$need_lib_prefix" != no; then
3108943345d3Smrg	  # Add the "lib" prefix for modules if required
3109943345d3Smrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3110943345d3Smrg	  eval shared_ext=\"$shrext_cmds\"
3111943345d3Smrg	  eval libname=\"$libname_spec\"
3112943345d3Smrg	else
3113943345d3Smrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3114943345d3Smrg	fi
3115943345d3Smrg	;;
3116943345d3Smrg      esac
3117943345d3Smrg
3118943345d3Smrg      if test -n "$objs"; then
3119943345d3Smrg	if test "$deplibs_check_method" != pass_all; then
3120943345d3Smrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3121943345d3Smrg	  exit $EXIT_FAILURE
3122943345d3Smrg	else
3123943345d3Smrg	  $echo
3124943345d3Smrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3125943345d3Smrg	  $echo "*** objects $objs is not portable!"
3126943345d3Smrg	  libobjs="$libobjs $objs"
3127943345d3Smrg	fi
3128943345d3Smrg      fi
3129943345d3Smrg
3130943345d3Smrg      if test "$dlself" != no; then
3131943345d3Smrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3132943345d3Smrg      fi
3133943345d3Smrg
3134943345d3Smrg      set dummy $rpath
3135943345d3Smrg      if test "$#" -gt 2; then
3136943345d3Smrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3137943345d3Smrg      fi
3138943345d3Smrg      install_libdir="$2"
3139943345d3Smrg
3140943345d3Smrg      oldlibs=
3141943345d3Smrg      if test -z "$rpath"; then
3142943345d3Smrg	if test "$build_libtool_libs" = yes; then
3143943345d3Smrg	  # Building a libtool convenience library.
3144943345d3Smrg	  # Some compilers have problems with a `.al' extension so
3145943345d3Smrg	  # convenience libraries should have the same extension an
3146943345d3Smrg	  # archive normally would.
3147943345d3Smrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3148943345d3Smrg	  build_libtool_libs=convenience
3149943345d3Smrg	  build_old_libs=yes
3150943345d3Smrg	fi
3151943345d3Smrg
3152943345d3Smrg	if test -n "$vinfo"; then
3153943345d3Smrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3154943345d3Smrg	fi
3155943345d3Smrg
3156943345d3Smrg	if test -n "$release"; then
3157943345d3Smrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3158943345d3Smrg	fi
3159943345d3Smrg      else
3160943345d3Smrg
3161943345d3Smrg	# Parse the version information argument.
3162943345d3Smrg	save_ifs="$IFS"; IFS=':'
3163943345d3Smrg	set dummy $vinfo 0 0 0
3164943345d3Smrg	IFS="$save_ifs"
3165943345d3Smrg
3166943345d3Smrg	if test -n "$8"; then
3167943345d3Smrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3168943345d3Smrg	  $echo "$help" 1>&2
3169943345d3Smrg	  exit $EXIT_FAILURE
3170943345d3Smrg	fi
3171943345d3Smrg
3172943345d3Smrg	# convert absolute version numbers to libtool ages
3173943345d3Smrg	# this retains compatibility with .la files and attempts
3174943345d3Smrg	# to make the code below a bit more comprehensible
3175943345d3Smrg
3176943345d3Smrg	case $vinfo_number in
3177943345d3Smrg	yes)
3178943345d3Smrg	  number_major="$2"
3179943345d3Smrg	  number_minor="$3"
3180943345d3Smrg	  number_revision="$4"
3181943345d3Smrg	  #
3182943345d3Smrg	  # There are really only two kinds -- those that
3183943345d3Smrg	  # use the current revision as the major version
3184943345d3Smrg	  # and those that subtract age and use age as
3185943345d3Smrg	  # a minor version.  But, then there is irix
3186943345d3Smrg	  # which has an extra 1 added just for fun
3187943345d3Smrg	  #
3188943345d3Smrg	  case $version_type in
3189943345d3Smrg	  darwin|linux|osf|windows)
3190943345d3Smrg	    current=`expr $number_major + $number_minor`
3191943345d3Smrg	    age="$number_minor"
3192943345d3Smrg	    revision="$number_revision"
3193943345d3Smrg	    ;;
3194943345d3Smrg	  freebsd-aout|freebsd-elf|sunos)
3195943345d3Smrg	    current="$number_major"
3196943345d3Smrg	    revision="$number_minor"
3197943345d3Smrg	    age="0"
3198943345d3Smrg	    ;;
3199943345d3Smrg	  irix|nonstopux)
3200943345d3Smrg	    current=`expr $number_major + $number_minor - 1`
3201943345d3Smrg	    age="$number_minor"
3202943345d3Smrg	    revision="$number_minor"
3203943345d3Smrg	    ;;
3204943345d3Smrg	  esac
3205943345d3Smrg	  ;;
3206943345d3Smrg	no)
3207943345d3Smrg	  current="$2"
3208943345d3Smrg	  revision="$3"
3209943345d3Smrg	  age="$4"
3210943345d3Smrg	  ;;
3211943345d3Smrg	esac
3212943345d3Smrg
3213943345d3Smrg	# Check that each of the things are valid numbers.
3214943345d3Smrg	case $current in
3215943345d3Smrg	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]) ;;
3216943345d3Smrg	*)
3217943345d3Smrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3218943345d3Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3219943345d3Smrg	  exit $EXIT_FAILURE
3220943345d3Smrg	  ;;
3221943345d3Smrg	esac
3222943345d3Smrg
3223943345d3Smrg	case $revision in
3224943345d3Smrg	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]) ;;
3225943345d3Smrg	*)
3226943345d3Smrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3227943345d3Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3228943345d3Smrg	  exit $EXIT_FAILURE
3229943345d3Smrg	  ;;
3230943345d3Smrg	esac
3231943345d3Smrg
3232943345d3Smrg	case $age in
3233943345d3Smrg	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]) ;;
3234943345d3Smrg	*)
3235943345d3Smrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3236943345d3Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3237943345d3Smrg	  exit $EXIT_FAILURE
3238943345d3Smrg	  ;;
3239943345d3Smrg	esac
3240943345d3Smrg
3241943345d3Smrg	if test "$age" -gt "$current"; then
3242943345d3Smrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3243943345d3Smrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3244943345d3Smrg	  exit $EXIT_FAILURE
3245943345d3Smrg	fi
3246943345d3Smrg
3247943345d3Smrg	# Calculate the version variables.
3248943345d3Smrg	major=
3249943345d3Smrg	versuffix=
3250943345d3Smrg	verstring=
3251943345d3Smrg	case $version_type in
3252943345d3Smrg	none) ;;
3253943345d3Smrg
3254943345d3Smrg	darwin)
3255943345d3Smrg	  # Like Linux, but with the current version available in
3256943345d3Smrg	  # verstring for coding it into the library header
3257943345d3Smrg	  major=.`expr $current - $age`
3258943345d3Smrg	  versuffix="$major.$age.$revision"
3259943345d3Smrg	  # Darwin ld doesn't like 0 for these options...
3260943345d3Smrg	  minor_current=`expr $current + 1`
3261943345d3Smrg	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3262943345d3Smrg	  ;;
3263943345d3Smrg
3264943345d3Smrg	freebsd-aout)
3265943345d3Smrg	  major=".$current"
3266943345d3Smrg	  versuffix=".$current.$revision";
3267943345d3Smrg	  ;;
3268943345d3Smrg
3269943345d3Smrg	freebsd-elf)
3270943345d3Smrg	  major=".$current"
3271943345d3Smrg	  versuffix=".$current";
3272943345d3Smrg	  ;;
3273943345d3Smrg
3274943345d3Smrg	irix | nonstopux)
3275943345d3Smrg	  major=`expr $current - $age + 1`
3276943345d3Smrg
3277943345d3Smrg	  case $version_type in
3278943345d3Smrg	    nonstopux) verstring_prefix=nonstopux ;;
3279943345d3Smrg	    *)         verstring_prefix=sgi ;;
3280943345d3Smrg	  esac
3281943345d3Smrg	  verstring="$verstring_prefix$major.$revision"
3282943345d3Smrg
3283943345d3Smrg	  # Add in all the interfaces that we are compatible with.
3284943345d3Smrg	  loop=$revision
3285943345d3Smrg	  while test "$loop" -ne 0; do
3286943345d3Smrg	    iface=`expr $revision - $loop`
3287943345d3Smrg	    loop=`expr $loop - 1`
3288943345d3Smrg	    verstring="$verstring_prefix$major.$iface:$verstring"
3289943345d3Smrg	  done
3290943345d3Smrg
3291943345d3Smrg	  # Before this point, $major must not contain `.'.
3292943345d3Smrg	  major=.$major
3293943345d3Smrg	  versuffix="$major.$revision"
3294943345d3Smrg	  ;;
3295943345d3Smrg
3296943345d3Smrg	linux)
3297943345d3Smrg	  major=.`expr $current - $age`
3298943345d3Smrg	  versuffix="$major.$age.$revision"
3299943345d3Smrg	  ;;
3300943345d3Smrg
3301943345d3Smrg	osf)
3302943345d3Smrg	  major=.`expr $current - $age`
3303943345d3Smrg	  versuffix=".$current.$age.$revision"
3304943345d3Smrg	  verstring="$current.$age.$revision"
3305943345d3Smrg
3306943345d3Smrg	  # Add in all the interfaces that we are compatible with.
3307943345d3Smrg	  loop=$age
3308943345d3Smrg	  while test "$loop" -ne 0; do
3309943345d3Smrg	    iface=`expr $current - $loop`
3310943345d3Smrg	    loop=`expr $loop - 1`
3311943345d3Smrg	    verstring="$verstring:${iface}.0"
3312943345d3Smrg	  done
3313943345d3Smrg
3314943345d3Smrg	  # Make executables depend on our current version.
3315943345d3Smrg	  verstring="$verstring:${current}.0"
3316943345d3Smrg	  ;;
3317943345d3Smrg
3318943345d3Smrg	sunos)
3319943345d3Smrg	  major=".$current"
3320943345d3Smrg	  versuffix=".$current.$revision"
3321943345d3Smrg	  ;;
3322943345d3Smrg
3323943345d3Smrg	windows)
3324943345d3Smrg	  # Use '-' rather than '.', since we only want one
3325943345d3Smrg	  # extension on DOS 8.3 filesystems.
3326943345d3Smrg	  major=`expr $current - $age`
3327943345d3Smrg	  versuffix="-$major"
3328943345d3Smrg	  ;;
3329943345d3Smrg
3330943345d3Smrg	*)
3331943345d3Smrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3332943345d3Smrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3333943345d3Smrg	  exit $EXIT_FAILURE
3334943345d3Smrg	  ;;
3335943345d3Smrg	esac
3336943345d3Smrg
3337943345d3Smrg	# Clear the version info if we defaulted, and they specified a release.
3338943345d3Smrg	if test -z "$vinfo" && test -n "$release"; then
3339943345d3Smrg	  major=
3340943345d3Smrg	  case $version_type in
3341943345d3Smrg	  darwin)
3342943345d3Smrg	    # we can't check for "0.0" in archive_cmds due to quoting
3343943345d3Smrg	    # problems, so we reset it completely
3344943345d3Smrg	    verstring=
3345943345d3Smrg	    ;;
3346943345d3Smrg	  *)
3347943345d3Smrg	    verstring="0.0"
3348943345d3Smrg	    ;;
3349943345d3Smrg	  esac
3350943345d3Smrg	  if test "$need_version" = no; then
3351943345d3Smrg	    versuffix=
3352943345d3Smrg	  else
3353943345d3Smrg	    versuffix=".0.0"
3354943345d3Smrg	  fi
3355943345d3Smrg	fi
3356943345d3Smrg
3357943345d3Smrg	# Remove version info from name if versioning should be avoided
3358943345d3Smrg	if test "$avoid_version" = yes && test "$need_version" = no; then
3359943345d3Smrg	  major=
3360943345d3Smrg	  versuffix=
3361943345d3Smrg	  verstring=""
3362943345d3Smrg	fi
3363943345d3Smrg
3364943345d3Smrg	# Check to see if the archive will have undefined symbols.
3365943345d3Smrg	if test "$allow_undefined" = yes; then
3366943345d3Smrg	  if test "$allow_undefined_flag" = unsupported; then
3367943345d3Smrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3368943345d3Smrg	    build_libtool_libs=no
3369943345d3Smrg	    build_old_libs=yes
3370943345d3Smrg	  fi
3371943345d3Smrg	else
3372943345d3Smrg	  # Don't allow undefined symbols.
3373943345d3Smrg	  allow_undefined_flag="$no_undefined_flag"
3374943345d3Smrg	fi
3375943345d3Smrg      fi
3376943345d3Smrg
3377943345d3Smrg      if test "$mode" != relink; then
3378943345d3Smrg	# Remove our outputs, but don't remove object files since they
3379943345d3Smrg	# may have been created when compiling PIC objects.
3380943345d3Smrg	removelist=
3381943345d3Smrg	tempremovelist=`$echo "$output_objdir/*"`
3382943345d3Smrg	for p in $tempremovelist; do
3383943345d3Smrg	  case $p in
3384943345d3Smrg	    *.$objext)
3385943345d3Smrg	       ;;
3386943345d3Smrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3387943345d3Smrg	       if test "X$precious_files_regex" != "X"; then
3388943345d3Smrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3389943345d3Smrg	         then
3390943345d3Smrg		   continue
3391943345d3Smrg		 fi
3392943345d3Smrg	       fi
3393943345d3Smrg	       removelist="$removelist $p"
3394943345d3Smrg	       ;;
3395943345d3Smrg	    *) ;;
3396943345d3Smrg	  esac
3397943345d3Smrg	done
3398943345d3Smrg	if test -n "$removelist"; then
3399943345d3Smrg	  $show "${rm}r $removelist"
3400943345d3Smrg	  $run ${rm}r $removelist
3401943345d3Smrg	fi
3402943345d3Smrg      fi
3403943345d3Smrg
3404943345d3Smrg      # Now set the variables for building old libraries.
3405943345d3Smrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3406943345d3Smrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3407943345d3Smrg
3408943345d3Smrg	# Transform .lo files to .o files.
3409943345d3Smrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3410943345d3Smrg      fi
3411943345d3Smrg
3412943345d3Smrg      # Eliminate all temporary directories.
3413943345d3Smrg      for path in $notinst_path; do
3414943345d3Smrg	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3415943345d3Smrg	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3416943345d3Smrg	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3417943345d3Smrg      done
3418943345d3Smrg
3419943345d3Smrg      if test -n "$xrpath"; then
3420943345d3Smrg	# If the user specified any rpath flags, then add them.
3421943345d3Smrg	temp_xrpath=
3422943345d3Smrg	for libdir in $xrpath; do
3423943345d3Smrg	  temp_xrpath="$temp_xrpath -R$libdir"
3424943345d3Smrg	  case "$finalize_rpath " in
3425943345d3Smrg	  *" $libdir "*) ;;
3426943345d3Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3427943345d3Smrg	  esac
3428943345d3Smrg	done
3429943345d3Smrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3430943345d3Smrg	  dependency_libs="$temp_xrpath $dependency_libs"
3431943345d3Smrg	fi
3432943345d3Smrg      fi
3433943345d3Smrg
3434943345d3Smrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
3435943345d3Smrg      old_dlfiles="$dlfiles"
3436943345d3Smrg      dlfiles=
3437943345d3Smrg      for lib in $old_dlfiles; do
3438943345d3Smrg	case " $dlprefiles $dlfiles " in
3439943345d3Smrg	*" $lib "*) ;;
3440943345d3Smrg	*) dlfiles="$dlfiles $lib" ;;
3441943345d3Smrg	esac
3442943345d3Smrg      done
3443943345d3Smrg
3444943345d3Smrg      # Make sure dlprefiles contains only unique files
3445943345d3Smrg      old_dlprefiles="$dlprefiles"
3446943345d3Smrg      dlprefiles=
3447943345d3Smrg      for lib in $old_dlprefiles; do
3448943345d3Smrg	case "$dlprefiles " in
3449943345d3Smrg	*" $lib "*) ;;
3450943345d3Smrg	*) dlprefiles="$dlprefiles $lib" ;;
3451943345d3Smrg	esac
3452943345d3Smrg      done
3453943345d3Smrg
3454943345d3Smrg      if test "$build_libtool_libs" = yes; then
3455943345d3Smrg	if test -n "$rpath"; then
3456943345d3Smrg	  case $host in
3457943345d3Smrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3458943345d3Smrg	    # these systems don't actually have a c library (as such)!
3459943345d3Smrg	    ;;
3460943345d3Smrg	  *-*-rhapsody* | *-*-darwin1.[012])
3461943345d3Smrg	    # Rhapsody C library is in the System framework
3462943345d3Smrg	    deplibs="$deplibs -framework System"
3463943345d3Smrg	    ;;
3464943345d3Smrg	  *-*-netbsd*)
3465943345d3Smrg	    # Don't link with libc until the a.out ld.so is fixed.
3466943345d3Smrg	    ;;
3467943345d3Smrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3468943345d3Smrg	    # Do not include libc due to us having libc/libc_r.
3469943345d3Smrg	    ;;
3470943345d3Smrg	  *-*-sco3.2v5* | *-*-sco5v6*)
3471943345d3Smrg	    # Causes problems with __ctype
3472943345d3Smrg	    ;;
3473943345d3Smrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3474943345d3Smrg	    # Compiler inserts libc in the correct place for threads to work
3475943345d3Smrg	    ;;
3476943345d3Smrg 	  *)
3477943345d3Smrg	    # Add libc to deplibs on all other systems if necessary.
3478943345d3Smrg	    if test "$build_libtool_need_lc" = "yes"; then
3479943345d3Smrg	      deplibs="$deplibs -lc"
3480943345d3Smrg	    fi
3481943345d3Smrg	    ;;
3482943345d3Smrg	  esac
3483943345d3Smrg	fi
3484943345d3Smrg
3485943345d3Smrg	# Transform deplibs into only deplibs that can be linked in shared.
3486943345d3Smrg	name_save=$name
3487943345d3Smrg	libname_save=$libname
3488943345d3Smrg	release_save=$release
3489943345d3Smrg	versuffix_save=$versuffix
3490943345d3Smrg	major_save=$major
3491943345d3Smrg	# I'm not sure if I'm treating the release correctly.  I think
3492943345d3Smrg	# release should show up in the -l (ie -lgmp5) so we don't want to
3493943345d3Smrg	# add it in twice.  Is that correct?
3494943345d3Smrg	release=""
3495943345d3Smrg	versuffix=""
3496943345d3Smrg	major=""
3497943345d3Smrg	newdeplibs=
3498943345d3Smrg	droppeddeps=no
3499943345d3Smrg	case $deplibs_check_method in
3500943345d3Smrg	pass_all)
3501943345d3Smrg	  # Don't check for shared/static.  Everything works.
3502943345d3Smrg	  # This might be a little naive.  We might want to check
3503943345d3Smrg	  # whether the library exists or not.  But this is on
3504943345d3Smrg	  # osf3 & osf4 and I'm not really sure... Just
3505943345d3Smrg	  # implementing what was already the behavior.
3506943345d3Smrg	  newdeplibs=$deplibs
3507943345d3Smrg	  ;;
3508943345d3Smrg	test_compile)
3509943345d3Smrg	  # This code stresses the "libraries are programs" paradigm to its
3510943345d3Smrg	  # limits. Maybe even breaks it.  We compile a program, linking it
3511943345d3Smrg	  # against the deplibs as a proxy for the library.  Then we can check
3512943345d3Smrg	  # whether they linked in statically or dynamically with ldd.
3513943345d3Smrg	  $rm conftest.c
3514943345d3Smrg	  cat > conftest.c <<EOF
3515943345d3Smrg	  int main() { return 0; }
3516943345d3SmrgEOF
3517943345d3Smrg	  $rm conftest
3518943345d3Smrg	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3519943345d3Smrg	  if test "$?" -eq 0 ; then
3520943345d3Smrg	    ldd_output=`ldd conftest`
3521943345d3Smrg	    for i in $deplibs; do
3522943345d3Smrg	      name=`expr $i : '-l\(.*\)'`
3523943345d3Smrg	      # If $name is empty we are operating on a -L argument.
3524943345d3Smrg              if test "$name" != "" && test "$name" -ne "0"; then
3525943345d3Smrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3526943345d3Smrg		  case " $predeps $postdeps " in
3527943345d3Smrg		  *" $i "*)
3528943345d3Smrg		    newdeplibs="$newdeplibs $i"
3529943345d3Smrg		    i=""
3530943345d3Smrg		    ;;
3531943345d3Smrg		  esac
3532943345d3Smrg	        fi
3533943345d3Smrg		if test -n "$i" ; then
3534943345d3Smrg		  libname=`eval \\$echo \"$libname_spec\"`
3535943345d3Smrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3536943345d3Smrg		  set dummy $deplib_matches
3537943345d3Smrg		  deplib_match=$2
3538943345d3Smrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3539943345d3Smrg		    newdeplibs="$newdeplibs $i"
3540943345d3Smrg		  else
3541943345d3Smrg		    droppeddeps=yes
3542943345d3Smrg		    $echo
3543943345d3Smrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3544943345d3Smrg		    $echo "*** I have the capability to make that library automatically link in when"
3545943345d3Smrg		    $echo "*** you link to this library.  But I can only do this if you have a"
3546943345d3Smrg		    $echo "*** shared version of the library, which I believe you do not have"
3547943345d3Smrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3548943345d3Smrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3549943345d3Smrg		  fi
3550943345d3Smrg		fi
3551943345d3Smrg	      else
3552943345d3Smrg		newdeplibs="$newdeplibs $i"
3553943345d3Smrg	      fi
3554943345d3Smrg	    done
3555943345d3Smrg	  else
3556943345d3Smrg	    # Error occurred in the first compile.  Let's try to salvage
3557943345d3Smrg	    # the situation: Compile a separate program for each library.
3558943345d3Smrg	    for i in $deplibs; do
3559943345d3Smrg	      name=`expr $i : '-l\(.*\)'`
3560943345d3Smrg	      # If $name is empty we are operating on a -L argument.
3561943345d3Smrg              if test "$name" != "" && test "$name" != "0"; then
3562943345d3Smrg		$rm conftest
3563943345d3Smrg		$LTCC $LTCFLAGS -o conftest conftest.c $i
3564943345d3Smrg		# Did it work?
3565943345d3Smrg		if test "$?" -eq 0 ; then
3566943345d3Smrg		  ldd_output=`ldd conftest`
3567943345d3Smrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3568943345d3Smrg		    case " $predeps $postdeps " in
3569943345d3Smrg		    *" $i "*)
3570943345d3Smrg		      newdeplibs="$newdeplibs $i"
3571943345d3Smrg		      i=""
3572943345d3Smrg		      ;;
3573943345d3Smrg		    esac
3574943345d3Smrg		  fi
3575943345d3Smrg		  if test -n "$i" ; then
3576943345d3Smrg		    libname=`eval \\$echo \"$libname_spec\"`
3577943345d3Smrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3578943345d3Smrg		    set dummy $deplib_matches
3579943345d3Smrg		    deplib_match=$2
3580943345d3Smrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3581943345d3Smrg		      newdeplibs="$newdeplibs $i"
3582943345d3Smrg		    else
3583943345d3Smrg		      droppeddeps=yes
3584943345d3Smrg		      $echo
3585943345d3Smrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3586943345d3Smrg		      $echo "*** I have the capability to make that library automatically link in when"
3587943345d3Smrg		      $echo "*** you link to this library.  But I can only do this if you have a"
3588943345d3Smrg		      $echo "*** shared version of the library, which you do not appear to have"
3589943345d3Smrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3590943345d3Smrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3591943345d3Smrg		    fi
3592943345d3Smrg		  fi
3593943345d3Smrg		else
3594943345d3Smrg		  droppeddeps=yes
3595943345d3Smrg		  $echo
3596943345d3Smrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3597943345d3Smrg		  $echo "***  make it link in!  You will probably need to install it or some"
3598943345d3Smrg		  $echo "*** library that it depends on before this library will be fully"
3599943345d3Smrg		  $echo "*** functional.  Installing it before continuing would be even better."
3600943345d3Smrg		fi
3601943345d3Smrg	      else
3602943345d3Smrg		newdeplibs="$newdeplibs $i"
3603943345d3Smrg	      fi
3604943345d3Smrg	    done
3605943345d3Smrg	  fi
3606943345d3Smrg	  ;;
3607943345d3Smrg	file_magic*)
3608943345d3Smrg	  set dummy $deplibs_check_method
3609943345d3Smrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3610943345d3Smrg	  for a_deplib in $deplibs; do
3611943345d3Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
3612943345d3Smrg	    # If $name is empty we are operating on a -L argument.
3613943345d3Smrg            if test "$name" != "" && test  "$name" != "0"; then
3614943345d3Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3615943345d3Smrg		case " $predeps $postdeps " in
3616943345d3Smrg		*" $a_deplib "*)
3617943345d3Smrg		  newdeplibs="$newdeplibs $a_deplib"
3618943345d3Smrg		  a_deplib=""
3619943345d3Smrg		  ;;
3620943345d3Smrg		esac
3621943345d3Smrg	      fi
3622943345d3Smrg	      if test -n "$a_deplib" ; then
3623943345d3Smrg		libname=`eval \\$echo \"$libname_spec\"`
3624943345d3Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3625943345d3Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3626943345d3Smrg		  for potent_lib in $potential_libs; do
3627943345d3Smrg		      # Follow soft links.
3628943345d3Smrg		      if ls -lLd "$potent_lib" 2>/dev/null \
3629943345d3Smrg			 | grep " -> " >/dev/null; then
3630943345d3Smrg			continue
3631943345d3Smrg		      fi
3632943345d3Smrg		      # The statement above tries to avoid entering an
3633943345d3Smrg		      # endless loop below, in case of cyclic links.
3634943345d3Smrg		      # We might still enter an endless loop, since a link
3635943345d3Smrg		      # loop can be closed while we follow links,
3636943345d3Smrg		      # but so what?
3637943345d3Smrg		      potlib="$potent_lib"
3638943345d3Smrg		      while test -h "$potlib" 2>/dev/null; do
3639943345d3Smrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3640943345d3Smrg			case $potliblink in
3641943345d3Smrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3642943345d3Smrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3643943345d3Smrg			esac
3644943345d3Smrg		      done
3645943345d3Smrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3646943345d3Smrg			 | ${SED} 10q \
3647943345d3Smrg			 | $EGREP "$file_magic_regex" > /dev/null; then
3648943345d3Smrg			newdeplibs="$newdeplibs $a_deplib"
3649943345d3Smrg			a_deplib=""
3650943345d3Smrg			break 2
3651943345d3Smrg		      fi
3652943345d3Smrg		  done
3653943345d3Smrg		done
3654943345d3Smrg	      fi
3655943345d3Smrg	      if test -n "$a_deplib" ; then
3656943345d3Smrg		droppeddeps=yes
3657943345d3Smrg		$echo
3658943345d3Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3659943345d3Smrg		$echo "*** I have the capability to make that library automatically link in when"
3660943345d3Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
3661943345d3Smrg		$echo "*** shared version of the library, which you do not appear to have"
3662943345d3Smrg		$echo "*** because I did check the linker path looking for a file starting"
3663943345d3Smrg		if test -z "$potlib" ; then
3664943345d3Smrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3665943345d3Smrg		else
3666943345d3Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3667943345d3Smrg		  $echo "*** using a file magic. Last file checked: $potlib"
3668943345d3Smrg		fi
3669943345d3Smrg	      fi
3670943345d3Smrg	    else
3671943345d3Smrg	      # Add a -L argument.
3672943345d3Smrg	      newdeplibs="$newdeplibs $a_deplib"
3673943345d3Smrg	    fi
3674943345d3Smrg	  done # Gone through all deplibs.
3675943345d3Smrg	  ;;
3676943345d3Smrg	match_pattern*)
3677943345d3Smrg	  set dummy $deplibs_check_method
3678943345d3Smrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3679943345d3Smrg	  for a_deplib in $deplibs; do
3680943345d3Smrg	    name=`expr $a_deplib : '-l\(.*\)'`
3681943345d3Smrg	    # If $name is empty we are operating on a -L argument.
3682943345d3Smrg	    if test -n "$name" && test "$name" != "0"; then
3683943345d3Smrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3684943345d3Smrg		case " $predeps $postdeps " in
3685943345d3Smrg		*" $a_deplib "*)
3686943345d3Smrg		  newdeplibs="$newdeplibs $a_deplib"
3687943345d3Smrg		  a_deplib=""
3688943345d3Smrg		  ;;
3689943345d3Smrg		esac
3690943345d3Smrg	      fi
3691943345d3Smrg	      if test -n "$a_deplib" ; then
3692943345d3Smrg		libname=`eval \\$echo \"$libname_spec\"`
3693943345d3Smrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3694943345d3Smrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3695943345d3Smrg		  for potent_lib in $potential_libs; do
3696943345d3Smrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
3697943345d3Smrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
3698943345d3Smrg		        | ${SED} 10q \
3699943345d3Smrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
3700943345d3Smrg		      newdeplibs="$newdeplibs $a_deplib"
3701943345d3Smrg		      a_deplib=""
3702943345d3Smrg		      break 2
3703943345d3Smrg		    fi
3704943345d3Smrg		  done
3705943345d3Smrg		done
3706943345d3Smrg	      fi
3707943345d3Smrg	      if test -n "$a_deplib" ; then
3708943345d3Smrg		droppeddeps=yes
3709943345d3Smrg		$echo
3710943345d3Smrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3711943345d3Smrg		$echo "*** I have the capability to make that library automatically link in when"
3712943345d3Smrg		$echo "*** you link to this library.  But I can only do this if you have a"
3713943345d3Smrg		$echo "*** shared version of the library, which you do not appear to have"
3714943345d3Smrg		$echo "*** because I did check the linker path looking for a file starting"
3715943345d3Smrg		if test -z "$potlib" ; then
3716943345d3Smrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3717943345d3Smrg		else
3718943345d3Smrg		  $echo "*** with $libname and none of the candidates passed a file format test"
3719943345d3Smrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
3720943345d3Smrg		fi
3721943345d3Smrg	      fi
3722943345d3Smrg	    else
3723943345d3Smrg	      # Add a -L argument.
3724943345d3Smrg	      newdeplibs="$newdeplibs $a_deplib"
3725943345d3Smrg	    fi
3726943345d3Smrg	  done # Gone through all deplibs.
3727943345d3Smrg	  ;;
3728943345d3Smrg	none | unknown | *)
3729943345d3Smrg	  newdeplibs=""
3730943345d3Smrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3731943345d3Smrg	    -e 's/ -[LR][^ ]*//g'`
3732943345d3Smrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3733943345d3Smrg	    for i in $predeps $postdeps ; do
3734943345d3Smrg	      # can't use Xsed below, because $i might contain '/'
3735943345d3Smrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3736943345d3Smrg	    done
3737943345d3Smrg	  fi
3738943345d3Smrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3739943345d3Smrg	    | grep . >/dev/null; then
3740943345d3Smrg	    $echo
3741943345d3Smrg	    if test "X$deplibs_check_method" = "Xnone"; then
3742943345d3Smrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3743943345d3Smrg	    else
3744943345d3Smrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3745943345d3Smrg	    fi
3746943345d3Smrg	    $echo "*** All declared inter-library dependencies are being dropped."
3747943345d3Smrg	    droppeddeps=yes
3748943345d3Smrg	  fi
3749943345d3Smrg	  ;;
3750943345d3Smrg	esac
3751943345d3Smrg	versuffix=$versuffix_save
3752943345d3Smrg	major=$major_save
3753943345d3Smrg	release=$release_save
3754943345d3Smrg	libname=$libname_save
3755943345d3Smrg	name=$name_save
3756943345d3Smrg
3757943345d3Smrg	case $host in
3758943345d3Smrg	*-*-rhapsody* | *-*-darwin1.[012])
3759943345d3Smrg	  # On Rhapsody replace the C library is the System framework
3760943345d3Smrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3761943345d3Smrg	  ;;
3762943345d3Smrg	esac
3763943345d3Smrg
3764943345d3Smrg	if test "$droppeddeps" = yes; then
3765943345d3Smrg	  if test "$module" = yes; then
3766943345d3Smrg	    $echo
3767943345d3Smrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3768943345d3Smrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3769943345d3Smrg	    $echo "*** a static module, that should work as long as the dlopening"
3770943345d3Smrg	    $echo "*** application is linked with the -dlopen flag."
3771943345d3Smrg	    if test -z "$global_symbol_pipe"; then
3772943345d3Smrg	      $echo
3773943345d3Smrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
3774943345d3Smrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3775943345d3Smrg	      $echo "*** not find such a program.  So, this module is probably useless."
3776943345d3Smrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3777943345d3Smrg	    fi
3778943345d3Smrg	    if test "$build_old_libs" = no; then
3779943345d3Smrg	      oldlibs="$output_objdir/$libname.$libext"
3780943345d3Smrg	      build_libtool_libs=module
3781943345d3Smrg	      build_old_libs=yes
3782943345d3Smrg	    else
3783943345d3Smrg	      build_libtool_libs=no
3784943345d3Smrg	    fi
3785943345d3Smrg	  else
3786943345d3Smrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
3787943345d3Smrg	    $echo "*** automatically added whenever a program is linked with this library"
3788943345d3Smrg	    $echo "*** or is declared to -dlopen it."
3789943345d3Smrg
3790943345d3Smrg	    if test "$allow_undefined" = no; then
3791943345d3Smrg	      $echo
3792943345d3Smrg	      $echo "*** Since this library must not contain undefined symbols,"
3793943345d3Smrg	      $echo "*** because either the platform does not support them or"
3794943345d3Smrg	      $echo "*** it was explicitly requested with -no-undefined,"
3795943345d3Smrg	      $echo "*** libtool will only create a static version of it."
3796943345d3Smrg	      if test "$build_old_libs" = no; then
3797943345d3Smrg		oldlibs="$output_objdir/$libname.$libext"
3798943345d3Smrg		build_libtool_libs=module
3799943345d3Smrg		build_old_libs=yes
3800943345d3Smrg	      else
3801943345d3Smrg		build_libtool_libs=no
3802943345d3Smrg	      fi
3803943345d3Smrg	    fi
3804943345d3Smrg	  fi
3805943345d3Smrg	fi
3806943345d3Smrg	# Done checking deplibs!
3807943345d3Smrg	deplibs=$newdeplibs
3808943345d3Smrg      fi
3809943345d3Smrg
3810943345d3Smrg
3811943345d3Smrg      # move library search paths that coincide with paths to not yet
3812943345d3Smrg      # installed libraries to the beginning of the library search list
3813943345d3Smrg      new_libs=
3814943345d3Smrg      for path in $notinst_path; do
3815943345d3Smrg	case " $new_libs " in
3816943345d3Smrg	*" -L$path/$objdir "*) ;;
3817943345d3Smrg	*)
3818943345d3Smrg	  case " $deplibs " in
3819943345d3Smrg	  *" -L$path/$objdir "*)
3820943345d3Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
3821943345d3Smrg	  esac
3822943345d3Smrg	  ;;
3823943345d3Smrg	esac
3824943345d3Smrg      done
3825943345d3Smrg      for deplib in $deplibs; do
3826943345d3Smrg	case $deplib in
3827943345d3Smrg	-L*)
3828943345d3Smrg	  case " $new_libs " in
3829943345d3Smrg	  *" $deplib "*) ;;
3830943345d3Smrg	  *) new_libs="$new_libs $deplib" ;;
3831943345d3Smrg	  esac
3832943345d3Smrg	  ;;
3833943345d3Smrg	*) new_libs="$new_libs $deplib" ;;
3834943345d3Smrg	esac
3835943345d3Smrg      done
3836943345d3Smrg      deplibs="$new_libs"
3837943345d3Smrg
3838943345d3Smrg
3839943345d3Smrg      # All the library-specific variables (install_libdir is set above).
3840943345d3Smrg      library_names=
3841943345d3Smrg      old_library=
3842943345d3Smrg      dlname=
3843943345d3Smrg
3844943345d3Smrg      # Test again, we may have decided not to build it any more
3845943345d3Smrg      if test "$build_libtool_libs" = yes; then
3846943345d3Smrg	if test "$hardcode_into_libs" = yes; then
3847943345d3Smrg	  # Hardcode the library paths
3848943345d3Smrg	  hardcode_libdirs=
3849943345d3Smrg	  dep_rpath=
3850943345d3Smrg	  rpath="$finalize_rpath"
3851943345d3Smrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3852943345d3Smrg	  for libdir in $rpath; do
3853943345d3Smrg	    if test -n "$hardcode_libdir_flag_spec"; then
3854943345d3Smrg	      if test -n "$hardcode_libdir_separator"; then
3855943345d3Smrg		if test -z "$hardcode_libdirs"; then
3856943345d3Smrg		  hardcode_libdirs="$libdir"
3857943345d3Smrg		else
3858943345d3Smrg		  # Just accumulate the unique libdirs.
3859943345d3Smrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3860943345d3Smrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3861943345d3Smrg		    ;;
3862943345d3Smrg		  *)
3863943345d3Smrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3864943345d3Smrg		    ;;
3865943345d3Smrg		  esac
3866943345d3Smrg		fi
3867943345d3Smrg	      else
3868943345d3Smrg		eval flag=\"$hardcode_libdir_flag_spec\"
3869943345d3Smrg		dep_rpath="$dep_rpath $flag"
3870943345d3Smrg	      fi
3871943345d3Smrg	    elif test -n "$runpath_var"; then
3872943345d3Smrg	      case "$perm_rpath " in
3873943345d3Smrg	      *" $libdir "*) ;;
3874943345d3Smrg	      *) perm_rpath="$perm_rpath $libdir" ;;
3875943345d3Smrg	      esac
3876943345d3Smrg	    fi
3877943345d3Smrg	  done
3878943345d3Smrg	  # Substitute the hardcoded libdirs into the rpath.
3879943345d3Smrg	  if test -n "$hardcode_libdir_separator" &&
3880943345d3Smrg	     test -n "$hardcode_libdirs"; then
3881943345d3Smrg	    libdir="$hardcode_libdirs"
3882943345d3Smrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3883943345d3Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3884943345d3Smrg	    else
3885943345d3Smrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3886943345d3Smrg	    fi
3887943345d3Smrg	  fi
3888943345d3Smrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3889943345d3Smrg	    # We should set the runpath_var.
3890943345d3Smrg	    rpath=
3891943345d3Smrg	    for dir in $perm_rpath; do
3892943345d3Smrg	      rpath="$rpath$dir:"
3893943345d3Smrg	    done
3894943345d3Smrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3895943345d3Smrg	  fi
3896943345d3Smrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3897943345d3Smrg	fi
3898943345d3Smrg
3899943345d3Smrg	shlibpath="$finalize_shlibpath"
3900943345d3Smrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3901943345d3Smrg	if test -n "$shlibpath"; then
3902943345d3Smrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3903943345d3Smrg	fi
3904943345d3Smrg
3905943345d3Smrg	# Get the real and link names of the library.
3906943345d3Smrg	eval shared_ext=\"$shrext_cmds\"
3907943345d3Smrg	eval library_names=\"$library_names_spec\"
3908943345d3Smrg	set dummy $library_names
3909943345d3Smrg	realname="$2"
3910943345d3Smrg	shift; shift
3911943345d3Smrg
3912943345d3Smrg	if test -n "$soname_spec"; then
3913943345d3Smrg	  eval soname=\"$soname_spec\"
3914943345d3Smrg	else
3915943345d3Smrg	  soname="$realname"
3916943345d3Smrg	fi
3917943345d3Smrg	if test -z "$dlname"; then
3918943345d3Smrg	  dlname=$soname
3919943345d3Smrg	fi
3920943345d3Smrg
3921943345d3Smrg	lib="$output_objdir/$realname"
3922943345d3Smrg	linknames=
3923943345d3Smrg	for link
3924943345d3Smrg	do
3925943345d3Smrg	  linknames="$linknames $link"
3926943345d3Smrg	done
3927943345d3Smrg
3928943345d3Smrg	# Use standard objects if they are pic
3929943345d3Smrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3930943345d3Smrg
3931943345d3Smrg	# Prepare the list of exported symbols
3932943345d3Smrg	if test -z "$export_symbols"; then
3933943345d3Smrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3934943345d3Smrg	    $show "generating symbol list for \`$libname.la'"
3935943345d3Smrg	    export_symbols="$output_objdir/$libname.exp"
3936943345d3Smrg	    $run $rm $export_symbols
3937943345d3Smrg	    cmds=$export_symbols_cmds
3938943345d3Smrg	    save_ifs="$IFS"; IFS='~'
3939943345d3Smrg	    for cmd in $cmds; do
3940943345d3Smrg	      IFS="$save_ifs"
3941943345d3Smrg	      eval cmd=\"$cmd\"
3942943345d3Smrg	      if len=`expr "X$cmd" : ".*"` &&
3943943345d3Smrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3944943345d3Smrg	        $show "$cmd"
3945943345d3Smrg	        $run eval "$cmd" || exit $?
3946943345d3Smrg	        skipped_export=false
3947943345d3Smrg	      else
3948943345d3Smrg	        # The command line is too long to execute in one step.
3949943345d3Smrg	        $show "using reloadable object file for export list..."
3950943345d3Smrg	        skipped_export=:
3951943345d3Smrg		# Break out early, otherwise skipped_export may be
3952943345d3Smrg		# set to false by a later but shorter cmd.
3953943345d3Smrg		break
3954943345d3Smrg	      fi
3955943345d3Smrg	    done
3956943345d3Smrg	    IFS="$save_ifs"
3957943345d3Smrg	    if test -n "$export_symbols_regex"; then
3958943345d3Smrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3959943345d3Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3960943345d3Smrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3961943345d3Smrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3962943345d3Smrg	    fi
3963943345d3Smrg	  fi
3964943345d3Smrg	fi
3965943345d3Smrg
3966943345d3Smrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
3967943345d3Smrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3968943345d3Smrg	fi
3969943345d3Smrg
3970943345d3Smrg	tmp_deplibs=
3971943345d3Smrg	for test_deplib in $deplibs; do
3972943345d3Smrg		case " $convenience " in
3973943345d3Smrg		*" $test_deplib "*) ;;
3974943345d3Smrg		*)
3975943345d3Smrg			tmp_deplibs="$tmp_deplibs $test_deplib"
3976943345d3Smrg			;;
3977943345d3Smrg		esac
3978943345d3Smrg	done
3979943345d3Smrg	deplibs="$tmp_deplibs"
3980943345d3Smrg
3981943345d3Smrg	if test -n "$convenience"; then
3982943345d3Smrg	  if test -n "$whole_archive_flag_spec"; then
3983943345d3Smrg	    save_libobjs=$libobjs
3984943345d3Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3985943345d3Smrg	  else
3986943345d3Smrg	    gentop="$output_objdir/${outputname}x"
3987943345d3Smrg	    generated="$generated $gentop"
3988943345d3Smrg
3989943345d3Smrg	    func_extract_archives $gentop $convenience
3990943345d3Smrg	    libobjs="$libobjs $func_extract_archives_result"
3991943345d3Smrg	  fi
3992943345d3Smrg	fi
3993943345d3Smrg	
3994943345d3Smrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3995943345d3Smrg	  eval flag=\"$thread_safe_flag_spec\"
3996943345d3Smrg	  linker_flags="$linker_flags $flag"
3997943345d3Smrg	fi
3998943345d3Smrg
3999943345d3Smrg	# Make a backup of the uninstalled library when relinking
4000943345d3Smrg	if test "$mode" = relink; then
4001943345d3Smrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4002943345d3Smrg	fi
4003943345d3Smrg
4004943345d3Smrg	# Do each of the archive commands.
4005943345d3Smrg	if test "$module" = yes && test -n "$module_cmds" ; then
4006943345d3Smrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4007943345d3Smrg	    eval test_cmds=\"$module_expsym_cmds\"
4008943345d3Smrg	    cmds=$module_expsym_cmds
4009943345d3Smrg	  else
4010943345d3Smrg	    eval test_cmds=\"$module_cmds\"
4011943345d3Smrg	    cmds=$module_cmds
4012943345d3Smrg	  fi
4013943345d3Smrg	else
4014943345d3Smrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4015943345d3Smrg	  eval test_cmds=\"$archive_expsym_cmds\"
4016943345d3Smrg	  cmds=$archive_expsym_cmds
4017943345d3Smrg	else
4018943345d3Smrg	  eval test_cmds=\"$archive_cmds\"
4019943345d3Smrg	  cmds=$archive_cmds
4020943345d3Smrg	  fi
4021943345d3Smrg	fi
4022943345d3Smrg
4023943345d3Smrg	if test "X$skipped_export" != "X:" &&
4024943345d3Smrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4025943345d3Smrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4026943345d3Smrg	  :
4027943345d3Smrg	else
4028943345d3Smrg	  # The command line is too long to link in one step, link piecewise.
4029943345d3Smrg	  $echo "creating reloadable object files..."
4030943345d3Smrg
4031943345d3Smrg	  # Save the value of $output and $libobjs because we want to
4032943345d3Smrg	  # use them later.  If we have whole_archive_flag_spec, we
4033943345d3Smrg	  # want to use save_libobjs as it was before
4034943345d3Smrg	  # whole_archive_flag_spec was expanded, because we can't
4035943345d3Smrg	  # assume the linker understands whole_archive_flag_spec.
4036943345d3Smrg	  # This may have to be revisited, in case too many
4037943345d3Smrg	  # convenience libraries get linked in and end up exceeding
4038943345d3Smrg	  # the spec.
4039943345d3Smrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4040943345d3Smrg	    save_libobjs=$libobjs
4041943345d3Smrg	  fi
4042943345d3Smrg	  save_output=$output
4043943345d3Smrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4044943345d3Smrg
4045943345d3Smrg	  # Clear the reloadable object creation command queue and
4046943345d3Smrg	  # initialize k to one.
4047943345d3Smrg	  test_cmds=
4048943345d3Smrg	  concat_cmds=
4049943345d3Smrg	  objlist=
4050943345d3Smrg	  delfiles=
4051943345d3Smrg	  last_robj=
4052943345d3Smrg	  k=1
4053943345d3Smrg	  output=$output_objdir/$output_la-${k}.$objext
4054943345d3Smrg	  # Loop over the list of objects to be linked.
4055943345d3Smrg	  for obj in $save_libobjs
4056943345d3Smrg	  do
4057943345d3Smrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4058943345d3Smrg	    if test "X$objlist" = X ||
4059943345d3Smrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4060943345d3Smrg		 test "$len" -le "$max_cmd_len"; }; then
4061943345d3Smrg	      objlist="$objlist $obj"
4062943345d3Smrg	    else
4063943345d3Smrg	      # The command $test_cmds is almost too long, add a
4064943345d3Smrg	      # command to the queue.
4065943345d3Smrg	      if test "$k" -eq 1 ; then
4066943345d3Smrg		# The first file doesn't have a previous command to add.
4067943345d3Smrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4068943345d3Smrg	      else
4069943345d3Smrg		# All subsequent reloadable object files will link in
4070943345d3Smrg		# the last one created.
4071943345d3Smrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4072943345d3Smrg	      fi
4073943345d3Smrg	      last_robj=$output_objdir/$output_la-${k}.$objext
4074943345d3Smrg	      k=`expr $k + 1`
4075943345d3Smrg	      output=$output_objdir/$output_la-${k}.$objext
4076943345d3Smrg	      objlist=$obj
4077943345d3Smrg	      len=1
4078943345d3Smrg	    fi
4079943345d3Smrg	  done
4080943345d3Smrg	  # Handle the remaining objects by creating one last
4081943345d3Smrg	  # reloadable object file.  All subsequent reloadable object
4082943345d3Smrg	  # files will link in the last one created.
4083943345d3Smrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4084943345d3Smrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4085943345d3Smrg
4086943345d3Smrg	  if ${skipped_export-false}; then
4087943345d3Smrg	    $show "generating symbol list for \`$libname.la'"
4088943345d3Smrg	    export_symbols="$output_objdir/$libname.exp"
4089943345d3Smrg	    $run $rm $export_symbols
4090943345d3Smrg	    libobjs=$output
4091943345d3Smrg	    # Append the command to create the export file.
4092943345d3Smrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4093943345d3Smrg          fi
4094943345d3Smrg
4095943345d3Smrg	  # Set up a command to remove the reloadable object files
4096943345d3Smrg	  # after they are used.
4097943345d3Smrg	  i=0
4098943345d3Smrg	  while test "$i" -lt "$k"
4099943345d3Smrg	  do
4100943345d3Smrg	    i=`expr $i + 1`
4101943345d3Smrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4102943345d3Smrg	  done
4103943345d3Smrg
4104943345d3Smrg	  $echo "creating a temporary reloadable object file: $output"
4105943345d3Smrg
4106943345d3Smrg	  # Loop through the commands generated above and execute them.
4107943345d3Smrg	  save_ifs="$IFS"; IFS='~'
4108943345d3Smrg	  for cmd in $concat_cmds; do
4109943345d3Smrg	    IFS="$save_ifs"
4110943345d3Smrg	    $show "$cmd"
4111943345d3Smrg	    $run eval "$cmd" || exit $?
4112943345d3Smrg	  done
4113943345d3Smrg	  IFS="$save_ifs"
4114943345d3Smrg
4115943345d3Smrg	  libobjs=$output
4116943345d3Smrg	  # Restore the value of output.
4117943345d3Smrg	  output=$save_output
4118943345d3Smrg
4119943345d3Smrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4120943345d3Smrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4121943345d3Smrg	  fi
4122943345d3Smrg	  # Expand the library linking commands again to reset the
4123943345d3Smrg	  # value of $libobjs for piecewise linking.
4124943345d3Smrg
4125943345d3Smrg	  # Do each of the archive commands.
4126943345d3Smrg	  if test "$module" = yes && test -n "$module_cmds" ; then
4127943345d3Smrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4128943345d3Smrg	      cmds=$module_expsym_cmds
4129943345d3Smrg	    else
4130943345d3Smrg	      cmds=$module_cmds
4131943345d3Smrg	    fi
4132943345d3Smrg	  else
4133943345d3Smrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4134943345d3Smrg	    cmds=$archive_expsym_cmds
4135943345d3Smrg	  else
4136943345d3Smrg	    cmds=$archive_cmds
4137943345d3Smrg	    fi
4138943345d3Smrg	  fi
4139943345d3Smrg
4140943345d3Smrg	  # Append the command to remove the reloadable object files
4141943345d3Smrg	  # to the just-reset $cmds.
4142943345d3Smrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
4143943345d3Smrg	fi
4144943345d3Smrg	save_ifs="$IFS"; IFS='~'
4145943345d3Smrg	for cmd in $cmds; do
4146943345d3Smrg	  IFS="$save_ifs"
4147943345d3Smrg	  eval cmd=\"$cmd\"
4148943345d3Smrg	  $show "$cmd"
4149943345d3Smrg	  $run eval "$cmd" || {
4150943345d3Smrg	    lt_exit=$?
4151943345d3Smrg
4152943345d3Smrg	    # Restore the uninstalled library and exit
4153943345d3Smrg	    if test "$mode" = relink; then
4154943345d3Smrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4155943345d3Smrg	    fi
4156943345d3Smrg
4157943345d3Smrg	    exit $lt_exit
4158943345d3Smrg	  }
4159943345d3Smrg	done
4160943345d3Smrg	IFS="$save_ifs"
4161943345d3Smrg
4162943345d3Smrg	# Restore the uninstalled library and exit
4163943345d3Smrg	if test "$mode" = relink; then
4164943345d3Smrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4165943345d3Smrg
4166943345d3Smrg	  if test -n "$convenience"; then
4167943345d3Smrg	    if test -z "$whole_archive_flag_spec"; then
4168943345d3Smrg	      $show "${rm}r $gentop"
4169943345d3Smrg	      $run ${rm}r "$gentop"
4170943345d3Smrg	    fi
4171943345d3Smrg	  fi
4172943345d3Smrg
4173943345d3Smrg	  exit $EXIT_SUCCESS
4174943345d3Smrg	fi
4175943345d3Smrg
4176943345d3Smrg	# Create links to the real library.
4177943345d3Smrg	for linkname in $linknames; do
4178943345d3Smrg	  if test "$realname" != "$linkname"; then
4179943345d3Smrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4180943345d3Smrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4181943345d3Smrg	  fi
4182943345d3Smrg	done
4183943345d3Smrg
4184943345d3Smrg	# If -module or -export-dynamic was specified, set the dlname.
4185943345d3Smrg	if test "$module" = yes || test "$export_dynamic" = yes; then
4186943345d3Smrg	  # On all known operating systems, these are identical.
4187943345d3Smrg	  dlname="$soname"
4188943345d3Smrg	fi
4189943345d3Smrg      fi
4190943345d3Smrg      ;;
4191943345d3Smrg
4192943345d3Smrg    obj)
4193943345d3Smrg      if test -n "$deplibs"; then
4194943345d3Smrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4195943345d3Smrg      fi
4196943345d3Smrg
4197943345d3Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4198943345d3Smrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4199943345d3Smrg      fi
4200943345d3Smrg
4201943345d3Smrg      if test -n "$rpath"; then
4202943345d3Smrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4203943345d3Smrg      fi
4204943345d3Smrg
4205943345d3Smrg      if test -n "$xrpath"; then
4206943345d3Smrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4207943345d3Smrg      fi
4208943345d3Smrg
4209943345d3Smrg      if test -n "$vinfo"; then
4210943345d3Smrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4211943345d3Smrg      fi
4212943345d3Smrg
4213943345d3Smrg      if test -n "$release"; then
4214943345d3Smrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4215943345d3Smrg      fi
4216943345d3Smrg
4217943345d3Smrg      case $output in
4218943345d3Smrg      *.lo)
4219943345d3Smrg	if test -n "$objs$old_deplibs"; then
4220943345d3Smrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4221943345d3Smrg	  exit $EXIT_FAILURE
4222943345d3Smrg	fi
4223943345d3Smrg	libobj="$output"
4224943345d3Smrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4225943345d3Smrg	;;
4226943345d3Smrg      *)
4227943345d3Smrg	libobj=
4228943345d3Smrg	obj="$output"
4229943345d3Smrg	;;
4230943345d3Smrg      esac
4231943345d3Smrg
4232943345d3Smrg      # Delete the old objects.
4233943345d3Smrg      $run $rm $obj $libobj
4234943345d3Smrg
4235943345d3Smrg      # Objects from convenience libraries.  This assumes
4236943345d3Smrg      # single-version convenience libraries.  Whenever we create
4237943345d3Smrg      # different ones for PIC/non-PIC, this we'll have to duplicate
4238943345d3Smrg      # the extraction.
4239943345d3Smrg      reload_conv_objs=
4240943345d3Smrg      gentop=
4241943345d3Smrg      # reload_cmds runs $LD directly, so let us get rid of
4242943345d3Smrg      # -Wl from whole_archive_flag_spec
4243943345d3Smrg      wl=
4244943345d3Smrg
4245943345d3Smrg      if test -n "$convenience"; then
4246943345d3Smrg	if test -n "$whole_archive_flag_spec"; then
4247943345d3Smrg	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4248943345d3Smrg	else
4249943345d3Smrg	  gentop="$output_objdir/${obj}x"
4250943345d3Smrg	  generated="$generated $gentop"
4251943345d3Smrg
4252943345d3Smrg	  func_extract_archives $gentop $convenience
4253943345d3Smrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4254943345d3Smrg	fi
4255943345d3Smrg      fi
4256943345d3Smrg
4257943345d3Smrg      # Create the old-style object.
4258943345d3Smrg      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
4259943345d3Smrg
4260943345d3Smrg      output="$obj"
4261943345d3Smrg      cmds=$reload_cmds
4262943345d3Smrg      save_ifs="$IFS"; IFS='~'
4263943345d3Smrg      for cmd in $cmds; do
4264943345d3Smrg	IFS="$save_ifs"
4265943345d3Smrg	eval cmd=\"$cmd\"
4266943345d3Smrg	$show "$cmd"
4267943345d3Smrg	$run eval "$cmd" || exit $?
4268943345d3Smrg      done
4269943345d3Smrg      IFS="$save_ifs"
4270943345d3Smrg
4271943345d3Smrg      # Exit if we aren't doing a library object file.
4272943345d3Smrg      if test -z "$libobj"; then
4273943345d3Smrg	if test -n "$gentop"; then
4274943345d3Smrg	  $show "${rm}r $gentop"
4275943345d3Smrg	  $run ${rm}r $gentop
4276943345d3Smrg	fi
4277943345d3Smrg
4278943345d3Smrg	exit $EXIT_SUCCESS
4279943345d3Smrg      fi
4280943345d3Smrg
4281943345d3Smrg      if test "$build_libtool_libs" != yes; then
4282943345d3Smrg	if test -n "$gentop"; then
4283943345d3Smrg	  $show "${rm}r $gentop"
4284943345d3Smrg	  $run ${rm}r $gentop
4285943345d3Smrg	fi
4286943345d3Smrg
4287943345d3Smrg	# Create an invalid libtool object if no PIC, so that we don't
4288943345d3Smrg	# accidentally link it into a program.
4289943345d3Smrg	# $show "echo timestamp > $libobj"
4290943345d3Smrg	# $run eval "echo timestamp > $libobj" || exit $?
4291943345d3Smrg	exit $EXIT_SUCCESS
4292943345d3Smrg      fi
4293943345d3Smrg
4294943345d3Smrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
4295943345d3Smrg	# Only do commands if we really have different PIC objects.
4296943345d3Smrg	reload_objs="$libobjs $reload_conv_objs"
4297943345d3Smrg	output="$libobj"
4298943345d3Smrg	cmds=$reload_cmds
4299943345d3Smrg	save_ifs="$IFS"; IFS='~'
4300943345d3Smrg	for cmd in $cmds; do
4301943345d3Smrg	  IFS="$save_ifs"
4302943345d3Smrg	  eval cmd=\"$cmd\"
4303943345d3Smrg	  $show "$cmd"
4304943345d3Smrg	  $run eval "$cmd" || exit $?
4305943345d3Smrg	done
4306943345d3Smrg	IFS="$save_ifs"
4307943345d3Smrg      fi
4308943345d3Smrg
4309943345d3Smrg      if test -n "$gentop"; then
4310943345d3Smrg	$show "${rm}r $gentop"
4311943345d3Smrg	$run ${rm}r $gentop
4312943345d3Smrg      fi
4313943345d3Smrg
4314943345d3Smrg      exit $EXIT_SUCCESS
4315943345d3Smrg      ;;
4316943345d3Smrg
4317943345d3Smrg    prog)
4318943345d3Smrg      case $host in
4319943345d3Smrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4320943345d3Smrg      esac
4321943345d3Smrg      if test -n "$vinfo"; then
4322943345d3Smrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4323943345d3Smrg      fi
4324943345d3Smrg
4325943345d3Smrg      if test -n "$release"; then
4326943345d3Smrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4327943345d3Smrg      fi
4328943345d3Smrg
4329943345d3Smrg      if test "$preload" = yes; then
4330943345d3Smrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4331943345d3Smrg	   test "$dlopen_self_static" = unknown; then
4332943345d3Smrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4333943345d3Smrg	fi
4334943345d3Smrg      fi
4335943345d3Smrg
4336943345d3Smrg      case $host in
4337943345d3Smrg      *-*-rhapsody* | *-*-darwin1.[012])
4338943345d3Smrg	# On Rhapsody replace the C library is the System framework
4339943345d3Smrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4340943345d3Smrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4341943345d3Smrg	;;
4342943345d3Smrg      esac
4343943345d3Smrg
4344943345d3Smrg      case $host in
4345943345d3Smrg      *darwin*)
4346943345d3Smrg        # Don't allow lazy linking, it breaks C++ global constructors
4347943345d3Smrg        if test "$tagname" = CXX ; then
4348943345d3Smrg        compile_command="$compile_command ${wl}-bind_at_load"
4349943345d3Smrg        finalize_command="$finalize_command ${wl}-bind_at_load"
4350943345d3Smrg        fi
4351943345d3Smrg        ;;
4352943345d3Smrg      esac
4353943345d3Smrg
4354943345d3Smrg
4355943345d3Smrg      # move library search paths that coincide with paths to not yet
4356943345d3Smrg      # installed libraries to the beginning of the library search list
4357943345d3Smrg      new_libs=
4358943345d3Smrg      for path in $notinst_path; do
4359943345d3Smrg	case " $new_libs " in
4360943345d3Smrg	*" -L$path/$objdir "*) ;;
4361943345d3Smrg	*)
4362943345d3Smrg	  case " $compile_deplibs " in
4363943345d3Smrg	  *" -L$path/$objdir "*)
4364943345d3Smrg	    new_libs="$new_libs -L$path/$objdir" ;;
4365943345d3Smrg	  esac
4366943345d3Smrg	  ;;
4367943345d3Smrg	esac
4368943345d3Smrg      done
4369943345d3Smrg      for deplib in $compile_deplibs; do
4370943345d3Smrg	case $deplib in
4371943345d3Smrg	-L*)
4372943345d3Smrg	  case " $new_libs " in
4373943345d3Smrg	  *" $deplib "*) ;;
4374943345d3Smrg	  *) new_libs="$new_libs $deplib" ;;
4375943345d3Smrg	  esac
4376943345d3Smrg	  ;;
4377943345d3Smrg	*) new_libs="$new_libs $deplib" ;;
4378943345d3Smrg	esac
4379943345d3Smrg      done
4380943345d3Smrg      compile_deplibs="$new_libs"
4381943345d3Smrg
4382943345d3Smrg
4383943345d3Smrg      compile_command="$compile_command $compile_deplibs"
4384943345d3Smrg      finalize_command="$finalize_command $finalize_deplibs"
4385943345d3Smrg
4386943345d3Smrg      if test -n "$rpath$xrpath"; then
4387943345d3Smrg	# If the user specified any rpath flags, then add them.
4388943345d3Smrg	for libdir in $rpath $xrpath; do
4389943345d3Smrg	  # This is the magic to use -rpath.
4390943345d3Smrg	  case "$finalize_rpath " in
4391943345d3Smrg	  *" $libdir "*) ;;
4392943345d3Smrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4393943345d3Smrg	  esac
4394943345d3Smrg	done
4395943345d3Smrg      fi
4396943345d3Smrg
4397943345d3Smrg      # Now hardcode the library paths
4398943345d3Smrg      rpath=
4399943345d3Smrg      hardcode_libdirs=
4400943345d3Smrg      for libdir in $compile_rpath $finalize_rpath; do
4401943345d3Smrg	if test -n "$hardcode_libdir_flag_spec"; then
4402943345d3Smrg	  if test -n "$hardcode_libdir_separator"; then
4403943345d3Smrg	    if test -z "$hardcode_libdirs"; then
4404943345d3Smrg	      hardcode_libdirs="$libdir"
4405943345d3Smrg	    else
4406943345d3Smrg	      # Just accumulate the unique libdirs.
4407943345d3Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4408943345d3Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4409943345d3Smrg		;;
4410943345d3Smrg	      *)
4411943345d3Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4412943345d3Smrg		;;
4413943345d3Smrg	      esac
4414943345d3Smrg	    fi
4415943345d3Smrg	  else
4416943345d3Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4417943345d3Smrg	    rpath="$rpath $flag"
4418943345d3Smrg	  fi
4419943345d3Smrg	elif test -n "$runpath_var"; then
4420943345d3Smrg	  case "$perm_rpath " in
4421943345d3Smrg	  *" $libdir "*) ;;
4422943345d3Smrg	  *) perm_rpath="$perm_rpath $libdir" ;;
4423943345d3Smrg	  esac
4424943345d3Smrg	fi
4425943345d3Smrg	case $host in
4426943345d3Smrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4427943345d3Smrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4428943345d3Smrg	  case :$dllsearchpath: in
4429943345d3Smrg	  *":$libdir:"*) ;;
4430943345d3Smrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
4431943345d3Smrg	  esac
4432943345d3Smrg	  case :$dllsearchpath: in
4433943345d3Smrg	  *":$testbindir:"*) ;;
4434943345d3Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4435943345d3Smrg	  esac
4436943345d3Smrg	  ;;
4437943345d3Smrg	esac
4438943345d3Smrg      done
4439943345d3Smrg      # Substitute the hardcoded libdirs into the rpath.
4440943345d3Smrg      if test -n "$hardcode_libdir_separator" &&
4441943345d3Smrg	 test -n "$hardcode_libdirs"; then
4442943345d3Smrg	libdir="$hardcode_libdirs"
4443943345d3Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4444943345d3Smrg      fi
4445943345d3Smrg      compile_rpath="$rpath"
4446943345d3Smrg
4447943345d3Smrg      rpath=
4448943345d3Smrg      hardcode_libdirs=
4449943345d3Smrg      for libdir in $finalize_rpath; do
4450943345d3Smrg	if test -n "$hardcode_libdir_flag_spec"; then
4451943345d3Smrg	  if test -n "$hardcode_libdir_separator"; then
4452943345d3Smrg	    if test -z "$hardcode_libdirs"; then
4453943345d3Smrg	      hardcode_libdirs="$libdir"
4454943345d3Smrg	    else
4455943345d3Smrg	      # Just accumulate the unique libdirs.
4456943345d3Smrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4457943345d3Smrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4458943345d3Smrg		;;
4459943345d3Smrg	      *)
4460943345d3Smrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4461943345d3Smrg		;;
4462943345d3Smrg	      esac
4463943345d3Smrg	    fi
4464943345d3Smrg	  else
4465943345d3Smrg	    eval flag=\"$hardcode_libdir_flag_spec\"
4466943345d3Smrg	    rpath="$rpath $flag"
4467943345d3Smrg	  fi
4468943345d3Smrg	elif test -n "$runpath_var"; then
4469943345d3Smrg	  case "$finalize_perm_rpath " in
4470943345d3Smrg	  *" $libdir "*) ;;
4471943345d3Smrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4472943345d3Smrg	  esac
4473943345d3Smrg	fi
4474943345d3Smrg      done
4475943345d3Smrg      # Substitute the hardcoded libdirs into the rpath.
4476943345d3Smrg      if test -n "$hardcode_libdir_separator" &&
4477943345d3Smrg	 test -n "$hardcode_libdirs"; then
4478943345d3Smrg	libdir="$hardcode_libdirs"
4479943345d3Smrg	eval rpath=\" $hardcode_libdir_flag_spec\"
4480943345d3Smrg      fi
4481943345d3Smrg      finalize_rpath="$rpath"
4482943345d3Smrg
4483943345d3Smrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4484943345d3Smrg	# Transform all the library objects into standard objects.
4485943345d3Smrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4486943345d3Smrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4487943345d3Smrg      fi
4488943345d3Smrg
4489943345d3Smrg      dlsyms=
4490943345d3Smrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4491943345d3Smrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4492943345d3Smrg	  dlsyms="${outputname}S.c"
4493943345d3Smrg	else
4494943345d3Smrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4495943345d3Smrg	fi
4496943345d3Smrg      fi
4497943345d3Smrg
4498943345d3Smrg      if test -n "$dlsyms"; then
4499943345d3Smrg	case $dlsyms in
4500943345d3Smrg	"") ;;
4501943345d3Smrg	*.c)
4502943345d3Smrg	  # Discover the nlist of each of the dlfiles.
4503943345d3Smrg	  nlist="$output_objdir/${outputname}.nm"
4504943345d3Smrg
4505943345d3Smrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
4506943345d3Smrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4507943345d3Smrg
4508943345d3Smrg	  # Parse the name list into a source file.
4509943345d3Smrg	  $show "creating $output_objdir/$dlsyms"
4510943345d3Smrg
4511943345d3Smrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4512943345d3Smrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4513943345d3Smrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4514943345d3Smrg
4515943345d3Smrg#ifdef __cplusplus
4516943345d3Smrgextern \"C\" {
4517943345d3Smrg#endif
4518943345d3Smrg
4519943345d3Smrg/* Prevent the only kind of declaration conflicts we can make. */
4520943345d3Smrg#define lt_preloaded_symbols some_other_symbol
4521943345d3Smrg
4522943345d3Smrg/* External symbol declarations for the compiler. */\
4523943345d3Smrg"
4524943345d3Smrg
4525943345d3Smrg	  if test "$dlself" = yes; then
4526943345d3Smrg	    $show "generating symbol list for \`$output'"
4527943345d3Smrg
4528943345d3Smrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4529943345d3Smrg
4530943345d3Smrg	    # Add our own program objects to the symbol list.
4531943345d3Smrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4532943345d3Smrg	    for arg in $progfiles; do
4533943345d3Smrg	      $show "extracting global C symbols from \`$arg'"
4534943345d3Smrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4535943345d3Smrg	    done
4536943345d3Smrg
4537943345d3Smrg	    if test -n "$exclude_expsyms"; then
4538943345d3Smrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4539943345d3Smrg	      $run eval '$mv "$nlist"T "$nlist"'
4540943345d3Smrg	    fi
4541943345d3Smrg
4542943345d3Smrg	    if test -n "$export_symbols_regex"; then
4543943345d3Smrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4544943345d3Smrg	      $run eval '$mv "$nlist"T "$nlist"'
4545943345d3Smrg	    fi
4546943345d3Smrg
4547943345d3Smrg	    # Prepare the list of exported symbols
4548943345d3Smrg	    if test -z "$export_symbols"; then
4549943345d3Smrg	      export_symbols="$output_objdir/$outputname.exp"
4550943345d3Smrg	      $run $rm $export_symbols
4551943345d3Smrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4552943345d3Smrg              case $host in
4553943345d3Smrg              *cygwin* | *mingw* )
4554943345d3Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4555943345d3Smrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4556943345d3Smrg                ;;
4557943345d3Smrg              esac
4558943345d3Smrg	    else
4559943345d3Smrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4560943345d3Smrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4561943345d3Smrg	      $run eval 'mv "$nlist"T "$nlist"'
4562943345d3Smrg              case $host in
4563943345d3Smrg              *cygwin* | *mingw* )
4564943345d3Smrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4565943345d3Smrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4566943345d3Smrg                ;;
4567943345d3Smrg              esac
4568943345d3Smrg	    fi
4569943345d3Smrg	  fi
4570943345d3Smrg
4571943345d3Smrg	  for arg in $dlprefiles; do
4572943345d3Smrg	    $show "extracting global C symbols from \`$arg'"
4573943345d3Smrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4574943345d3Smrg	    $run eval '$echo ": $name " >> "$nlist"'
4575943345d3Smrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4576943345d3Smrg	  done
4577943345d3Smrg
4578943345d3Smrg	  if test -z "$run"; then
4579943345d3Smrg	    # Make sure we have at least an empty file.
4580943345d3Smrg	    test -f "$nlist" || : > "$nlist"
4581943345d3Smrg
4582943345d3Smrg	    if test -n "$exclude_expsyms"; then
4583943345d3Smrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4584943345d3Smrg	      $mv "$nlist"T "$nlist"
4585943345d3Smrg	    fi
4586943345d3Smrg
4587943345d3Smrg	    # Try sorting and uniquifying the output.
4588943345d3Smrg	    if grep -v "^: " < "$nlist" |
4589943345d3Smrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
4590943345d3Smrg		  sort -k 3
4591943345d3Smrg		else
4592943345d3Smrg		  sort +2
4593943345d3Smrg		fi |
4594943345d3Smrg		uniq > "$nlist"S; then
4595943345d3Smrg	      :
4596943345d3Smrg	    else
4597943345d3Smrg	      grep -v "^: " < "$nlist" > "$nlist"S
4598943345d3Smrg	    fi
4599943345d3Smrg
4600943345d3Smrg	    if test -f "$nlist"S; then
4601943345d3Smrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4602943345d3Smrg	    else
4603943345d3Smrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4604943345d3Smrg	    fi
4605943345d3Smrg
4606943345d3Smrg	    $echo >> "$output_objdir/$dlsyms" "\
4607943345d3Smrg
4608943345d3Smrg#undef lt_preloaded_symbols
4609943345d3Smrg
4610943345d3Smrg#if defined (__STDC__) && __STDC__
4611943345d3Smrg# define lt_ptr void *
4612943345d3Smrg#else
4613943345d3Smrg# define lt_ptr char *
4614943345d3Smrg# define const
4615943345d3Smrg#endif
4616943345d3Smrg
4617943345d3Smrg/* The mapping between symbol names and symbols. */
4618943345d3Smrg"
4619943345d3Smrg
4620943345d3Smrg	    case $host in
4621943345d3Smrg	    *cygwin* | *mingw* )
4622943345d3Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4623943345d3Smrg/* DATA imports from DLLs on WIN32 can't be const, because
4624943345d3Smrg   runtime relocations are performed -- see ld's documentation
4625943345d3Smrg   on pseudo-relocs */
4626943345d3Smrgstruct {
4627943345d3Smrg"
4628943345d3Smrg	      ;;
4629943345d3Smrg	    * )
4630943345d3Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4631943345d3Smrgconst struct {
4632943345d3Smrg"
4633943345d3Smrg	      ;;
4634943345d3Smrg	    esac
4635943345d3Smrg
4636943345d3Smrg
4637943345d3Smrg	  $echo >> "$output_objdir/$dlsyms" "\
4638943345d3Smrg  const char *name;
4639943345d3Smrg  lt_ptr address;
4640943345d3Smrg}
4641943345d3Smrglt_preloaded_symbols[] =
4642943345d3Smrg{\
4643943345d3Smrg"
4644943345d3Smrg
4645943345d3Smrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4646943345d3Smrg
4647943345d3Smrg	    $echo >> "$output_objdir/$dlsyms" "\
4648943345d3Smrg  {0, (lt_ptr) 0}
4649943345d3Smrg};
4650943345d3Smrg
4651943345d3Smrg/* This works around a problem in FreeBSD linker */
4652943345d3Smrg#ifdef FREEBSD_WORKAROUND
4653943345d3Smrgstatic const void *lt_preloaded_setup() {
4654943345d3Smrg  return lt_preloaded_symbols;
4655943345d3Smrg}
4656943345d3Smrg#endif
4657943345d3Smrg
4658943345d3Smrg#ifdef __cplusplus
4659943345d3Smrg}
4660943345d3Smrg#endif\
4661943345d3Smrg"
4662943345d3Smrg	  fi
4663943345d3Smrg
4664943345d3Smrg	  pic_flag_for_symtable=
4665943345d3Smrg	  case $host in
4666943345d3Smrg	  # compiling the symbol table file with pic_flag works around
4667943345d3Smrg	  # a FreeBSD bug that causes programs to crash when -lm is
4668943345d3Smrg	  # linked before any other PIC object.  But we must not use
4669943345d3Smrg	  # pic_flag when linking with -static.  The problem exists in
4670943345d3Smrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4671943345d3Smrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4672943345d3Smrg	    case "$compile_command " in
4673943345d3Smrg	    *" -static "*) ;;
4674943345d3Smrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4675943345d3Smrg	    esac;;
4676943345d3Smrg	  *-*-hpux*)
4677943345d3Smrg	    case "$compile_command " in
4678943345d3Smrg	    *" -static "*) ;;
4679943345d3Smrg	    *) pic_flag_for_symtable=" $pic_flag";;
4680943345d3Smrg	    esac
4681943345d3Smrg	  esac
4682943345d3Smrg
4683943345d3Smrg	  # Now compile the dynamic symbol file.
4684943345d3Smrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4685943345d3Smrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4686943345d3Smrg
4687943345d3Smrg	  # Clean up the generated files.
4688943345d3Smrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4689943345d3Smrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4690943345d3Smrg
4691943345d3Smrg	  # Transform the symbol file into the correct name.
4692943345d3Smrg          case $host in
4693943345d3Smrg          *cygwin* | *mingw* )
4694943345d3Smrg            if test -f "$output_objdir/${outputname}.def" ; then
4695943345d3Smrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4696943345d3Smrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4697943345d3Smrg            else
4698943345d3Smrg              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4699943345d3Smrg              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4700943345d3Smrg             fi
4701943345d3Smrg            ;;
4702943345d3Smrg          * )
4703943345d3Smrg            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4704943345d3Smrg            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4705943345d3Smrg            ;;
4706943345d3Smrg          esac
4707943345d3Smrg	  ;;
4708943345d3Smrg	*)
4709943345d3Smrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4710943345d3Smrg	  exit $EXIT_FAILURE
4711943345d3Smrg	  ;;
4712943345d3Smrg	esac
4713943345d3Smrg      else
4714943345d3Smrg	# We keep going just in case the user didn't refer to
4715943345d3Smrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4716943345d3Smrg	# really was required.
4717943345d3Smrg
4718943345d3Smrg	# Nullify the symbol file.
4719943345d3Smrg	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4720943345d3Smrg	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4721943345d3Smrg      fi
4722943345d3Smrg
4723943345d3Smrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4724943345d3Smrg	# Replace the output file specification.
4725943345d3Smrg	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4726943345d3Smrg	link_command="$compile_command$compile_rpath"
4727943345d3Smrg
4728943345d3Smrg	# We have no uninstalled library dependencies, so finalize right now.
4729943345d3Smrg	$show "$link_command"
4730943345d3Smrg	$run eval "$link_command"
4731943345d3Smrg	exit_status=$?
4732943345d3Smrg
4733943345d3Smrg	# Delete the generated files.
4734943345d3Smrg	if test -n "$dlsyms"; then
4735943345d3Smrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
4736943345d3Smrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
4737943345d3Smrg	fi
4738943345d3Smrg
4739943345d3Smrg	exit $exit_status
4740943345d3Smrg      fi
4741943345d3Smrg
4742943345d3Smrg      if test -n "$shlibpath_var"; then
4743943345d3Smrg	# We should set the shlibpath_var
4744943345d3Smrg	rpath=
4745943345d3Smrg	for dir in $temp_rpath; do
4746943345d3Smrg	  case $dir in
4747943345d3Smrg	  [\\/]* | [A-Za-z]:[\\/]*)
4748943345d3Smrg	    # Absolute path.
4749943345d3Smrg	    rpath="$rpath$dir:"
4750943345d3Smrg	    ;;
4751943345d3Smrg	  *)
4752943345d3Smrg	    # Relative path: add a thisdir entry.
4753943345d3Smrg	    rpath="$rpath\$thisdir/$dir:"
4754943345d3Smrg	    ;;
4755943345d3Smrg	  esac
4756943345d3Smrg	done
4757943345d3Smrg	temp_rpath="$rpath"
4758943345d3Smrg      fi
4759943345d3Smrg
4760943345d3Smrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4761943345d3Smrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4762943345d3Smrg      fi
4763943345d3Smrg      if test -n "$finalize_shlibpath"; then
4764943345d3Smrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4765943345d3Smrg      fi
4766943345d3Smrg
4767943345d3Smrg      compile_var=
4768943345d3Smrg      finalize_var=
4769943345d3Smrg      if test -n "$runpath_var"; then
4770943345d3Smrg	if test -n "$perm_rpath"; then
4771943345d3Smrg	  # We should set the runpath_var.
4772943345d3Smrg	  rpath=
4773943345d3Smrg	  for dir in $perm_rpath; do
4774943345d3Smrg	    rpath="$rpath$dir:"
4775943345d3Smrg	  done
4776943345d3Smrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4777943345d3Smrg	fi
4778943345d3Smrg	if test -n "$finalize_perm_rpath"; then
4779943345d3Smrg	  # We should set the runpath_var.
4780943345d3Smrg	  rpath=
4781943345d3Smrg	  for dir in $finalize_perm_rpath; do
4782943345d3Smrg	    rpath="$rpath$dir:"
4783943345d3Smrg	  done
4784943345d3Smrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4785943345d3Smrg	fi
4786943345d3Smrg      fi
4787943345d3Smrg
4788943345d3Smrg      if test "$no_install" = yes; then
4789943345d3Smrg	# We don't need to create a wrapper script.
4790943345d3Smrg	link_command="$compile_var$compile_command$compile_rpath"
4791943345d3Smrg	# Replace the output file specification.
4792943345d3Smrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4793943345d3Smrg	# Delete the old output file.
4794943345d3Smrg	$run $rm $output
4795943345d3Smrg	# Link the executable and exit
4796943345d3Smrg	$show "$link_command"
4797943345d3Smrg	$run eval "$link_command" || exit $?
4798943345d3Smrg	exit $EXIT_SUCCESS
4799943345d3Smrg      fi
4800943345d3Smrg
4801943345d3Smrg      if test "$hardcode_action" = relink; then
4802943345d3Smrg	# Fast installation is not supported
4803943345d3Smrg	link_command="$compile_var$compile_command$compile_rpath"
4804943345d3Smrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
4805943345d3Smrg
4806943345d3Smrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4807943345d3Smrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4808943345d3Smrg      else
4809943345d3Smrg	if test "$fast_install" != no; then
4810943345d3Smrg	  link_command="$finalize_var$compile_command$finalize_rpath"
4811943345d3Smrg	  if test "$fast_install" = yes; then
4812943345d3Smrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4813943345d3Smrg	  else
4814943345d3Smrg	    # fast_install is set to needless
4815943345d3Smrg	    relink_command=
4816943345d3Smrg	  fi
4817943345d3Smrg	else
4818943345d3Smrg	  link_command="$compile_var$compile_command$compile_rpath"
4819943345d3Smrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4820943345d3Smrg	fi
4821943345d3Smrg      fi
4822943345d3Smrg
4823943345d3Smrg      # Replace the output file specification.
4824943345d3Smrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4825943345d3Smrg
4826943345d3Smrg      # Delete the old output files.
4827943345d3Smrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4828943345d3Smrg
4829943345d3Smrg      $show "$link_command"
4830943345d3Smrg      $run eval "$link_command" || exit $?
4831943345d3Smrg
4832943345d3Smrg      # Now create the wrapper script.
4833943345d3Smrg      $show "creating $output"
4834943345d3Smrg
4835943345d3Smrg      # Quote the relink command for shipping.
4836943345d3Smrg      if test -n "$relink_command"; then
4837943345d3Smrg	# Preserve any variables that may affect compiler behavior
4838943345d3Smrg	for var in $variables_saved_for_relink; do
4839943345d3Smrg	  if eval test -z \"\${$var+set}\"; then
4840943345d3Smrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4841943345d3Smrg	  elif eval var_value=\$$var; test -z "$var_value"; then
4842943345d3Smrg	    relink_command="$var=; export $var; $relink_command"
4843943345d3Smrg	  else
4844943345d3Smrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4845943345d3Smrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4846943345d3Smrg	  fi
4847943345d3Smrg	done
4848943345d3Smrg	relink_command="(cd `pwd`; $relink_command)"
4849943345d3Smrg	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4850943345d3Smrg      fi
4851943345d3Smrg
4852943345d3Smrg      # Quote $echo for shipping.
4853943345d3Smrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4854943345d3Smrg	case $progpath in
4855943345d3Smrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4856943345d3Smrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4857943345d3Smrg	esac
4858943345d3Smrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4859943345d3Smrg      else
4860943345d3Smrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4861943345d3Smrg      fi
4862943345d3Smrg
4863943345d3Smrg      # Only actually do things if our run command is non-null.
4864943345d3Smrg      if test -z "$run"; then
4865943345d3Smrg	# win32 will think the script is a binary if it has
4866943345d3Smrg	# a .exe suffix, so we strip it off here.
4867943345d3Smrg	case $output in
4868943345d3Smrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4869943345d3Smrg	esac
4870943345d3Smrg	# test for cygwin because mv fails w/o .exe extensions
4871943345d3Smrg	case $host in
4872943345d3Smrg	  *cygwin*)
4873943345d3Smrg	    exeext=.exe
4874943345d3Smrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4875943345d3Smrg	  *) exeext= ;;
4876943345d3Smrg	esac
4877943345d3Smrg	case $host in
4878943345d3Smrg	  *cygwin* | *mingw* )
4879943345d3Smrg            output_name=`basename $output`
4880943345d3Smrg            output_path=`dirname $output`
4881943345d3Smrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4882943345d3Smrg            cwrapper="$output_path/$output_name.exe"
4883943345d3Smrg            $rm $cwrappersource $cwrapper
4884943345d3Smrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4885943345d3Smrg
4886943345d3Smrg	    cat > $cwrappersource <<EOF
4887943345d3Smrg
4888943345d3Smrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4889943345d3Smrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4890943345d3Smrg
4891943345d3Smrg   The $output program cannot be directly executed until all the libtool
4892943345d3Smrg   libraries that it depends on are installed.
4893943345d3Smrg
4894943345d3Smrg   This wrapper executable should never be moved out of the build directory.
4895943345d3Smrg   If it is, it will not operate correctly.
4896943345d3Smrg
4897943345d3Smrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4898943345d3Smrg   but could eventually absorb all of the scripts functionality and
4899943345d3Smrg   exec $objdir/$outputname directly.
4900943345d3Smrg*/
4901943345d3SmrgEOF
4902943345d3Smrg	    cat >> $cwrappersource<<"EOF"
4903943345d3Smrg#include <stdio.h>
4904943345d3Smrg#include <stdlib.h>
4905943345d3Smrg#include <unistd.h>
4906943345d3Smrg#include <malloc.h>
4907943345d3Smrg#include <stdarg.h>
4908943345d3Smrg#include <assert.h>
4909943345d3Smrg#include <string.h>
4910943345d3Smrg#include <ctype.h>
4911943345d3Smrg#include <sys/stat.h>
4912943345d3Smrg
4913943345d3Smrg#if defined(PATH_MAX)
4914943345d3Smrg# define LT_PATHMAX PATH_MAX
4915943345d3Smrg#elif defined(MAXPATHLEN)
4916943345d3Smrg# define LT_PATHMAX MAXPATHLEN
4917943345d3Smrg#else
4918943345d3Smrg# define LT_PATHMAX 1024
4919943345d3Smrg#endif
4920943345d3Smrg
4921943345d3Smrg#ifndef DIR_SEPARATOR
4922943345d3Smrg# define DIR_SEPARATOR '/'
4923943345d3Smrg# define PATH_SEPARATOR ':'
4924943345d3Smrg#endif
4925943345d3Smrg
4926943345d3Smrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4927943345d3Smrg  defined (__OS2__)
4928943345d3Smrg# define HAVE_DOS_BASED_FILE_SYSTEM
4929943345d3Smrg# ifndef DIR_SEPARATOR_2
4930943345d3Smrg#  define DIR_SEPARATOR_2 '\\'
4931943345d3Smrg# endif
4932943345d3Smrg# ifndef PATH_SEPARATOR_2
4933943345d3Smrg#  define PATH_SEPARATOR_2 ';'
4934943345d3Smrg# endif
4935943345d3Smrg#endif
4936943345d3Smrg
4937943345d3Smrg#ifndef DIR_SEPARATOR_2
4938943345d3Smrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4939943345d3Smrg#else /* DIR_SEPARATOR_2 */
4940943345d3Smrg# define IS_DIR_SEPARATOR(ch) \
4941943345d3Smrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4942943345d3Smrg#endif /* DIR_SEPARATOR_2 */
4943943345d3Smrg
4944943345d3Smrg#ifndef PATH_SEPARATOR_2
4945943345d3Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4946943345d3Smrg#else /* PATH_SEPARATOR_2 */
4947943345d3Smrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4948943345d3Smrg#endif /* PATH_SEPARATOR_2 */
4949943345d3Smrg
4950943345d3Smrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4951943345d3Smrg#define XFREE(stale) do { \
4952943345d3Smrg  if (stale) { free ((void *) stale); stale = 0; } \
4953943345d3Smrg} while (0)
4954943345d3Smrg
4955943345d3Smrg/* -DDEBUG is fairly common in CFLAGS.  */
4956943345d3Smrg#undef DEBUG
4957943345d3Smrg#if defined DEBUGWRAPPER
4958943345d3Smrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4959943345d3Smrg#else
4960943345d3Smrg# define DEBUG(format, ...)
4961943345d3Smrg#endif
4962943345d3Smrg
4963943345d3Smrgconst char *program_name = NULL;
4964943345d3Smrg
4965943345d3Smrgvoid * xmalloc (size_t num);
4966943345d3Smrgchar * xstrdup (const char *string);
4967943345d3Smrgconst char * base_name (const char *name);
4968943345d3Smrgchar * find_executable(const char *wrapper);
4969943345d3Smrgint    check_executable(const char *path);
4970943345d3Smrgchar * strendzap(char *str, const char *pat);
4971943345d3Smrgvoid lt_fatal (const char *message, ...);
4972943345d3Smrg
4973943345d3Smrgint
4974943345d3Smrgmain (int argc, char *argv[])
4975943345d3Smrg{
4976943345d3Smrg  char **newargz;
4977943345d3Smrg  int i;
4978943345d3Smrg
4979943345d3Smrg  program_name = (char *) xstrdup (base_name (argv[0]));
4980943345d3Smrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
4981943345d3Smrg  DEBUG("(main) program_name : %s\n",program_name);
4982943345d3Smrg  newargz = XMALLOC(char *, argc+2);
4983943345d3SmrgEOF
4984943345d3Smrg
4985943345d3Smrg            cat >> $cwrappersource <<EOF
4986943345d3Smrg  newargz[0] = (char *) xstrdup("$SHELL");
4987943345d3SmrgEOF
4988943345d3Smrg
4989943345d3Smrg            cat >> $cwrappersource <<"EOF"
4990943345d3Smrg  newargz[1] = find_executable(argv[0]);
4991943345d3Smrg  if (newargz[1] == NULL)
4992943345d3Smrg    lt_fatal("Couldn't find %s", argv[0]);
4993943345d3Smrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
4994943345d3Smrg  /* we know the script has the same name, without the .exe */
4995943345d3Smrg  /* so make sure newargz[1] doesn't end in .exe */
4996943345d3Smrg  strendzap(newargz[1],".exe");
4997943345d3Smrg  for (i = 1; i < argc; i++)
4998943345d3Smrg    newargz[i+1] = xstrdup(argv[i]);
4999943345d3Smrg  newargz[argc+1] = NULL;
5000943345d3Smrg
5001943345d3Smrg  for (i=0; i<argc+1; i++)
5002943345d3Smrg  {
5003943345d3Smrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5004943345d3Smrg    ;
5005943345d3Smrg  }
5006943345d3Smrg
5007943345d3SmrgEOF
5008943345d3Smrg
5009943345d3Smrg            case $host_os in
5010943345d3Smrg              mingw*)
5011943345d3Smrg                cat >> $cwrappersource <<EOF
5012943345d3Smrg  execv("$SHELL",(char const **)newargz);
5013943345d3SmrgEOF
5014943345d3Smrg              ;;
5015943345d3Smrg              *)
5016943345d3Smrg                cat >> $cwrappersource <<EOF
5017943345d3Smrg  execv("$SHELL",newargz);
5018943345d3SmrgEOF
5019943345d3Smrg              ;;
5020943345d3Smrg            esac
5021943345d3Smrg
5022943345d3Smrg            cat >> $cwrappersource <<"EOF"
5023943345d3Smrg  return 127;
5024943345d3Smrg}
5025943345d3Smrg
5026943345d3Smrgvoid *
5027943345d3Smrgxmalloc (size_t num)
5028943345d3Smrg{
5029943345d3Smrg  void * p = (void *) malloc (num);
5030943345d3Smrg  if (!p)
5031943345d3Smrg    lt_fatal ("Memory exhausted");
5032943345d3Smrg
5033943345d3Smrg  return p;
5034943345d3Smrg}
5035943345d3Smrg
5036943345d3Smrgchar *
5037943345d3Smrgxstrdup (const char *string)
5038943345d3Smrg{
5039943345d3Smrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5040943345d3Smrg;
5041943345d3Smrg}
5042943345d3Smrg
5043943345d3Smrgconst char *
5044943345d3Smrgbase_name (const char *name)
5045943345d3Smrg{
5046943345d3Smrg  const char *base;
5047943345d3Smrg
5048943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5049943345d3Smrg  /* Skip over the disk name in MSDOS pathnames. */
5050943345d3Smrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5051943345d3Smrg    name += 2;
5052943345d3Smrg#endif
5053943345d3Smrg
5054943345d3Smrg  for (base = name; *name; name++)
5055943345d3Smrg    if (IS_DIR_SEPARATOR (*name))
5056943345d3Smrg      base = name + 1;
5057943345d3Smrg  return base;
5058943345d3Smrg}
5059943345d3Smrg
5060943345d3Smrgint
5061943345d3Smrgcheck_executable(const char * path)
5062943345d3Smrg{
5063943345d3Smrg  struct stat st;
5064943345d3Smrg
5065943345d3Smrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5066943345d3Smrg  if ((!path) || (!*path))
5067943345d3Smrg    return 0;
5068943345d3Smrg
5069943345d3Smrg  if ((stat (path, &st) >= 0) &&
5070943345d3Smrg      (
5071943345d3Smrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5072943345d3Smrg#if defined (S_IXOTH)
5073943345d3Smrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5074943345d3Smrg#endif
5075943345d3Smrg#if defined (S_IXGRP)
5076943345d3Smrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5077943345d3Smrg#endif
5078943345d3Smrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
5079943345d3Smrg      )
5080943345d3Smrg    return 1;
5081943345d3Smrg  else
5082943345d3Smrg    return 0;
5083943345d3Smrg}
5084943345d3Smrg
5085943345d3Smrg/* Searches for the full path of the wrapper.  Returns
5086943345d3Smrg   newly allocated full path name if found, NULL otherwise */
5087943345d3Smrgchar *
5088943345d3Smrgfind_executable (const char* wrapper)
5089943345d3Smrg{
5090943345d3Smrg  int has_slash = 0;
5091943345d3Smrg  const char* p;
5092943345d3Smrg  const char* p_next;
5093943345d3Smrg  /* static buffer for getcwd */
5094943345d3Smrg  char tmp[LT_PATHMAX + 1];
5095943345d3Smrg  int tmp_len;
5096943345d3Smrg  char* concat_name;
5097943345d3Smrg
5098943345d3Smrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5099943345d3Smrg
5100943345d3Smrg  if ((wrapper == NULL) || (*wrapper == '\0'))
5101943345d3Smrg    return NULL;
5102943345d3Smrg
5103943345d3Smrg  /* Absolute path? */
5104943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5105943345d3Smrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5106943345d3Smrg  {
5107943345d3Smrg    concat_name = xstrdup (wrapper);
5108943345d3Smrg    if (check_executable(concat_name))
5109943345d3Smrg      return concat_name;
5110943345d3Smrg    XFREE(concat_name);
5111943345d3Smrg  }
5112943345d3Smrg  else
5113943345d3Smrg  {
5114943345d3Smrg#endif
5115943345d3Smrg    if (IS_DIR_SEPARATOR (wrapper[0]))
5116943345d3Smrg    {
5117943345d3Smrg      concat_name = xstrdup (wrapper);
5118943345d3Smrg      if (check_executable(concat_name))
5119943345d3Smrg        return concat_name;
5120943345d3Smrg      XFREE(concat_name);
5121943345d3Smrg    }
5122943345d3Smrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5123943345d3Smrg  }
5124943345d3Smrg#endif
5125943345d3Smrg
5126943345d3Smrg  for (p = wrapper; *p; p++)
5127943345d3Smrg    if (*p == '/')
5128943345d3Smrg    {
5129943345d3Smrg      has_slash = 1;
5130943345d3Smrg      break;
5131943345d3Smrg    }
5132943345d3Smrg  if (!has_slash)
5133943345d3Smrg  {
5134943345d3Smrg    /* no slashes; search PATH */
5135943345d3Smrg    const char* path = getenv ("PATH");
5136943345d3Smrg    if (path != NULL)
5137943345d3Smrg    {
5138943345d3Smrg      for (p = path; *p; p = p_next)
5139943345d3Smrg      {
5140943345d3Smrg        const char* q;
5141943345d3Smrg        size_t p_len;
5142943345d3Smrg        for (q = p; *q; q++)
5143943345d3Smrg          if (IS_PATH_SEPARATOR(*q))
5144943345d3Smrg            break;
5145943345d3Smrg        p_len = q - p;
5146943345d3Smrg        p_next = (*q == '\0' ? q : q + 1);
5147943345d3Smrg        if (p_len == 0)
5148943345d3Smrg        {
5149943345d3Smrg          /* empty path: current directory */
5150943345d3Smrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
5151943345d3Smrg            lt_fatal ("getcwd failed");
5152943345d3Smrg          tmp_len = strlen(tmp);
5153943345d3Smrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5154943345d3Smrg          memcpy (concat_name, tmp, tmp_len);
5155943345d3Smrg          concat_name[tmp_len] = '/';
5156943345d3Smrg          strcpy (concat_name + tmp_len + 1, wrapper);
5157943345d3Smrg        }
5158943345d3Smrg        else
5159943345d3Smrg        {
5160943345d3Smrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5161943345d3Smrg          memcpy (concat_name, p, p_len);
5162943345d3Smrg          concat_name[p_len] = '/';
5163943345d3Smrg          strcpy (concat_name + p_len + 1, wrapper);
5164943345d3Smrg        }
5165943345d3Smrg        if (check_executable(concat_name))
5166943345d3Smrg          return concat_name;
5167943345d3Smrg        XFREE(concat_name);
5168943345d3Smrg      }
5169943345d3Smrg    }
5170943345d3Smrg    /* not found in PATH; assume curdir */
5171943345d3Smrg  }
5172943345d3Smrg  /* Relative path | not found in path: prepend cwd */
5173943345d3Smrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
5174943345d3Smrg    lt_fatal ("getcwd failed");
5175943345d3Smrg  tmp_len = strlen(tmp);
5176943345d3Smrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5177943345d3Smrg  memcpy (concat_name, tmp, tmp_len);
5178943345d3Smrg  concat_name[tmp_len] = '/';
5179943345d3Smrg  strcpy (concat_name + tmp_len + 1, wrapper);
5180943345d3Smrg
5181943345d3Smrg  if (check_executable(concat_name))
5182943345d3Smrg    return concat_name;
5183943345d3Smrg  XFREE(concat_name);
5184943345d3Smrg  return NULL;
5185943345d3Smrg}
5186943345d3Smrg
5187943345d3Smrgchar *
5188943345d3Smrgstrendzap(char *str, const char *pat)
5189943345d3Smrg{
5190943345d3Smrg  size_t len, patlen;
5191943345d3Smrg
5192943345d3Smrg  assert(str != NULL);
5193943345d3Smrg  assert(pat != NULL);
5194943345d3Smrg
5195943345d3Smrg  len = strlen(str);
5196943345d3Smrg  patlen = strlen(pat);
5197943345d3Smrg
5198943345d3Smrg  if (patlen <= len)
5199943345d3Smrg  {
5200943345d3Smrg    str += len - patlen;
5201943345d3Smrg    if (strcmp(str, pat) == 0)
5202943345d3Smrg      *str = '\0';
5203943345d3Smrg  }
5204943345d3Smrg  return str;
5205943345d3Smrg}
5206943345d3Smrg
5207943345d3Smrgstatic void
5208943345d3Smrglt_error_core (int exit_status, const char * mode,
5209943345d3Smrg          const char * message, va_list ap)
5210943345d3Smrg{
5211943345d3Smrg  fprintf (stderr, "%s: %s: ", program_name, mode);
5212943345d3Smrg  vfprintf (stderr, message, ap);
5213943345d3Smrg  fprintf (stderr, ".\n");
5214943345d3Smrg
5215943345d3Smrg  if (exit_status >= 0)
5216943345d3Smrg    exit (exit_status);
5217943345d3Smrg}
5218943345d3Smrg
5219943345d3Smrgvoid
5220943345d3Smrglt_fatal (const char *message, ...)
5221943345d3Smrg{
5222943345d3Smrg  va_list ap;
5223943345d3Smrg  va_start (ap, message);
5224943345d3Smrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5225943345d3Smrg  va_end (ap);
5226943345d3Smrg}
5227943345d3SmrgEOF
5228943345d3Smrg          # we should really use a build-platform specific compiler
5229943345d3Smrg          # here, but OTOH, the wrappers (shell script and this C one)
5230943345d3Smrg          # are only useful if you want to execute the "real" binary.
5231943345d3Smrg          # Since the "real" binary is built for $host, then this
5232943345d3Smrg          # wrapper might as well be built for $host, too.
5233943345d3Smrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5234943345d3Smrg          ;;
5235943345d3Smrg        esac
5236943345d3Smrg        $rm $output
5237943345d3Smrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5238943345d3Smrg
5239943345d3Smrg	$echo > $output "\
5240943345d3Smrg#! $SHELL
5241943345d3Smrg
5242943345d3Smrg# $output - temporary wrapper script for $objdir/$outputname
5243943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5244943345d3Smrg#
5245943345d3Smrg# The $output program cannot be directly executed until all the libtool
5246943345d3Smrg# libraries that it depends on are installed.
5247943345d3Smrg#
5248943345d3Smrg# This wrapper script should never be moved out of the build directory.
5249943345d3Smrg# If it is, it will not operate correctly.
5250943345d3Smrg
5251943345d3Smrg# Sed substitution that helps us do robust quoting.  It backslashifies
5252943345d3Smrg# metacharacters that are still active within double-quoted strings.
5253943345d3SmrgXsed='${SED} -e 1s/^X//'
5254943345d3Smrgsed_quote_subst='$sed_quote_subst'
5255943345d3Smrg
5256943345d3Smrg# The HP-UX ksh and POSIX shell print the target directory to stdout
5257943345d3Smrg# if CDPATH is set.
5258943345d3Smrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5259943345d3Smrg
5260943345d3Smrgrelink_command=\"$relink_command\"
5261943345d3Smrg
5262943345d3Smrg# This environment variable determines our operation mode.
5263943345d3Smrgif test \"\$libtool_install_magic\" = \"$magic\"; then
5264943345d3Smrg  # install mode needs the following variable:
5265943345d3Smrg  notinst_deplibs='$notinst_deplibs'
5266943345d3Smrgelse
5267943345d3Smrg  # When we are sourced in execute mode, \$file and \$echo are already set.
5268943345d3Smrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5269943345d3Smrg    echo=\"$qecho\"
5270943345d3Smrg    file=\"\$0\"
5271943345d3Smrg    # Make sure echo works.
5272943345d3Smrg    if test \"X\$1\" = X--no-reexec; then
5273943345d3Smrg      # Discard the --no-reexec flag, and continue.
5274943345d3Smrg      shift
5275943345d3Smrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5276943345d3Smrg      # Yippee, \$echo works!
5277943345d3Smrg      :
5278943345d3Smrg    else
5279943345d3Smrg      # Restart under the correct shell, and then maybe \$echo will work.
5280943345d3Smrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5281943345d3Smrg    fi
5282943345d3Smrg  fi\
5283943345d3Smrg"
5284943345d3Smrg	$echo >> $output "\
5285943345d3Smrg
5286943345d3Smrg  # Find the directory that this script lives in.
5287943345d3Smrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5288943345d3Smrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5289943345d3Smrg
5290943345d3Smrg  # Follow symbolic links until we get to the real thisdir.
5291943345d3Smrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5292943345d3Smrg  while test -n \"\$file\"; do
5293943345d3Smrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5294943345d3Smrg
5295943345d3Smrg    # If there was a directory component, then change thisdir.
5296943345d3Smrg    if test \"x\$destdir\" != \"x\$file\"; then
5297943345d3Smrg      case \"\$destdir\" in
5298943345d3Smrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5299943345d3Smrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
5300943345d3Smrg      esac
5301943345d3Smrg    fi
5302943345d3Smrg
5303943345d3Smrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5304943345d3Smrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5305943345d3Smrg  done
5306943345d3Smrg
5307943345d3Smrg  # Try to get the absolute directory name.
5308943345d3Smrg  absdir=\`cd \"\$thisdir\" && pwd\`
5309943345d3Smrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5310943345d3Smrg"
5311943345d3Smrg
5312943345d3Smrg	if test "$fast_install" = yes; then
5313943345d3Smrg	  $echo >> $output "\
5314943345d3Smrg  program=lt-'$outputname'$exeext
5315943345d3Smrg  progdir=\"\$thisdir/$objdir\"
5316943345d3Smrg
5317943345d3Smrg  if test ! -f \"\$progdir/\$program\" || \\
5318943345d3Smrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5319943345d3Smrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5320943345d3Smrg
5321943345d3Smrg    file=\"\$\$-\$program\"
5322943345d3Smrg
5323943345d3Smrg    if test ! -d \"\$progdir\"; then
5324943345d3Smrg      $mkdir \"\$progdir\"
5325943345d3Smrg    else
5326943345d3Smrg      $rm \"\$progdir/\$file\"
5327943345d3Smrg    fi"
5328943345d3Smrg
5329943345d3Smrg	  $echo >> $output "\
5330943345d3Smrg
5331943345d3Smrg    # relink executable if necessary
5332943345d3Smrg    if test -n \"\$relink_command\"; then
5333943345d3Smrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5334943345d3Smrg      else
5335943345d3Smrg	$echo \"\$relink_command_output\" >&2
5336943345d3Smrg	$rm \"\$progdir/\$file\"
5337943345d3Smrg	exit $EXIT_FAILURE
5338943345d3Smrg      fi
5339943345d3Smrg    fi
5340943345d3Smrg
5341943345d3Smrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5342943345d3Smrg    { $rm \"\$progdir/\$program\";
5343943345d3Smrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5344943345d3Smrg    $rm \"\$progdir/\$file\"
5345943345d3Smrg  fi"
5346943345d3Smrg	else
5347943345d3Smrg	  $echo >> $output "\
5348943345d3Smrg  program='$outputname'
5349943345d3Smrg  progdir=\"\$thisdir/$objdir\"
5350943345d3Smrg"
5351943345d3Smrg	fi
5352943345d3Smrg
5353943345d3Smrg	$echo >> $output "\
5354943345d3Smrg
5355943345d3Smrg  if test -f \"\$progdir/\$program\"; then"
5356943345d3Smrg
5357943345d3Smrg	# Export our shlibpath_var if we have one.
5358943345d3Smrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5359943345d3Smrg	  $echo >> $output "\
5360943345d3Smrg    # Add our own library path to $shlibpath_var
5361943345d3Smrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5362943345d3Smrg
5363943345d3Smrg    # Some systems cannot cope with colon-terminated $shlibpath_var
5364943345d3Smrg    # The second colon is a workaround for a bug in BeOS R4 sed
5365943345d3Smrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5366943345d3Smrg
5367943345d3Smrg    export $shlibpath_var
5368943345d3Smrg"
5369943345d3Smrg	fi
5370943345d3Smrg
5371943345d3Smrg	# fixup the dll searchpath if we need to.
5372943345d3Smrg	if test -n "$dllsearchpath"; then
5373943345d3Smrg	  $echo >> $output "\
5374943345d3Smrg    # Add the dll search path components to the executable PATH
5375943345d3Smrg    PATH=$dllsearchpath:\$PATH
5376943345d3Smrg"
5377943345d3Smrg	fi
5378943345d3Smrg
5379943345d3Smrg	$echo >> $output "\
5380943345d3Smrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5381943345d3Smrg      # Run the actual program with our arguments.
5382943345d3Smrg"
5383943345d3Smrg	case $host in
5384943345d3Smrg	# Backslashes separate directories on plain windows
5385943345d3Smrg	*-*-mingw | *-*-os2*)
5386943345d3Smrg	  $echo >> $output "\
5387943345d3Smrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5388943345d3Smrg"
5389943345d3Smrg	  ;;
5390943345d3Smrg
5391943345d3Smrg	*)
5392943345d3Smrg	  $echo >> $output "\
5393943345d3Smrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5394943345d3Smrg"
5395943345d3Smrg	  ;;
5396943345d3Smrg	esac
5397943345d3Smrg	$echo >> $output "\
5398943345d3Smrg      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5399943345d3Smrg      exit $EXIT_FAILURE
5400943345d3Smrg    fi
5401943345d3Smrg  else
5402943345d3Smrg    # The program doesn't exist.
5403943345d3Smrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5404943345d3Smrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5405943345d3Smrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5406943345d3Smrg    exit $EXIT_FAILURE
5407943345d3Smrg  fi
5408943345d3Smrgfi\
5409943345d3Smrg"
5410943345d3Smrg	chmod +x $output
5411943345d3Smrg      fi
5412943345d3Smrg      exit $EXIT_SUCCESS
5413943345d3Smrg      ;;
5414943345d3Smrg    esac
5415943345d3Smrg
5416943345d3Smrg    # See if we need to build an old-fashioned archive.
5417943345d3Smrg    for oldlib in $oldlibs; do
5418943345d3Smrg
5419943345d3Smrg      if test "$build_libtool_libs" = convenience; then
5420943345d3Smrg	oldobjs="$libobjs_save"
5421943345d3Smrg	addlibs="$convenience"
5422943345d3Smrg	build_libtool_libs=no
5423943345d3Smrg      else
5424943345d3Smrg	if test "$build_libtool_libs" = module; then
5425943345d3Smrg	  oldobjs="$libobjs_save"
5426943345d3Smrg	  build_libtool_libs=no
5427943345d3Smrg	else
5428943345d3Smrg	  oldobjs="$old_deplibs $non_pic_objects"
5429943345d3Smrg	fi
5430943345d3Smrg	addlibs="$old_convenience"
5431943345d3Smrg      fi
5432943345d3Smrg
5433943345d3Smrg      if test -n "$addlibs"; then
5434943345d3Smrg	gentop="$output_objdir/${outputname}x"
5435943345d3Smrg	generated="$generated $gentop"
5436943345d3Smrg
5437943345d3Smrg	func_extract_archives $gentop $addlibs
5438943345d3Smrg	oldobjs="$oldobjs $func_extract_archives_result"
5439943345d3Smrg      fi
5440943345d3Smrg
5441943345d3Smrg      # Do each command in the archive commands.
5442943345d3Smrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5443943345d3Smrg       cmds=$old_archive_from_new_cmds
5444943345d3Smrg      else
5445943345d3Smrg	# POSIX demands no paths to be encoded in archives.  We have
5446943345d3Smrg	# to avoid creating archives with duplicate basenames if we
5447943345d3Smrg	# might have to extract them afterwards, e.g., when creating a
5448943345d3Smrg	# static archive out of a convenience library, or when linking
5449943345d3Smrg	# the entirety of a libtool archive into another (currently
5450943345d3Smrg	# not supported by libtool).
5451943345d3Smrg	if (for obj in $oldobjs
5452943345d3Smrg	    do
5453943345d3Smrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5454943345d3Smrg	    done | sort | sort -uc >/dev/null 2>&1); then
5455943345d3Smrg	  :
5456943345d3Smrg	else
5457943345d3Smrg	  $echo "copying selected object files to avoid basename conflicts..."
5458943345d3Smrg
5459943345d3Smrg	  if test -z "$gentop"; then
5460943345d3Smrg	    gentop="$output_objdir/${outputname}x"
5461943345d3Smrg	    generated="$generated $gentop"
5462943345d3Smrg
5463943345d3Smrg	    $show "${rm}r $gentop"
5464943345d3Smrg	    $run ${rm}r "$gentop"
5465943345d3Smrg	    $show "$mkdir $gentop"
5466943345d3Smrg	    $run $mkdir "$gentop"
5467943345d3Smrg	    exit_status=$?
5468943345d3Smrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5469943345d3Smrg	      exit $exit_status
5470943345d3Smrg	    fi
5471943345d3Smrg	  fi
5472943345d3Smrg
5473943345d3Smrg	  save_oldobjs=$oldobjs
5474943345d3Smrg	  oldobjs=
5475943345d3Smrg	  counter=1
5476943345d3Smrg	  for obj in $save_oldobjs
5477943345d3Smrg	  do
5478943345d3Smrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5479943345d3Smrg	    case " $oldobjs " in
5480943345d3Smrg	    " ") oldobjs=$obj ;;
5481943345d3Smrg	    *[\ /]"$objbase "*)
5482943345d3Smrg	      while :; do
5483943345d3Smrg		# Make sure we don't pick an alternate name that also
5484943345d3Smrg		# overlaps.
5485943345d3Smrg		newobj=lt$counter-$objbase
5486943345d3Smrg		counter=`expr $counter + 1`
5487943345d3Smrg		case " $oldobjs " in
5488943345d3Smrg		*[\ /]"$newobj "*) ;;
5489943345d3Smrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5490943345d3Smrg		esac
5491943345d3Smrg	      done
5492943345d3Smrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5493943345d3Smrg	      $run ln "$obj" "$gentop/$newobj" ||
5494943345d3Smrg	      $run cp "$obj" "$gentop/$newobj"
5495943345d3Smrg	      oldobjs="$oldobjs $gentop/$newobj"
5496943345d3Smrg	      ;;
5497943345d3Smrg	    *) oldobjs="$oldobjs $obj" ;;
5498943345d3Smrg	    esac
5499943345d3Smrg	  done
5500943345d3Smrg	fi
5501943345d3Smrg
5502943345d3Smrg	eval cmds=\"$old_archive_cmds\"
5503943345d3Smrg
5504943345d3Smrg	if len=`expr "X$cmds" : ".*"` &&
5505943345d3Smrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5506943345d3Smrg	  cmds=$old_archive_cmds
5507943345d3Smrg	else
5508943345d3Smrg	  # the command line is too long to link in one step, link in parts
5509943345d3Smrg	  $echo "using piecewise archive linking..."
5510943345d3Smrg	  save_RANLIB=$RANLIB
5511943345d3Smrg	  RANLIB=:
5512943345d3Smrg	  objlist=
5513943345d3Smrg	  concat_cmds=
5514943345d3Smrg	  save_oldobjs=$oldobjs
5515943345d3Smrg
5516943345d3Smrg	  # Is there a better way of finding the last object in the list?
5517943345d3Smrg	  for obj in $save_oldobjs
5518943345d3Smrg	  do
5519943345d3Smrg	    last_oldobj=$obj
5520943345d3Smrg	  done
5521943345d3Smrg	  for obj in $save_oldobjs
5522943345d3Smrg	  do
5523943345d3Smrg	    oldobjs="$objlist $obj"
5524943345d3Smrg	    objlist="$objlist $obj"
5525943345d3Smrg	    eval test_cmds=\"$old_archive_cmds\"
5526943345d3Smrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5527943345d3Smrg	       test "$len" -le "$max_cmd_len"; then
5528943345d3Smrg	      :
5529943345d3Smrg	    else
5530943345d3Smrg	      # the above command should be used before it gets too long
5531943345d3Smrg	      oldobjs=$objlist
5532943345d3Smrg	      if test "$obj" = "$last_oldobj" ; then
5533943345d3Smrg	        RANLIB=$save_RANLIB
5534943345d3Smrg	      fi
5535943345d3Smrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5536943345d3Smrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5537943345d3Smrg	      objlist=
5538943345d3Smrg	    fi
5539943345d3Smrg	  done
5540943345d3Smrg	  RANLIB=$save_RANLIB
5541943345d3Smrg	  oldobjs=$objlist
5542943345d3Smrg	  if test "X$oldobjs" = "X" ; then
5543943345d3Smrg	    eval cmds=\"\$concat_cmds\"
5544943345d3Smrg	  else
5545943345d3Smrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5546943345d3Smrg	  fi
5547943345d3Smrg	fi
5548943345d3Smrg      fi
5549943345d3Smrg      save_ifs="$IFS"; IFS='~'
5550943345d3Smrg      for cmd in $cmds; do
5551943345d3Smrg        eval cmd=\"$cmd\"
5552943345d3Smrg	IFS="$save_ifs"
5553943345d3Smrg	$show "$cmd"
5554943345d3Smrg	$run eval "$cmd" || exit $?
5555943345d3Smrg      done
5556943345d3Smrg      IFS="$save_ifs"
5557943345d3Smrg    done
5558943345d3Smrg
5559943345d3Smrg    if test -n "$generated"; then
5560943345d3Smrg      $show "${rm}r$generated"
5561943345d3Smrg      $run ${rm}r$generated
5562943345d3Smrg    fi
5563943345d3Smrg
5564943345d3Smrg    # Now create the libtool archive.
5565943345d3Smrg    case $output in
5566943345d3Smrg    *.la)
5567943345d3Smrg      old_library=
5568943345d3Smrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
5569943345d3Smrg      $show "creating $output"
5570943345d3Smrg
5571943345d3Smrg      # Preserve any variables that may affect compiler behavior
5572943345d3Smrg      for var in $variables_saved_for_relink; do
5573943345d3Smrg	if eval test -z \"\${$var+set}\"; then
5574943345d3Smrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5575943345d3Smrg	elif eval var_value=\$$var; test -z "$var_value"; then
5576943345d3Smrg	  relink_command="$var=; export $var; $relink_command"
5577943345d3Smrg	else
5578943345d3Smrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5579943345d3Smrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5580943345d3Smrg	fi
5581943345d3Smrg      done
5582943345d3Smrg      # Quote the link command for shipping.
5583943345d3Smrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5584943345d3Smrg      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5585943345d3Smrg      if test "$hardcode_automatic" = yes ; then
5586943345d3Smrg	relink_command=
5587943345d3Smrg      fi
5588943345d3Smrg
5589943345d3Smrg
5590943345d3Smrg      # Only create the output if not a dry run.
5591943345d3Smrg      if test -z "$run"; then
5592943345d3Smrg	for installed in no yes; do
5593943345d3Smrg	  if test "$installed" = yes; then
5594943345d3Smrg	    if test -z "$install_libdir"; then
5595943345d3Smrg	      break
5596943345d3Smrg	    fi
5597943345d3Smrg	    output="$output_objdir/$outputname"i
5598943345d3Smrg	    # Replace all uninstalled libtool libraries with the installed ones
5599943345d3Smrg	    newdependency_libs=
5600943345d3Smrg	    for deplib in $dependency_libs; do
5601943345d3Smrg	      case $deplib in
5602943345d3Smrg	      *.la)
5603943345d3Smrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5604943345d3Smrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5605943345d3Smrg		if test -z "$libdir"; then
5606943345d3Smrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5607943345d3Smrg		  exit $EXIT_FAILURE
5608943345d3Smrg		fi
5609943345d3Smrg		newdependency_libs="$newdependency_libs $libdir/$name"
5610943345d3Smrg		;;
5611943345d3Smrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5612943345d3Smrg	      esac
5613943345d3Smrg	    done
5614943345d3Smrg	    dependency_libs="$newdependency_libs"
5615943345d3Smrg	    newdlfiles=
5616943345d3Smrg	    for lib in $dlfiles; do
5617943345d3Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5618943345d3Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5619943345d3Smrg	      if test -z "$libdir"; then
5620943345d3Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5621943345d3Smrg		exit $EXIT_FAILURE
5622943345d3Smrg	      fi
5623943345d3Smrg	      newdlfiles="$newdlfiles $libdir/$name"
5624943345d3Smrg	    done
5625943345d3Smrg	    dlfiles="$newdlfiles"
5626943345d3Smrg	    newdlprefiles=
5627943345d3Smrg	    for lib in $dlprefiles; do
5628943345d3Smrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5629943345d3Smrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5630943345d3Smrg	      if test -z "$libdir"; then
5631943345d3Smrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5632943345d3Smrg		exit $EXIT_FAILURE
5633943345d3Smrg	      fi
5634943345d3Smrg	      newdlprefiles="$newdlprefiles $libdir/$name"
5635943345d3Smrg	    done
5636943345d3Smrg	    dlprefiles="$newdlprefiles"
5637943345d3Smrg	  else
5638943345d3Smrg	    newdlfiles=
5639943345d3Smrg	    for lib in $dlfiles; do
5640943345d3Smrg	      case $lib in
5641943345d3Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5642943345d3Smrg		*) abs=`pwd`"/$lib" ;;
5643943345d3Smrg	      esac
5644943345d3Smrg	      newdlfiles="$newdlfiles $abs"
5645943345d3Smrg	    done
5646943345d3Smrg	    dlfiles="$newdlfiles"
5647943345d3Smrg	    newdlprefiles=
5648943345d3Smrg	    for lib in $dlprefiles; do
5649943345d3Smrg	      case $lib in
5650943345d3Smrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5651943345d3Smrg		*) abs=`pwd`"/$lib" ;;
5652943345d3Smrg	      esac
5653943345d3Smrg	      newdlprefiles="$newdlprefiles $abs"
5654943345d3Smrg	    done
5655943345d3Smrg	    dlprefiles="$newdlprefiles"
5656943345d3Smrg	  fi
5657943345d3Smrg	  $rm $output
5658943345d3Smrg	  # place dlname in correct position for cygwin
5659943345d3Smrg	  tdlname=$dlname
5660943345d3Smrg	  case $host,$output,$installed,$module,$dlname in
5661943345d3Smrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5662943345d3Smrg	  esac
5663943345d3Smrg	  $echo > $output "\
5664943345d3Smrg# $outputname - a libtool library file
5665943345d3Smrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5666943345d3Smrg#
5667943345d3Smrg# Please DO NOT delete this file!
5668943345d3Smrg# It is necessary for linking the library.
5669943345d3Smrg
5670943345d3Smrg# The name that we can dlopen(3).
5671943345d3Smrgdlname='$tdlname'
5672943345d3Smrg
5673943345d3Smrg# Names of this library.
5674943345d3Smrglibrary_names='$library_names'
5675943345d3Smrg
5676943345d3Smrg# The name of the static archive.
5677943345d3Smrgold_library='$old_library'
5678943345d3Smrg
5679943345d3Smrg# Libraries that this one depends upon.
5680943345d3Smrgdependency_libs='$dependency_libs'
5681943345d3Smrg
5682943345d3Smrg# Version information for $libname.
5683943345d3Smrgcurrent=$current
5684943345d3Smrgage=$age
5685943345d3Smrgrevision=$revision
5686943345d3Smrg
5687943345d3Smrg# Is this an already installed library?
5688943345d3Smrginstalled=$installed
5689943345d3Smrg
5690943345d3Smrg# Should we warn about portability when linking against -modules?
5691943345d3Smrgshouldnotlink=$module
5692943345d3Smrg
5693943345d3Smrg# Files to dlopen/dlpreopen
5694943345d3Smrgdlopen='$dlfiles'
5695943345d3Smrgdlpreopen='$dlprefiles'
5696943345d3Smrg
5697943345d3Smrg# Directory that this library needs to be installed in:
5698943345d3Smrglibdir='$install_libdir'"
5699943345d3Smrg	  if test "$installed" = no && test "$need_relink" = yes; then
5700943345d3Smrg	    $echo >> $output "\
5701943345d3Smrgrelink_command=\"$relink_command\""
5702943345d3Smrg	  fi
5703943345d3Smrg	done
5704943345d3Smrg      fi
5705943345d3Smrg
5706943345d3Smrg      # Do a symbolic link so that the libtool archive can be found in
5707943345d3Smrg      # LD_LIBRARY_PATH before the program is installed.
5708943345d3Smrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5709943345d3Smrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5710943345d3Smrg      ;;
5711943345d3Smrg    esac
5712943345d3Smrg    exit $EXIT_SUCCESS
5713943345d3Smrg    ;;
5714943345d3Smrg
5715943345d3Smrg  # libtool install mode
5716943345d3Smrg  install)
5717943345d3Smrg    modename="$modename: install"
5718943345d3Smrg
5719943345d3Smrg    # There may be an optional sh(1) argument at the beginning of
5720943345d3Smrg    # install_prog (especially on Windows NT).
5721943345d3Smrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5722943345d3Smrg       # Allow the use of GNU shtool's install command.
5723943345d3Smrg       $echo "X$nonopt" | grep shtool > /dev/null; then
5724943345d3Smrg      # Aesthetically quote it.
5725943345d3Smrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5726943345d3Smrg      case $arg in
5727943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5728943345d3Smrg	arg="\"$arg\""
5729943345d3Smrg	;;
5730943345d3Smrg      esac
5731943345d3Smrg      install_prog="$arg "
5732943345d3Smrg      arg="$1"
5733943345d3Smrg      shift
5734943345d3Smrg    else
5735943345d3Smrg      install_prog=
5736943345d3Smrg      arg=$nonopt
5737943345d3Smrg    fi
5738943345d3Smrg
5739943345d3Smrg    # The real first argument should be the name of the installation program.
5740943345d3Smrg    # Aesthetically quote it.
5741943345d3Smrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5742943345d3Smrg    case $arg in
5743943345d3Smrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5744943345d3Smrg      arg="\"$arg\""
5745943345d3Smrg      ;;
5746943345d3Smrg    esac
5747943345d3Smrg    install_prog="$install_prog$arg"
5748943345d3Smrg
5749943345d3Smrg    # We need to accept at least all the BSD install flags.
5750943345d3Smrg    dest=
5751943345d3Smrg    files=
5752943345d3Smrg    opts=
5753943345d3Smrg    prev=
5754943345d3Smrg    install_type=
5755943345d3Smrg    isdir=no
5756943345d3Smrg    stripme=
5757943345d3Smrg    for arg
5758943345d3Smrg    do
5759943345d3Smrg      if test -n "$dest"; then
5760943345d3Smrg	files="$files $dest"
5761943345d3Smrg	dest=$arg
5762943345d3Smrg	continue
5763943345d3Smrg      fi
5764943345d3Smrg
5765943345d3Smrg      case $arg in
5766943345d3Smrg      -d) isdir=yes ;;
5767943345d3Smrg      -f) 
5768943345d3Smrg      	case " $install_prog " in
5769943345d3Smrg	*[\\\ /]cp\ *) ;;
5770943345d3Smrg	*) prev=$arg ;;
5771943345d3Smrg	esac
5772943345d3Smrg	;;
5773943345d3Smrg      -g | -m | -o) prev=$arg ;;
5774943345d3Smrg      -s)
5775943345d3Smrg	stripme=" -s"
5776943345d3Smrg	continue
5777943345d3Smrg	;;
5778943345d3Smrg      -*)
5779943345d3Smrg	;;
5780943345d3Smrg      *)
5781943345d3Smrg	# If the previous option needed an argument, then skip it.
5782943345d3Smrg	if test -n "$prev"; then
5783943345d3Smrg	  prev=
5784943345d3Smrg	else
5785943345d3Smrg	  dest=$arg
5786943345d3Smrg	  continue
5787943345d3Smrg	fi
5788943345d3Smrg	;;
5789943345d3Smrg      esac
5790943345d3Smrg
5791943345d3Smrg      # Aesthetically quote the argument.
5792943345d3Smrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5793943345d3Smrg      case $arg in
5794943345d3Smrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5795943345d3Smrg	arg="\"$arg\""
5796943345d3Smrg	;;
5797943345d3Smrg      esac
5798943345d3Smrg      install_prog="$install_prog $arg"
5799943345d3Smrg    done
5800943345d3Smrg
5801943345d3Smrg    if test -z "$install_prog"; then
5802943345d3Smrg      $echo "$modename: you must specify an install program" 1>&2
5803943345d3Smrg      $echo "$help" 1>&2
5804943345d3Smrg      exit $EXIT_FAILURE
5805943345d3Smrg    fi
5806943345d3Smrg
5807943345d3Smrg    if test -n "$prev"; then
5808943345d3Smrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5809943345d3Smrg      $echo "$help" 1>&2
5810943345d3Smrg      exit $EXIT_FAILURE
5811943345d3Smrg    fi
5812943345d3Smrg
5813943345d3Smrg    if test -z "$files"; then
5814943345d3Smrg      if test -z "$dest"; then
5815943345d3Smrg	$echo "$modename: no file or destination specified" 1>&2
5816943345d3Smrg      else
5817943345d3Smrg	$echo "$modename: you must specify a destination" 1>&2
5818943345d3Smrg      fi
5819943345d3Smrg      $echo "$help" 1>&2
5820943345d3Smrg      exit $EXIT_FAILURE
5821943345d3Smrg    fi
5822943345d3Smrg
5823943345d3Smrg    # Strip any trailing slash from the destination.
5824943345d3Smrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5825943345d3Smrg
5826943345d3Smrg    # Check to see that the destination is a directory.
5827943345d3Smrg    test -d "$dest" && isdir=yes
5828943345d3Smrg    if test "$isdir" = yes; then
5829943345d3Smrg      destdir="$dest"
5830943345d3Smrg      destname=
5831943345d3Smrg    else
5832943345d3Smrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5833943345d3Smrg      test "X$destdir" = "X$dest" && destdir=.
5834943345d3Smrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5835943345d3Smrg
5836943345d3Smrg      # Not a directory, so check to see that there is only one file specified.
5837943345d3Smrg      set dummy $files
5838943345d3Smrg      if test "$#" -gt 2; then
5839943345d3Smrg	$echo "$modename: \`$dest' is not a directory" 1>&2
5840943345d3Smrg	$echo "$help" 1>&2
5841943345d3Smrg	exit $EXIT_FAILURE
5842943345d3Smrg      fi
5843943345d3Smrg    fi
5844943345d3Smrg    case $destdir in
5845943345d3Smrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
5846943345d3Smrg    *)
5847943345d3Smrg      for file in $files; do
5848943345d3Smrg	case $file in
5849943345d3Smrg	*.lo) ;;
5850943345d3Smrg	*)
5851943345d3Smrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5852943345d3Smrg	  $echo "$help" 1>&2
5853943345d3Smrg	  exit $EXIT_FAILURE
5854943345d3Smrg	  ;;
5855943345d3Smrg	esac
5856943345d3Smrg      done
5857943345d3Smrg      ;;
5858943345d3Smrg    esac
5859943345d3Smrg
5860943345d3Smrg    # This variable tells wrapper scripts just to set variables rather
5861943345d3Smrg    # than running their programs.
5862943345d3Smrg    libtool_install_magic="$magic"
5863943345d3Smrg
5864943345d3Smrg    staticlibs=
5865943345d3Smrg    future_libdirs=
5866943345d3Smrg    current_libdirs=
5867943345d3Smrg    for file in $files; do
5868943345d3Smrg
5869943345d3Smrg      # Do each installation.
5870943345d3Smrg      case $file in
5871943345d3Smrg      *.$libext)
5872943345d3Smrg	# Do the static libraries later.
5873943345d3Smrg	staticlibs="$staticlibs $file"
5874943345d3Smrg	;;
5875943345d3Smrg
5876943345d3Smrg      *.la)
5877943345d3Smrg	# Check to see that this really is a libtool archive.
5878943345d3Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5879943345d3Smrg	else
5880943345d3Smrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5881943345d3Smrg	  $echo "$help" 1>&2
5882943345d3Smrg	  exit $EXIT_FAILURE
5883943345d3Smrg	fi
5884943345d3Smrg
5885943345d3Smrg	library_names=
5886943345d3Smrg	old_library=
5887943345d3Smrg	relink_command=
5888943345d3Smrg	# If there is no directory component, then add one.
5889943345d3Smrg	case $file in
5890943345d3Smrg	*/* | *\\*) . $file ;;
5891943345d3Smrg	*) . ./$file ;;
5892943345d3Smrg	esac
5893943345d3Smrg
5894943345d3Smrg	# Add the libdir to current_libdirs if it is the destination.
5895943345d3Smrg	if test "X$destdir" = "X$libdir"; then
5896943345d3Smrg	  case "$current_libdirs " in
5897943345d3Smrg	  *" $libdir "*) ;;
5898943345d3Smrg	  *) current_libdirs="$current_libdirs $libdir" ;;
5899943345d3Smrg	  esac
5900943345d3Smrg	else
5901943345d3Smrg	  # Note the libdir as a future libdir.
5902943345d3Smrg	  case "$future_libdirs " in
5903943345d3Smrg	  *" $libdir "*) ;;
5904943345d3Smrg	  *) future_libdirs="$future_libdirs $libdir" ;;
5905943345d3Smrg	  esac
5906943345d3Smrg	fi
5907943345d3Smrg
5908943345d3Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5909943345d3Smrg	test "X$dir" = "X$file/" && dir=
5910943345d3Smrg	dir="$dir$objdir"
5911943345d3Smrg
5912943345d3Smrg	if test -n "$relink_command"; then
5913943345d3Smrg	  # Determine the prefix the user has applied to our future dir.
5914943345d3Smrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5915943345d3Smrg
5916943345d3Smrg	  # Don't allow the user to place us outside of our expected
5917943345d3Smrg	  # location b/c this prevents finding dependent libraries that
5918943345d3Smrg	  # are installed to the same prefix.
5919943345d3Smrg	  # At present, this check doesn't affect windows .dll's that
5920943345d3Smrg	  # are installed into $libdir/../bin (currently, that works fine)
5921943345d3Smrg	  # but it's something to keep an eye on.
5922943345d3Smrg	  if test "$inst_prefix_dir" = "$destdir"; then
5923943345d3Smrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5924943345d3Smrg	    exit $EXIT_FAILURE
5925943345d3Smrg	  fi
5926943345d3Smrg
5927943345d3Smrg	  if test -n "$inst_prefix_dir"; then
5928943345d3Smrg	    # Stick the inst_prefix_dir data into the link command.
5929943345d3Smrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5930943345d3Smrg	  else
5931943345d3Smrg	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5932943345d3Smrg	  fi
5933943345d3Smrg
5934943345d3Smrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
5935943345d3Smrg	  $show "$relink_command"
5936943345d3Smrg	  if $run eval "$relink_command"; then :
5937943345d3Smrg	  else
5938943345d3Smrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5939943345d3Smrg	    exit $EXIT_FAILURE
5940943345d3Smrg	  fi
5941943345d3Smrg	fi
5942943345d3Smrg
5943943345d3Smrg	# See the names of the shared library.
5944943345d3Smrg	set dummy $library_names
5945943345d3Smrg	if test -n "$2"; then
5946943345d3Smrg	  realname="$2"
5947943345d3Smrg	  shift
5948943345d3Smrg	  shift
5949943345d3Smrg
5950943345d3Smrg	  srcname="$realname"
5951943345d3Smrg	  test -n "$relink_command" && srcname="$realname"T
5952943345d3Smrg
5953943345d3Smrg	  # Install the shared library and build the symlinks.
5954943345d3Smrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
5955943345d3Smrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5956943345d3Smrg	  if test -n "$stripme" && test -n "$striplib"; then
5957943345d3Smrg	    $show "$striplib $destdir/$realname"
5958943345d3Smrg	    $run eval "$striplib $destdir/$realname" || exit $?
5959943345d3Smrg	  fi
5960943345d3Smrg
5961943345d3Smrg	  if test "$#" -gt 0; then
5962943345d3Smrg	    # Delete the old symlinks, and create new ones.
5963943345d3Smrg	    # Try `ln -sf' first, because the `ln' binary might depend on
5964943345d3Smrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
5965943345d3Smrg	    # so we also need to try rm && ln -s.
5966943345d3Smrg	    for linkname
5967943345d3Smrg	    do
5968943345d3Smrg	      if test "$linkname" != "$realname"; then
5969943345d3Smrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5970943345d3Smrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5971943345d3Smrg	      fi
5972943345d3Smrg	    done
5973943345d3Smrg	  fi
5974943345d3Smrg
5975943345d3Smrg	  # Do each command in the postinstall commands.
5976943345d3Smrg	  lib="$destdir/$realname"
5977943345d3Smrg	  cmds=$postinstall_cmds
5978943345d3Smrg	  save_ifs="$IFS"; IFS='~'
5979943345d3Smrg	  for cmd in $cmds; do
5980943345d3Smrg	    IFS="$save_ifs"
5981943345d3Smrg	    eval cmd=\"$cmd\"
5982943345d3Smrg	    $show "$cmd"
5983943345d3Smrg	    $run eval "$cmd" || {
5984943345d3Smrg	      lt_exit=$?
5985943345d3Smrg
5986943345d3Smrg	      # Restore the uninstalled library and exit
5987943345d3Smrg	      if test "$mode" = relink; then
5988943345d3Smrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5989943345d3Smrg	      fi
5990943345d3Smrg
5991943345d3Smrg	      exit $lt_exit
5992943345d3Smrg	    }
5993943345d3Smrg	  done
5994943345d3Smrg	  IFS="$save_ifs"
5995943345d3Smrg	fi
5996943345d3Smrg
5997943345d3Smrg	# Install the pseudo-library for information purposes.
5998943345d3Smrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5999943345d3Smrg	instname="$dir/$name"i
6000943345d3Smrg	$show "$install_prog $instname $destdir/$name"
6001943345d3Smrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
6002943345d3Smrg
6003943345d3Smrg	# Maybe install the static library, too.
6004943345d3Smrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6005943345d3Smrg	;;
6006943345d3Smrg
6007943345d3Smrg      *.lo)
6008943345d3Smrg	# Install (i.e. copy) a libtool object.
6009943345d3Smrg
6010943345d3Smrg	# Figure out destination file name, if it wasn't already specified.
6011943345d3Smrg	if test -n "$destname"; then
6012943345d3Smrg	  destfile="$destdir/$destname"
6013943345d3Smrg	else
6014943345d3Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6015943345d3Smrg	  destfile="$destdir/$destfile"
6016943345d3Smrg	fi
6017943345d3Smrg
6018943345d3Smrg	# Deduce the name of the destination old-style object file.
6019943345d3Smrg	case $destfile in
6020943345d3Smrg	*.lo)
6021943345d3Smrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6022943345d3Smrg	  ;;
6023943345d3Smrg	*.$objext)
6024943345d3Smrg	  staticdest="$destfile"
6025943345d3Smrg	  destfile=
6026943345d3Smrg	  ;;
6027943345d3Smrg	*)
6028943345d3Smrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6029943345d3Smrg	  $echo "$help" 1>&2
6030943345d3Smrg	  exit $EXIT_FAILURE
6031943345d3Smrg	  ;;
6032943345d3Smrg	esac
6033943345d3Smrg
6034943345d3Smrg	# Install the libtool object if requested.
6035943345d3Smrg	if test -n "$destfile"; then
6036943345d3Smrg	  $show "$install_prog $file $destfile"
6037943345d3Smrg	  $run eval "$install_prog $file $destfile" || exit $?
6038943345d3Smrg	fi
6039943345d3Smrg
6040943345d3Smrg	# Install the old object if enabled.
6041943345d3Smrg	if test "$build_old_libs" = yes; then
6042943345d3Smrg	  # Deduce the name of the old-style object file.
6043943345d3Smrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6044943345d3Smrg
6045943345d3Smrg	  $show "$install_prog $staticobj $staticdest"
6046943345d3Smrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6047943345d3Smrg	fi
6048943345d3Smrg	exit $EXIT_SUCCESS
6049943345d3Smrg	;;
6050943345d3Smrg
6051943345d3Smrg      *)
6052943345d3Smrg	# Figure out destination file name, if it wasn't already specified.
6053943345d3Smrg	if test -n "$destname"; then
6054943345d3Smrg	  destfile="$destdir/$destname"
6055943345d3Smrg	else
6056943345d3Smrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6057943345d3Smrg	  destfile="$destdir/$destfile"
6058943345d3Smrg	fi
6059943345d3Smrg
6060943345d3Smrg	# If the file is missing, and there is a .exe on the end, strip it
6061943345d3Smrg	# because it is most likely a libtool script we actually want to
6062943345d3Smrg	# install
6063943345d3Smrg	stripped_ext=""
6064943345d3Smrg	case $file in
6065943345d3Smrg	  *.exe)
6066943345d3Smrg	    if test ! -f "$file"; then
6067943345d3Smrg	      file=`$echo $file|${SED} 's,.exe$,,'`
6068943345d3Smrg	      stripped_ext=".exe"
6069943345d3Smrg	    fi
6070943345d3Smrg	    ;;
6071943345d3Smrg	esac
6072943345d3Smrg
6073943345d3Smrg	# Do a test to see if this is really a libtool program.
6074943345d3Smrg	case $host in
6075943345d3Smrg	*cygwin*|*mingw*)
6076943345d3Smrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6077943345d3Smrg	    ;;
6078943345d3Smrg	*)
6079943345d3Smrg	    wrapper=$file
6080943345d3Smrg	    ;;
6081943345d3Smrg	esac
6082943345d3Smrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6083943345d3Smrg	  notinst_deplibs=
6084943345d3Smrg	  relink_command=
6085943345d3Smrg
6086943345d3Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6087943345d3Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6088943345d3Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6089943345d3Smrg	  # `FILE.' does not work on cygwin managed mounts.
6090943345d3Smrg	  #
6091943345d3Smrg	  # If there is no directory component, then add one.
6092943345d3Smrg	  case $wrapper in
6093943345d3Smrg	  */* | *\\*) . ${wrapper} ;;
6094943345d3Smrg	  *) . ./${wrapper} ;;
6095943345d3Smrg	  esac
6096943345d3Smrg
6097943345d3Smrg	  # Check the variables that should have been set.
6098943345d3Smrg	  if test -z "$notinst_deplibs"; then
6099943345d3Smrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6100943345d3Smrg	    exit $EXIT_FAILURE
6101943345d3Smrg	  fi
6102943345d3Smrg
6103943345d3Smrg	  finalize=yes
6104943345d3Smrg	  for lib in $notinst_deplibs; do
6105943345d3Smrg	    # Check to see that each library is installed.
6106943345d3Smrg	    libdir=
6107943345d3Smrg	    if test -f "$lib"; then
6108943345d3Smrg	      # If there is no directory component, then add one.
6109943345d3Smrg	      case $lib in
6110943345d3Smrg	      */* | *\\*) . $lib ;;
6111943345d3Smrg	      *) . ./$lib ;;
6112943345d3Smrg	      esac
6113943345d3Smrg	    fi
6114943345d3Smrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6115943345d3Smrg	    if test -n "$libdir" && test ! -f "$libfile"; then
6116943345d3Smrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6117943345d3Smrg	      finalize=no
6118943345d3Smrg	    fi
6119943345d3Smrg	  done
6120943345d3Smrg
6121943345d3Smrg	  relink_command=
6122943345d3Smrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
6123943345d3Smrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6124943345d3Smrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6125943345d3Smrg	  # `FILE.' does not work on cygwin managed mounts.
6126943345d3Smrg	  #
6127943345d3Smrg	  # If there is no directory component, then add one.
6128943345d3Smrg	  case $wrapper in
6129943345d3Smrg	  */* | *\\*) . ${wrapper} ;;
6130943345d3Smrg	  *) . ./${wrapper} ;;
6131943345d3Smrg	  esac
6132943345d3Smrg
6133943345d3Smrg	  outputname=
6134943345d3Smrg	  if test "$fast_install" = no && test -n "$relink_command"; then
6135943345d3Smrg	    if test "$finalize" = yes && test -z "$run"; then
6136943345d3Smrg	      tmpdir=`func_mktempdir`
6137943345d3Smrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6138943345d3Smrg	      outputname="$tmpdir/$file"
6139943345d3Smrg	      # Replace the output file specification.
6140943345d3Smrg	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6141943345d3Smrg
6142943345d3Smrg	      $show "$relink_command"
6143943345d3Smrg	      if $run eval "$relink_command"; then :
6144943345d3Smrg	      else
6145943345d3Smrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6146943345d3Smrg		${rm}r "$tmpdir"
6147943345d3Smrg		continue
6148943345d3Smrg	      fi
6149943345d3Smrg	      file="$outputname"
6150943345d3Smrg	    else
6151943345d3Smrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6152943345d3Smrg	    fi
6153943345d3Smrg	  else
6154943345d3Smrg	    # Install the binary that we compiled earlier.
6155943345d3Smrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6156943345d3Smrg	  fi
6157943345d3Smrg	fi
6158943345d3Smrg
6159943345d3Smrg	# remove .exe since cygwin /usr/bin/install will append another
6160943345d3Smrg	# one anyway 
6161943345d3Smrg	case $install_prog,$host in
6162943345d3Smrg	*/usr/bin/install*,*cygwin*)
6163943345d3Smrg	  case $file:$destfile in
6164943345d3Smrg	  *.exe:*.exe)
6165943345d3Smrg	    # this is ok
6166943345d3Smrg	    ;;
6167943345d3Smrg	  *.exe:*)
6168943345d3Smrg	    destfile=$destfile.exe
6169943345d3Smrg	    ;;
6170943345d3Smrg	  *:*.exe)
6171943345d3Smrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6172943345d3Smrg	    ;;
6173943345d3Smrg	  esac
6174943345d3Smrg	  ;;
6175943345d3Smrg	esac
6176943345d3Smrg	$show "$install_prog$stripme $file $destfile"
6177943345d3Smrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6178943345d3Smrg	test -n "$outputname" && ${rm}r "$tmpdir"
6179943345d3Smrg	;;
6180943345d3Smrg      esac
6181943345d3Smrg    done
6182943345d3Smrg
6183943345d3Smrg    for file in $staticlibs; do
6184943345d3Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6185943345d3Smrg
6186943345d3Smrg      # Set up the ranlib parameters.
6187943345d3Smrg      oldlib="$destdir/$name"
6188943345d3Smrg
6189943345d3Smrg      $show "$install_prog $file $oldlib"
6190943345d3Smrg      $run eval "$install_prog \$file \$oldlib" || exit $?
6191943345d3Smrg
6192943345d3Smrg      if test -n "$stripme" && test -n "$old_striplib"; then
6193943345d3Smrg	$show "$old_striplib $oldlib"
6194943345d3Smrg	$run eval "$old_striplib $oldlib" || exit $?
6195943345d3Smrg      fi
6196943345d3Smrg
6197943345d3Smrg      # Do each command in the postinstall commands.
6198943345d3Smrg      cmds=$old_postinstall_cmds
6199943345d3Smrg      save_ifs="$IFS"; IFS='~'
6200943345d3Smrg      for cmd in $cmds; do
6201943345d3Smrg	IFS="$save_ifs"
6202943345d3Smrg	eval cmd=\"$cmd\"
6203943345d3Smrg	$show "$cmd"
6204943345d3Smrg	$run eval "$cmd" || exit $?
6205943345d3Smrg      done
6206943345d3Smrg      IFS="$save_ifs"
6207943345d3Smrg    done
6208943345d3Smrg
6209943345d3Smrg    if test -n "$future_libdirs"; then
6210943345d3Smrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6211943345d3Smrg    fi
6212943345d3Smrg
6213943345d3Smrg    if test -n "$current_libdirs"; then
6214943345d3Smrg      # Maybe just do a dry run.
6215943345d3Smrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
6216943345d3Smrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6217943345d3Smrg    else
6218943345d3Smrg      exit $EXIT_SUCCESS
6219943345d3Smrg    fi
6220943345d3Smrg    ;;
6221943345d3Smrg
6222943345d3Smrg  # libtool finish mode
6223943345d3Smrg  finish)
6224943345d3Smrg    modename="$modename: finish"
6225943345d3Smrg    libdirs="$nonopt"
6226943345d3Smrg    admincmds=
6227943345d3Smrg
6228943345d3Smrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6229943345d3Smrg      for dir
6230943345d3Smrg      do
6231943345d3Smrg	libdirs="$libdirs $dir"
6232943345d3Smrg      done
6233943345d3Smrg
6234943345d3Smrg      for libdir in $libdirs; do
6235943345d3Smrg	if test -n "$finish_cmds"; then
6236943345d3Smrg	  # Do each command in the finish commands.
6237943345d3Smrg	  cmds=$finish_cmds
6238943345d3Smrg	  save_ifs="$IFS"; IFS='~'
6239943345d3Smrg	  for cmd in $cmds; do
6240943345d3Smrg	    IFS="$save_ifs"
6241943345d3Smrg	    eval cmd=\"$cmd\"
6242943345d3Smrg	    $show "$cmd"
6243943345d3Smrg	    $run eval "$cmd" || admincmds="$admincmds
6244943345d3Smrg       $cmd"
6245943345d3Smrg	  done
6246943345d3Smrg	  IFS="$save_ifs"
6247943345d3Smrg	fi
6248943345d3Smrg	if test -n "$finish_eval"; then
6249943345d3Smrg	  # Do the single finish_eval.
6250943345d3Smrg	  eval cmds=\"$finish_eval\"
6251943345d3Smrg	  $run eval "$cmds" || admincmds="$admincmds
6252943345d3Smrg       $cmds"
6253943345d3Smrg	fi
6254943345d3Smrg      done
6255943345d3Smrg    fi
6256943345d3Smrg
6257943345d3Smrg    # Exit here if they wanted silent mode.
6258943345d3Smrg    test "$show" = : && exit $EXIT_SUCCESS
6259943345d3Smrg
6260943345d3Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
6261943345d3Smrg    $echo "Libraries have been installed in:"
6262943345d3Smrg    for libdir in $libdirs; do
6263943345d3Smrg      $echo "   $libdir"
6264943345d3Smrg    done
6265943345d3Smrg    $echo
6266943345d3Smrg    $echo "If you ever happen to want to link against installed libraries"
6267943345d3Smrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6268943345d3Smrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6269943345d3Smrg    $echo "flag during linking and do at least one of the following:"
6270943345d3Smrg    if test -n "$shlibpath_var"; then
6271943345d3Smrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6272943345d3Smrg      $echo "     during execution"
6273943345d3Smrg    fi
6274943345d3Smrg    if test -n "$runpath_var"; then
6275943345d3Smrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6276943345d3Smrg      $echo "     during linking"
6277943345d3Smrg    fi
6278943345d3Smrg    if test -n "$hardcode_libdir_flag_spec"; then
6279943345d3Smrg      libdir=LIBDIR
6280943345d3Smrg      eval flag=\"$hardcode_libdir_flag_spec\"
6281943345d3Smrg
6282943345d3Smrg      $echo "   - use the \`$flag' linker flag"
6283943345d3Smrg    fi
6284943345d3Smrg    if test -n "$admincmds"; then
6285943345d3Smrg      $echo "   - have your system administrator run these commands:$admincmds"
6286943345d3Smrg    fi
6287943345d3Smrg    if test -f /etc/ld.so.conf; then
6288943345d3Smrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6289943345d3Smrg    fi
6290943345d3Smrg    $echo
6291943345d3Smrg    $echo "See any operating system documentation about shared libraries for"
6292943345d3Smrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6293943345d3Smrg    $echo "X----------------------------------------------------------------------" | $Xsed
6294943345d3Smrg    exit $EXIT_SUCCESS
6295943345d3Smrg    ;;
6296943345d3Smrg
6297943345d3Smrg  # libtool execute mode
6298943345d3Smrg  execute)
6299943345d3Smrg    modename="$modename: execute"
6300943345d3Smrg
6301943345d3Smrg    # The first argument is the command name.
6302943345d3Smrg    cmd="$nonopt"
6303943345d3Smrg    if test -z "$cmd"; then
6304943345d3Smrg      $echo "$modename: you must specify a COMMAND" 1>&2
6305943345d3Smrg      $echo "$help"
6306943345d3Smrg      exit $EXIT_FAILURE
6307943345d3Smrg    fi
6308943345d3Smrg
6309943345d3Smrg    # Handle -dlopen flags immediately.
6310943345d3Smrg    for file in $execute_dlfiles; do
6311943345d3Smrg      if test ! -f "$file"; then
6312943345d3Smrg	$echo "$modename: \`$file' is not a file" 1>&2
6313943345d3Smrg	$echo "$help" 1>&2
6314943345d3Smrg	exit $EXIT_FAILURE
6315943345d3Smrg      fi
6316943345d3Smrg
6317943345d3Smrg      dir=
6318943345d3Smrg      case $file in
6319943345d3Smrg      *.la)
6320943345d3Smrg	# Check to see that this really is a libtool archive.
6321943345d3Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6322943345d3Smrg	else
6323943345d3Smrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6324943345d3Smrg	  $echo "$help" 1>&2
6325943345d3Smrg	  exit $EXIT_FAILURE
6326943345d3Smrg	fi
6327943345d3Smrg
6328943345d3Smrg	# Read the libtool library.
6329943345d3Smrg	dlname=
6330943345d3Smrg	library_names=
6331943345d3Smrg
6332943345d3Smrg	# If there is no directory component, then add one.
6333943345d3Smrg	case $file in
6334943345d3Smrg	*/* | *\\*) . $file ;;
6335943345d3Smrg	*) . ./$file ;;
6336943345d3Smrg	esac
6337943345d3Smrg
6338943345d3Smrg	# Skip this library if it cannot be dlopened.
6339943345d3Smrg	if test -z "$dlname"; then
6340943345d3Smrg	  # Warn if it was a shared library.
6341943345d3Smrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6342943345d3Smrg	  continue
6343943345d3Smrg	fi
6344943345d3Smrg
6345943345d3Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6346943345d3Smrg	test "X$dir" = "X$file" && dir=.
6347943345d3Smrg
6348943345d3Smrg	if test -f "$dir/$objdir/$dlname"; then
6349943345d3Smrg	  dir="$dir/$objdir"
6350943345d3Smrg	else
6351943345d3Smrg	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6352943345d3Smrg	  exit $EXIT_FAILURE
6353943345d3Smrg	fi
6354943345d3Smrg	;;
6355943345d3Smrg
6356943345d3Smrg      *.lo)
6357943345d3Smrg	# Just add the directory containing the .lo file.
6358943345d3Smrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6359943345d3Smrg	test "X$dir" = "X$file" && dir=.
6360943345d3Smrg	;;
6361943345d3Smrg
6362943345d3Smrg      *)
6363943345d3Smrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6364943345d3Smrg	continue
6365943345d3Smrg	;;
6366943345d3Smrg      esac
6367943345d3Smrg
6368943345d3Smrg      # Get the absolute pathname.
6369943345d3Smrg      absdir=`cd "$dir" && pwd`
6370943345d3Smrg      test -n "$absdir" && dir="$absdir"
6371943345d3Smrg
6372943345d3Smrg      # Now add the directory to shlibpath_var.
6373943345d3Smrg      if eval "test -z \"\$$shlibpath_var\""; then
6374943345d3Smrg	eval "$shlibpath_var=\"\$dir\""
6375943345d3Smrg      else
6376943345d3Smrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6377943345d3Smrg      fi
6378943345d3Smrg    done
6379943345d3Smrg
6380943345d3Smrg    # This variable tells wrapper scripts just to set shlibpath_var
6381943345d3Smrg    # rather than running their programs.
6382943345d3Smrg    libtool_execute_magic="$magic"
6383943345d3Smrg
6384943345d3Smrg    # Check if any of the arguments is a wrapper script.
6385943345d3Smrg    args=
6386943345d3Smrg    for file
6387943345d3Smrg    do
6388943345d3Smrg      case $file in
6389943345d3Smrg      -*) ;;
6390943345d3Smrg      *)
6391943345d3Smrg	# Do a test to see if this is really a libtool program.
6392943345d3Smrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6393943345d3Smrg	  # If there is no directory component, then add one.
6394943345d3Smrg	  case $file in
6395943345d3Smrg	  */* | *\\*) . $file ;;
6396943345d3Smrg	  *) . ./$file ;;
6397943345d3Smrg	  esac
6398943345d3Smrg
6399943345d3Smrg	  # Transform arg to wrapped name.
6400943345d3Smrg	  file="$progdir/$program"
6401943345d3Smrg	fi
6402943345d3Smrg	;;
6403943345d3Smrg      esac
6404943345d3Smrg      # Quote arguments (to preserve shell metacharacters).
6405943345d3Smrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6406943345d3Smrg      args="$args \"$file\""
6407943345d3Smrg    done
6408943345d3Smrg
6409943345d3Smrg    if test -z "$run"; then
6410943345d3Smrg      if test -n "$shlibpath_var"; then
6411943345d3Smrg	# Export the shlibpath_var.
6412943345d3Smrg	eval "export $shlibpath_var"
6413943345d3Smrg      fi
6414943345d3Smrg
6415943345d3Smrg      # Restore saved environment variables
6416943345d3Smrg      if test "${save_LC_ALL+set}" = set; then
6417943345d3Smrg	LC_ALL="$save_LC_ALL"; export LC_ALL
6418943345d3Smrg      fi
6419943345d3Smrg      if test "${save_LANG+set}" = set; then
6420943345d3Smrg	LANG="$save_LANG"; export LANG
6421943345d3Smrg      fi
6422943345d3Smrg
6423943345d3Smrg      # Now prepare to actually exec the command.
6424943345d3Smrg      exec_cmd="\$cmd$args"
6425943345d3Smrg    else
6426943345d3Smrg      # Display what would be done.
6427943345d3Smrg      if test -n "$shlibpath_var"; then
6428943345d3Smrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6429943345d3Smrg	$echo "export $shlibpath_var"
6430943345d3Smrg      fi
6431943345d3Smrg      $echo "$cmd$args"
6432943345d3Smrg      exit $EXIT_SUCCESS
6433943345d3Smrg    fi
6434943345d3Smrg    ;;
6435943345d3Smrg
6436943345d3Smrg  # libtool clean and uninstall mode
6437943345d3Smrg  clean | uninstall)
6438943345d3Smrg    modename="$modename: $mode"
6439943345d3Smrg    rm="$nonopt"
6440943345d3Smrg    files=
6441943345d3Smrg    rmforce=
6442943345d3Smrg    exit_status=0
6443943345d3Smrg
6444943345d3Smrg    # This variable tells wrapper scripts just to set variables rather
6445943345d3Smrg    # than running their programs.
6446943345d3Smrg    libtool_install_magic="$magic"
6447943345d3Smrg
6448943345d3Smrg    for arg
6449943345d3Smrg    do
6450943345d3Smrg      case $arg in
6451943345d3Smrg      -f) rm="$rm $arg"; rmforce=yes ;;
6452943345d3Smrg      -*) rm="$rm $arg" ;;
6453943345d3Smrg      *) files="$files $arg" ;;
6454943345d3Smrg      esac
6455943345d3Smrg    done
6456943345d3Smrg
6457943345d3Smrg    if test -z "$rm"; then
6458943345d3Smrg      $echo "$modename: you must specify an RM program" 1>&2
6459943345d3Smrg      $echo "$help" 1>&2
6460943345d3Smrg      exit $EXIT_FAILURE
6461943345d3Smrg    fi
6462943345d3Smrg
6463943345d3Smrg    rmdirs=
6464943345d3Smrg
6465943345d3Smrg    origobjdir="$objdir"
6466943345d3Smrg    for file in $files; do
6467943345d3Smrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6468943345d3Smrg      if test "X$dir" = "X$file"; then
6469943345d3Smrg	dir=.
6470943345d3Smrg	objdir="$origobjdir"
6471943345d3Smrg      else
6472943345d3Smrg	objdir="$dir/$origobjdir"
6473943345d3Smrg      fi
6474943345d3Smrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6475943345d3Smrg      test "$mode" = uninstall && objdir="$dir"
6476943345d3Smrg
6477943345d3Smrg      # Remember objdir for removal later, being careful to avoid duplicates
6478943345d3Smrg      if test "$mode" = clean; then
6479943345d3Smrg	case " $rmdirs " in
6480943345d3Smrg	  *" $objdir "*) ;;
6481943345d3Smrg	  *) rmdirs="$rmdirs $objdir" ;;
6482943345d3Smrg	esac
6483943345d3Smrg      fi
6484943345d3Smrg
6485943345d3Smrg      # Don't error if the file doesn't exist and rm -f was used.
6486943345d3Smrg      if (test -L "$file") >/dev/null 2>&1 \
6487943345d3Smrg	|| (test -h "$file") >/dev/null 2>&1 \
6488943345d3Smrg	|| test -f "$file"; then
6489943345d3Smrg	:
6490943345d3Smrg      elif test -d "$file"; then
6491943345d3Smrg	exit_status=1
6492943345d3Smrg	continue
6493943345d3Smrg      elif test "$rmforce" = yes; then
6494943345d3Smrg	continue
6495943345d3Smrg      fi
6496943345d3Smrg
6497943345d3Smrg      rmfiles="$file"
6498943345d3Smrg
6499943345d3Smrg      case $name in
6500943345d3Smrg      *.la)
6501943345d3Smrg	# Possibly a libtool archive, so verify it.
6502943345d3Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6503943345d3Smrg	  . $dir/$name
6504943345d3Smrg
6505943345d3Smrg	  # Delete the libtool libraries and symlinks.
6506943345d3Smrg	  for n in $library_names; do
6507943345d3Smrg	    rmfiles="$rmfiles $objdir/$n"
6508943345d3Smrg	  done
6509943345d3Smrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6510943345d3Smrg
6511943345d3Smrg	  case "$mode" in
6512943345d3Smrg	  clean)
6513943345d3Smrg	    case "  $library_names " in
6514943345d3Smrg	    # "  " in the beginning catches empty $dlname
6515943345d3Smrg	    *" $dlname "*) ;;
6516943345d3Smrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6517943345d3Smrg	    esac
6518943345d3Smrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6519943345d3Smrg	    ;;
6520943345d3Smrg	  uninstall)
6521943345d3Smrg	    if test -n "$library_names"; then
6522943345d3Smrg	      # Do each command in the postuninstall commands.
6523943345d3Smrg	      cmds=$postuninstall_cmds
6524943345d3Smrg	      save_ifs="$IFS"; IFS='~'
6525943345d3Smrg	      for cmd in $cmds; do
6526943345d3Smrg		IFS="$save_ifs"
6527943345d3Smrg		eval cmd=\"$cmd\"
6528943345d3Smrg		$show "$cmd"
6529943345d3Smrg		$run eval "$cmd"
6530943345d3Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6531943345d3Smrg		  exit_status=1
6532943345d3Smrg		fi
6533943345d3Smrg	      done
6534943345d3Smrg	      IFS="$save_ifs"
6535943345d3Smrg	    fi
6536943345d3Smrg
6537943345d3Smrg	    if test -n "$old_library"; then
6538943345d3Smrg	      # Do each command in the old_postuninstall commands.
6539943345d3Smrg	      cmds=$old_postuninstall_cmds
6540943345d3Smrg	      save_ifs="$IFS"; IFS='~'
6541943345d3Smrg	      for cmd in $cmds; do
6542943345d3Smrg		IFS="$save_ifs"
6543943345d3Smrg		eval cmd=\"$cmd\"
6544943345d3Smrg		$show "$cmd"
6545943345d3Smrg		$run eval "$cmd"
6546943345d3Smrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
6547943345d3Smrg		  exit_status=1
6548943345d3Smrg		fi
6549943345d3Smrg	      done
6550943345d3Smrg	      IFS="$save_ifs"
6551943345d3Smrg	    fi
6552943345d3Smrg	    # FIXME: should reinstall the best remaining shared library.
6553943345d3Smrg	    ;;
6554943345d3Smrg	  esac
6555943345d3Smrg	fi
6556943345d3Smrg	;;
6557943345d3Smrg
6558943345d3Smrg      *.lo)
6559943345d3Smrg	# Possibly a libtool object, so verify it.
6560943345d3Smrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6561943345d3Smrg
6562943345d3Smrg	  # Read the .lo file
6563943345d3Smrg	  . $dir/$name
6564943345d3Smrg
6565943345d3Smrg	  # Add PIC object to the list of files to remove.
6566943345d3Smrg	  if test -n "$pic_object" \
6567943345d3Smrg	     && test "$pic_object" != none; then
6568943345d3Smrg	    rmfiles="$rmfiles $dir/$pic_object"
6569943345d3Smrg	  fi
6570943345d3Smrg
6571943345d3Smrg	  # Add non-PIC object to the list of files to remove.
6572943345d3Smrg	  if test -n "$non_pic_object" \
6573943345d3Smrg	     && test "$non_pic_object" != none; then
6574943345d3Smrg	    rmfiles="$rmfiles $dir/$non_pic_object"
6575943345d3Smrg	  fi
6576943345d3Smrg	fi
6577943345d3Smrg	;;
6578943345d3Smrg
6579943345d3Smrg      *)
6580943345d3Smrg	if test "$mode" = clean ; then
6581943345d3Smrg	  noexename=$name
6582943345d3Smrg	  case $file in
6583943345d3Smrg	  *.exe)
6584943345d3Smrg	    file=`$echo $file|${SED} 's,.exe$,,'`
6585943345d3Smrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6586943345d3Smrg	    # $file with .exe has already been added to rmfiles,
6587943345d3Smrg	    # add $file without .exe
6588943345d3Smrg	    rmfiles="$rmfiles $file"
6589943345d3Smrg	    ;;
6590943345d3Smrg	  esac
6591943345d3Smrg	  # Do a test to see if this is a libtool program.
6592943345d3Smrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6593943345d3Smrg	    relink_command=
6594943345d3Smrg	    . $dir/$noexename
6595943345d3Smrg
6596943345d3Smrg	    # note $name still contains .exe if it was in $file originally
6597943345d3Smrg	    # as does the version of $file that was added into $rmfiles
6598943345d3Smrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6599943345d3Smrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
6600943345d3Smrg	      rmfiles="$rmfiles $objdir/lt-$name"
6601943345d3Smrg	    fi
6602943345d3Smrg	    if test "X$noexename" != "X$name" ; then
6603943345d3Smrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6604943345d3Smrg	    fi
6605943345d3Smrg	  fi
6606943345d3Smrg	fi
6607943345d3Smrg	;;
6608943345d3Smrg      esac
6609943345d3Smrg      $show "$rm $rmfiles"
6610943345d3Smrg      $run $rm $rmfiles || exit_status=1
6611943345d3Smrg    done
6612943345d3Smrg    objdir="$origobjdir"
6613943345d3Smrg
6614943345d3Smrg    # Try to remove the ${objdir}s in the directories where we deleted files
6615943345d3Smrg    for dir in $rmdirs; do
6616943345d3Smrg      if test -d "$dir"; then
6617943345d3Smrg	$show "rmdir $dir"
6618943345d3Smrg	$run rmdir $dir >/dev/null 2>&1
6619943345d3Smrg      fi
6620943345d3Smrg    done
6621943345d3Smrg
6622943345d3Smrg    exit $exit_status
6623943345d3Smrg    ;;
6624943345d3Smrg
6625943345d3Smrg  "")
6626943345d3Smrg    $echo "$modename: you must specify a MODE" 1>&2
6627943345d3Smrg    $echo "$generic_help" 1>&2
6628943345d3Smrg    exit $EXIT_FAILURE
6629943345d3Smrg    ;;
6630943345d3Smrg  esac
6631943345d3Smrg
6632943345d3Smrg  if test -z "$exec_cmd"; then
6633943345d3Smrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6634943345d3Smrg    $echo "$generic_help" 1>&2
6635943345d3Smrg    exit $EXIT_FAILURE
6636943345d3Smrg  fi
6637943345d3Smrgfi # test -z "$show_help"
6638943345d3Smrg
6639943345d3Smrgif test -n "$exec_cmd"; then
6640943345d3Smrg  eval exec $exec_cmd
6641943345d3Smrg  exit $EXIT_FAILURE
6642943345d3Smrgfi
6643943345d3Smrg
6644943345d3Smrg# We need to display help for each of the modes.
6645943345d3Smrgcase $mode in
6646943345d3Smrg"") $echo \
6647943345d3Smrg"Usage: $modename [OPTION]... [MODE-ARG]...
6648943345d3Smrg
6649943345d3SmrgProvide generalized library-building support services.
6650943345d3Smrg
6651943345d3Smrg    --config          show all configuration variables
6652943345d3Smrg    --debug           enable verbose shell tracing
6653943345d3Smrg-n, --dry-run         display commands without modifying any files
6654943345d3Smrg    --features        display basic configuration information and exit
6655943345d3Smrg    --finish          same as \`--mode=finish'
6656943345d3Smrg    --help            display this help message and exit
6657943345d3Smrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6658943345d3Smrg    --quiet           same as \`--silent'
6659943345d3Smrg    --silent          don't print informational messages
6660943345d3Smrg    --tag=TAG         use configuration variables from tag TAG
6661943345d3Smrg    --version         print version information
6662943345d3Smrg
6663943345d3SmrgMODE must be one of the following:
6664943345d3Smrg
6665943345d3Smrg      clean           remove files from the build directory
6666943345d3Smrg      compile         compile a source file into a libtool object
6667943345d3Smrg      execute         automatically set library path, then run a program
6668943345d3Smrg      finish          complete the installation of libtool libraries
6669943345d3Smrg      install         install libraries or executables
6670943345d3Smrg      link            create a library or an executable
6671943345d3Smrg      uninstall       remove libraries from an installed directory
6672943345d3Smrg
6673943345d3SmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6674943345d3Smrga more detailed description of MODE.
6675943345d3Smrg
6676943345d3SmrgReport bugs to <bug-libtool@gnu.org>."
6677943345d3Smrg  exit $EXIT_SUCCESS
6678943345d3Smrg  ;;
6679943345d3Smrg
6680943345d3Smrgclean)
6681943345d3Smrg  $echo \
6682943345d3Smrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6683943345d3Smrg
6684943345d3SmrgRemove files from the build directory.
6685943345d3Smrg
6686943345d3SmrgRM is the name of the program to use to delete files associated with each FILE
6687943345d3Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6688943345d3Smrgto RM.
6689943345d3Smrg
6690943345d3SmrgIf FILE is a libtool library, object or program, all the files associated
6691943345d3Smrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6692943345d3Smrg  ;;
6693943345d3Smrg
6694943345d3Smrgcompile)
6695943345d3Smrg  $echo \
6696943345d3Smrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6697943345d3Smrg
6698943345d3SmrgCompile a source file into a libtool library object.
6699943345d3Smrg
6700943345d3SmrgThis mode accepts the following additional options:
6701943345d3Smrg
6702943345d3Smrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6703943345d3Smrg  -prefer-pic       try to building PIC objects only
6704943345d3Smrg  -prefer-non-pic   try to building non-PIC objects only
6705943345d3Smrg  -static           always build a \`.o' file suitable for static linking
6706943345d3Smrg
6707943345d3SmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6708943345d3Smrgfrom the given SOURCEFILE.
6709943345d3Smrg
6710943345d3SmrgThe output file name is determined by removing the directory component from
6711943345d3SmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
6712943345d3Smrglibrary object suffix, \`.lo'."
6713943345d3Smrg  ;;
6714943345d3Smrg
6715943345d3Smrgexecute)
6716943345d3Smrg  $echo \
6717943345d3Smrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6718943345d3Smrg
6719943345d3SmrgAutomatically set library path, then run a program.
6720943345d3Smrg
6721943345d3SmrgThis mode accepts the following additional options:
6722943345d3Smrg
6723943345d3Smrg  -dlopen FILE      add the directory containing FILE to the library path
6724943345d3Smrg
6725943345d3SmrgThis mode sets the library path environment variable according to \`-dlopen'
6726943345d3Smrgflags.
6727943345d3Smrg
6728943345d3SmrgIf any of the ARGS are libtool executable wrappers, then they are translated
6729943345d3Smrginto their corresponding uninstalled binary, and any of their required library
6730943345d3Smrgdirectories are added to the library path.
6731943345d3Smrg
6732943345d3SmrgThen, COMMAND is executed, with ARGS as arguments."
6733943345d3Smrg  ;;
6734943345d3Smrg
6735943345d3Smrgfinish)
6736943345d3Smrg  $echo \
6737943345d3Smrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6738943345d3Smrg
6739943345d3SmrgComplete the installation of libtool libraries.
6740943345d3Smrg
6741943345d3SmrgEach LIBDIR is a directory that contains libtool libraries.
6742943345d3Smrg
6743943345d3SmrgThe commands that this mode executes may require superuser privileges.  Use
6744943345d3Smrgthe \`--dry-run' option if you just want to see what would be executed."
6745943345d3Smrg  ;;
6746943345d3Smrg
6747943345d3Smrginstall)
6748943345d3Smrg  $echo \
6749943345d3Smrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6750943345d3Smrg
6751943345d3SmrgInstall executables or libraries.
6752943345d3Smrg
6753943345d3SmrgINSTALL-COMMAND is the installation command.  The first component should be
6754943345d3Smrgeither the \`install' or \`cp' program.
6755943345d3Smrg
6756943345d3SmrgThe rest of the components are interpreted as arguments to that command (only
6757943345d3SmrgBSD-compatible install options are recognized)."
6758943345d3Smrg  ;;
6759943345d3Smrg
6760943345d3Smrglink)
6761943345d3Smrg  $echo \
6762943345d3Smrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6763943345d3Smrg
6764943345d3SmrgLink object files or libraries together to form another library, or to
6765943345d3Smrgcreate an executable program.
6766943345d3Smrg
6767943345d3SmrgLINK-COMMAND is a command using the C compiler that you would use to create
6768943345d3Smrga program from several object files.
6769943345d3Smrg
6770943345d3SmrgThe following components of LINK-COMMAND are treated specially:
6771943345d3Smrg
6772943345d3Smrg  -all-static       do not do any dynamic linking at all
6773943345d3Smrg  -avoid-version    do not add a version suffix if possible
6774943345d3Smrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6775943345d3Smrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6776943345d3Smrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6777943345d3Smrg  -export-symbols SYMFILE
6778943345d3Smrg		    try to export only the symbols listed in SYMFILE
6779943345d3Smrg  -export-symbols-regex REGEX
6780943345d3Smrg		    try to export only the symbols matching REGEX
6781943345d3Smrg  -LLIBDIR          search LIBDIR for required installed libraries
6782943345d3Smrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
6783943345d3Smrg  -module           build a library that can dlopened
6784943345d3Smrg  -no-fast-install  disable the fast-install mode
6785943345d3Smrg  -no-install       link a not-installable executable
6786943345d3Smrg  -no-undefined     declare that a library does not refer to external symbols
6787943345d3Smrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6788943345d3Smrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
6789943345d3Smrg  -precious-files-regex REGEX
6790943345d3Smrg                    don't remove output files matching REGEX
6791943345d3Smrg  -release RELEASE  specify package release information
6792943345d3Smrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6793943345d3Smrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6794943345d3Smrg  -static           do not do any dynamic linking of libtool libraries
6795943345d3Smrg  -version-info CURRENT[:REVISION[:AGE]]
6796943345d3Smrg		    specify library version info [each variable defaults to 0]
6797943345d3Smrg
6798943345d3SmrgAll other options (arguments beginning with \`-') are ignored.
6799943345d3Smrg
6800943345d3SmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
6801943345d3Smrgtreated as uninstalled libtool libraries, other files are standard or library
6802943345d3Smrgobject files.
6803943345d3Smrg
6804943345d3SmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6805943345d3Smrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
6806943345d3Smrgrequired, except when creating a convenience library.
6807943345d3Smrg
6808943345d3SmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6809943345d3Smrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
6810943345d3Smrg
6811943345d3SmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6812943345d3Smrgis created, otherwise an executable program is created."
6813943345d3Smrg  ;;
6814943345d3Smrg
6815943345d3Smrguninstall)
6816943345d3Smrg  $echo \
6817943345d3Smrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6818943345d3Smrg
6819943345d3SmrgRemove libraries from an installation directory.
6820943345d3Smrg
6821943345d3SmrgRM is the name of the program to use to delete files associated with each FILE
6822943345d3Smrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6823943345d3Smrgto RM.
6824943345d3Smrg
6825943345d3SmrgIf FILE is a libtool library, all the files associated with it are deleted.
6826943345d3SmrgOtherwise, only FILE itself is deleted using RM."
6827943345d3Smrg  ;;
6828943345d3Smrg
6829943345d3Smrg*)
6830943345d3Smrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6831943345d3Smrg  $echo "$help" 1>&2
6832943345d3Smrg  exit $EXIT_FAILURE
6833943345d3Smrg  ;;
6834943345d3Smrgesac
6835943345d3Smrg
6836943345d3Smrg$echo
6837943345d3Smrg$echo "Try \`$modename --help' for more information about other modes."
6838943345d3Smrg
6839943345d3Smrgexit $?
6840943345d3Smrg
6841943345d3Smrg# The TAGs below are defined such that we never get into a situation
6842943345d3Smrg# in which we disable both kinds of libraries.  Given conflicting
6843943345d3Smrg# choices, we go for a static library, that is the most portable,
6844943345d3Smrg# since we can't tell whether shared libraries were disabled because
6845943345d3Smrg# the user asked for that or because the platform doesn't support
6846943345d3Smrg# them.  This is particularly important on AIX, because we don't
6847943345d3Smrg# support having both static and shared libraries enabled at the same
6848943345d3Smrg# time on that platform, so we default to a shared-only configuration.
6849943345d3Smrg# If a disable-shared tag is given, we'll fallback to a static-only
6850943345d3Smrg# configuration.  But we'll never go from static-only to shared-only.
6851943345d3Smrg
6852943345d3Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6853943345d3Smrgdisable_libs=shared
6854943345d3Smrg# ### END LIBTOOL TAG CONFIG: disable-shared
6855943345d3Smrg
6856943345d3Smrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6857943345d3Smrgdisable_libs=static
6858943345d3Smrg# ### END LIBTOOL TAG CONFIG: disable-static
6859943345d3Smrg
6860943345d3Smrg# Local Variables:
6861943345d3Smrg# mode:shell-script
6862943345d3Smrg# sh-indentation:2
6863943345d3Smrg# End:
6864