1251883Speter# ltmain.sh - Provide generalized library-building support services.
2251883Speter# NOTE: Changing this file will not affect anything until you rerun configure.
3251883Speter#
4251883Speter# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
5251883Speter# 2007  Free Software Foundation, Inc.
6251883Speter# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7251883Speter#
8251883Speter# This program is free software; you can redistribute it and/or modify
9251883Speter# it under the terms of the GNU General Public License as published by
10251883Speter# the Free Software Foundation; either version 2 of the License, or
11251883Speter# (at your option) any later version.
12251883Speter#
13251883Speter# This program is distributed in the hope that it will be useful, but
14251883Speter# WITHOUT ANY WARRANTY; without even the implied warranty of
15251883Speter# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16251883Speter# General Public License for more details.
17251883Speter#
18251883Speter# You should have received a copy of the GNU General Public License
19251883Speter# along with this program; if not, write to the Free Software
20251883Speter# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21251883Speter#
22251883Speter# As a special exception to the GNU General Public License, if you
23251883Speter# distribute this file as part of a program that contains a
24251883Speter# configuration script generated by Autoconf, you may include it under
25251883Speter# the same distribution terms that you use for the rest of that program.
26251883Speter
27251883Speterbasename="s,^.*/,,g"
28251883Speter
29251883Speter# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30251883Speter# is ksh but when the shell is invoked as "sh" and the current value of
31251883Speter# the _XPG environment variable is not equal to 1 (one), the special
32251883Speter# positional parameter $0, within a function call, is the name of the
33251883Speter# function.
34251883Speterprogpath="$0"
35251883Speter
36251883Speter# The name of this program:
37251883Speterprogname=`echo "$progpath" | $SED $basename`
38251883Spetermodename="$progname"
39251883Speter
40251883Speter# Global variables:
41251883SpeterEXIT_SUCCESS=0
42251883SpeterEXIT_FAILURE=1
43251883Speter
44251883SpeterPROGRAM=ltmain.sh
45251883SpeterPACKAGE=libtool
46251883SpeterVERSION=1.5.24
47251883SpeterTIMESTAMP=" (1.1220.2.455 2007/06/24 02:13:29)"
48251883Speter
49251883Speter# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
50251883Speterif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
51251883Speter  emulate sh
52251883Speter  NULLCMD=:
53251883Speter  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
54251883Speter  # is contrary to our usage.  Disable this feature.
55251883Speter  alias -g '${1+"$@"}'='"$@"'
56251883Speter  setopt NO_GLOB_SUBST
57251883Speterelse
58251883Speter  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
59251883Speterfi
60251883SpeterBIN_SH=xpg4; export BIN_SH # for Tru64
61251883SpeterDUALCASE=1; export DUALCASE # for MKS sh
62251883Speter
63251883Speter# Check that we have a working $echo.
64251883Speterif test "X$1" = X--no-reexec; then
65251883Speter  # Discard the --no-reexec flag, and continue.
66251883Speter  shift
67251883Speterelif test "X$1" = X--fallback-echo; then
68251883Speter  # Avoid inline document here, it may be left over
69251883Speter  :
70251883Speterelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
71251883Speter  # Yippee, $echo works!
72251883Speter  :
73251883Speterelse
74251883Speter  # Restart under the correct shell, and then maybe $echo will work.
75251883Speter  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
76251883Speterfi
77251883Speter
78251883Speterif test "X$1" = X--fallback-echo; then
79251883Speter  # used as fallback echo
80251883Speter  shift
81251883Speter  cat <<EOF
82251883Speter$*
83251883SpeterEOF
84251883Speter  exit $EXIT_SUCCESS
85251883Speterfi
86251883Speter
87251883Speterdefault_mode=
88251883Speterhelp="Try \`$progname --help' for more information."
89251883Spetermagic="%%%MAGIC variable%%%"
90251883Spetermkdir="mkdir"
91251883Spetermv="mv -f"
92251883Speterrm="rm -f"
93251883Speter
94251883Speter# Sed substitution that helps us do robust quoting.  It backslashifies
95251883Speter# metacharacters that are still active within double-quoted strings.
96251883SpeterXsed="${SED}"' -e 1s/^X//'
97251883Spetersed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
98251883Speter# test EBCDIC or ASCII
99251883Spetercase `echo X|tr X '\101'` in
100251883Speter A) # ASCII based system
101251883Speter    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
102251883Speter  SP2NL='tr \040 \012'
103251883Speter  NL2SP='tr \015\012 \040\040'
104251883Speter  ;;
105251883Speter *) # EBCDIC based system
106251883Speter  SP2NL='tr \100 \n'
107251883Speter  NL2SP='tr \r\n \100\100'
108251883Speter  ;;
109251883Speteresac
110251883Speter
111251883Speter# NLS nuisances.
112251883Speter# Only set LANG and LC_ALL to C if already set.
113251883Speter# These must not be set unconditionally because not all systems understand
114251883Speter# e.g. LANG=C (notably SCO).
115251883Speter# We save the old values to restore during execute mode.
116251883Speterfor lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
117251883Speterdo
118251883Speter  eval "if test \"\${$lt_var+set}\" = set; then
119251883Speter	  save_$lt_var=\$$lt_var
120251883Speter	  $lt_var=C
121251883Speter	  export $lt_var
122251883Speter	fi"
123251883Speterdone
124251883Speter
125251883Speter# Make sure IFS has a sensible default
126251883Speterlt_nl='
127251883Speter'
128251883SpeterIFS=" 	$lt_nl"
129251883Speter
130251883Speterif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
131251883Speter  $echo "$modename: not configured to build any kind of library" 1>&2
132251883Speter  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
133251883Speter  exit $EXIT_FAILURE
134251883Speterfi
135251883Speter
136251883Speter# Global variables.
137251883Spetermode=$default_mode
138251883Speternonopt=
139251883Speterprev=
140251883Speterprevopt=
141251883Speterrun=
142251883Spetershow="$echo"
143251883Spetershow_help=
144251883Speterexecute_dlfiles=
145251883Speterduplicate_deps=no
146251883Speterpreserve_args=
147251883Speterlo2o="s/\\.lo\$/.${objext}/"
148251883Spetero2lo="s/\\.${objext}\$/.lo/"
149251883Speterextracted_archives=
150251883Speterextracted_serial=0
151251883Speter
152251883Speter#####################################
153251883Speter# Shell function definitions:
154251883Speter# This seems to be the best place for them
155251883Speter
156251883Speter# func_mktempdir [string]
157251883Speter# Make a temporary directory that won't clash with other running
158251883Speter# libtool processes, and avoids race conditions if possible.  If
159251883Speter# given, STRING is the basename for that directory.
160251883Speterfunc_mktempdir ()
161251883Speter{
162251883Speter    my_template="${TMPDIR-/tmp}/${1-$progname}"
163251883Speter
164251883Speter    if test "$run" = ":"; then
165251883Speter      # Return a directory name, but don't create it in dry-run mode
166251883Speter      my_tmpdir="${my_template}-$$"
167251883Speter    else
168251883Speter
169251883Speter      # If mktemp works, use that first and foremost
170251883Speter      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
171251883Speter
172251883Speter      if test ! -d "$my_tmpdir"; then
173251883Speter	# Failing that, at least try and use $RANDOM to avoid a race
174251883Speter	my_tmpdir="${my_template}-${RANDOM-0}$$"
175251883Speter
176251883Speter	save_mktempdir_umask=`umask`
177251883Speter	umask 0077
178251883Speter	$mkdir "$my_tmpdir"
179251883Speter	umask $save_mktempdir_umask
180251883Speter      fi
181251883Speter
182251883Speter      # If we're not in dry-run mode, bomb out on failure
183251883Speter      test -d "$my_tmpdir" || {
184251883Speter        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
185251883Speter	exit $EXIT_FAILURE
186251883Speter      }
187251883Speter    fi
188251883Speter
189251883Speter    $echo "X$my_tmpdir" | $Xsed
190251883Speter}
191251883Speter
192251883Speter
193251883Speter# func_win32_libid arg
194251883Speter# return the library type of file 'arg'
195251883Speter#
196251883Speter# Need a lot of goo to handle *both* DLLs and import libs
197251883Speter# Has to be a shell function in order to 'eat' the argument
198251883Speter# that is supplied when $file_magic_command is called.
199251883Speterfunc_win32_libid ()
200251883Speter{
201251883Speter  win32_libid_type="unknown"
202251883Speter  win32_fileres=`file -L $1 2>/dev/null`
203251883Speter  case $win32_fileres in
204251883Speter  *ar\ archive\ import\ library*) # definitely import
205251883Speter    win32_libid_type="x86 archive import"
206251883Speter    ;;
207251883Speter  *ar\ archive*) # could be an import, or static
208251883Speter    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
209251883Speter      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
210251883Speter      win32_nmres=`eval $NM -f posix -A $1 | \
211251883Speter	$SED -n -e '1,100{
212251883Speter		/ I /{
213251883Speter			s,.*,import,
214251883Speter			p
215251883Speter			q
216251883Speter			}
217251883Speter		}'`
218251883Speter      case $win32_nmres in
219251883Speter      import*)  win32_libid_type="x86 archive import";;
220251883Speter      *)        win32_libid_type="x86 archive static";;
221251883Speter      esac
222251883Speter    fi
223251883Speter    ;;
224251883Speter  *DLL*)
225251883Speter    win32_libid_type="x86 DLL"
226251883Speter    ;;
227251883Speter  *executable*) # but shell scripts are "executable" too...
228251883Speter    case $win32_fileres in
229251883Speter    *MS\ Windows\ PE\ Intel*)
230251883Speter      win32_libid_type="x86 DLL"
231251883Speter      ;;
232251883Speter    esac
233251883Speter    ;;
234251883Speter  esac
235251883Speter  $echo $win32_libid_type
236251883Speter}
237251883Speter
238251883Speter
239251883Speter# func_infer_tag arg
240251883Speter# Infer tagged configuration to use if any are available and
241251883Speter# if one wasn't chosen via the "--tag" command line option.
242251883Speter# Only attempt this if the compiler in the base compile
243251883Speter# command doesn't match the default compiler.
244251883Speter# arg is usually of the form 'gcc ...'
245251883Speterfunc_infer_tag ()
246251883Speter{
247251883Speter    if test -n "$available_tags" && test -z "$tagname"; then
248251883Speter      CC_quoted=
249251883Speter      for arg in $CC; do
250251883Speter	case $arg in
251251883Speter	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
252251883Speter	  arg="\"$arg\""
253251883Speter	  ;;
254251883Speter	esac
255251883Speter	CC_quoted="$CC_quoted $arg"
256251883Speter      done
257251883Speter      case $@ in
258251883Speter      # Blanks in the command may have been stripped by the calling shell,
259251883Speter      # but not from the CC environment variable when configure was run.
260251883Speter      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
261251883Speter      # Blanks at the start of $base_compile will cause this to fail
262251883Speter      # if we don't check for them as well.
263251883Speter      *)
264251883Speter	for z in $available_tags; do
265251883Speter	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
266251883Speter	    # Evaluate the configuration.
267251883Speter	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
268251883Speter	    CC_quoted=
269251883Speter	    for arg in $CC; do
270251883Speter	    # Double-quote args containing other shell metacharacters.
271251883Speter	    case $arg in
272251883Speter	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
273251883Speter	      arg="\"$arg\""
274251883Speter	      ;;
275251883Speter	    esac
276251883Speter	    CC_quoted="$CC_quoted $arg"
277251883Speter	  done
278251883Speter	    case "$@ " in
279251883Speter	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
280251883Speter	      # The compiler in the base compile command matches
281251883Speter	      # the one in the tagged configuration.
282251883Speter	      # Assume this is the tagged configuration we want.
283251883Speter	      tagname=$z
284251883Speter	      break
285251883Speter	      ;;
286251883Speter	    esac
287251883Speter	  fi
288251883Speter	done
289251883Speter	# If $tagname still isn't set, then no tagged configuration
290251883Speter	# was found and let the user know that the "--tag" command
291251883Speter	# line option must be used.
292251883Speter	if test -z "$tagname"; then
293251883Speter	  $echo "$modename: unable to infer tagged configuration"
294251883Speter	  $echo "$modename: specify a tag with \`--tag'" 1>&2
295251883Speter	  exit $EXIT_FAILURE
296251883Speter#        else
297251883Speter#          $echo "$modename: using $tagname tagged configuration"
298251883Speter	fi
299251883Speter	;;
300251883Speter      esac
301251883Speter    fi
302251883Speter}
303251883Speter
304251883Speter
305251883Speter# func_extract_an_archive dir oldlib
306251883Speterfunc_extract_an_archive ()
307251883Speter{
308251883Speter    f_ex_an_ar_dir="$1"; shift
309251883Speter    f_ex_an_ar_oldlib="$1"
310251883Speter
311251883Speter    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
312251883Speter    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
313251883Speter    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
314251883Speter     :
315251883Speter    else
316251883Speter      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
317251883Speter      exit $EXIT_FAILURE
318251883Speter    fi
319251883Speter}
320251883Speter
321251883Speter# func_extract_archives gentop oldlib ...
322251883Speterfunc_extract_archives ()
323251883Speter{
324251883Speter    my_gentop="$1"; shift
325251883Speter    my_oldlibs=${1+"$@"}
326251883Speter    my_oldobjs=""
327251883Speter    my_xlib=""
328251883Speter    my_xabs=""
329251883Speter    my_xdir=""
330251883Speter    my_status=""
331251883Speter
332251883Speter    $show "${rm}r $my_gentop"
333251883Speter    $run ${rm}r "$my_gentop"
334251883Speter    $show "$mkdir $my_gentop"
335251883Speter    $run $mkdir "$my_gentop"
336251883Speter    my_status=$?
337251883Speter    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
338251883Speter      exit $my_status
339251883Speter    fi
340251883Speter
341251883Speter    for my_xlib in $my_oldlibs; do
342251883Speter      # Extract the objects.
343251883Speter      case $my_xlib in
344251883Speter	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
345251883Speter	*) my_xabs=`pwd`"/$my_xlib" ;;
346251883Speter      esac
347251883Speter      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
348251883Speter      my_xlib_u=$my_xlib
349251883Speter      while :; do
350251883Speter        case " $extracted_archives " in
351251883Speter	*" $my_xlib_u "*)
352251883Speter	  extracted_serial=`expr $extracted_serial + 1`
353251883Speter	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
354251883Speter	*) break ;;
355251883Speter	esac
356251883Speter      done
357251883Speter      extracted_archives="$extracted_archives $my_xlib_u"
358251883Speter      my_xdir="$my_gentop/$my_xlib_u"
359251883Speter
360251883Speter      $show "${rm}r $my_xdir"
361251883Speter      $run ${rm}r "$my_xdir"
362251883Speter      $show "$mkdir $my_xdir"
363251883Speter      $run $mkdir "$my_xdir"
364251883Speter      exit_status=$?
365251883Speter      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
366251883Speter	exit $exit_status
367251883Speter      fi
368251883Speter      case $host in
369251883Speter      *-darwin*)
370251883Speter	$show "Extracting $my_xabs"
371251883Speter	# Do not bother doing anything if just a dry run
372251883Speter	if test -z "$run"; then
373251883Speter	  darwin_orig_dir=`pwd`
374251883Speter	  cd $my_xdir || exit $?
375251883Speter	  darwin_archive=$my_xabs
376251883Speter	  darwin_curdir=`pwd`
377251883Speter	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
378251883Speter	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
379251883Speter	  if test -n "$darwin_arches"; then 
380251883Speter	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
381251883Speter	    darwin_arch=
382251883Speter	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
383251883Speter	    for darwin_arch in  $darwin_arches ; do
384251883Speter	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
385251883Speter	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
386251883Speter	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
387251883Speter	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
388251883Speter	      cd "$darwin_curdir"
389251883Speter	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
390251883Speter	    done # $darwin_arches
391251883Speter      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
392251883Speter	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
393251883Speter	    darwin_file=
394251883Speter	    darwin_files=
395251883Speter	    for darwin_file in $darwin_filelist; do
396251883Speter	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
397251883Speter	      lipo -create -output "$darwin_file" $darwin_files
398251883Speter	    done # $darwin_filelist
399251883Speter	    ${rm}r unfat-$$
400251883Speter	    cd "$darwin_orig_dir"
401251883Speter	  else
402251883Speter	    cd "$darwin_orig_dir"
403251883Speter 	    func_extract_an_archive "$my_xdir" "$my_xabs"
404251883Speter	  fi # $darwin_arches
405251883Speter	fi # $run
406251883Speter	;;
407251883Speter      *)
408251883Speter        func_extract_an_archive "$my_xdir" "$my_xabs"
409251883Speter        ;;
410251883Speter      esac
411251883Speter      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
412251883Speter    done
413251883Speter    func_extract_archives_result="$my_oldobjs"
414251883Speter}
415251883Speter# End of Shell function definitions
416251883Speter#####################################
417251883Speter
418251883Speter# Darwin sucks
419251883Spetereval std_shrext=\"$shrext_cmds\"
420251883Speter
421251883Speterdisable_libs=no
422251883Speter
423251883Speter# Parse our command line options once, thoroughly.
424251883Speterwhile test "$#" -gt 0
425251883Speterdo
426251883Speter  arg="$1"
427251883Speter  shift
428251883Speter
429251883Speter  case $arg in
430251883Speter  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
431251883Speter  *) optarg= ;;
432251883Speter  esac
433251883Speter
434251883Speter  # If the previous option needs an argument, assign it.
435251883Speter  if test -n "$prev"; then
436251883Speter    case $prev in
437251883Speter    execute_dlfiles)
438251883Speter      execute_dlfiles="$execute_dlfiles $arg"
439251883Speter      ;;
440251883Speter    tag)
441251883Speter      tagname="$arg"
442251883Speter      preserve_args="${preserve_args}=$arg"
443251883Speter
444251883Speter      # Check whether tagname contains only valid characters
445251883Speter      case $tagname in
446251883Speter      *[!-_A-Za-z0-9,/]*)
447251883Speter	$echo "$progname: invalid tag name: $tagname" 1>&2
448251883Speter	exit $EXIT_FAILURE
449251883Speter	;;
450251883Speter      esac
451251883Speter
452251883Speter      case $tagname in
453251883Speter      CC)
454251883Speter	# Don't test for the "default" C tag, as we know, it's there, but
455251883Speter	# not specially marked.
456251883Speter	;;
457251883Speter      *)
458251883Speter	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
459251883Speter	  taglist="$taglist $tagname"
460251883Speter	  # Evaluate the configuration.
461251883Speter	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
462251883Speter	else
463251883Speter	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
464251883Speter	fi
465251883Speter	;;
466251883Speter      esac
467251883Speter      ;;
468251883Speter    *)
469251883Speter      eval "$prev=\$arg"
470251883Speter      ;;
471251883Speter    esac
472251883Speter
473251883Speter    prev=
474251883Speter    prevopt=
475251883Speter    continue
476251883Speter  fi
477251883Speter
478251883Speter  # Have we seen a non-optional argument yet?
479251883Speter  case $arg in
480251883Speter  --help)
481251883Speter    show_help=yes
482251883Speter    ;;
483251883Speter
484251883Speter  --version)
485251883Speter    echo "\
486251883Speter$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
487251883Speter
488251883SpeterCopyright (C) 2007  Free Software Foundation, Inc.
489251883SpeterThis is free software; see the source for copying conditions.  There is NO
490251883Speterwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
491251883Speter    exit $?
492251883Speter    ;;
493251883Speter
494251883Speter  --config)
495251883Speter    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
496251883Speter    # Now print the configurations for the tags.
497251883Speter    for tagname in $taglist; do
498251883Speter      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
499251883Speter    done
500251883Speter    exit $?
501251883Speter    ;;
502251883Speter
503251883Speter  --debug)
504251883Speter    $echo "$progname: enabling shell trace mode"
505251883Speter    set -x
506251883Speter    preserve_args="$preserve_args $arg"
507251883Speter    ;;
508251883Speter
509251883Speter  --dry-run | -n)
510251883Speter    run=:
511251883Speter    ;;
512251883Speter
513251883Speter  --features)
514251883Speter    $echo "host: $host"
515251883Speter    if test "$build_libtool_libs" = yes; then
516251883Speter      $echo "enable shared libraries"
517251883Speter    else
518251883Speter      $echo "disable shared libraries"
519251883Speter    fi
520251883Speter    if test "$build_old_libs" = yes; then
521251883Speter      $echo "enable static libraries"
522251883Speter    else
523251883Speter      $echo "disable static libraries"
524251883Speter    fi
525251883Speter    exit $?
526251883Speter    ;;
527251883Speter
528251883Speter  --finish) mode="finish" ;;
529251883Speter
530251883Speter  --mode) prevopt="--mode" prev=mode ;;
531251883Speter  --mode=*) mode="$optarg" ;;
532251883Speter
533251883Speter  --preserve-dup-deps) duplicate_deps="yes" ;;
534251883Speter
535251883Speter  --quiet | --silent)
536251883Speter    show=:
537251883Speter    preserve_args="$preserve_args $arg"
538251883Speter    ;;
539251883Speter
540251883Speter  --tag)
541251883Speter    prevopt="--tag"
542251883Speter    prev=tag
543251883Speter    preserve_args="$preserve_args --tag"
544251883Speter    ;;
545251883Speter  --tag=*)
546251883Speter    set tag "$optarg" ${1+"$@"}
547251883Speter    shift
548251883Speter    prev=tag
549251883Speter    preserve_args="$preserve_args --tag"
550251883Speter    ;;
551251883Speter
552251883Speter  -dlopen)
553251883Speter    prevopt="-dlopen"
554251883Speter    prev=execute_dlfiles
555251883Speter    ;;
556251883Speter
557251883Speter  -*)
558251883Speter    $echo "$modename: unrecognized option \`$arg'" 1>&2
559251883Speter    $echo "$help" 1>&2
560251883Speter    exit $EXIT_FAILURE
561251883Speter    ;;
562251883Speter
563251883Speter  *)
564251883Speter    nonopt="$arg"
565251883Speter    break
566251883Speter    ;;
567251883Speter  esac
568251883Speterdone
569251883Speter
570251883Speterif test -n "$prevopt"; then
571251883Speter  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
572251883Speter  $echo "$help" 1>&2
573251883Speter  exit $EXIT_FAILURE
574251883Speterfi
575251883Speter
576251883Spetercase $disable_libs in
577251883Speterno) 
578251883Speter  ;;
579251883Spetershared)
580251883Speter  build_libtool_libs=no
581251883Speter  build_old_libs=yes
582251883Speter  ;;
583251883Speterstatic)
584251883Speter  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
585251883Speter  ;;
586251883Speteresac
587251883Speter
588251883Speter# If this variable is set in any of the actions, the command in it
589251883Speter# will be execed at the end.  This prevents here-documents from being
590251883Speter# left over by shells.
591251883Speterexec_cmd=
592251883Speter
593251883Speterif test -z "$show_help"; then
594251883Speter
595251883Speter  # Infer the operation mode.
596251883Speter  if test -z "$mode"; then
597251883Speter    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
598251883Speter    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
599251883Speter    case $nonopt in
600251883Speter    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
601251883Speter      mode=link
602251883Speter      for arg
603251883Speter      do
604251883Speter	case $arg in
605251883Speter	-c)
606251883Speter	   mode=compile
607251883Speter	   break
608251883Speter	   ;;
609251883Speter	esac
610251883Speter      done
611251883Speter      ;;
612251883Speter    *db | *dbx | *strace | *truss)
613251883Speter      mode=execute
614251883Speter      ;;
615251883Speter    *install*|cp|mv)
616251883Speter      mode=install
617251883Speter      ;;
618251883Speter    *rm)
619251883Speter      mode=uninstall
620251883Speter      ;;
621251883Speter    *)
622251883Speter      # If we have no mode, but dlfiles were specified, then do execute mode.
623251883Speter      test -n "$execute_dlfiles" && mode=execute
624251883Speter
625251883Speter      # Just use the default operation mode.
626251883Speter      if test -z "$mode"; then
627251883Speter	if test -n "$nonopt"; then
628251883Speter	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
629251883Speter	else
630251883Speter	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
631251883Speter	fi
632251883Speter      fi
633251883Speter      ;;
634251883Speter    esac
635251883Speter  fi
636251883Speter
637251883Speter  # Only execute mode is allowed to have -dlopen flags.
638251883Speter  if test -n "$execute_dlfiles" && test "$mode" != execute; then
639251883Speter    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
640251883Speter    $echo "$help" 1>&2
641251883Speter    exit $EXIT_FAILURE
642251883Speter  fi
643251883Speter
644251883Speter  # Change the help message to a mode-specific one.
645251883Speter  generic_help="$help"
646251883Speter  help="Try \`$modename --help --mode=$mode' for more information."
647251883Speter
648251883Speter  # These modes are in order of execution frequency so that they run quickly.
649251883Speter  case $mode in
650251883Speter  # libtool compile mode
651251883Speter  compile)
652251883Speter    modename="$modename: compile"
653251883Speter    # Get the compilation command and the source file.
654251883Speter    base_compile=
655251883Speter    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
656251883Speter    suppress_opt=yes
657251883Speter    suppress_output=
658251883Speter    arg_mode=normal
659251883Speter    libobj=
660251883Speter    later=
661251883Speter
662251883Speter    for arg
663251883Speter    do
664251883Speter      case $arg_mode in
665251883Speter      arg  )
666251883Speter	# do not "continue".  Instead, add this to base_compile
667251883Speter	lastarg="$arg"
668251883Speter	arg_mode=normal
669251883Speter	;;
670251883Speter
671251883Speter      target )
672251883Speter	libobj="$arg"
673251883Speter	arg_mode=normal
674251883Speter	continue
675251883Speter	;;
676251883Speter
677251883Speter      normal )
678251883Speter	# Accept any command-line options.
679251883Speter	case $arg in
680251883Speter	-o)
681251883Speter	  if test -n "$libobj" ; then
682251883Speter	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
683251883Speter	    exit $EXIT_FAILURE
684251883Speter	  fi
685251883Speter	  arg_mode=target
686251883Speter	  continue
687251883Speter	  ;;
688251883Speter
689251883Speter	-static | -prefer-pic | -prefer-non-pic)
690251883Speter	  later="$later $arg"
691251883Speter	  continue
692251883Speter	  ;;
693251883Speter
694251883Speter	-no-suppress)
695251883Speter	  suppress_opt=no
696251883Speter	  continue
697251883Speter	  ;;
698251883Speter
699251883Speter	-Xcompiler)
700251883Speter	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
701251883Speter	  continue      #  The current "srcfile" will either be retained or
702251883Speter	  ;;            #  replaced later.  I would guess that would be a bug.
703251883Speter
704251883Speter	-Wc,*)
705251883Speter	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
706251883Speter	  lastarg=
707251883Speter	  save_ifs="$IFS"; IFS=','
708251883Speter 	  for arg in $args; do
709251883Speter	    IFS="$save_ifs"
710251883Speter
711251883Speter	    # Double-quote args containing other shell metacharacters.
712251883Speter	    # Many Bourne shells cannot handle close brackets correctly
713251883Speter	    # in scan sets, so we specify it separately.
714251883Speter	    case $arg in
715251883Speter	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
716251883Speter	      arg="\"$arg\""
717251883Speter	      ;;
718251883Speter	    esac
719251883Speter	    lastarg="$lastarg $arg"
720251883Speter	  done
721251883Speter	  IFS="$save_ifs"
722251883Speter	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
723251883Speter
724251883Speter	  # Add the arguments to base_compile.
725251883Speter	  base_compile="$base_compile $lastarg"
726251883Speter	  continue
727251883Speter	  ;;
728251883Speter
729251883Speter	* )
730251883Speter	  # Accept the current argument as the source file.
731251883Speter	  # The previous "srcfile" becomes the current argument.
732251883Speter	  #
733251883Speter	  lastarg="$srcfile"
734251883Speter	  srcfile="$arg"
735251883Speter	  ;;
736251883Speter	esac  #  case $arg
737251883Speter	;;
738251883Speter      esac    #  case $arg_mode
739251883Speter
740251883Speter      # Aesthetically quote the previous argument.
741251883Speter      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
742251883Speter
743251883Speter      case $lastarg in
744251883Speter      # Double-quote args containing other shell metacharacters.
745251883Speter      # Many Bourne shells cannot handle close brackets correctly
746251883Speter      # in scan sets, and some SunOS ksh mistreat backslash-escaping
747251883Speter      # in scan sets (worked around with variable expansion),
748251883Speter      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
749251883Speter      # at all, so we specify them separately.
750251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
751251883Speter	lastarg="\"$lastarg\""
752251883Speter	;;
753251883Speter      esac
754251883Speter
755251883Speter      base_compile="$base_compile $lastarg"
756251883Speter    done # for arg
757251883Speter
758251883Speter    case $arg_mode in
759251883Speter    arg)
760251883Speter      $echo "$modename: you must specify an argument for -Xcompile"
761251883Speter      exit $EXIT_FAILURE
762251883Speter      ;;
763251883Speter    target)
764251883Speter      $echo "$modename: you must specify a target with \`-o'" 1>&2
765251883Speter      exit $EXIT_FAILURE
766251883Speter      ;;
767251883Speter    *)
768251883Speter      # Get the name of the library object.
769251883Speter      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
770251883Speter      ;;
771251883Speter    esac
772251883Speter
773251883Speter    # Recognize several different file suffixes.
774251883Speter    # If the user specifies -o file.o, it is replaced with file.lo
775251883Speter    xform='[cCFSifmso]'
776251883Speter    case $libobj in
777251883Speter    *.ada) xform=ada ;;
778251883Speter    *.adb) xform=adb ;;
779251883Speter    *.ads) xform=ads ;;
780251883Speter    *.asm) xform=asm ;;
781251883Speter    *.c++) xform=c++ ;;
782251883Speter    *.cc) xform=cc ;;
783251883Speter    *.ii) xform=ii ;;
784251883Speter    *.class) xform=class ;;
785251883Speter    *.cpp) xform=cpp ;;
786251883Speter    *.cxx) xform=cxx ;;
787251883Speter    *.[fF][09]?) xform=[fF][09]. ;;
788251883Speter    *.for) xform=for ;;
789251883Speter    *.java) xform=java ;;
790251883Speter    *.obj) xform=obj ;;
791251883Speter    esac
792251883Speter
793251883Speter    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
794251883Speter
795251883Speter    case $libobj in
796251883Speter    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
797251883Speter    *)
798251883Speter      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
799251883Speter      exit $EXIT_FAILURE
800251883Speter      ;;
801251883Speter    esac
802251883Speter
803251883Speter    func_infer_tag $base_compile
804251883Speter
805251883Speter    for arg in $later; do
806251883Speter      case $arg in
807251883Speter      -static)
808251883Speter	build_old_libs=yes
809251883Speter	continue
810251883Speter	;;
811251883Speter
812251883Speter      -prefer-pic)
813251883Speter	pic_mode=yes
814251883Speter	continue
815251883Speter	;;
816251883Speter
817251883Speter      -prefer-non-pic)
818251883Speter	pic_mode=no
819251883Speter	continue
820251883Speter	;;
821251883Speter      esac
822251883Speter    done
823251883Speter
824251883Speter    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
825251883Speter    case $qlibobj in
826251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
827251883Speter	qlibobj="\"$qlibobj\"" ;;
828251883Speter    esac
829251883Speter    test "X$libobj" != "X$qlibobj" \
830251883Speter	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
831251883Speter	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
832251883Speter    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
833251883Speter    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
834251883Speter    if test "X$xdir" = "X$obj"; then
835251883Speter      xdir=
836251883Speter    else
837251883Speter      xdir=$xdir/
838251883Speter    fi
839251883Speter    lobj=${xdir}$objdir/$objname
840251883Speter
841251883Speter    if test -z "$base_compile"; then
842251883Speter      $echo "$modename: you must specify a compilation command" 1>&2
843251883Speter      $echo "$help" 1>&2
844251883Speter      exit $EXIT_FAILURE
845251883Speter    fi
846251883Speter
847251883Speter    # Delete any leftover library objects.
848251883Speter    if test "$build_old_libs" = yes; then
849251883Speter      removelist="$obj $lobj $libobj ${libobj}T"
850251883Speter    else
851251883Speter      removelist="$lobj $libobj ${libobj}T"
852251883Speter    fi
853251883Speter
854251883Speter    $run $rm $removelist
855251883Speter    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
856251883Speter
857251883Speter    # On Cygwin there's no "real" PIC flag so we must build both object types
858251883Speter    case $host_os in
859251883Speter    cygwin* | mingw* | pw32* | os2*)
860251883Speter      pic_mode=default
861251883Speter      ;;
862251883Speter    esac
863251883Speter    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
864251883Speter      # non-PIC code in shared libraries is not supported
865251883Speter      pic_mode=default
866251883Speter    fi
867251883Speter
868251883Speter    # Calculate the filename of the output object if compiler does
869251883Speter    # not support -o with -c
870251883Speter    if test "$compiler_c_o" = no; then
871251883Speter      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
872251883Speter      lockfile="$output_obj.lock"
873251883Speter      removelist="$removelist $output_obj $lockfile"
874251883Speter      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
875251883Speter    else
876251883Speter      output_obj=
877251883Speter      need_locks=no
878251883Speter      lockfile=
879251883Speter    fi
880251883Speter
881251883Speter    # Lock this critical section if it is needed
882251883Speter    # We use this script file to make the link, it avoids creating a new file
883251883Speter    if test "$need_locks" = yes; then
884251883Speter      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
885251883Speter	$show "Waiting for $lockfile to be removed"
886251883Speter	sleep 2
887251883Speter      done
888251883Speter    elif test "$need_locks" = warn; then
889251883Speter      if test -f "$lockfile"; then
890251883Speter	$echo "\
891251883Speter*** ERROR, $lockfile exists and contains:
892251883Speter`cat $lockfile 2>/dev/null`
893251883Speter
894251883SpeterThis indicates that another process is trying to use the same
895251883Spetertemporary object file, and libtool could not work around it because
896251883Speteryour compiler does not support \`-c' and \`-o' together.  If you
897251883Speterrepeat this compilation, it may succeed, by chance, but you had better
898251883Speteravoid parallel builds (make -j) in this platform, or get a better
899251883Spetercompiler."
900251883Speter
901251883Speter	$run $rm $removelist
902251883Speter	exit $EXIT_FAILURE
903251883Speter      fi
904251883Speter      $echo "$srcfile" > "$lockfile"
905251883Speter    fi
906251883Speter
907251883Speter    if test -n "$fix_srcfile_path"; then
908251883Speter      eval srcfile=\"$fix_srcfile_path\"
909251883Speter    fi
910251883Speter    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
911251883Speter    case $qsrcfile in
912251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
913251883Speter      qsrcfile="\"$qsrcfile\"" ;;
914251883Speter    esac
915251883Speter
916251883Speter    $run $rm "$libobj" "${libobj}T"
917251883Speter
918251883Speter    # Create a libtool object file (analogous to a ".la" file),
919251883Speter    # but don't create it if we're doing a dry run.
920251883Speter    test -z "$run" && cat > ${libobj}T <<EOF
921251883Speter# $libobj - a libtool object file
922251883Speter# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
923251883Speter#
924251883Speter# Please DO NOT delete this file!
925251883Speter# It is necessary for linking the library.
926251883Speter
927251883Speter# Name of the PIC object.
928251883SpeterEOF
929251883Speter
930251883Speter    # Only build a PIC object if we are building libtool libraries.
931251883Speter    if test "$build_libtool_libs" = yes; then
932251883Speter      # Without this assignment, base_compile gets emptied.
933251883Speter      fbsd_hideous_sh_bug=$base_compile
934251883Speter
935251883Speter      if test "$pic_mode" != no; then
936251883Speter	command="$base_compile $qsrcfile $pic_flag"
937251883Speter      else
938251883Speter	# Don't build PIC code
939251883Speter	command="$base_compile $qsrcfile"
940251883Speter      fi
941251883Speter
942251883Speter      if test ! -d "${xdir}$objdir"; then
943251883Speter	$show "$mkdir ${xdir}$objdir"
944251883Speter	$run $mkdir ${xdir}$objdir
945251883Speter	exit_status=$?
946251883Speter	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
947251883Speter	  exit $exit_status
948251883Speter	fi
949251883Speter      fi
950251883Speter
951251883Speter      if test -z "$output_obj"; then
952251883Speter	# Place PIC objects in $objdir
953251883Speter	command="$command -o $lobj"
954251883Speter      fi
955251883Speter
956251883Speter      $run $rm "$lobj" "$output_obj"
957251883Speter
958251883Speter      $show "$command"
959251883Speter      if $run eval "$command"; then :
960251883Speter      else
961251883Speter	test -n "$output_obj" && $run $rm $removelist
962251883Speter	exit $EXIT_FAILURE
963251883Speter      fi
964251883Speter
965251883Speter      if test "$need_locks" = warn &&
966251883Speter	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
967251883Speter	$echo "\
968251883Speter*** ERROR, $lockfile contains:
969251883Speter`cat $lockfile 2>/dev/null`
970251883Speter
971251883Speterbut it should contain:
972251883Speter$srcfile
973251883Speter
974251883SpeterThis indicates that another process is trying to use the same
975251883Spetertemporary object file, and libtool could not work around it because
976251883Speteryour compiler does not support \`-c' and \`-o' together.  If you
977251883Speterrepeat this compilation, it may succeed, by chance, but you had better
978251883Speteravoid parallel builds (make -j) in this platform, or get a better
979251883Spetercompiler."
980251883Speter
981251883Speter	$run $rm $removelist
982251883Speter	exit $EXIT_FAILURE
983251883Speter      fi
984251883Speter
985251883Speter      # Just move the object if needed, then go on to compile the next one
986251883Speter      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
987251883Speter	$show "$mv $output_obj $lobj"
988251883Speter	if $run $mv $output_obj $lobj; then :
989251883Speter	else
990251883Speter	  error=$?
991251883Speter	  $run $rm $removelist
992251883Speter	  exit $error
993251883Speter	fi
994251883Speter      fi
995251883Speter
996251883Speter      # Append the name of the PIC object to the libtool object file.
997251883Speter      test -z "$run" && cat >> ${libobj}T <<EOF
998251883Speterpic_object='$objdir/$objname'
999251883Speter
1000251883SpeterEOF
1001251883Speter
1002251883Speter      # Allow error messages only from the first compilation.
1003251883Speter      if test "$suppress_opt" = yes; then
1004251883Speter        suppress_output=' >/dev/null 2>&1'
1005251883Speter      fi
1006251883Speter    else
1007251883Speter      # No PIC object so indicate it doesn't exist in the libtool
1008251883Speter      # object file.
1009251883Speter      test -z "$run" && cat >> ${libobj}T <<EOF
1010251883Speterpic_object=none
1011251883Speter
1012251883SpeterEOF
1013251883Speter    fi
1014251883Speter
1015251883Speter    # Only build a position-dependent object if we build old libraries.
1016251883Speter    if test "$build_old_libs" = yes; then
1017251883Speter      if test "$pic_mode" != yes; then
1018251883Speter	# Don't build PIC code
1019251883Speter	command="$base_compile $qsrcfile"
1020251883Speter      else
1021251883Speter	command="$base_compile $qsrcfile $pic_flag"
1022251883Speter      fi
1023251883Speter      if test "$compiler_c_o" = yes; then
1024251883Speter	command="$command -o $obj"
1025251883Speter      fi
1026251883Speter
1027251883Speter      # Suppress compiler output if we already did a PIC compilation.
1028251883Speter      command="$command$suppress_output"
1029251883Speter      $run $rm "$obj" "$output_obj"
1030251883Speter      $show "$command"
1031251883Speter      if $run eval "$command"; then :
1032251883Speter      else
1033251883Speter	$run $rm $removelist
1034251883Speter	exit $EXIT_FAILURE
1035251883Speter      fi
1036251883Speter
1037251883Speter      if test "$need_locks" = warn &&
1038251883Speter	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1039251883Speter	$echo "\
1040251883Speter*** ERROR, $lockfile contains:
1041251883Speter`cat $lockfile 2>/dev/null`
1042251883Speter
1043251883Speterbut it should contain:
1044251883Speter$srcfile
1045251883Speter
1046251883SpeterThis indicates that another process is trying to use the same
1047251883Spetertemporary object file, and libtool could not work around it because
1048251883Speteryour compiler does not support \`-c' and \`-o' together.  If you
1049251883Speterrepeat this compilation, it may succeed, by chance, but you had better
1050251883Speteravoid parallel builds (make -j) in this platform, or get a better
1051251883Spetercompiler."
1052251883Speter
1053251883Speter	$run $rm $removelist
1054251883Speter	exit $EXIT_FAILURE
1055251883Speter      fi
1056251883Speter
1057251883Speter      # Just move the object if needed
1058251883Speter      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1059251883Speter	$show "$mv $output_obj $obj"
1060251883Speter	if $run $mv $output_obj $obj; then :
1061251883Speter	else
1062251883Speter	  error=$?
1063251883Speter	  $run $rm $removelist
1064251883Speter	  exit $error
1065251883Speter	fi
1066251883Speter      fi
1067251883Speter
1068251883Speter      # Append the name of the non-PIC object the libtool object file.
1069251883Speter      # Only append if the libtool object file exists.
1070251883Speter      test -z "$run" && cat >> ${libobj}T <<EOF
1071251883Speter# Name of the non-PIC object.
1072251883Speternon_pic_object='$objname'
1073251883Speter
1074251883SpeterEOF
1075251883Speter    else
1076251883Speter      # Append the name of the non-PIC object the libtool object file.
1077251883Speter      # Only append if the libtool object file exists.
1078251883Speter      test -z "$run" && cat >> ${libobj}T <<EOF
1079251883Speter# Name of the non-PIC object.
1080251883Speternon_pic_object=none
1081251883Speter
1082251883SpeterEOF
1083251883Speter    fi
1084251883Speter
1085251883Speter    $run $mv "${libobj}T" "${libobj}"
1086251883Speter
1087251883Speter    # Unlock the critical section if it was locked
1088251883Speter    if test "$need_locks" != no; then
1089251883Speter      $run $rm "$lockfile"
1090251883Speter    fi
1091251883Speter
1092251883Speter    exit $EXIT_SUCCESS
1093251883Speter    ;;
1094251883Speter
1095251883Speter  # libtool link mode
1096251883Speter  link | relink)
1097251883Speter    modename="$modename: link"
1098251883Speter    case $host in
1099251883Speter    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1100251883Speter      # It is impossible to link a dll without this setting, and
1101251883Speter      # we shouldn't force the makefile maintainer to figure out
1102251883Speter      # which system we are compiling for in order to pass an extra
1103251883Speter      # flag for every libtool invocation.
1104251883Speter      # allow_undefined=no
1105251883Speter
1106251883Speter      # FIXME: Unfortunately, there are problems with the above when trying
1107251883Speter      # to make a dll which has undefined symbols, in which case not
1108251883Speter      # even a static library is built.  For now, we need to specify
1109251883Speter      # -no-undefined on the libtool link line when we can be certain
1110251883Speter      # that all symbols are satisfied, otherwise we get a static library.
1111251883Speter      allow_undefined=yes
1112251883Speter      ;;
1113251883Speter    *)
1114251883Speter      allow_undefined=yes
1115251883Speter      ;;
1116251883Speter    esac
1117251883Speter    libtool_args="$nonopt"
1118251883Speter    base_compile="$nonopt $@"
1119251883Speter    compile_command="$nonopt"
1120251883Speter    finalize_command="$nonopt"
1121251883Speter
1122251883Speter    compile_rpath=
1123251883Speter    finalize_rpath=
1124251883Speter    compile_shlibpath=
1125251883Speter    finalize_shlibpath=
1126251883Speter    convenience=
1127251883Speter    old_convenience=
1128251883Speter    deplibs=
1129251883Speter    old_deplibs=
1130251883Speter    compiler_flags=
1131251883Speter    linker_flags=
1132251883Speter    dllsearchpath=
1133251883Speter    lib_search_path=`pwd`
1134251883Speter    inst_prefix_dir=
1135251883Speter
1136251883Speter    avoid_version=no
1137251883Speter    dlfiles=
1138251883Speter    dlprefiles=
1139251883Speter    dlself=no
1140251883Speter    export_dynamic=no
1141251883Speter    export_symbols=
1142251883Speter    export_symbols_regex=
1143251883Speter    generated=
1144251883Speter    libobjs=
1145251883Speter    ltlibs=
1146251883Speter    module=no
1147251883Speter    no_install=no
1148251883Speter    objs=
1149251883Speter    non_pic_objects=
1150251883Speter    notinst_path= # paths that contain not-installed libtool libraries
1151251883Speter    precious_files_regex=
1152251883Speter    prefer_static_libs=no
1153251883Speter    preload=no
1154251883Speter    prev=
1155251883Speter    prevarg=
1156251883Speter    release=
1157251883Speter    rpath=
1158251883Speter    xrpath=
1159251883Speter    perm_rpath=
1160251883Speter    temp_rpath=
1161251883Speter    thread_safe=no
1162251883Speter    vinfo=
1163251883Speter    vinfo_number=no
1164251883Speter
1165251883Speter    func_infer_tag $base_compile
1166251883Speter
1167251883Speter    # We need to know -static, to get the right output filenames.
1168251883Speter    for arg
1169251883Speter    do
1170251883Speter      case $arg in
1171251883Speter      -all-static | -static | -static-libtool-libs)
1172251883Speter	case $arg in
1173251883Speter	-all-static)
1174251883Speter	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1175251883Speter	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1176251883Speter	  fi
1177251883Speter	  if test -n "$link_static_flag"; then
1178251883Speter	    dlopen_self=$dlopen_self_static
1179251883Speter	  fi
1180251883Speter	  prefer_static_libs=yes
1181251883Speter	  ;;
1182251883Speter	-static)
1183251883Speter	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1184251883Speter	    dlopen_self=$dlopen_self_static
1185251883Speter	  fi
1186251883Speter	  prefer_static_libs=built
1187251883Speter	  ;;
1188251883Speter	-static-libtool-libs)
1189251883Speter	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1190251883Speter	    dlopen_self=$dlopen_self_static
1191251883Speter	  fi
1192251883Speter	  prefer_static_libs=yes
1193251883Speter	  ;;
1194251883Speter	esac
1195251883Speter	build_libtool_libs=no
1196251883Speter	build_old_libs=yes
1197251883Speter	break
1198251883Speter	;;
1199251883Speter      esac
1200251883Speter    done
1201251883Speter
1202251883Speter    # See if our shared archives depend on static archives.
1203251883Speter    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1204251883Speter
1205251883Speter    # Go through the arguments, transforming them on the way.
1206251883Speter    while test "$#" -gt 0; do
1207251883Speter      arg="$1"
1208251883Speter      shift
1209251883Speter      case $arg in
1210251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1211251883Speter	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1212251883Speter	;;
1213251883Speter      *) qarg=$arg ;;
1214251883Speter      esac
1215251883Speter      libtool_args="$libtool_args $qarg"
1216251883Speter
1217251883Speter      # If the previous option needs an argument, assign it.
1218251883Speter      if test -n "$prev"; then
1219251883Speter	case $prev in
1220251883Speter	output)
1221251883Speter	  compile_command="$compile_command @OUTPUT@"
1222251883Speter	  finalize_command="$finalize_command @OUTPUT@"
1223251883Speter	  ;;
1224251883Speter	esac
1225251883Speter
1226251883Speter	case $prev in
1227251883Speter	dlfiles|dlprefiles)
1228251883Speter	  if test "$preload" = no; then
1229251883Speter	    # Add the symbol object into the linking commands.
1230251883Speter	    compile_command="$compile_command @SYMFILE@"
1231251883Speter	    finalize_command="$finalize_command @SYMFILE@"
1232251883Speter	    preload=yes
1233251883Speter	  fi
1234251883Speter	  case $arg in
1235251883Speter	  *.la | *.lo) ;;  # We handle these cases below.
1236251883Speter	  force)
1237251883Speter	    if test "$dlself" = no; then
1238251883Speter	      dlself=needless
1239251883Speter	      export_dynamic=yes
1240251883Speter	    fi
1241251883Speter	    prev=
1242251883Speter	    continue
1243251883Speter	    ;;
1244251883Speter	  self)
1245251883Speter	    if test "$prev" = dlprefiles; then
1246251883Speter	      dlself=yes
1247251883Speter	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1248251883Speter	      dlself=yes
1249251883Speter	    else
1250251883Speter	      dlself=needless
1251251883Speter	      export_dynamic=yes
1252251883Speter	    fi
1253251883Speter	    prev=
1254251883Speter	    continue
1255251883Speter	    ;;
1256251883Speter	  *)
1257251883Speter	    if test "$prev" = dlfiles; then
1258251883Speter	      dlfiles="$dlfiles $arg"
1259251883Speter	    else
1260251883Speter	      dlprefiles="$dlprefiles $arg"
1261251883Speter	    fi
1262251883Speter	    prev=
1263251883Speter	    continue
1264251883Speter	    ;;
1265251883Speter	  esac
1266251883Speter	  ;;
1267251883Speter	expsyms)
1268251883Speter	  export_symbols="$arg"
1269251883Speter	  if test ! -f "$arg"; then
1270251883Speter	    $echo "$modename: symbol file \`$arg' does not exist"
1271251883Speter	    exit $EXIT_FAILURE
1272251883Speter	  fi
1273251883Speter	  prev=
1274251883Speter	  continue
1275251883Speter	  ;;
1276251883Speter	expsyms_regex)
1277251883Speter	  export_symbols_regex="$arg"
1278251883Speter	  prev=
1279251883Speter	  continue
1280251883Speter	  ;;
1281251883Speter	inst_prefix)
1282251883Speter	  inst_prefix_dir="$arg"
1283251883Speter	  prev=
1284251883Speter	  continue
1285251883Speter	  ;;
1286251883Speter	precious_regex)
1287251883Speter	  precious_files_regex="$arg"
1288251883Speter	  prev=
1289251883Speter	  continue
1290251883Speter	  ;;
1291251883Speter	release)
1292251883Speter	  release="-$arg"
1293251883Speter	  prev=
1294251883Speter	  continue
1295251883Speter	  ;;
1296251883Speter	objectlist)
1297251883Speter	  if test -f "$arg"; then
1298251883Speter	    save_arg=$arg
1299251883Speter	    moreargs=
1300251883Speter	    for fil in `cat $save_arg`
1301251883Speter	    do
1302251883Speter#	      moreargs="$moreargs $fil"
1303251883Speter	      arg=$fil
1304251883Speter	      # A libtool-controlled object.
1305251883Speter
1306251883Speter	      # Check to see that this really is a libtool object.
1307251883Speter	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1308251883Speter		pic_object=
1309251883Speter		non_pic_object=
1310251883Speter
1311251883Speter		# Read the .lo file
1312251883Speter		# If there is no directory component, then add one.
1313251883Speter		case $arg in
1314251883Speter		*/* | *\\*) . $arg ;;
1315251883Speter		*) . ./$arg ;;
1316251883Speter		esac
1317251883Speter
1318251883Speter		if test -z "$pic_object" || \
1319251883Speter		   test -z "$non_pic_object" ||
1320251883Speter		   test "$pic_object" = none && \
1321251883Speter		   test "$non_pic_object" = none; then
1322251883Speter		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1323251883Speter		  exit $EXIT_FAILURE
1324251883Speter		fi
1325251883Speter
1326251883Speter		# Extract subdirectory from the argument.
1327251883Speter		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1328251883Speter		if test "X$xdir" = "X$arg"; then
1329251883Speter		  xdir=
1330251883Speter		else
1331251883Speter		  xdir="$xdir/"
1332251883Speter		fi
1333251883Speter
1334251883Speter		if test "$pic_object" != none; then
1335251883Speter		  # Prepend the subdirectory the object is found in.
1336251883Speter		  pic_object="$xdir$pic_object"
1337251883Speter
1338251883Speter		  if test "$prev" = dlfiles; then
1339251883Speter		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1340251883Speter		      dlfiles="$dlfiles $pic_object"
1341251883Speter		      prev=
1342251883Speter		      continue
1343251883Speter		    else
1344251883Speter		      # If libtool objects are unsupported, then we need to preload.
1345251883Speter		      prev=dlprefiles
1346251883Speter		    fi
1347251883Speter		  fi
1348251883Speter
1349251883Speter		  # CHECK ME:  I think I busted this.  -Ossama
1350251883Speter		  if test "$prev" = dlprefiles; then
1351251883Speter		    # Preload the old-style object.
1352251883Speter		    dlprefiles="$dlprefiles $pic_object"
1353251883Speter		    prev=
1354251883Speter		  fi
1355251883Speter
1356251883Speter		  # A PIC object.
1357251883Speter		  libobjs="$libobjs $pic_object"
1358251883Speter		  arg="$pic_object"
1359251883Speter		fi
1360251883Speter
1361251883Speter		# Non-PIC object.
1362251883Speter		if test "$non_pic_object" != none; then
1363251883Speter		  # Prepend the subdirectory the object is found in.
1364251883Speter		  non_pic_object="$xdir$non_pic_object"
1365251883Speter
1366251883Speter		  # A standard non-PIC object
1367251883Speter		  non_pic_objects="$non_pic_objects $non_pic_object"
1368251883Speter		  if test -z "$pic_object" || test "$pic_object" = none ; then
1369251883Speter		    arg="$non_pic_object"
1370251883Speter		  fi
1371251883Speter		else
1372251883Speter		  # If the PIC object exists, use it instead.
1373251883Speter		  # $xdir was prepended to $pic_object above.
1374251883Speter		  non_pic_object="$pic_object"
1375251883Speter		  non_pic_objects="$non_pic_objects $non_pic_object"
1376251883Speter		fi
1377251883Speter	      else
1378251883Speter		# Only an error if not doing a dry-run.
1379251883Speter		if test -z "$run"; then
1380251883Speter		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1381251883Speter		  exit $EXIT_FAILURE
1382251883Speter		else
1383251883Speter		  # Dry-run case.
1384251883Speter
1385251883Speter		  # Extract subdirectory from the argument.
1386251883Speter		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1387251883Speter		  if test "X$xdir" = "X$arg"; then
1388251883Speter		    xdir=
1389251883Speter		  else
1390251883Speter		    xdir="$xdir/"
1391251883Speter		  fi
1392251883Speter
1393251883Speter		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1394251883Speter		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1395251883Speter		  libobjs="$libobjs $pic_object"
1396251883Speter		  non_pic_objects="$non_pic_objects $non_pic_object"
1397251883Speter		fi
1398251883Speter	      fi
1399251883Speter	    done
1400251883Speter	  else
1401251883Speter	    $echo "$modename: link input file \`$save_arg' does not exist"
1402251883Speter	    exit $EXIT_FAILURE
1403251883Speter	  fi
1404251883Speter	  arg=$save_arg
1405251883Speter	  prev=
1406251883Speter	  continue
1407251883Speter	  ;;
1408251883Speter	rpath | xrpath)
1409251883Speter	  # We need an absolute path.
1410251883Speter	  case $arg in
1411251883Speter	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1412251883Speter	  *)
1413251883Speter	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1414251883Speter	    exit $EXIT_FAILURE
1415251883Speter	    ;;
1416251883Speter	  esac
1417251883Speter	  if test "$prev" = rpath; then
1418251883Speter	    case "$rpath " in
1419251883Speter	    *" $arg "*) ;;
1420251883Speter	    *) rpath="$rpath $arg" ;;
1421251883Speter	    esac
1422251883Speter	  else
1423251883Speter	    case "$xrpath " in
1424251883Speter	    *" $arg "*) ;;
1425251883Speter	    *) xrpath="$xrpath $arg" ;;
1426251883Speter	    esac
1427251883Speter	  fi
1428251883Speter	  prev=
1429251883Speter	  continue
1430251883Speter	  ;;
1431251883Speter	xcompiler)
1432251883Speter	  compiler_flags="$compiler_flags $qarg"
1433251883Speter	  prev=
1434251883Speter	  compile_command="$compile_command $qarg"
1435251883Speter	  finalize_command="$finalize_command $qarg"
1436251883Speter	  continue
1437251883Speter	  ;;
1438251883Speter	xlinker)
1439251883Speter	  linker_flags="$linker_flags $qarg"
1440251883Speter	  compiler_flags="$compiler_flags $wl$qarg"
1441251883Speter	  prev=
1442251883Speter	  compile_command="$compile_command $wl$qarg"
1443251883Speter	  finalize_command="$finalize_command $wl$qarg"
1444251883Speter	  continue
1445251883Speter	  ;;
1446251883Speter	xcclinker)
1447251883Speter	  linker_flags="$linker_flags $qarg"
1448251883Speter	  compiler_flags="$compiler_flags $qarg"
1449251883Speter	  prev=
1450251883Speter	  compile_command="$compile_command $qarg"
1451251883Speter	  finalize_command="$finalize_command $qarg"
1452251883Speter	  continue
1453251883Speter	  ;;
1454251883Speter	shrext)
1455251883Speter  	  shrext_cmds="$arg"
1456251883Speter	  prev=
1457251883Speter	  continue
1458251883Speter	  ;;
1459251883Speter	darwin_framework|darwin_framework_skip)
1460251883Speter	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1461251883Speter	  compile_command="$compile_command $arg"
1462251883Speter	  finalize_command="$finalize_command $arg"
1463251883Speter	  prev=
1464251883Speter	  continue
1465251883Speter	  ;;
1466251883Speter	*)
1467251883Speter	  eval "$prev=\"\$arg\""
1468251883Speter	  prev=
1469251883Speter	  continue
1470251883Speter	  ;;
1471251883Speter	esac
1472251883Speter      fi # test -n "$prev"
1473251883Speter
1474251883Speter      prevarg="$arg"
1475251883Speter
1476251883Speter      case $arg in
1477251883Speter      -all-static)
1478251883Speter	if test -n "$link_static_flag"; then
1479251883Speter	  compile_command="$compile_command $link_static_flag"
1480251883Speter	  finalize_command="$finalize_command $link_static_flag"
1481251883Speter	fi
1482251883Speter	continue
1483251883Speter	;;
1484251883Speter
1485251883Speter      -allow-undefined)
1486251883Speter	# FIXME: remove this flag sometime in the future.
1487251883Speter	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1488251883Speter	continue
1489251883Speter	;;
1490251883Speter
1491251883Speter      -avoid-version)
1492251883Speter	avoid_version=yes
1493251883Speter	continue
1494251883Speter	;;
1495251883Speter
1496251883Speter      -dlopen)
1497251883Speter	prev=dlfiles
1498251883Speter	continue
1499251883Speter	;;
1500251883Speter
1501251883Speter      -dlpreopen)
1502251883Speter	prev=dlprefiles
1503251883Speter	continue
1504251883Speter	;;
1505251883Speter
1506251883Speter      -export-dynamic)
1507251883Speter	export_dynamic=yes
1508251883Speter	continue
1509251883Speter	;;
1510251883Speter
1511251883Speter      -export-symbols | -export-symbols-regex)
1512251883Speter	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1513251883Speter	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1514251883Speter	  exit $EXIT_FAILURE
1515251883Speter	fi
1516251883Speter	if test "X$arg" = "X-export-symbols"; then
1517251883Speter	  prev=expsyms
1518251883Speter	else
1519251883Speter	  prev=expsyms_regex
1520251883Speter	fi
1521251883Speter	continue
1522251883Speter	;;
1523251883Speter
1524251883Speter      -framework|-arch|-isysroot)
1525251883Speter	case " $CC " in
1526251883Speter	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1527251883Speter		prev=darwin_framework_skip ;;
1528251883Speter	  *) compiler_flags="$compiler_flags $arg"
1529251883Speter	     prev=darwin_framework ;;
1530251883Speter	esac
1531251883Speter	compile_command="$compile_command $arg"
1532251883Speter	finalize_command="$finalize_command $arg"
1533251883Speter	continue
1534251883Speter	;;
1535251883Speter
1536251883Speter      -inst-prefix-dir)
1537251883Speter	prev=inst_prefix
1538251883Speter	continue
1539251883Speter	;;
1540251883Speter
1541251883Speter      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1542251883Speter      # so, if we see these flags be careful not to treat them like -L
1543251883Speter      -L[A-Z][A-Z]*:*)
1544251883Speter	case $with_gcc/$host in
1545251883Speter	no/*-*-irix* | /*-*-irix*)
1546251883Speter	  compile_command="$compile_command $arg"
1547251883Speter	  finalize_command="$finalize_command $arg"
1548251883Speter	  ;;
1549251883Speter	esac
1550251883Speter	continue
1551251883Speter	;;
1552251883Speter
1553251883Speter      -L*)
1554251883Speter	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1555251883Speter	# We need an absolute path.
1556251883Speter	case $dir in
1557251883Speter	[\\/]* | [A-Za-z]:[\\/]*) ;;
1558251883Speter	*)
1559251883Speter	  absdir=`cd "$dir" && pwd`
1560251883Speter	  if test -z "$absdir"; then
1561251883Speter	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1562251883Speter	    absdir="$dir"
1563251883Speter	    notinst_path="$notinst_path $dir"
1564251883Speter	  fi
1565251883Speter	  dir="$absdir"
1566251883Speter	  ;;
1567251883Speter	esac
1568251883Speter	case "$deplibs " in
1569251883Speter	*" -L$dir "*) ;;
1570251883Speter	*)
1571251883Speter	  deplibs="$deplibs -L$dir"
1572251883Speter	  lib_search_path="$lib_search_path $dir"
1573251883Speter	  ;;
1574251883Speter	esac
1575251883Speter	case $host in
1576251883Speter	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1577251883Speter	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1578251883Speter	  case :$dllsearchpath: in
1579251883Speter	  *":$dir:"*) ;;
1580251883Speter	  *) dllsearchpath="$dllsearchpath:$dir";;
1581251883Speter	  esac
1582251883Speter	  case :$dllsearchpath: in
1583251883Speter	  *":$testbindir:"*) ;;
1584251883Speter	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1585251883Speter	  esac
1586251883Speter	  ;;
1587251883Speter	esac
1588251883Speter	continue
1589251883Speter	;;
1590251883Speter
1591251883Speter      -l*)
1592251883Speter	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1593251883Speter	  case $host in
1594251883Speter	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1595251883Speter	    # These systems don't actually have a C or math library (as such)
1596251883Speter	    continue
1597251883Speter	    ;;
1598251883Speter	  *-*-os2*)
1599251883Speter	    # These systems don't actually have a C library (as such)
1600251883Speter	    test "X$arg" = "X-lc" && continue
1601251883Speter	    ;;
1602251883Speter	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1603251883Speter	    # Do not include libc due to us having libc/libc_r.
1604251883Speter	    test "X$arg" = "X-lc" && continue
1605251883Speter	    ;;
1606251883Speter	  *-*-rhapsody* | *-*-darwin1.[012])
1607251883Speter	    # Rhapsody C and math libraries are in the System framework
1608251883Speter	    deplibs="$deplibs -framework System"
1609251883Speter	    continue
1610251883Speter	    ;;
1611251883Speter	  *-*-sco3.2v5* | *-*-sco5v6*)
1612251883Speter	    # Causes problems with __ctype
1613251883Speter	    test "X$arg" = "X-lc" && continue
1614251883Speter	    ;;
1615251883Speter	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1616251883Speter	    # Compiler inserts libc in the correct place for threads to work
1617251883Speter	    test "X$arg" = "X-lc" && continue
1618251883Speter	    ;;
1619251883Speter	  esac
1620251883Speter	elif test "X$arg" = "X-lc_r"; then
1621251883Speter	 case $host in
1622251883Speter	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1623251883Speter	   # Do not include libc_r directly, use -pthread flag.
1624251883Speter	   continue
1625251883Speter	   ;;
1626251883Speter	 esac
1627251883Speter	fi
1628251883Speter	deplibs="$deplibs $arg"
1629251883Speter	continue
1630251883Speter	;;
1631251883Speter
1632251883Speter      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1633251883Speter      # classes, name mangling, and exception handling.
1634251883Speter      -model)
1635251883Speter	compile_command="$compile_command $arg"
1636251883Speter	compiler_flags="$compiler_flags $arg"
1637251883Speter	finalize_command="$finalize_command $arg"
1638251883Speter	prev=xcompiler
1639251883Speter	continue
1640251883Speter	;;
1641251883Speter
1642251883Speter     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
1643251883Speter	compiler_flags="$compiler_flags $arg"
1644251883Speter	compile_command="$compile_command $arg"
1645251883Speter	finalize_command="$finalize_command $arg"
1646251883Speter	continue
1647251883Speter	;;
1648251883Speter
1649251883Speter      -module)
1650251883Speter	module=yes
1651251883Speter	continue
1652251883Speter	;;
1653251883Speter
1654251883Speter      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1655251883Speter      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1656251883Speter      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1657251883Speter      # +DA*, +DD* enable 64-bit mode on the HP compiler
1658251883Speter      # -q* pass through compiler args for the IBM compiler
1659251883Speter      # -m* pass through architecture-specific compiler args for GCC
1660251883Speter      # -m*, -t[45]*, -txscale* pass through architecture-specific
1661251883Speter      # compiler args for GCC
1662251883Speter      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
1663251883Speter      # -F/path gives path to uninstalled frameworks, gcc on darwin
1664251883Speter      # @file GCC response files
1665251883Speter      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
1666251883Speter      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1667251883Speter
1668251883Speter	# Unknown arguments in both finalize_command and compile_command need
1669251883Speter	# to be aesthetically quoted because they are evaled later.
1670251883Speter	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1671251883Speter	case $arg in
1672251883Speter	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1673251883Speter	  arg="\"$arg\""
1674251883Speter	  ;;
1675251883Speter	esac
1676251883Speter        compile_command="$compile_command $arg"
1677251883Speter        finalize_command="$finalize_command $arg"
1678251883Speter        compiler_flags="$compiler_flags $arg"
1679251883Speter        continue
1680251883Speter        ;;
1681251883Speter
1682251883Speter      -shrext)
1683251883Speter	prev=shrext
1684251883Speter	continue
1685251883Speter	;;
1686251883Speter
1687251883Speter      -no-fast-install)
1688251883Speter	fast_install=no
1689251883Speter	continue
1690251883Speter	;;
1691251883Speter
1692251883Speter      -no-install)
1693251883Speter	case $host in
1694251883Speter	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
1695251883Speter	  # The PATH hackery in wrapper scripts is required on Windows
1696251883Speter	  # and Darwin in order for the loader to find any dlls it needs.
1697251883Speter	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1698251883Speter	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1699251883Speter	  fast_install=no
1700251883Speter	  ;;
1701251883Speter	*) no_install=yes ;;
1702251883Speter	esac
1703251883Speter	continue
1704251883Speter	;;
1705251883Speter
1706251883Speter      -no-undefined)
1707251883Speter	allow_undefined=no
1708251883Speter	continue
1709251883Speter	;;
1710251883Speter
1711251883Speter      -objectlist)
1712251883Speter	prev=objectlist
1713251883Speter	continue
1714251883Speter	;;
1715251883Speter
1716251883Speter      -o) prev=output ;;
1717251883Speter
1718251883Speter      -precious-files-regex)
1719251883Speter	prev=precious_regex
1720251883Speter	continue
1721251883Speter	;;
1722251883Speter
1723251883Speter      -release)
1724251883Speter	prev=release
1725251883Speter	continue
1726251883Speter	;;
1727251883Speter
1728251883Speter      -rpath)
1729251883Speter	prev=rpath
1730251883Speter	continue
1731251883Speter	;;
1732251883Speter
1733251883Speter      -R)
1734251883Speter	prev=xrpath
1735251883Speter	continue
1736251883Speter	;;
1737251883Speter
1738251883Speter      -R*)
1739251883Speter	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1740251883Speter	# We need an absolute path.
1741251883Speter	case $dir in
1742251883Speter	[\\/]* | [A-Za-z]:[\\/]*) ;;
1743251883Speter	*)
1744251883Speter	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1745251883Speter	  exit $EXIT_FAILURE
1746251883Speter	  ;;
1747251883Speter	esac
1748251883Speter	case "$xrpath " in
1749251883Speter	*" $dir "*) ;;
1750251883Speter	*) xrpath="$xrpath $dir" ;;
1751251883Speter	esac
1752251883Speter	continue
1753251883Speter	;;
1754251883Speter
1755251883Speter      -static | -static-libtool-libs)
1756251883Speter	# The effects of -static are defined in a previous loop.
1757251883Speter	# We used to do the same as -all-static on platforms that
1758251883Speter	# didn't have a PIC flag, but the assumption that the effects
1759251883Speter	# would be equivalent was wrong.  It would break on at least
1760251883Speter	# Digital Unix and AIX.
1761251883Speter	continue
1762251883Speter	;;
1763251883Speter
1764251883Speter      -thread-safe)
1765251883Speter	thread_safe=yes
1766251883Speter	continue
1767251883Speter	;;
1768251883Speter
1769251883Speter      -version-info)
1770251883Speter	prev=vinfo
1771251883Speter	continue
1772251883Speter	;;
1773251883Speter      -version-number)
1774251883Speter	prev=vinfo
1775251883Speter	vinfo_number=yes
1776251883Speter	continue
1777251883Speter	;;
1778251883Speter
1779251883Speter      -Wc,*)
1780251883Speter	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1781251883Speter	arg=
1782251883Speter	save_ifs="$IFS"; IFS=','
1783251883Speter	for flag in $args; do
1784251883Speter	  IFS="$save_ifs"
1785251883Speter	  case $flag in
1786251883Speter	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1787251883Speter	    flag="\"$flag\""
1788251883Speter	    ;;
1789251883Speter	  esac
1790251883Speter	  arg="$arg $wl$flag"
1791251883Speter	  compiler_flags="$compiler_flags $flag"
1792251883Speter	done
1793251883Speter	IFS="$save_ifs"
1794251883Speter	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1795251883Speter	;;
1796251883Speter
1797251883Speter      -Wl,*)
1798251883Speter	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1799251883Speter	arg=
1800251883Speter	save_ifs="$IFS"; IFS=','
1801251883Speter	for flag in $args; do
1802251883Speter	  IFS="$save_ifs"
1803251883Speter	  case $flag in
1804251883Speter	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1805251883Speter	    flag="\"$flag\""
1806251883Speter	    ;;
1807251883Speter	  esac
1808251883Speter	  arg="$arg $wl$flag"
1809251883Speter	  compiler_flags="$compiler_flags $wl$flag"
1810251883Speter	  linker_flags="$linker_flags $flag"
1811251883Speter	done
1812251883Speter	IFS="$save_ifs"
1813251883Speter	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1814251883Speter	;;
1815251883Speter
1816251883Speter      -Xcompiler)
1817251883Speter	prev=xcompiler
1818251883Speter	continue
1819251883Speter	;;
1820251883Speter
1821251883Speter      -Xlinker)
1822251883Speter	prev=xlinker
1823251883Speter	continue
1824251883Speter	;;
1825251883Speter
1826251883Speter      -XCClinker)
1827251883Speter	prev=xcclinker
1828251883Speter	continue
1829251883Speter	;;
1830251883Speter
1831251883Speter      # Some other compiler flag.
1832251883Speter      -* | +*)
1833251883Speter	# Unknown arguments in both finalize_command and compile_command need
1834251883Speter	# to be aesthetically quoted because they are evaled later.
1835251883Speter	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1836251883Speter	case $arg in
1837251883Speter	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1838251883Speter	  arg="\"$arg\""
1839251883Speter	  ;;
1840251883Speter	esac
1841251883Speter	;;
1842251883Speter
1843251883Speter      *.$objext)
1844251883Speter	# A standard object.
1845251883Speter	objs="$objs $arg"
1846251883Speter	;;
1847251883Speter
1848251883Speter      *.lo)
1849251883Speter	# A libtool-controlled object.
1850251883Speter
1851251883Speter	# Check to see that this really is a libtool object.
1852251883Speter	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1853251883Speter	  pic_object=
1854251883Speter	  non_pic_object=
1855251883Speter
1856251883Speter	  # Read the .lo file
1857251883Speter	  # If there is no directory component, then add one.
1858251883Speter	  case $arg in
1859251883Speter	  */* | *\\*) . $arg ;;
1860251883Speter	  *) . ./$arg ;;
1861251883Speter	  esac
1862251883Speter
1863251883Speter	  if test -z "$pic_object" || \
1864251883Speter	     test -z "$non_pic_object" ||
1865251883Speter	     test "$pic_object" = none && \
1866251883Speter	     test "$non_pic_object" = none; then
1867251883Speter	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1868251883Speter	    exit $EXIT_FAILURE
1869251883Speter	  fi
1870251883Speter
1871251883Speter	  # Extract subdirectory from the argument.
1872251883Speter	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1873251883Speter	  if test "X$xdir" = "X$arg"; then
1874251883Speter	    xdir=
1875251883Speter 	  else
1876251883Speter	    xdir="$xdir/"
1877251883Speter	  fi
1878251883Speter
1879251883Speter	  if test "$pic_object" != none; then
1880251883Speter	    # Prepend the subdirectory the object is found in.
1881251883Speter	    pic_object="$xdir$pic_object"
1882251883Speter
1883251883Speter	    if test "$prev" = dlfiles; then
1884251883Speter	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1885251883Speter		dlfiles="$dlfiles $pic_object"
1886251883Speter		prev=
1887251883Speter		continue
1888251883Speter	      else
1889251883Speter		# If libtool objects are unsupported, then we need to preload.
1890251883Speter		prev=dlprefiles
1891251883Speter	      fi
1892251883Speter	    fi
1893251883Speter
1894251883Speter	    # CHECK ME:  I think I busted this.  -Ossama
1895251883Speter	    if test "$prev" = dlprefiles; then
1896251883Speter	      # Preload the old-style object.
1897251883Speter	      dlprefiles="$dlprefiles $pic_object"
1898251883Speter	      prev=
1899251883Speter	    fi
1900251883Speter
1901251883Speter	    # A PIC object.
1902251883Speter	    libobjs="$libobjs $pic_object"
1903251883Speter	    arg="$pic_object"
1904251883Speter	  fi
1905251883Speter
1906251883Speter	  # Non-PIC object.
1907251883Speter	  if test "$non_pic_object" != none; then
1908251883Speter	    # Prepend the subdirectory the object is found in.
1909251883Speter	    non_pic_object="$xdir$non_pic_object"
1910251883Speter
1911251883Speter	    # A standard non-PIC object
1912251883Speter	    non_pic_objects="$non_pic_objects $non_pic_object"
1913251883Speter	    if test -z "$pic_object" || test "$pic_object" = none ; then
1914251883Speter	      arg="$non_pic_object"
1915251883Speter	    fi
1916251883Speter	  else
1917251883Speter	    # If the PIC object exists, use it instead.
1918251883Speter	    # $xdir was prepended to $pic_object above.
1919251883Speter	    non_pic_object="$pic_object"
1920251883Speter	    non_pic_objects="$non_pic_objects $non_pic_object"
1921251883Speter	  fi
1922251883Speter	else
1923251883Speter	  # Only an error if not doing a dry-run.
1924251883Speter	  if test -z "$run"; then
1925251883Speter	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1926251883Speter	    exit $EXIT_FAILURE
1927251883Speter	  else
1928251883Speter	    # Dry-run case.
1929251883Speter
1930251883Speter	    # Extract subdirectory from the argument.
1931251883Speter	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1932251883Speter	    if test "X$xdir" = "X$arg"; then
1933251883Speter	      xdir=
1934251883Speter	    else
1935251883Speter	      xdir="$xdir/"
1936251883Speter	    fi
1937251883Speter
1938251883Speter	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1939251883Speter	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1940251883Speter	    libobjs="$libobjs $pic_object"
1941251883Speter	    non_pic_objects="$non_pic_objects $non_pic_object"
1942251883Speter	  fi
1943251883Speter	fi
1944251883Speter	;;
1945251883Speter
1946251883Speter      *.$libext)
1947251883Speter	# An archive.
1948251883Speter	deplibs="$deplibs $arg"
1949251883Speter	old_deplibs="$old_deplibs $arg"
1950251883Speter	continue
1951251883Speter	;;
1952251883Speter
1953251883Speter      *.la)
1954251883Speter	# A libtool-controlled library.
1955251883Speter
1956251883Speter	if test "$prev" = dlfiles; then
1957251883Speter	  # This library was specified with -dlopen.
1958251883Speter	  dlfiles="$dlfiles $arg"
1959251883Speter	  prev=
1960251883Speter	elif test "$prev" = dlprefiles; then
1961251883Speter	  # The library was specified with -dlpreopen.
1962251883Speter	  dlprefiles="$dlprefiles $arg"
1963251883Speter	  prev=
1964251883Speter	else
1965251883Speter	  deplibs="$deplibs $arg"
1966251883Speter	fi
1967251883Speter	continue
1968251883Speter	;;
1969251883Speter
1970251883Speter      # Some other compiler argument.
1971251883Speter      *)
1972251883Speter	# Unknown arguments in both finalize_command and compile_command need
1973251883Speter	# to be aesthetically quoted because they are evaled later.
1974251883Speter	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1975251883Speter	case $arg in
1976251883Speter	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1977251883Speter	  arg="\"$arg\""
1978251883Speter	  ;;
1979251883Speter	esac
1980251883Speter	;;
1981251883Speter      esac # arg
1982251883Speter
1983251883Speter      # Now actually substitute the argument into the commands.
1984251883Speter      if test -n "$arg"; then
1985251883Speter	compile_command="$compile_command $arg"
1986251883Speter	finalize_command="$finalize_command $arg"
1987251883Speter      fi
1988251883Speter    done # argument parsing loop
1989251883Speter
1990251883Speter    if test -n "$prev"; then
1991251883Speter      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1992251883Speter      $echo "$help" 1>&2
1993251883Speter      exit $EXIT_FAILURE
1994251883Speter    fi
1995251883Speter
1996251883Speter    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1997251883Speter      eval arg=\"$export_dynamic_flag_spec\"
1998251883Speter      compile_command="$compile_command $arg"
1999251883Speter      finalize_command="$finalize_command $arg"
2000251883Speter    fi
2001251883Speter
2002251883Speter    oldlibs=
2003251883Speter    # calculate the name of the file, without its directory
2004251883Speter    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
2005251883Speter    libobjs_save="$libobjs"
2006251883Speter
2007251883Speter    if test -n "$shlibpath_var"; then
2008251883Speter      # get the directories listed in $shlibpath_var
2009251883Speter      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
2010251883Speter    else
2011251883Speter      shlib_search_path=
2012251883Speter    fi
2013251883Speter    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
2014251883Speter    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
2015251883Speter
2016251883Speter    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
2017251883Speter    if test "X$output_objdir" = "X$output"; then
2018251883Speter      output_objdir="$objdir"
2019251883Speter    else
2020251883Speter      output_objdir="$output_objdir/$objdir"
2021251883Speter    fi
2022251883Speter    # Create the object directory.
2023251883Speter    if test ! -d "$output_objdir"; then
2024251883Speter      $show "$mkdir $output_objdir"
2025251883Speter      $run $mkdir $output_objdir
2026251883Speter      exit_status=$?
2027251883Speter      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
2028251883Speter	exit $exit_status
2029251883Speter      fi
2030251883Speter    fi
2031251883Speter
2032251883Speter    # Determine the type of output
2033251883Speter    case $output in
2034251883Speter    "")
2035251883Speter      $echo "$modename: you must specify an output file" 1>&2
2036251883Speter      $echo "$help" 1>&2
2037251883Speter      exit $EXIT_FAILURE
2038251883Speter      ;;
2039251883Speter    *.$libext) linkmode=oldlib ;;
2040251883Speter    *.lo | *.$objext) linkmode=obj ;;
2041251883Speter    *.la) linkmode=lib ;;
2042251883Speter    *) linkmode=prog ;; # Anything else should be a program.
2043251883Speter    esac
2044251883Speter
2045251883Speter    case $host in
2046251883Speter    *cygwin* | *mingw* | *pw32*)
2047251883Speter      # don't eliminate duplications in $postdeps and $predeps
2048251883Speter      duplicate_compiler_generated_deps=yes
2049251883Speter      ;;
2050251883Speter    *)
2051251883Speter      duplicate_compiler_generated_deps=$duplicate_deps
2052251883Speter      ;;
2053251883Speter    esac
2054251883Speter    specialdeplibs=
2055251883Speter
2056251883Speter    libs=
2057251883Speter    # Find all interdependent deplibs by searching for libraries
2058251883Speter    # that are linked more than once (e.g. -la -lb -la)
2059251883Speter    for deplib in $deplibs; do
2060251883Speter      if test "X$duplicate_deps" = "Xyes" ; then
2061251883Speter	case "$libs " in
2062251883Speter	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2063251883Speter	esac
2064251883Speter      fi
2065251883Speter      libs="$libs $deplib"
2066251883Speter    done
2067251883Speter
2068251883Speter    if test "$linkmode" = lib; then
2069251883Speter      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2070251883Speter
2071251883Speter      # Compute libraries that are listed more than once in $predeps
2072251883Speter      # $postdeps and mark them as special (i.e., whose duplicates are
2073251883Speter      # not to be eliminated).
2074251883Speter      pre_post_deps=
2075251883Speter      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2076251883Speter	for pre_post_dep in $predeps $postdeps; do
2077251883Speter	  case "$pre_post_deps " in
2078251883Speter	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2079251883Speter	  esac
2080251883Speter	  pre_post_deps="$pre_post_deps $pre_post_dep"
2081251883Speter	done
2082251883Speter      fi
2083251883Speter      pre_post_deps=
2084251883Speter    fi
2085251883Speter
2086251883Speter    deplibs=
2087251883Speter    newdependency_libs=
2088251883Speter    newlib_search_path=
2089251883Speter    need_relink=no # whether we're linking any uninstalled libtool libraries
2090251883Speter    notinst_deplibs= # not-installed libtool libraries
2091251883Speter    case $linkmode in
2092251883Speter    lib)
2093251883Speter	passes="conv link"
2094251883Speter	for file in $dlfiles $dlprefiles; do
2095251883Speter	  case $file in
2096251883Speter	  *.la) ;;
2097251883Speter	  *)
2098251883Speter	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2099251883Speter	    exit $EXIT_FAILURE
2100251883Speter	    ;;
2101251883Speter	  esac
2102251883Speter	done
2103251883Speter	;;
2104251883Speter    prog)
2105251883Speter	compile_deplibs=
2106251883Speter	finalize_deplibs=
2107251883Speter	alldeplibs=no
2108251883Speter	newdlfiles=
2109251883Speter	newdlprefiles=
2110251883Speter	passes="conv scan dlopen dlpreopen link"
2111251883Speter	;;
2112251883Speter    *)  passes="conv"
2113251883Speter	;;
2114251883Speter    esac
2115251883Speter    for pass in $passes; do
2116251883Speter      if test "$linkmode,$pass" = "lib,link" ||
2117251883Speter	 test "$linkmode,$pass" = "prog,scan"; then
2118251883Speter	libs="$deplibs"
2119251883Speter	deplibs=
2120251883Speter      fi
2121251883Speter      if test "$linkmode" = prog; then
2122251883Speter	case $pass in
2123251883Speter	dlopen) libs="$dlfiles" ;;
2124251883Speter	dlpreopen) libs="$dlprefiles" ;;
2125251883Speter	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2126251883Speter	esac
2127251883Speter      fi
2128251883Speter      if test "$pass" = dlopen; then
2129251883Speter	# Collect dlpreopened libraries
2130251883Speter	save_deplibs="$deplibs"
2131251883Speter	deplibs=
2132251883Speter      fi
2133251883Speter      for deplib in $libs; do
2134251883Speter	lib=
2135251883Speter	found=no
2136251883Speter	case $deplib in
2137251883Speter	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
2138251883Speter	  if test "$linkmode,$pass" = "prog,link"; then
2139251883Speter	    compile_deplibs="$deplib $compile_deplibs"
2140251883Speter	    finalize_deplibs="$deplib $finalize_deplibs"
2141251883Speter	  else
2142251883Speter	    compiler_flags="$compiler_flags $deplib"
2143251883Speter	  fi
2144251883Speter	  continue
2145251883Speter	  ;;
2146251883Speter	-l*)
2147251883Speter	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2148251883Speter	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2149251883Speter	    continue
2150251883Speter	  fi
2151251883Speter	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2152251883Speter	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2153251883Speter	    for search_ext in .la $std_shrext .so .a; do
2154251883Speter	      # Search the libtool library
2155251883Speter	      lib="$searchdir/lib${name}${search_ext}"
2156251883Speter	      if test -f "$lib"; then
2157251883Speter		if test "$search_ext" = ".la"; then
2158251883Speter		  found=yes
2159251883Speter		else
2160251883Speter		  found=no
2161251883Speter		fi
2162251883Speter		break 2
2163251883Speter	      fi
2164251883Speter	    done
2165251883Speter	  done
2166251883Speter	  if test "$found" != yes; then
2167251883Speter	    # deplib doesn't seem to be a libtool library
2168251883Speter	    if test "$linkmode,$pass" = "prog,link"; then
2169251883Speter	      compile_deplibs="$deplib $compile_deplibs"
2170251883Speter	      finalize_deplibs="$deplib $finalize_deplibs"
2171251883Speter	    else
2172251883Speter	      deplibs="$deplib $deplibs"
2173251883Speter	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2174251883Speter	    fi
2175251883Speter	    continue
2176251883Speter	  else # deplib is a libtool library
2177251883Speter	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2178251883Speter	    # We need to do some special things here, and not later.
2179251883Speter	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2180251883Speter	      case " $predeps $postdeps " in
2181251883Speter	      *" $deplib "*)
2182251883Speter		if (${SED} -e '2q' $lib |
2183251883Speter                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2184251883Speter		  library_names=
2185251883Speter		  old_library=
2186251883Speter		  case $lib in
2187251883Speter		  */* | *\\*) . $lib ;;
2188251883Speter		  *) . ./$lib ;;
2189251883Speter		  esac
2190251883Speter		  for l in $old_library $library_names; do
2191251883Speter		    ll="$l"
2192251883Speter		  done
2193251883Speter		  if test "X$ll" = "X$old_library" ; then # only static version available
2194251883Speter		    found=no
2195251883Speter		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2196251883Speter		    test "X$ladir" = "X$lib" && ladir="."
2197251883Speter		    lib=$ladir/$old_library
2198251883Speter		    if test "$linkmode,$pass" = "prog,link"; then
2199251883Speter		      compile_deplibs="$deplib $compile_deplibs"
2200251883Speter		      finalize_deplibs="$deplib $finalize_deplibs"
2201251883Speter		    else
2202251883Speter		      deplibs="$deplib $deplibs"
2203251883Speter		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2204251883Speter		    fi
2205251883Speter		    continue
2206251883Speter		  fi
2207251883Speter		fi
2208251883Speter	        ;;
2209251883Speter	      *) ;;
2210251883Speter	      esac
2211251883Speter	    fi
2212251883Speter	  fi
2213251883Speter	  ;; # -l
2214251883Speter	-L*)
2215251883Speter	  case $linkmode in
2216251883Speter	  lib)
2217251883Speter	    deplibs="$deplib $deplibs"
2218251883Speter	    test "$pass" = conv && continue
2219251883Speter	    newdependency_libs="$deplib $newdependency_libs"
2220251883Speter	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2221251883Speter	    ;;
2222251883Speter	  prog)
2223251883Speter	    if test "$pass" = conv; then
2224251883Speter	      deplibs="$deplib $deplibs"
2225251883Speter	      continue
2226251883Speter	    fi
2227251883Speter	    if test "$pass" = scan; then
2228251883Speter	      deplibs="$deplib $deplibs"
2229251883Speter	    else
2230251883Speter	      compile_deplibs="$deplib $compile_deplibs"
2231251883Speter	      finalize_deplibs="$deplib $finalize_deplibs"
2232251883Speter	    fi
2233251883Speter	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2234251883Speter	    ;;
2235251883Speter	  *)
2236251883Speter	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2237251883Speter	    ;;
2238251883Speter	  esac # linkmode
2239251883Speter	  continue
2240251883Speter	  ;; # -L
2241251883Speter	-R*)
2242251883Speter	  if test "$pass" = link; then
2243251883Speter	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2244251883Speter	    # Make sure the xrpath contains only unique directories.
2245251883Speter	    case "$xrpath " in
2246251883Speter	    *" $dir "*) ;;
2247251883Speter	    *) xrpath="$xrpath $dir" ;;
2248251883Speter	    esac
2249251883Speter	  fi
2250251883Speter	  deplibs="$deplib $deplibs"
2251251883Speter	  continue
2252251883Speter	  ;;
2253251883Speter	*.la) lib="$deplib" ;;
2254251883Speter	*.$libext)
2255251883Speter	  if test "$pass" = conv; then
2256251883Speter	    deplibs="$deplib $deplibs"
2257251883Speter	    continue
2258251883Speter	  fi
2259251883Speter	  case $linkmode in
2260251883Speter	  lib)
2261251883Speter	    valid_a_lib=no
2262251883Speter	    case $deplibs_check_method in
2263251883Speter	      match_pattern*)
2264251883Speter		set dummy $deplibs_check_method
2265251883Speter	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2266251883Speter		if eval $echo \"$deplib\" 2>/dev/null \
2267251883Speter		    | $SED 10q \
2268251883Speter		    | $EGREP "$match_pattern_regex" > /dev/null; then
2269251883Speter		  valid_a_lib=yes
2270251883Speter		fi
2271251883Speter		;;
2272251883Speter	      pass_all)
2273251883Speter		valid_a_lib=yes
2274251883Speter		;;
2275251883Speter            esac
2276251883Speter	    if test "$valid_a_lib" != yes; then
2277251883Speter	      $echo
2278251883Speter	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2279251883Speter	      $echo "*** I have the capability to make that library automatically link in when"
2280251883Speter	      $echo "*** you link to this library.  But I can only do this if you have a"
2281251883Speter	      $echo "*** shared version of the library, which you do not appear to have"
2282251883Speter	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2283251883Speter	      $echo "*** that it is just a static archive that I should not used here."
2284251883Speter	    else
2285251883Speter	      $echo
2286251883Speter	      $echo "*** Warning: Linking the shared library $output against the"
2287251883Speter	      $echo "*** static library $deplib is not portable!"
2288251883Speter	      deplibs="$deplib $deplibs"
2289251883Speter	    fi
2290251883Speter	    continue
2291251883Speter	    ;;
2292251883Speter	  prog)
2293251883Speter	    if test "$pass" != link; then
2294251883Speter	      deplibs="$deplib $deplibs"
2295251883Speter	    else
2296251883Speter	      compile_deplibs="$deplib $compile_deplibs"
2297251883Speter	      finalize_deplibs="$deplib $finalize_deplibs"
2298251883Speter	    fi
2299251883Speter	    continue
2300251883Speter	    ;;
2301251883Speter	  esac # linkmode
2302251883Speter	  ;; # *.$libext
2303251883Speter	*.lo | *.$objext)
2304251883Speter	  if test "$pass" = conv; then
2305251883Speter	    deplibs="$deplib $deplibs"
2306251883Speter	  elif test "$linkmode" = prog; then
2307251883Speter	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2308251883Speter	      # If there is no dlopen support or we're linking statically,
2309251883Speter	      # we need to preload.
2310251883Speter	      newdlprefiles="$newdlprefiles $deplib"
2311251883Speter	      compile_deplibs="$deplib $compile_deplibs"
2312251883Speter	      finalize_deplibs="$deplib $finalize_deplibs"
2313251883Speter	    else
2314251883Speter	      newdlfiles="$newdlfiles $deplib"
2315251883Speter	    fi
2316251883Speter	  fi
2317251883Speter	  continue
2318251883Speter	  ;;
2319251883Speter	%DEPLIBS%)
2320251883Speter	  alldeplibs=yes
2321251883Speter	  continue
2322251883Speter	  ;;
2323251883Speter	esac # case $deplib
2324251883Speter	if test "$found" = yes || test -f "$lib"; then :
2325251883Speter	else
2326251883Speter	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2327251883Speter	  exit $EXIT_FAILURE
2328251883Speter	fi
2329251883Speter
2330251883Speter	# Check to see that this really is a libtool archive.
2331251883Speter	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2332251883Speter	else
2333251883Speter	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2334251883Speter	  exit $EXIT_FAILURE
2335251883Speter	fi
2336251883Speter
2337251883Speter	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2338251883Speter	test "X$ladir" = "X$lib" && ladir="."
2339251883Speter
2340251883Speter	dlname=
2341251883Speter	dlopen=
2342251883Speter	dlpreopen=
2343251883Speter	libdir=
2344251883Speter	library_names=
2345251883Speter	old_library=
2346251883Speter	# If the library was installed with an old release of libtool,
2347251883Speter	# it will not redefine variables installed, or shouldnotlink
2348251883Speter	installed=yes
2349251883Speter	shouldnotlink=no
2350251883Speter	avoidtemprpath=
2351251883Speter
2352251883Speter
2353251883Speter	# Read the .la file
2354251883Speter	case $lib in
2355251883Speter	*/* | *\\*) . $lib ;;
2356251883Speter	*) . ./$lib ;;
2357251883Speter	esac
2358251883Speter
2359251883Speter	if test "$linkmode,$pass" = "lib,link" ||
2360251883Speter	   test "$linkmode,$pass" = "prog,scan" ||
2361251883Speter	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2362251883Speter	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2363251883Speter	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2364251883Speter	fi
2365251883Speter
2366251883Speter	if test "$pass" = conv; then
2367251883Speter	  # Only check for convenience libraries
2368251883Speter	  deplibs="$lib $deplibs"
2369251883Speter	  if test -z "$libdir"; then
2370251883Speter	    if test -z "$old_library"; then
2371251883Speter	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2372251883Speter	      exit $EXIT_FAILURE
2373251883Speter	    fi
2374251883Speter	    # It is a libtool convenience library, so add in its objects.
2375251883Speter	    convenience="$convenience $ladir/$objdir/$old_library"
2376251883Speter	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2377251883Speter	    tmp_libs=
2378251883Speter	    for deplib in $dependency_libs; do
2379251883Speter	      deplibs="$deplib $deplibs"
2380251883Speter              if test "X$duplicate_deps" = "Xyes" ; then
2381251883Speter	        case "$tmp_libs " in
2382251883Speter	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2383251883Speter	        esac
2384251883Speter              fi
2385251883Speter	      tmp_libs="$tmp_libs $deplib"
2386251883Speter	    done
2387251883Speter	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2388251883Speter	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2389251883Speter	    exit $EXIT_FAILURE
2390251883Speter	  fi
2391251883Speter	  continue
2392251883Speter	fi # $pass = conv
2393251883Speter
2394251883Speter
2395251883Speter	# Get the name of the library we link against.
2396251883Speter	linklib=
2397251883Speter	for l in $old_library $library_names; do
2398251883Speter	  linklib="$l"
2399251883Speter	done
2400251883Speter	if test -z "$linklib"; then
2401251883Speter	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2402251883Speter	  exit $EXIT_FAILURE
2403251883Speter	fi
2404251883Speter
2405251883Speter	# This library was specified with -dlopen.
2406251883Speter	if test "$pass" = dlopen; then
2407251883Speter	  if test -z "$libdir"; then
2408251883Speter	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2409251883Speter	    exit $EXIT_FAILURE
2410251883Speter	  fi
2411251883Speter	  if test -z "$dlname" ||
2412251883Speter	     test "$dlopen_support" != yes ||
2413251883Speter	     test "$build_libtool_libs" = no; then
2414251883Speter	    # If there is no dlname, no dlopen support or we're linking
2415251883Speter	    # statically, we need to preload.  We also need to preload any
2416251883Speter	    # dependent libraries so libltdl's deplib preloader doesn't
2417251883Speter	    # bomb out in the load deplibs phase.
2418251883Speter	    dlprefiles="$dlprefiles $lib $dependency_libs"
2419251883Speter	  else
2420251883Speter	    newdlfiles="$newdlfiles $lib"
2421251883Speter	  fi
2422251883Speter	  continue
2423251883Speter	fi # $pass = dlopen
2424251883Speter
2425251883Speter	# We need an absolute path.
2426251883Speter	case $ladir in
2427251883Speter	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2428251883Speter	*)
2429251883Speter	  abs_ladir=`cd "$ladir" && pwd`
2430251883Speter	  if test -z "$abs_ladir"; then
2431251883Speter	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2432251883Speter	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2433251883Speter	    abs_ladir="$ladir"
2434251883Speter	  fi
2435251883Speter	  ;;
2436251883Speter	esac
2437251883Speter	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2438251883Speter
2439251883Speter	# Find the relevant object directory and library name.
2440251883Speter	if test "X$installed" = Xyes; then
2441251883Speter	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2442251883Speter	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2443251883Speter	    dir="$ladir"
2444251883Speter	    absdir="$abs_ladir"
2445251883Speter	    libdir="$abs_ladir"
2446251883Speter	  else
2447251883Speter	    dir="$libdir"
2448251883Speter	    absdir="$libdir"
2449251883Speter	  fi
2450251883Speter	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2451251883Speter	else
2452251883Speter	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2453251883Speter	    dir="$ladir"
2454251883Speter	    absdir="$abs_ladir"
2455251883Speter	    # Remove this search path later
2456251883Speter	    notinst_path="$notinst_path $abs_ladir"
2457251883Speter	  else
2458251883Speter	    dir="$ladir/$objdir"
2459251883Speter	    absdir="$abs_ladir/$objdir"
2460251883Speter	    # Remove this search path later
2461251883Speter	    notinst_path="$notinst_path $abs_ladir"
2462251883Speter	  fi
2463251883Speter	fi # $installed = yes
2464251883Speter	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2465251883Speter
2466251883Speter	# This library was specified with -dlpreopen.
2467251883Speter	if test "$pass" = dlpreopen; then
2468251883Speter	  if test -z "$libdir"; then
2469251883Speter	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2470251883Speter	    exit $EXIT_FAILURE
2471251883Speter	  fi
2472251883Speter	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2473251883Speter	  # are required to link).
2474251883Speter	  if test -n "$old_library"; then
2475251883Speter	    newdlprefiles="$newdlprefiles $dir/$old_library"
2476251883Speter	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2477251883Speter	  elif test -n "$dlname"; then
2478251883Speter	    newdlprefiles="$newdlprefiles $dir/$dlname"
2479251883Speter	  else
2480251883Speter	    newdlprefiles="$newdlprefiles $dir/$linklib"
2481251883Speter	  fi
2482251883Speter	fi # $pass = dlpreopen
2483251883Speter
2484251883Speter	if test -z "$libdir"; then
2485251883Speter	  # Link the convenience library
2486251883Speter	  if test "$linkmode" = lib; then
2487251883Speter	    deplibs="$dir/$old_library $deplibs"
2488251883Speter	  elif test "$linkmode,$pass" = "prog,link"; then
2489251883Speter	    compile_deplibs="$dir/$old_library $compile_deplibs"
2490251883Speter	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2491251883Speter	  else
2492251883Speter	    deplibs="$lib $deplibs" # used for prog,scan pass
2493251883Speter	  fi
2494251883Speter	  continue
2495251883Speter	fi
2496251883Speter
2497251883Speter
2498251883Speter	if test "$linkmode" = prog && test "$pass" != link; then
2499251883Speter	  newlib_search_path="$newlib_search_path $ladir"
2500251883Speter	  deplibs="$lib $deplibs"
2501251883Speter
2502251883Speter	  linkalldeplibs=no
2503251883Speter	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2504251883Speter	     test "$build_libtool_libs" = no; then
2505251883Speter	    linkalldeplibs=yes
2506251883Speter	  fi
2507251883Speter
2508251883Speter	  tmp_libs=
2509251883Speter	  for deplib in $dependency_libs; do
2510251883Speter	    case $deplib in
2511251883Speter	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2512251883Speter	    esac
2513251883Speter	    # Need to link against all dependency_libs?
2514251883Speter	    if test "$linkalldeplibs" = yes; then
2515251883Speter	      deplibs="$deplib $deplibs"
2516251883Speter	    else
2517251883Speter	      # Need to hardcode shared library paths
2518251883Speter	      # or/and link against static libraries
2519251883Speter	      newdependency_libs="$deplib $newdependency_libs"
2520251883Speter	    fi
2521251883Speter	    if test "X$duplicate_deps" = "Xyes" ; then
2522251883Speter	      case "$tmp_libs " in
2523251883Speter	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2524251883Speter	      esac
2525251883Speter	    fi
2526251883Speter	    tmp_libs="$tmp_libs $deplib"
2527251883Speter	  done # for deplib
2528251883Speter	  continue
2529251883Speter	fi # $linkmode = prog...
2530251883Speter
2531251883Speter	if test "$linkmode,$pass" = "prog,link"; then
2532251883Speter	  if test -n "$library_names" &&
2533251883Speter	     { { test "$prefer_static_libs" = no ||
2534251883Speter		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
2535251883Speter	       test -z "$old_library"; }; then
2536251883Speter	    # We need to hardcode the library path
2537251883Speter	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2538251883Speter	      # Make sure the rpath contains only unique directories.
2539251883Speter	      case "$temp_rpath " in
2540251883Speter	      *" $dir "*) ;;
2541251883Speter	      *" $absdir "*) ;;
2542251883Speter	      *) temp_rpath="$temp_rpath $absdir" ;;
2543251883Speter	      esac
2544251883Speter	    fi
2545251883Speter
2546251883Speter	    # Hardcode the library path.
2547251883Speter	    # Skip directories that are in the system default run-time
2548251883Speter	    # search path.
2549251883Speter	    case " $sys_lib_dlsearch_path " in
2550251883Speter	    *" $absdir "*) ;;
2551251883Speter	    *)
2552251883Speter	      case "$compile_rpath " in
2553251883Speter	      *" $absdir "*) ;;
2554251883Speter	      *) compile_rpath="$compile_rpath $absdir"
2555251883Speter	      esac
2556251883Speter	      ;;
2557251883Speter	    esac
2558251883Speter	    case " $sys_lib_dlsearch_path " in
2559251883Speter	    *" $libdir "*) ;;
2560251883Speter	    *)
2561251883Speter	      case "$finalize_rpath " in
2562251883Speter	      *" $libdir "*) ;;
2563251883Speter	      *) finalize_rpath="$finalize_rpath $libdir"
2564251883Speter	      esac
2565251883Speter	      ;;
2566251883Speter	    esac
2567251883Speter	  fi # $linkmode,$pass = prog,link...
2568251883Speter
2569251883Speter	  if test "$alldeplibs" = yes &&
2570251883Speter	     { test "$deplibs_check_method" = pass_all ||
2571251883Speter	       { test "$build_libtool_libs" = yes &&
2572251883Speter		 test -n "$library_names"; }; }; then
2573251883Speter	    # We only need to search for static libraries
2574251883Speter	    continue
2575251883Speter	  fi
2576251883Speter	fi
2577251883Speter
2578251883Speter	link_static=no # Whether the deplib will be linked statically
2579251883Speter	use_static_libs=$prefer_static_libs
2580251883Speter	if test "$use_static_libs" = built && test "$installed" = yes ; then
2581251883Speter	  use_static_libs=no
2582251883Speter	fi
2583251883Speter	if test -n "$library_names" &&
2584251883Speter	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2585251883Speter	  if test "$installed" = no; then
2586251883Speter	    notinst_deplibs="$notinst_deplibs $lib"
2587251883Speter	    need_relink=yes
2588251883Speter	  fi
2589251883Speter	  # This is a shared library
2590251883Speter
2591251883Speter	  # Warn about portability, can't link against -module's on
2592251883Speter	  # some systems (darwin)
2593251883Speter	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2594251883Speter	    $echo
2595251883Speter	    if test "$linkmode" = prog; then
2596251883Speter	      $echo "*** Warning: Linking the executable $output against the loadable module"
2597251883Speter	    else
2598251883Speter	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2599251883Speter	    fi
2600251883Speter	    $echo "*** $linklib is not portable!"
2601251883Speter	  fi
2602251883Speter	  if test "$linkmode" = lib &&
2603251883Speter	     test "$hardcode_into_libs" = yes; then
2604251883Speter	    # Hardcode the library path.
2605251883Speter	    # Skip directories that are in the system default run-time
2606251883Speter	    # search path.
2607251883Speter	    case " $sys_lib_dlsearch_path " in
2608251883Speter	    *" $absdir "*) ;;
2609251883Speter	    *)
2610251883Speter	      case "$compile_rpath " in
2611251883Speter	      *" $absdir "*) ;;
2612251883Speter	      *) compile_rpath="$compile_rpath $absdir"
2613251883Speter	      esac
2614251883Speter	      ;;
2615251883Speter	    esac
2616251883Speter	    case " $sys_lib_dlsearch_path " in
2617251883Speter	    *" $libdir "*) ;;
2618251883Speter	    *)
2619251883Speter	      case "$finalize_rpath " in
2620251883Speter	      *" $libdir "*) ;;
2621251883Speter	      *) finalize_rpath="$finalize_rpath $libdir"
2622251883Speter	      esac
2623251883Speter	      ;;
2624251883Speter	    esac
2625251883Speter	  fi
2626251883Speter
2627251883Speter	  if test -n "$old_archive_from_expsyms_cmds"; then
2628251883Speter	    # figure out the soname
2629251883Speter	    set dummy $library_names
2630251883Speter	    realname="$2"
2631251883Speter	    shift; shift
2632251883Speter	    libname=`eval \\$echo \"$libname_spec\"`
2633251883Speter	    # use dlname if we got it. it's perfectly good, no?
2634251883Speter	    if test -n "$dlname"; then
2635251883Speter	      soname="$dlname"
2636251883Speter	    elif test -n "$soname_spec"; then
2637251883Speter	      # bleh windows
2638251883Speter	      case $host in
2639251883Speter	      *cygwin* | mingw*)
2640251883Speter		major=`expr $current - $age`
2641251883Speter		versuffix="-$major"
2642251883Speter		;;
2643251883Speter	      esac
2644251883Speter	      eval soname=\"$soname_spec\"
2645251883Speter	    else
2646251883Speter	      soname="$realname"
2647251883Speter	    fi
2648251883Speter
2649251883Speter	    # Make a new name for the extract_expsyms_cmds to use
2650251883Speter	    soroot="$soname"
2651251883Speter	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2652251883Speter	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2653251883Speter
2654251883Speter	    # If the library has no export list, then create one now
2655251883Speter	    if test -f "$output_objdir/$soname-def"; then :
2656251883Speter	    else
2657251883Speter	      $show "extracting exported symbol list from \`$soname'"
2658251883Speter	      save_ifs="$IFS"; IFS='~'
2659251883Speter	      cmds=$extract_expsyms_cmds
2660251883Speter	      for cmd in $cmds; do
2661251883Speter		IFS="$save_ifs"
2662251883Speter		eval cmd=\"$cmd\"
2663251883Speter		$show "$cmd"
2664251883Speter		$run eval "$cmd" || exit $?
2665251883Speter	      done
2666251883Speter	      IFS="$save_ifs"
2667251883Speter	    fi
2668251883Speter
2669251883Speter	    # Create $newlib
2670251883Speter	    if test -f "$output_objdir/$newlib"; then :; else
2671251883Speter	      $show "generating import library for \`$soname'"
2672251883Speter	      save_ifs="$IFS"; IFS='~'
2673251883Speter	      cmds=$old_archive_from_expsyms_cmds
2674251883Speter	      for cmd in $cmds; do
2675251883Speter		IFS="$save_ifs"
2676251883Speter		eval cmd=\"$cmd\"
2677251883Speter		$show "$cmd"
2678251883Speter		$run eval "$cmd" || exit $?
2679251883Speter	      done
2680251883Speter	      IFS="$save_ifs"
2681251883Speter	    fi
2682251883Speter	    # make sure the library variables are pointing to the new library
2683251883Speter	    dir=$output_objdir
2684251883Speter	    linklib=$newlib
2685251883Speter	  fi # test -n "$old_archive_from_expsyms_cmds"
2686251883Speter
2687251883Speter	  if test "$linkmode" = prog || test "$mode" != relink; then
2688251883Speter	    add_shlibpath=
2689251883Speter	    add_dir=
2690251883Speter	    add=
2691251883Speter	    lib_linked=yes
2692251883Speter	    case $hardcode_action in
2693251883Speter	    immediate | unsupported)
2694251883Speter	      if test "$hardcode_direct" = no; then
2695251883Speter		add="$dir/$linklib"
2696251883Speter		case $host in
2697251883Speter		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2698251883Speter		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2699251883Speter		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2700251883Speter		    *-*-unixware7*) add_dir="-L$dir" ;;
2701251883Speter		  *-*-darwin* )
2702251883Speter		    # if the lib is a module then we can not link against
2703251883Speter		    # it, someone is ignoring the new warnings I added
2704251883Speter		    if /usr/bin/file -L $add 2> /dev/null |
2705251883Speter                      $EGREP ": [^:]* bundle" >/dev/null ; then
2706251883Speter		      $echo "** Warning, lib $linklib is a module, not a shared library"
2707251883Speter		      if test -z "$old_library" ; then
2708251883Speter		        $echo
2709251883Speter		        $echo "** And there doesn't seem to be a static archive available"
2710251883Speter		        $echo "** The link will probably fail, sorry"
2711251883Speter		      else
2712251883Speter		        add="$dir/$old_library"
2713251883Speter		      fi
2714251883Speter		    fi
2715251883Speter		esac
2716251883Speter	      elif test "$hardcode_minus_L" = no; then
2717251883Speter		case $host in
2718251883Speter		*-*-sunos*) add_shlibpath="$dir" ;;
2719251883Speter		esac
2720251883Speter		add_dir="-L$dir"
2721251883Speter		add="-l$name"
2722251883Speter	      elif test "$hardcode_shlibpath_var" = no; then
2723251883Speter		add_shlibpath="$dir"
2724251883Speter		add="-l$name"
2725251883Speter	      else
2726251883Speter		lib_linked=no
2727251883Speter	      fi
2728251883Speter	      ;;
2729251883Speter	    relink)
2730251883Speter	      if test "$hardcode_direct" = yes; then
2731251883Speter		add="$dir/$linklib"
2732251883Speter	      elif test "$hardcode_minus_L" = yes; then
2733251883Speter		add_dir="-L$dir"
2734251883Speter		# Try looking first in the location we're being installed to.
2735251883Speter		if test -n "$inst_prefix_dir"; then
2736251883Speter		  case $libdir in
2737251883Speter		    [\\/]*)
2738251883Speter		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2739251883Speter		      ;;
2740251883Speter		  esac
2741251883Speter		fi
2742251883Speter		add="-l$name"
2743251883Speter	      elif test "$hardcode_shlibpath_var" = yes; then
2744251883Speter		add_shlibpath="$dir"
2745251883Speter		add="-l$name"
2746251883Speter	      else
2747251883Speter		lib_linked=no
2748251883Speter	      fi
2749251883Speter	      ;;
2750251883Speter	    *) lib_linked=no ;;
2751251883Speter	    esac
2752251883Speter
2753251883Speter	    if test "$lib_linked" != yes; then
2754251883Speter	      $echo "$modename: configuration error: unsupported hardcode properties"
2755251883Speter	      exit $EXIT_FAILURE
2756251883Speter	    fi
2757251883Speter
2758251883Speter	    if test -n "$add_shlibpath"; then
2759251883Speter	      case :$compile_shlibpath: in
2760251883Speter	      *":$add_shlibpath:"*) ;;
2761251883Speter	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2762251883Speter	      esac
2763251883Speter	    fi
2764251883Speter	    if test "$linkmode" = prog; then
2765251883Speter	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2766251883Speter	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2767251883Speter	    else
2768251883Speter	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2769251883Speter	      test -n "$add" && deplibs="$add $deplibs"
2770251883Speter	      if test "$hardcode_direct" != yes && \
2771251883Speter		 test "$hardcode_minus_L" != yes && \
2772251883Speter		 test "$hardcode_shlibpath_var" = yes; then
2773251883Speter		case :$finalize_shlibpath: in
2774251883Speter		*":$libdir:"*) ;;
2775251883Speter		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2776251883Speter		esac
2777251883Speter	      fi
2778251883Speter	    fi
2779251883Speter	  fi
2780251883Speter
2781251883Speter	  if test "$linkmode" = prog || test "$mode" = relink; then
2782251883Speter	    add_shlibpath=
2783251883Speter	    add_dir=
2784251883Speter	    add=
2785251883Speter	    # Finalize command for both is simple: just hardcode it.
2786251883Speter	    if test "$hardcode_direct" = yes; then
2787251883Speter	      add="$libdir/$linklib"
2788251883Speter	    elif test "$hardcode_minus_L" = yes; then
2789251883Speter	      add_dir="-L$libdir"
2790251883Speter	      add="-l$name"
2791251883Speter	    elif test "$hardcode_shlibpath_var" = yes; then
2792251883Speter	      case :$finalize_shlibpath: in
2793251883Speter	      *":$libdir:"*) ;;
2794251883Speter	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2795251883Speter	      esac
2796251883Speter	      add="-l$name"
2797251883Speter	    elif test "$hardcode_automatic" = yes; then
2798251883Speter	      if test -n "$inst_prefix_dir" &&
2799251883Speter		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2800251883Speter	        add="$inst_prefix_dir$libdir/$linklib"
2801251883Speter	      else
2802251883Speter	        add="$libdir/$linklib"
2803251883Speter	      fi
2804251883Speter	    else
2805251883Speter	      # We cannot seem to hardcode it, guess we'll fake it.
2806251883Speter	      add_dir="-L$libdir"
2807251883Speter	      # Try looking first in the location we're being installed to.
2808251883Speter	      if test -n "$inst_prefix_dir"; then
2809251883Speter		case $libdir in
2810251883Speter		  [\\/]*)
2811251883Speter		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2812251883Speter		    ;;
2813251883Speter		esac
2814251883Speter	      fi
2815251883Speter	      add="-l$name"
2816251883Speter	    fi
2817251883Speter
2818251883Speter	    if test "$linkmode" = prog; then
2819251883Speter	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2820251883Speter	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2821251883Speter	    else
2822251883Speter	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2823251883Speter	      test -n "$add" && deplibs="$add $deplibs"
2824251883Speter	    fi
2825251883Speter	  fi
2826251883Speter	elif test "$linkmode" = prog; then
2827251883Speter	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2828251883Speter	  # is not unsupported.  This is valid on all known static and
2829251883Speter	  # shared platforms.
2830251883Speter	  if test "$hardcode_direct" != unsupported; then
2831251883Speter	    test -n "$old_library" && linklib="$old_library"
2832251883Speter	    compile_deplibs="$dir/$linklib $compile_deplibs"
2833251883Speter	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2834251883Speter	  else
2835251883Speter	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2836251883Speter	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2837251883Speter	  fi
2838251883Speter	elif test "$build_libtool_libs" = yes; then
2839251883Speter	  # Not a shared library
2840251883Speter	  if test "$deplibs_check_method" != pass_all; then
2841251883Speter	    # We're trying link a shared library against a static one
2842251883Speter	    # but the system doesn't support it.
2843251883Speter
2844251883Speter	    # Just print a warning and add the library to dependency_libs so
2845251883Speter	    # that the program can be linked against the static library.
2846251883Speter	    $echo
2847251883Speter	    $echo "*** Warning: This system can not link to static lib archive $lib."
2848251883Speter	    $echo "*** I have the capability to make that library automatically link in when"
2849251883Speter	    $echo "*** you link to this library.  But I can only do this if you have a"
2850251883Speter	    $echo "*** shared version of the library, which you do not appear to have."
2851251883Speter	    if test "$module" = yes; then
2852251883Speter	      $echo "*** But as you try to build a module library, libtool will still create "
2853251883Speter	      $echo "*** a static module, that should work as long as the dlopening application"
2854251883Speter	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2855251883Speter	      if test -z "$global_symbol_pipe"; then
2856251883Speter		$echo
2857251883Speter		$echo "*** However, this would only work if libtool was able to extract symbol"
2858251883Speter		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2859251883Speter		$echo "*** not find such a program.  So, this module is probably useless."
2860251883Speter		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2861251883Speter	      fi
2862251883Speter	      if test "$build_old_libs" = no; then
2863251883Speter		build_libtool_libs=module
2864251883Speter		build_old_libs=yes
2865251883Speter	      else
2866251883Speter		build_libtool_libs=no
2867251883Speter	      fi
2868251883Speter	    fi
2869251883Speter	  else
2870251883Speter	    deplibs="$dir/$old_library $deplibs"
2871251883Speter	    link_static=yes
2872251883Speter	  fi
2873251883Speter	fi # link shared/static library?
2874251883Speter
2875251883Speter	if test "$linkmode" = lib; then
2876251883Speter	  if test -n "$dependency_libs" &&
2877251883Speter	     { test "$hardcode_into_libs" != yes ||
2878251883Speter	       test "$build_old_libs" = yes ||
2879251883Speter	       test "$link_static" = yes; }; then
2880251883Speter	    # Extract -R from dependency_libs
2881251883Speter	    temp_deplibs=
2882251883Speter	    for libdir in $dependency_libs; do
2883251883Speter	      case $libdir in
2884251883Speter	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2885251883Speter		   case " $xrpath " in
2886251883Speter		   *" $temp_xrpath "*) ;;
2887251883Speter		   *) xrpath="$xrpath $temp_xrpath";;
2888251883Speter		   esac;;
2889251883Speter	      *) temp_deplibs="$temp_deplibs $libdir";;
2890251883Speter	      esac
2891251883Speter	    done
2892251883Speter	    dependency_libs="$temp_deplibs"
2893251883Speter	  fi
2894251883Speter
2895251883Speter	  newlib_search_path="$newlib_search_path $absdir"
2896251883Speter	  # Link against this library
2897251883Speter	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2898251883Speter	  # ... and its dependency_libs
2899251883Speter	  tmp_libs=
2900251883Speter	  for deplib in $dependency_libs; do
2901251883Speter	    newdependency_libs="$deplib $newdependency_libs"
2902251883Speter	    if test "X$duplicate_deps" = "Xyes" ; then
2903251883Speter	      case "$tmp_libs " in
2904251883Speter	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2905251883Speter	      esac
2906251883Speter	    fi
2907251883Speter	    tmp_libs="$tmp_libs $deplib"
2908251883Speter	  done
2909251883Speter
2910251883Speter	  if test "$link_all_deplibs" != no; then
2911251883Speter	    # Add the search paths of all dependency libraries
2912251883Speter	    for deplib in $dependency_libs; do
2913251883Speter	      case $deplib in
2914251883Speter	      -L*) path="$deplib" ;;
2915251883Speter	      *.la)
2916251883Speter		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2917251883Speter		test "X$dir" = "X$deplib" && dir="."
2918251883Speter		# We need an absolute path.
2919251883Speter		case $dir in
2920251883Speter		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2921251883Speter		*)
2922251883Speter		  absdir=`cd "$dir" && pwd`
2923251883Speter		  if test -z "$absdir"; then
2924251883Speter		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2925251883Speter		    absdir="$dir"
2926251883Speter		  fi
2927251883Speter		  ;;
2928251883Speter		esac
2929251883Speter		if grep "^installed=no" $deplib > /dev/null; then
2930251883Speter		  path="$absdir/$objdir"
2931251883Speter		else
2932251883Speter		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2933251883Speter		  if test -z "$libdir"; then
2934251883Speter		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2935251883Speter		    exit $EXIT_FAILURE
2936251883Speter		  fi
2937251883Speter		  #if test "$absdir" != "$libdir"; then
2938251883Speter		  #  $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2939251883Speter		  #fi
2940251883Speter		  path="$absdir"
2941251883Speter		fi
2942251883Speter		depdepl=
2943251883Speter		case $host in
2944251883Speter		*-*-darwin*)
2945251883Speter		  # we do not want to link against static libs,
2946251883Speter		  # but need to link against shared
2947251883Speter		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2948251883Speter		  if test -n "$deplibrary_names" ; then
2949251883Speter		    for tmp in $deplibrary_names ; do
2950251883Speter		      depdepl=$tmp
2951251883Speter		    done
2952251883Speter		    if test -f "$path/$depdepl" ; then
2953251883Speter		      depdepl="$path/$depdepl"
2954251883Speter		    fi
2955251883Speter		    # do not add paths which are already there
2956251883Speter		    case " $newlib_search_path " in
2957251883Speter		    *" $path "*) ;;
2958251883Speter		    *) newlib_search_path="$newlib_search_path $path";;
2959251883Speter		    esac
2960251883Speter		  fi
2961251883Speter		  path=""
2962251883Speter		  ;;
2963251883Speter		*)
2964251883Speter		  path="-L$path"
2965251883Speter		  ;;
2966251883Speter		esac
2967251883Speter		;;
2968251883Speter	      -l*)
2969251883Speter		case $host in
2970251883Speter		*-*-darwin*)
2971251883Speter		  # Again, we only want to link against shared libraries
2972251883Speter		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2973251883Speter		  for tmp in $newlib_search_path ; do
2974251883Speter		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2975251883Speter		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2976251883Speter		      break
2977251883Speter		    fi
2978251883Speter		  done
2979251883Speter		  path=""
2980251883Speter		  ;;
2981251883Speter		*) continue ;;
2982251883Speter		esac
2983251883Speter		;;
2984251883Speter	      *) continue ;;
2985251883Speter	      esac
2986251883Speter	      case " $deplibs " in
2987251883Speter	      *" $path "*) ;;
2988251883Speter	      *) deplibs="$path $deplibs" ;;
2989251883Speter	      esac
2990251883Speter	      case " $deplibs " in
2991251883Speter	      *" $depdepl "*) ;;
2992251883Speter	      *) deplibs="$depdepl $deplibs" ;;
2993251883Speter	      esac
2994251883Speter	    done
2995251883Speter	  fi # link_all_deplibs != no
2996251883Speter	fi # linkmode = lib
2997251883Speter      done # for deplib in $libs
2998251883Speter      dependency_libs="$newdependency_libs"
2999251883Speter      if test "$pass" = dlpreopen; then
3000251883Speter	# Link the dlpreopened libraries before other libraries
3001251883Speter	for deplib in $save_deplibs; do
3002251883Speter	  deplibs="$deplib $deplibs"
3003251883Speter	done
3004251883Speter      fi
3005251883Speter      if test "$pass" != dlopen; then
3006251883Speter	if test "$pass" != conv; then
3007251883Speter	  # Make sure lib_search_path contains only unique directories.
3008251883Speter	  lib_search_path=
3009251883Speter	  for dir in $newlib_search_path; do
3010251883Speter	    case "$lib_search_path " in
3011251883Speter	    *" $dir "*) ;;
3012251883Speter	    *) lib_search_path="$lib_search_path $dir" ;;
3013251883Speter	    esac
3014251883Speter	  done
3015251883Speter	  newlib_search_path=
3016251883Speter	fi
3017251883Speter
3018251883Speter	if test "$linkmode,$pass" != "prog,link"; then
3019251883Speter	  vars="deplibs"
3020251883Speter	else
3021251883Speter	  vars="compile_deplibs finalize_deplibs"
3022251883Speter	fi
3023251883Speter	for var in $vars dependency_libs; do
3024251883Speter	  # Add libraries to $var in reverse order
3025251883Speter	  eval tmp_libs=\"\$$var\"
3026251883Speter	  new_libs=
3027251883Speter	  for deplib in $tmp_libs; do
3028251883Speter	    # FIXME: Pedantically, this is the right thing to do, so
3029251883Speter	    #        that some nasty dependency loop isn't accidentally
3030251883Speter	    #        broken:
3031251883Speter	    #new_libs="$deplib $new_libs"
3032251883Speter	    # Pragmatically, this seems to cause very few problems in
3033251883Speter	    # practice:
3034251883Speter	    case $deplib in
3035251883Speter	    -L*) new_libs="$deplib $new_libs" ;;
3036251883Speter	    -R*) ;;
3037251883Speter	    *)
3038251883Speter	      # And here is the reason: when a library appears more
3039251883Speter	      # than once as an explicit dependence of a library, or
3040251883Speter	      # is implicitly linked in more than once by the
3041251883Speter	      # compiler, it is considered special, and multiple
3042251883Speter	      # occurrences thereof are not removed.  Compare this
3043251883Speter	      # with having the same library being listed as a
3044251883Speter	      # dependency of multiple other libraries: in this case,
3045251883Speter	      # we know (pedantically, we assume) the library does not
3046251883Speter	      # need to be listed more than once, so we keep only the
3047251883Speter	      # last copy.  This is not always right, but it is rare
3048251883Speter	      # enough that we require users that really mean to play
3049251883Speter	      # such unportable linking tricks to link the library
3050251883Speter	      # using -Wl,-lname, so that libtool does not consider it
3051251883Speter	      # for duplicate removal.
3052251883Speter	      case " $specialdeplibs " in
3053251883Speter	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3054251883Speter	      *)
3055251883Speter		case " $new_libs " in
3056251883Speter		*" $deplib "*) ;;
3057251883Speter		*) new_libs="$deplib $new_libs" ;;
3058251883Speter		esac
3059251883Speter		;;
3060251883Speter	      esac
3061251883Speter	      ;;
3062251883Speter	    esac
3063251883Speter	  done
3064251883Speter	  tmp_libs=
3065251883Speter	  for deplib in $new_libs; do
3066251883Speter	    case $deplib in
3067251883Speter	    -L*)
3068251883Speter	      case " $tmp_libs " in
3069251883Speter	      *" $deplib "*) ;;
3070251883Speter	      *) tmp_libs="$tmp_libs $deplib" ;;
3071251883Speter	      esac
3072251883Speter	      ;;
3073251883Speter	    *) tmp_libs="$tmp_libs $deplib" ;;
3074251883Speter	    esac
3075251883Speter	  done
3076251883Speter	  eval $var=\"$tmp_libs\"
3077251883Speter	done # for var
3078251883Speter      fi
3079251883Speter      # Last step: remove runtime libs from dependency_libs
3080251883Speter      # (they stay in deplibs)
3081251883Speter      tmp_libs=
3082251883Speter      for i in $dependency_libs ; do
3083251883Speter	case " $predeps $postdeps $compiler_lib_search_path " in
3084251883Speter	*" $i "*)
3085251883Speter	  i=""
3086251883Speter	  ;;
3087251883Speter	esac
3088251883Speter	if test -n "$i" ; then
3089251883Speter	  tmp_libs="$tmp_libs $i"
3090251883Speter	fi
3091251883Speter      done
3092251883Speter      dependency_libs=$tmp_libs
3093251883Speter    done # for pass
3094251883Speter    if test "$linkmode" = prog; then
3095251883Speter      dlfiles="$newdlfiles"
3096251883Speter      dlprefiles="$newdlprefiles"
3097251883Speter    fi
3098251883Speter
3099251883Speter    case $linkmode in
3100251883Speter    oldlib)
3101251883Speter      if test -n "$deplibs"; then
3102251883Speter	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3103251883Speter      fi
3104251883Speter
3105251883Speter      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3106251883Speter	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3107251883Speter      fi
3108251883Speter
3109251883Speter      if test -n "$rpath"; then
3110251883Speter	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3111251883Speter      fi
3112251883Speter
3113251883Speter      if test -n "$xrpath"; then
3114251883Speter	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3115251883Speter      fi
3116251883Speter
3117251883Speter      if test -n "$vinfo"; then
3118251883Speter	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3119251883Speter      fi
3120251883Speter
3121251883Speter      if test -n "$release"; then
3122251883Speter	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3123251883Speter      fi
3124251883Speter
3125251883Speter      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3126251883Speter	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3127251883Speter      fi
3128251883Speter
3129251883Speter      # Now set the variables for building old libraries.
3130251883Speter      build_libtool_libs=no
3131251883Speter      oldlibs="$output"
3132251883Speter      objs="$objs$old_deplibs"
3133251883Speter      ;;
3134251883Speter
3135251883Speter    lib)
3136251883Speter      # Make sure we only generate libraries of the form `libNAME.la'.
3137251883Speter      case $outputname in
3138251883Speter      lib*)
3139251883Speter	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3140251883Speter	eval shared_ext=\"$shrext_cmds\"
3141251883Speter	eval libname=\"$libname_spec\"
3142251883Speter	;;
3143251883Speter      *)
3144251883Speter	if test "$module" = no; then
3145251883Speter	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3146251883Speter	  $echo "$help" 1>&2
3147251883Speter	  exit $EXIT_FAILURE
3148251883Speter	fi
3149251883Speter	if test "$need_lib_prefix" != no; then
3150251883Speter	  # Add the "lib" prefix for modules if required
3151251883Speter	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3152251883Speter	  eval shared_ext=\"$shrext_cmds\"
3153251883Speter	  eval libname=\"$libname_spec\"
3154251883Speter	else
3155251883Speter	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3156251883Speter	fi
3157251883Speter	;;
3158251883Speter      esac
3159251883Speter
3160251883Speter      if test -n "$objs"; then
3161251883Speter	if test "$deplibs_check_method" != pass_all; then
3162251883Speter	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3163251883Speter	  exit $EXIT_FAILURE
3164251883Speter	else
3165251883Speter	  $echo
3166251883Speter	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3167251883Speter	  $echo "*** objects $objs is not portable!"
3168251883Speter	  libobjs="$libobjs $objs"
3169251883Speter	fi
3170251883Speter      fi
3171251883Speter
3172251883Speter      if test "$dlself" != no; then
3173251883Speter	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3174251883Speter      fi
3175251883Speter
3176251883Speter      set dummy $rpath
3177251883Speter      if test "$#" -gt 2; then
3178251883Speter	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3179251883Speter      fi
3180251883Speter      install_libdir="$2"
3181251883Speter
3182251883Speter      oldlibs=
3183251883Speter      if test -z "$rpath"; then
3184251883Speter	if test "$build_libtool_libs" = yes; then
3185251883Speter	  # Building a libtool convenience library.
3186251883Speter	  # Some compilers have problems with a `.al' extension so
3187251883Speter	  # convenience libraries should have the same extension an
3188251883Speter	  # archive normally would.
3189251883Speter	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3190251883Speter	  build_libtool_libs=convenience
3191251883Speter	  build_old_libs=yes
3192251883Speter	fi
3193251883Speter
3194251883Speter	if test -n "$vinfo"; then
3195251883Speter	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3196251883Speter	fi
3197251883Speter
3198251883Speter	if test -n "$release"; then
3199251883Speter	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3200251883Speter	fi
3201251883Speter      else
3202251883Speter
3203251883Speter	# Parse the version information argument.
3204251883Speter	save_ifs="$IFS"; IFS=':'
3205251883Speter	set dummy $vinfo 0 0 0
3206251883Speter	IFS="$save_ifs"
3207251883Speter
3208251883Speter	if test -n "$8"; then
3209251883Speter	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3210251883Speter	  $echo "$help" 1>&2
3211251883Speter	  exit $EXIT_FAILURE
3212251883Speter	fi
3213251883Speter
3214251883Speter	# convert absolute version numbers to libtool ages
3215251883Speter	# this retains compatibility with .la files and attempts
3216251883Speter	# to make the code below a bit more comprehensible
3217251883Speter
3218251883Speter	case $vinfo_number in
3219251883Speter	yes)
3220251883Speter	  number_major="$2"
3221251883Speter	  number_minor="$3"
3222251883Speter	  number_revision="$4"
3223251883Speter	  #
3224251883Speter	  # There are really only two kinds -- those that
3225251883Speter	  # use the current revision as the major version
3226251883Speter	  # and those that subtract age and use age as
3227251883Speter	  # a minor version.  But, then there is irix
3228251883Speter	  # which has an extra 1 added just for fun
3229251883Speter	  #
3230251883Speter	  case $version_type in
3231251883Speter	  darwin|linux|osf|windows|none)
3232251883Speter	    current=`expr $number_major + $number_minor`
3233251883Speter	    age="$number_minor"
3234251883Speter	    revision="$number_revision"
3235251883Speter	    ;;
3236251883Speter	  freebsd-aout|freebsd-elf|sunos)
3237251883Speter	    current="$number_major"
3238251883Speter	    revision="$number_minor"
3239251883Speter	    age="0"
3240251883Speter	    ;;
3241251883Speter	  irix|nonstopux)
3242251883Speter	    current=`expr $number_major + $number_minor`
3243251883Speter	    age="$number_minor"
3244251883Speter	    revision="$number_minor"
3245251883Speter	    lt_irix_increment=no
3246251883Speter	    ;;
3247251883Speter	  esac
3248251883Speter	  ;;
3249251883Speter	no)
3250251883Speter	  current="$2"
3251251883Speter	  revision="$3"
3252251883Speter	  age="$4"
3253251883Speter	  ;;
3254251883Speter	esac
3255251883Speter
3256251883Speter	# Check that each of the things are valid numbers.
3257251883Speter	case $current in
3258251883Speter	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]) ;;
3259251883Speter	*)
3260251883Speter	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3261251883Speter	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3262251883Speter	  exit $EXIT_FAILURE
3263251883Speter	  ;;
3264251883Speter	esac
3265251883Speter
3266251883Speter	case $revision in
3267251883Speter	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]) ;;
3268251883Speter	*)
3269251883Speter	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3270251883Speter	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3271251883Speter	  exit $EXIT_FAILURE
3272251883Speter	  ;;
3273251883Speter	esac
3274251883Speter
3275251883Speter	case $age in
3276251883Speter	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]) ;;
3277251883Speter	*)
3278251883Speter	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3279251883Speter	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3280251883Speter	  exit $EXIT_FAILURE
3281251883Speter	  ;;
3282251883Speter	esac
3283251883Speter
3284251883Speter	if test "$age" -gt "$current"; then
3285251883Speter	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3286251883Speter	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3287251883Speter	  exit $EXIT_FAILURE
3288251883Speter	fi
3289251883Speter
3290251883Speter	# Calculate the version variables.
3291251883Speter	major=
3292251883Speter	versuffix=
3293251883Speter	verstring=
3294251883Speter	case $version_type in
3295251883Speter	none) ;;
3296251883Speter
3297251883Speter	darwin)
3298251883Speter	  # Like Linux, but with the current version available in
3299251883Speter	  # verstring for coding it into the library header
3300251883Speter	  major=.`expr $current - $age`
3301251883Speter	  versuffix="$major.$age.$revision"
3302251883Speter	  # Darwin ld doesn't like 0 for these options...
3303251883Speter	  minor_current=`expr $current + 1`
3304251883Speter	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3305251883Speter	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
3306251883Speter	  ;;
3307251883Speter
3308251883Speter	freebsd-aout)
3309251883Speter	  major=".$current"
3310251883Speter	  versuffix=".$current.$revision";
3311251883Speter	  ;;
3312251883Speter
3313251883Speter	freebsd-elf)
3314251883Speter	  major=".$current"
3315251883Speter	  versuffix=".$current";
3316251883Speter	  ;;
3317251883Speter
3318251883Speter	irix | nonstopux)
3319251883Speter	  if test "X$lt_irix_increment" = "Xno"; then
3320251883Speter	    major=`expr $current - $age`
3321251883Speter	  else
3322251883Speter	    major=`expr $current - $age + 1`
3323251883Speter	  fi
3324251883Speter	  case $version_type in
3325251883Speter	    nonstopux) verstring_prefix=nonstopux ;;
3326251883Speter	    *)         verstring_prefix=sgi ;;
3327251883Speter	  esac
3328251883Speter	  verstring="$verstring_prefix$major.$revision"
3329251883Speter
3330251883Speter	  # Add in all the interfaces that we are compatible with.
3331251883Speter	  loop=$revision
3332251883Speter	  while test "$loop" -ne 0; do
3333251883Speter	    iface=`expr $revision - $loop`
3334251883Speter	    loop=`expr $loop - 1`
3335251883Speter	    verstring="$verstring_prefix$major.$iface:$verstring"
3336251883Speter	  done
3337251883Speter
3338251883Speter	  # Before this point, $major must not contain `.'.
3339251883Speter	  major=.$major
3340251883Speter	  versuffix="$major.$revision"
3341251883Speter	  ;;
3342251883Speter
3343251883Speter	linux)
3344251883Speter	  major=.`expr $current - $age`
3345251883Speter	  versuffix="$major.$age.$revision"
3346251883Speter	  ;;
3347251883Speter
3348251883Speter	osf)
3349251883Speter	  major=.`expr $current - $age`
3350251883Speter	  versuffix=".$current.$age.$revision"
3351251883Speter	  verstring="$current.$age.$revision"
3352251883Speter
3353251883Speter	  # Add in all the interfaces that we are compatible with.
3354251883Speter	  loop=$age
3355251883Speter	  while test "$loop" -ne 0; do
3356251883Speter	    iface=`expr $current - $loop`
3357251883Speter	    loop=`expr $loop - 1`
3358251883Speter	    verstring="$verstring:${iface}.0"
3359251883Speter	  done
3360251883Speter
3361251883Speter	  # Make executables depend on our current version.
3362251883Speter	  verstring="$verstring:${current}.0"
3363251883Speter	  ;;
3364251883Speter
3365251883Speter	sunos)
3366251883Speter	  major=".$current"
3367251883Speter	  versuffix=".$current.$revision"
3368251883Speter	  ;;
3369251883Speter
3370251883Speter	windows)
3371251883Speter	  # Use '-' rather than '.', since we only want one
3372251883Speter	  # extension on DOS 8.3 filesystems.
3373251883Speter	  major=`expr $current - $age`
3374251883Speter	  versuffix="-$major"
3375251883Speter	  ;;
3376251883Speter
3377251883Speter	*)
3378251883Speter	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3379251883Speter	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3380251883Speter	  exit $EXIT_FAILURE
3381251883Speter	  ;;
3382251883Speter	esac
3383251883Speter
3384251883Speter	# Clear the version info if we defaulted, and they specified a release.
3385251883Speter	if test -z "$vinfo" && test -n "$release"; then
3386251883Speter	  major=
3387251883Speter	  case $version_type in
3388251883Speter	  darwin)
3389251883Speter	    # we can't check for "0.0" in archive_cmds due to quoting
3390251883Speter	    # problems, so we reset it completely
3391251883Speter	    verstring=
3392251883Speter	    ;;
3393251883Speter	  *)
3394251883Speter	    verstring="0.0"
3395251883Speter	    ;;
3396251883Speter	  esac
3397251883Speter	  if test "$need_version" = no; then
3398251883Speter	    versuffix=
3399251883Speter	  else
3400251883Speter	    versuffix=".0.0"
3401251883Speter	  fi
3402251883Speter	fi
3403251883Speter
3404251883Speter	# Remove version info from name if versioning should be avoided
3405251883Speter	if test "$avoid_version" = yes && test "$need_version" = no; then
3406251883Speter	  major=
3407251883Speter	  versuffix=
3408251883Speter	  verstring=""
3409251883Speter	fi
3410251883Speter
3411251883Speter	# Check to see if the archive will have undefined symbols.
3412251883Speter	if test "$allow_undefined" = yes; then
3413251883Speter	  if test "$allow_undefined_flag" = unsupported; then
3414251883Speter	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3415251883Speter	    build_libtool_libs=no
3416251883Speter	    build_old_libs=yes
3417251883Speter	  fi
3418251883Speter	else
3419251883Speter	  # Don't allow undefined symbols.
3420251883Speter	  allow_undefined_flag="$no_undefined_flag"
3421251883Speter	fi
3422251883Speter      fi
3423251883Speter
3424251883Speter      if test "$mode" != relink; then
3425251883Speter	# Remove our outputs, but don't remove object files since they
3426251883Speter	# may have been created when compiling PIC objects.
3427251883Speter	removelist=
3428251883Speter	tempremovelist=`$echo "$output_objdir/*"`
3429251883Speter	for p in $tempremovelist; do
3430251883Speter	  case $p in
3431251883Speter	    *.$objext)
3432251883Speter	       ;;
3433251883Speter	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3434251883Speter	       if test "X$precious_files_regex" != "X"; then
3435251883Speter	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3436251883Speter	         then
3437251883Speter		   continue
3438251883Speter		 fi
3439251883Speter	       fi
3440251883Speter	       removelist="$removelist $p"
3441251883Speter	       ;;
3442251883Speter	    *) ;;
3443251883Speter	  esac
3444251883Speter	done
3445251883Speter	if test -n "$removelist"; then
3446251883Speter	  $show "${rm}r $removelist"
3447251883Speter	  $run ${rm}r $removelist
3448251883Speter	fi
3449251883Speter      fi
3450251883Speter
3451251883Speter      # Now set the variables for building old libraries.
3452251883Speter      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3453251883Speter	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3454251883Speter
3455251883Speter	# Transform .lo files to .o files.
3456251883Speter	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3457251883Speter      fi
3458251883Speter
3459251883Speter      # Eliminate all temporary directories.
3460251883Speter      #for path in $notinst_path; do
3461251883Speter      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3462251883Speter      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3463251883Speter      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3464251883Speter      #done
3465251883Speter
3466251883Speter      if test -n "$xrpath"; then
3467251883Speter	# If the user specified any rpath flags, then add them.
3468251883Speter	temp_xrpath=
3469251883Speter	for libdir in $xrpath; do
3470251883Speter	  temp_xrpath="$temp_xrpath -R$libdir"
3471251883Speter	  case "$finalize_rpath " in
3472251883Speter	  *" $libdir "*) ;;
3473251883Speter	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3474251883Speter	  esac
3475251883Speter	done
3476251883Speter	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3477251883Speter	  dependency_libs="$temp_xrpath $dependency_libs"
3478251883Speter	fi
3479251883Speter      fi
3480251883Speter
3481251883Speter      # Make sure dlfiles contains only unique files that won't be dlpreopened
3482251883Speter      old_dlfiles="$dlfiles"
3483251883Speter      dlfiles=
3484251883Speter      for lib in $old_dlfiles; do
3485251883Speter	case " $dlprefiles $dlfiles " in
3486251883Speter	*" $lib "*) ;;
3487251883Speter	*) dlfiles="$dlfiles $lib" ;;
3488251883Speter	esac
3489251883Speter      done
3490251883Speter
3491251883Speter      # Make sure dlprefiles contains only unique files
3492251883Speter      old_dlprefiles="$dlprefiles"
3493251883Speter      dlprefiles=
3494251883Speter      for lib in $old_dlprefiles; do
3495251883Speter	case "$dlprefiles " in
3496251883Speter	*" $lib "*) ;;
3497251883Speter	*) dlprefiles="$dlprefiles $lib" ;;
3498251883Speter	esac
3499251883Speter      done
3500251883Speter
3501251883Speter      if test "$build_libtool_libs" = yes; then
3502251883Speter	if test -n "$rpath"; then
3503251883Speter	  case $host in
3504251883Speter	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3505251883Speter	    # these systems don't actually have a c library (as such)!
3506251883Speter	    ;;
3507251883Speter	  *-*-rhapsody* | *-*-darwin1.[012])
3508251883Speter	    # Rhapsody C library is in the System framework
3509251883Speter	    deplibs="$deplibs -framework System"
3510251883Speter	    ;;
3511251883Speter	  *-*-netbsd*)
3512251883Speter	    # Don't link with libc until the a.out ld.so is fixed.
3513251883Speter	    ;;
3514251883Speter	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3515251883Speter	    # Do not include libc due to us having libc/libc_r.
3516251883Speter	    ;;
3517251883Speter	  *-*-sco3.2v5* | *-*-sco5v6*)
3518251883Speter	    # Causes problems with __ctype
3519251883Speter	    ;;
3520251883Speter	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3521251883Speter	    # Compiler inserts libc in the correct place for threads to work
3522251883Speter	    ;;
3523251883Speter 	  *)
3524251883Speter	    # Add libc to deplibs on all other systems if necessary.
3525251883Speter	    if test "$build_libtool_need_lc" = "yes"; then
3526251883Speter	      deplibs="$deplibs -lc"
3527251883Speter	    fi
3528251883Speter	    ;;
3529251883Speter	  esac
3530251883Speter	fi
3531251883Speter
3532251883Speter	# Transform deplibs into only deplibs that can be linked in shared.
3533251883Speter	name_save=$name
3534251883Speter	libname_save=$libname
3535251883Speter	release_save=$release
3536251883Speter	versuffix_save=$versuffix
3537251883Speter	major_save=$major
3538251883Speter	# I'm not sure if I'm treating the release correctly.  I think
3539251883Speter	# release should show up in the -l (ie -lgmp5) so we don't want to
3540251883Speter	# add it in twice.  Is that correct?
3541251883Speter	release=""
3542251883Speter	versuffix=""
3543251883Speter	major=""
3544251883Speter	newdeplibs=
3545251883Speter	droppeddeps=no
3546251883Speter	case $deplibs_check_method in
3547251883Speter	pass_all)
3548251883Speter	  # Don't check for shared/static.  Everything works.
3549251883Speter	  # This might be a little naive.  We might want to check
3550251883Speter	  # whether the library exists or not.  But this is on
3551251883Speter	  # osf3 & osf4 and I'm not really sure... Just
3552251883Speter	  # implementing what was already the behavior.
3553251883Speter	  newdeplibs=$deplibs
3554251883Speter	  ;;
3555251883Speter	test_compile)
3556251883Speter	  # This code stresses the "libraries are programs" paradigm to its
3557251883Speter	  # limits. Maybe even breaks it.  We compile a program, linking it
3558251883Speter	  # against the deplibs as a proxy for the library.  Then we can check
3559251883Speter	  # whether they linked in statically or dynamically with ldd.
3560251883Speter	  $rm conftest.c
3561251883Speter	  cat > conftest.c <<EOF
3562251883Speter	  int main() { return 0; }
3563251883SpeterEOF
3564251883Speter	  $rm conftest
3565251883Speter	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
3566251883Speter	    ldd_output=`ldd conftest`
3567251883Speter	    for i in $deplibs; do
3568251883Speter	      name=`expr $i : '-l\(.*\)'`
3569251883Speter	      # If $name is empty we are operating on a -L argument.
3570251883Speter              if test "$name" != "" && test "$name" != "0"; then
3571251883Speter		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3572251883Speter		  case " $predeps $postdeps " in
3573251883Speter		  *" $i "*)
3574251883Speter		    newdeplibs="$newdeplibs $i"
3575251883Speter		    i=""
3576251883Speter		    ;;
3577251883Speter		  esac
3578251883Speter	        fi
3579251883Speter		if test -n "$i" ; then
3580251883Speter		  libname=`eval \\$echo \"$libname_spec\"`
3581251883Speter		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3582251883Speter		  set dummy $deplib_matches
3583251883Speter		  deplib_match=$2
3584251883Speter		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3585251883Speter		    newdeplibs="$newdeplibs $i"
3586251883Speter		  else
3587251883Speter		    droppeddeps=yes
3588251883Speter		    $echo
3589251883Speter		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3590251883Speter		    $echo "*** I have the capability to make that library automatically link in when"
3591251883Speter		    $echo "*** you link to this library.  But I can only do this if you have a"
3592251883Speter		    $echo "*** shared version of the library, which I believe you do not have"
3593251883Speter		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3594251883Speter		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3595251883Speter		  fi
3596251883Speter		fi
3597251883Speter	      else
3598251883Speter		newdeplibs="$newdeplibs $i"
3599251883Speter	      fi
3600251883Speter	    done
3601251883Speter	  else
3602251883Speter	    # Error occurred in the first compile.  Let's try to salvage
3603251883Speter	    # the situation: Compile a separate program for each library.
3604251883Speter	    for i in $deplibs; do
3605251883Speter	      name=`expr $i : '-l\(.*\)'`
3606251883Speter	      # If $name is empty we are operating on a -L argument.
3607251883Speter              if test "$name" != "" && test "$name" != "0"; then
3608251883Speter		$rm conftest
3609251883Speter		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
3610251883Speter		  ldd_output=`ldd conftest`
3611251883Speter		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3612251883Speter		    case " $predeps $postdeps " in
3613251883Speter		    *" $i "*)
3614251883Speter		      newdeplibs="$newdeplibs $i"
3615251883Speter		      i=""
3616251883Speter		      ;;
3617251883Speter		    esac
3618251883Speter		  fi
3619251883Speter		  if test -n "$i" ; then
3620251883Speter		    libname=`eval \\$echo \"$libname_spec\"`
3621251883Speter		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3622251883Speter		    set dummy $deplib_matches
3623251883Speter		    deplib_match=$2
3624251883Speter		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3625251883Speter		      newdeplibs="$newdeplibs $i"
3626251883Speter		    else
3627251883Speter		      droppeddeps=yes
3628251883Speter		      $echo
3629251883Speter		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3630251883Speter		      $echo "*** I have the capability to make that library automatically link in when"
3631251883Speter		      $echo "*** you link to this library.  But I can only do this if you have a"
3632251883Speter		      $echo "*** shared version of the library, which you do not appear to have"
3633251883Speter		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3634251883Speter		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3635251883Speter		    fi
3636251883Speter		  fi
3637251883Speter		else
3638251883Speter		  droppeddeps=yes
3639251883Speter		  $echo
3640251883Speter		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3641251883Speter		  $echo "*** make it link in!  You will probably need to install it or some"
3642251883Speter		  $echo "*** library that it depends on before this library will be fully"
3643251883Speter		  $echo "*** functional.  Installing it before continuing would be even better."
3644251883Speter		fi
3645251883Speter	      else
3646251883Speter		newdeplibs="$newdeplibs $i"
3647251883Speter	      fi
3648251883Speter	    done
3649251883Speter	  fi
3650251883Speter	  ;;
3651251883Speter	file_magic*)
3652251883Speter	  set dummy $deplibs_check_method
3653251883Speter	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3654251883Speter	  for a_deplib in $deplibs; do
3655251883Speter	    name=`expr $a_deplib : '-l\(.*\)'`
3656251883Speter	    # If $name is empty we are operating on a -L argument.
3657251883Speter            if test "$name" != "" && test  "$name" != "0"; then
3658251883Speter	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3659251883Speter		case " $predeps $postdeps " in
3660251883Speter		*" $a_deplib "*)
3661251883Speter		  newdeplibs="$newdeplibs $a_deplib"
3662251883Speter		  a_deplib=""
3663251883Speter		  ;;
3664251883Speter		esac
3665251883Speter	      fi
3666251883Speter	      if test -n "$a_deplib" ; then
3667251883Speter		libname=`eval \\$echo \"$libname_spec\"`
3668251883Speter		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3669251883Speter		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3670251883Speter		  for potent_lib in $potential_libs; do
3671251883Speter		      # Follow soft links.
3672251883Speter		      if ls -lLd "$potent_lib" 2>/dev/null \
3673251883Speter			 | grep " -> " >/dev/null; then
3674251883Speter			continue
3675251883Speter		      fi
3676251883Speter		      # The statement above tries to avoid entering an
3677251883Speter		      # endless loop below, in case of cyclic links.
3678251883Speter		      # We might still enter an endless loop, since a link
3679251883Speter		      # loop can be closed while we follow links,
3680251883Speter		      # but so what?
3681251883Speter		      potlib="$potent_lib"
3682251883Speter		      while test -h "$potlib" 2>/dev/null; do
3683251883Speter			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3684251883Speter			case $potliblink in
3685251883Speter			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3686251883Speter			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3687251883Speter			esac
3688251883Speter		      done
3689251883Speter		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3690251883Speter			 | ${SED} 10q \
3691251883Speter			 | $EGREP "$file_magic_regex" > /dev/null; then
3692251883Speter			newdeplibs="$newdeplibs $a_deplib"
3693251883Speter			a_deplib=""
3694251883Speter			break 2
3695251883Speter		      fi
3696251883Speter		  done
3697251883Speter		done
3698251883Speter	      fi
3699251883Speter	      if test -n "$a_deplib" ; then
3700251883Speter		droppeddeps=yes
3701251883Speter		$echo
3702251883Speter		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3703251883Speter		$echo "*** I have the capability to make that library automatically link in when"
3704251883Speter		$echo "*** you link to this library.  But I can only do this if you have a"
3705251883Speter		$echo "*** shared version of the library, which you do not appear to have"
3706251883Speter		$echo "*** because I did check the linker path looking for a file starting"
3707251883Speter		if test -z "$potlib" ; then
3708251883Speter		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3709251883Speter		else
3710251883Speter		  $echo "*** with $libname and none of the candidates passed a file format test"
3711251883Speter		  $echo "*** using a file magic. Last file checked: $potlib"
3712251883Speter		fi
3713251883Speter	      fi
3714251883Speter	    else
3715251883Speter	      # Add a -L argument.
3716251883Speter	      newdeplibs="$newdeplibs $a_deplib"
3717251883Speter	    fi
3718251883Speter	  done # Gone through all deplibs.
3719251883Speter	  ;;
3720251883Speter	match_pattern*)
3721251883Speter	  set dummy $deplibs_check_method
3722251883Speter	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3723251883Speter	  for a_deplib in $deplibs; do
3724251883Speter	    name=`expr $a_deplib : '-l\(.*\)'`
3725251883Speter	    # If $name is empty we are operating on a -L argument.
3726251883Speter	    if test -n "$name" && test "$name" != "0"; then
3727251883Speter	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3728251883Speter		case " $predeps $postdeps " in
3729251883Speter		*" $a_deplib "*)
3730251883Speter		  newdeplibs="$newdeplibs $a_deplib"
3731251883Speter		  a_deplib=""
3732251883Speter		  ;;
3733251883Speter		esac
3734251883Speter	      fi
3735251883Speter	      if test -n "$a_deplib" ; then
3736251883Speter		libname=`eval \\$echo \"$libname_spec\"`
3737251883Speter		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3738251883Speter		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3739251883Speter		  for potent_lib in $potential_libs; do
3740251883Speter		    potlib="$potent_lib" # see symlink-check above in file_magic test
3741251883Speter		    if eval $echo \"$potent_lib\" 2>/dev/null \
3742251883Speter		        | ${SED} 10q \
3743251883Speter		        | $EGREP "$match_pattern_regex" > /dev/null; then
3744251883Speter		      newdeplibs="$newdeplibs $a_deplib"
3745251883Speter		      a_deplib=""
3746251883Speter		      break 2
3747251883Speter		    fi
3748251883Speter		  done
3749251883Speter		done
3750251883Speter	      fi
3751251883Speter	      if test -n "$a_deplib" ; then
3752251883Speter		droppeddeps=yes
3753251883Speter		$echo
3754251883Speter		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3755251883Speter		$echo "*** I have the capability to make that library automatically link in when"
3756251883Speter		$echo "*** you link to this library.  But I can only do this if you have a"
3757251883Speter		$echo "*** shared version of the library, which you do not appear to have"
3758251883Speter		$echo "*** because I did check the linker path looking for a file starting"
3759251883Speter		if test -z "$potlib" ; then
3760251883Speter		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3761251883Speter		else
3762251883Speter		  $echo "*** with $libname and none of the candidates passed a file format test"
3763251883Speter		  $echo "*** using a regex pattern. Last file checked: $potlib"
3764251883Speter		fi
3765251883Speter	      fi
3766251883Speter	    else
3767251883Speter	      # Add a -L argument.
3768251883Speter	      newdeplibs="$newdeplibs $a_deplib"
3769251883Speter	    fi
3770251883Speter	  done # Gone through all deplibs.
3771251883Speter	  ;;
3772251883Speter	none | unknown | *)
3773251883Speter	  newdeplibs=""
3774251883Speter	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3775251883Speter	    -e 's/ -[LR][^ ]*//g'`
3776251883Speter	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3777251883Speter	    for i in $predeps $postdeps ; do
3778251883Speter	      # can't use Xsed below, because $i might contain '/'
3779251883Speter	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3780251883Speter	    done
3781251883Speter	  fi
3782251883Speter	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3783251883Speter	    | grep . >/dev/null; then
3784251883Speter	    $echo
3785251883Speter	    if test "X$deplibs_check_method" = "Xnone"; then
3786251883Speter	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3787251883Speter	    else
3788251883Speter	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3789251883Speter	    fi
3790251883Speter	    $echo "*** All declared inter-library dependencies are being dropped."
3791251883Speter	    droppeddeps=yes
3792251883Speter	  fi
3793251883Speter	  ;;
3794251883Speter	esac
3795251883Speter	versuffix=$versuffix_save
3796251883Speter	major=$major_save
3797251883Speter	release=$release_save
3798251883Speter	libname=$libname_save
3799251883Speter	name=$name_save
3800251883Speter
3801251883Speter	case $host in
3802251883Speter	*-*-rhapsody* | *-*-darwin1.[012])
3803251883Speter	  # On Rhapsody replace the C library is the System framework
3804251883Speter	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3805251883Speter	  ;;
3806251883Speter	esac
3807251883Speter
3808251883Speter	if test "$droppeddeps" = yes; then
3809251883Speter	  if test "$module" = yes; then
3810251883Speter	    $echo
3811251883Speter	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3812251883Speter	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3813251883Speter	    $echo "*** a static module, that should work as long as the dlopening"
3814251883Speter	    $echo "*** application is linked with the -dlopen flag."
3815251883Speter	    if test -z "$global_symbol_pipe"; then
3816251883Speter	      $echo
3817251883Speter	      $echo "*** However, this would only work if libtool was able to extract symbol"
3818251883Speter	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3819251883Speter	      $echo "*** not find such a program.  So, this module is probably useless."
3820251883Speter	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3821251883Speter	    fi
3822251883Speter	    if test "$build_old_libs" = no; then
3823251883Speter	      oldlibs="$output_objdir/$libname.$libext"
3824251883Speter	      build_libtool_libs=module
3825251883Speter	      build_old_libs=yes
3826251883Speter	    else
3827251883Speter	      build_libtool_libs=no
3828251883Speter	    fi
3829251883Speter	  else
3830251883Speter	    $echo "*** The inter-library dependencies that have been dropped here will be"
3831251883Speter	    $echo "*** automatically added whenever a program is linked with this library"
3832251883Speter	    $echo "*** or is declared to -dlopen it."
3833251883Speter
3834251883Speter	    if test "$allow_undefined" = no; then
3835251883Speter	      $echo
3836251883Speter	      $echo "*** Since this library must not contain undefined symbols,"
3837251883Speter	      $echo "*** because either the platform does not support them or"
3838251883Speter	      $echo "*** it was explicitly requested with -no-undefined,"
3839251883Speter	      $echo "*** libtool will only create a static version of it."
3840251883Speter	      if test "$build_old_libs" = no; then
3841251883Speter		oldlibs="$output_objdir/$libname.$libext"
3842251883Speter		build_libtool_libs=module
3843251883Speter		build_old_libs=yes
3844251883Speter	      else
3845251883Speter		build_libtool_libs=no
3846251883Speter	      fi
3847251883Speter	    fi
3848251883Speter	  fi
3849251883Speter	fi
3850251883Speter	# Done checking deplibs!
3851251883Speter	deplibs=$newdeplibs
3852251883Speter      fi
3853251883Speter
3854251883Speter
3855251883Speter      # move library search paths that coincide with paths to not yet
3856251883Speter      # installed libraries to the beginning of the library search list
3857251883Speter      new_libs=
3858251883Speter      for path in $notinst_path; do
3859251883Speter	case " $new_libs " in
3860251883Speter	*" -L$path/$objdir "*) ;;
3861251883Speter	*)
3862251883Speter	  case " $deplibs " in
3863251883Speter	  *" -L$path/$objdir "*)
3864251883Speter	    new_libs="$new_libs -L$path/$objdir" ;;
3865251883Speter	  esac
3866251883Speter	  ;;
3867251883Speter	esac
3868251883Speter      done
3869251883Speter      for deplib in $deplibs; do
3870251883Speter	case $deplib in
3871251883Speter	-L*)
3872251883Speter	  case " $new_libs " in
3873251883Speter	  *" $deplib "*) ;;
3874251883Speter	  *) new_libs="$new_libs $deplib" ;;
3875251883Speter	  esac
3876251883Speter	  ;;
3877251883Speter	*) new_libs="$new_libs $deplib" ;;
3878251883Speter	esac
3879251883Speter      done
3880251883Speter      deplibs="$new_libs"
3881251883Speter
3882251883Speter
3883251883Speter      # All the library-specific variables (install_libdir is set above).
3884251883Speter      library_names=
3885251883Speter      old_library=
3886251883Speter      dlname=
3887251883Speter
3888251883Speter      # Test again, we may have decided not to build it any more
3889251883Speter      if test "$build_libtool_libs" = yes; then
3890251883Speter	if test "$hardcode_into_libs" = yes; then
3891251883Speter	  # Hardcode the library paths
3892251883Speter	  hardcode_libdirs=
3893251883Speter	  dep_rpath=
3894251883Speter	  rpath="$finalize_rpath"
3895251883Speter	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3896251883Speter	  for libdir in $rpath; do
3897251883Speter	    if test -n "$hardcode_libdir_flag_spec"; then
3898251883Speter	      if test -n "$hardcode_libdir_separator"; then
3899251883Speter		if test -z "$hardcode_libdirs"; then
3900251883Speter		  hardcode_libdirs="$libdir"
3901251883Speter		else
3902251883Speter		  # Just accumulate the unique libdirs.
3903251883Speter		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3904251883Speter		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3905251883Speter		    ;;
3906251883Speter		  *)
3907251883Speter		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3908251883Speter		    ;;
3909251883Speter		  esac
3910251883Speter		fi
3911251883Speter	      else
3912251883Speter		eval flag=\"$hardcode_libdir_flag_spec\"
3913251883Speter		dep_rpath="$dep_rpath $flag"
3914251883Speter	      fi
3915251883Speter	    elif test -n "$runpath_var"; then
3916251883Speter	      case "$perm_rpath " in
3917251883Speter	      *" $libdir "*) ;;
3918251883Speter	      *) perm_rpath="$perm_rpath $libdir" ;;
3919251883Speter	      esac
3920251883Speter	    fi
3921251883Speter	  done
3922251883Speter	  # Substitute the hardcoded libdirs into the rpath.
3923251883Speter	  if test -n "$hardcode_libdir_separator" &&
3924251883Speter	     test -n "$hardcode_libdirs"; then
3925251883Speter	    libdir="$hardcode_libdirs"
3926251883Speter	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3927251883Speter	      case $archive_cmds in
3928251883Speter	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
3929251883Speter	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
3930251883Speter	      esac
3931251883Speter	    else
3932251883Speter	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3933251883Speter	    fi
3934251883Speter	  fi
3935251883Speter	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3936251883Speter	    # We should set the runpath_var.
3937251883Speter	    rpath=
3938251883Speter	    for dir in $perm_rpath; do
3939251883Speter	      rpath="$rpath$dir:"
3940251883Speter	    done
3941251883Speter	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3942251883Speter	  fi
3943251883Speter	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3944251883Speter	fi
3945251883Speter
3946251883Speter	shlibpath="$finalize_shlibpath"
3947251883Speter	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3948251883Speter	if test -n "$shlibpath"; then
3949251883Speter	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3950251883Speter	fi
3951251883Speter
3952251883Speter	# Get the real and link names of the library.
3953251883Speter	eval shared_ext=\"$shrext_cmds\"
3954251883Speter	eval library_names=\"$library_names_spec\"
3955251883Speter	set dummy $library_names
3956251883Speter	realname="$2"
3957251883Speter	shift; shift
3958251883Speter
3959251883Speter	if test -n "$soname_spec"; then
3960251883Speter	  eval soname=\"$soname_spec\"
3961251883Speter	else
3962251883Speter	  soname="$realname"
3963251883Speter	fi
3964251883Speter	if test -z "$dlname"; then
3965251883Speter	  dlname=$soname
3966251883Speter	fi
3967251883Speter
3968251883Speter	lib="$output_objdir/$realname"
3969251883Speter	linknames=
3970251883Speter	for link
3971251883Speter	do
3972251883Speter	  linknames="$linknames $link"
3973251883Speter	done
3974251883Speter
3975251883Speter	# Use standard objects if they are pic
3976251883Speter	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3977251883Speter
3978251883Speter	# Prepare the list of exported symbols
3979251883Speter	if test -z "$export_symbols"; then
3980251883Speter	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3981251883Speter	    $show "generating symbol list for \`$libname.la'"
3982251883Speter	    export_symbols="$output_objdir/$libname.exp"
3983251883Speter	    $run $rm $export_symbols
3984251883Speter	    cmds=$export_symbols_cmds
3985251883Speter	    save_ifs="$IFS"; IFS='~'
3986251883Speter	    for cmd in $cmds; do
3987251883Speter	      IFS="$save_ifs"
3988251883Speter	      eval cmd=\"$cmd\"
3989251883Speter	      if len=`expr "X$cmd" : ".*"` &&
3990251883Speter	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3991251883Speter	        $show "$cmd"
3992251883Speter	        $run eval "$cmd" || exit $?
3993251883Speter	        skipped_export=false
3994251883Speter	      else
3995251883Speter	        # The command line is too long to execute in one step.
3996251883Speter	        $show "using reloadable object file for export list..."
3997251883Speter	        skipped_export=:
3998251883Speter		# Break out early, otherwise skipped_export may be
3999251883Speter		# set to false by a later but shorter cmd.
4000251883Speter		break
4001251883Speter	      fi
4002251883Speter	    done
4003251883Speter	    IFS="$save_ifs"
4004251883Speter	    if test -n "$export_symbols_regex"; then
4005251883Speter	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
4006251883Speter	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
4007251883Speter	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
4008251883Speter	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
4009251883Speter	    fi
4010251883Speter	  fi
4011251883Speter	fi
4012251883Speter
4013251883Speter	if test -n "$export_symbols" && test -n "$include_expsyms"; then
4014251883Speter	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
4015251883Speter	fi
4016251883Speter
4017251883Speter	tmp_deplibs=
4018251883Speter	for test_deplib in $deplibs; do
4019251883Speter		case " $convenience " in
4020251883Speter		*" $test_deplib "*) ;;
4021251883Speter		*)
4022251883Speter			tmp_deplibs="$tmp_deplibs $test_deplib"
4023251883Speter			;;
4024251883Speter		esac
4025251883Speter	done
4026251883Speter	deplibs="$tmp_deplibs"
4027251883Speter
4028251883Speter	if test -n "$convenience"; then
4029251883Speter	  if test -n "$whole_archive_flag_spec"; then
4030251883Speter	    save_libobjs=$libobjs
4031251883Speter	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4032251883Speter	  else
4033251883Speter	    gentop="$output_objdir/${outputname}x"
4034251883Speter	    generated="$generated $gentop"
4035251883Speter
4036251883Speter	    func_extract_archives $gentop $convenience
4037251883Speter	    libobjs="$libobjs $func_extract_archives_result"
4038251883Speter	  fi
4039251883Speter	fi
4040251883Speter	
4041251883Speter	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
4042251883Speter	  eval flag=\"$thread_safe_flag_spec\"
4043251883Speter	  linker_flags="$linker_flags $flag"
4044251883Speter	fi
4045251883Speter
4046251883Speter	# Make a backup of the uninstalled library when relinking
4047251883Speter	if test "$mode" = relink; then
4048251883Speter	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4049251883Speter	fi
4050251883Speter
4051251883Speter	# Do each of the archive commands.
4052251883Speter	if test "$module" = yes && test -n "$module_cmds" ; then
4053251883Speter	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4054251883Speter	    eval test_cmds=\"$module_expsym_cmds\"
4055251883Speter	    cmds=$module_expsym_cmds
4056251883Speter	  else
4057251883Speter	    eval test_cmds=\"$module_cmds\"
4058251883Speter	    cmds=$module_cmds
4059251883Speter	  fi
4060251883Speter	else
4061251883Speter	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4062251883Speter	  eval test_cmds=\"$archive_expsym_cmds\"
4063251883Speter	  cmds=$archive_expsym_cmds
4064251883Speter	else
4065251883Speter	  eval test_cmds=\"$archive_cmds\"
4066251883Speter	  cmds=$archive_cmds
4067251883Speter	  fi
4068251883Speter	fi
4069251883Speter
4070251883Speter	if test "X$skipped_export" != "X:" &&
4071251883Speter	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4072251883Speter	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4073251883Speter	  :
4074251883Speter	else
4075251883Speter	  # The command line is too long to link in one step, link piecewise.
4076251883Speter	  $echo "creating reloadable object files..."
4077251883Speter
4078251883Speter	  # Save the value of $output and $libobjs because we want to
4079251883Speter	  # use them later.  If we have whole_archive_flag_spec, we
4080251883Speter	  # want to use save_libobjs as it was before
4081251883Speter	  # whole_archive_flag_spec was expanded, because we can't
4082251883Speter	  # assume the linker understands whole_archive_flag_spec.
4083251883Speter	  # This may have to be revisited, in case too many
4084251883Speter	  # convenience libraries get linked in and end up exceeding
4085251883Speter	  # the spec.
4086251883Speter	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4087251883Speter	    save_libobjs=$libobjs
4088251883Speter	  fi
4089251883Speter	  save_output=$output
4090251883Speter	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4091251883Speter
4092251883Speter	  # Clear the reloadable object creation command queue and
4093251883Speter	  # initialize k to one.
4094251883Speter	  test_cmds=
4095251883Speter	  concat_cmds=
4096251883Speter	  objlist=
4097251883Speter	  delfiles=
4098251883Speter	  last_robj=
4099251883Speter	  k=1
4100251883Speter	  output=$output_objdir/$output_la-${k}.$objext
4101251883Speter	  # Loop over the list of objects to be linked.
4102251883Speter	  for obj in $save_libobjs
4103251883Speter	  do
4104251883Speter	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4105251883Speter	    if test "X$objlist" = X ||
4106251883Speter	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4107251883Speter		 test "$len" -le "$max_cmd_len"; }; then
4108251883Speter	      objlist="$objlist $obj"
4109251883Speter	    else
4110251883Speter	      # The command $test_cmds is almost too long, add a
4111251883Speter	      # command to the queue.
4112251883Speter	      if test "$k" -eq 1 ; then
4113251883Speter		# The first file doesn't have a previous command to add.
4114251883Speter		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4115251883Speter	      else
4116251883Speter		# All subsequent reloadable object files will link in
4117251883Speter		# the last one created.
4118251883Speter		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4119251883Speter	      fi
4120251883Speter	      last_robj=$output_objdir/$output_la-${k}.$objext
4121251883Speter	      k=`expr $k + 1`
4122251883Speter	      output=$output_objdir/$output_la-${k}.$objext
4123251883Speter	      objlist=$obj
4124251883Speter	      len=1
4125251883Speter	    fi
4126251883Speter	  done
4127251883Speter	  # Handle the remaining objects by creating one last
4128251883Speter	  # reloadable object file.  All subsequent reloadable object
4129251883Speter	  # files will link in the last one created.
4130251883Speter	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4131251883Speter	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4132251883Speter
4133251883Speter	  if ${skipped_export-false}; then
4134251883Speter	    $show "generating symbol list for \`$libname.la'"
4135251883Speter	    export_symbols="$output_objdir/$libname.exp"
4136251883Speter	    $run $rm $export_symbols
4137251883Speter	    libobjs=$output
4138251883Speter	    # Append the command to create the export file.
4139251883Speter	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4140251883Speter          fi
4141251883Speter
4142251883Speter	  # Set up a command to remove the reloadable object files
4143251883Speter	  # after they are used.
4144251883Speter	  i=0
4145251883Speter	  while test "$i" -lt "$k"
4146251883Speter	  do
4147251883Speter	    i=`expr $i + 1`
4148251883Speter	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4149251883Speter	  done
4150251883Speter
4151251883Speter	  $echo "creating a temporary reloadable object file: $output"
4152251883Speter
4153251883Speter	  # Loop through the commands generated above and execute them.
4154251883Speter	  save_ifs="$IFS"; IFS='~'
4155251883Speter	  for cmd in $concat_cmds; do
4156251883Speter	    IFS="$save_ifs"
4157251883Speter	    $show "$cmd"
4158251883Speter	    $run eval "$cmd" || exit $?
4159251883Speter	  done
4160251883Speter	  IFS="$save_ifs"
4161251883Speter
4162251883Speter	  libobjs=$output
4163251883Speter	  # Restore the value of output.
4164251883Speter	  output=$save_output
4165251883Speter
4166251883Speter	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4167251883Speter	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4168251883Speter	  fi
4169251883Speter	  # Expand the library linking commands again to reset the
4170251883Speter	  # value of $libobjs for piecewise linking.
4171251883Speter
4172251883Speter	  # Do each of the archive commands.
4173251883Speter	  if test "$module" = yes && test -n "$module_cmds" ; then
4174251883Speter	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4175251883Speter	      cmds=$module_expsym_cmds
4176251883Speter	    else
4177251883Speter	      cmds=$module_cmds
4178251883Speter	    fi
4179251883Speter	  else
4180251883Speter	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4181251883Speter	    cmds=$archive_expsym_cmds
4182251883Speter	  else
4183251883Speter	    cmds=$archive_cmds
4184251883Speter	    fi
4185251883Speter	  fi
4186251883Speter
4187251883Speter	  # Append the command to remove the reloadable object files
4188251883Speter	  # to the just-reset $cmds.
4189251883Speter	  eval cmds=\"\$cmds~\$rm $delfiles\"
4190251883Speter	fi
4191251883Speter	save_ifs="$IFS"; IFS='~'
4192251883Speter	for cmd in $cmds; do
4193251883Speter	  IFS="$save_ifs"
4194251883Speter	  eval cmd=\"$cmd\"
4195251883Speter	  $show "$cmd"
4196251883Speter	  $run eval "$cmd" || {
4197251883Speter	    lt_exit=$?
4198251883Speter
4199251883Speter	    # Restore the uninstalled library and exit
4200251883Speter	    if test "$mode" = relink; then
4201251883Speter	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4202251883Speter	    fi
4203251883Speter
4204251883Speter	    exit $lt_exit
4205251883Speter	  }
4206251883Speter	done
4207251883Speter	IFS="$save_ifs"
4208251883Speter
4209251883Speter	# Restore the uninstalled library and exit
4210251883Speter	if test "$mode" = relink; then
4211251883Speter	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4212251883Speter
4213251883Speter	  if test -n "$convenience"; then
4214251883Speter	    if test -z "$whole_archive_flag_spec"; then
4215251883Speter	      $show "${rm}r $gentop"
4216251883Speter	      $run ${rm}r "$gentop"
4217251883Speter	    fi
4218251883Speter	  fi
4219251883Speter
4220251883Speter	  exit $EXIT_SUCCESS
4221251883Speter	fi
4222251883Speter
4223251883Speter	# Create links to the real library.
4224251883Speter	for linkname in $linknames; do
4225251883Speter	  if test "$realname" != "$linkname"; then
4226251883Speter	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4227251883Speter	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4228251883Speter	  fi
4229251883Speter	done
4230251883Speter
4231251883Speter	# If -module or -export-dynamic was specified, set the dlname.
4232251883Speter	if test "$module" = yes || test "$export_dynamic" = yes; then
4233251883Speter	  # On all known operating systems, these are identical.
4234251883Speter	  dlname="$soname"
4235251883Speter	fi
4236251883Speter      fi
4237251883Speter      ;;
4238251883Speter
4239251883Speter    obj)
4240251883Speter      if test -n "$deplibs"; then
4241251883Speter	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4242251883Speter      fi
4243251883Speter
4244251883Speter      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4245251883Speter	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4246251883Speter      fi
4247251883Speter
4248251883Speter      if test -n "$rpath"; then
4249251883Speter	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4250251883Speter      fi
4251251883Speter
4252251883Speter      if test -n "$xrpath"; then
4253251883Speter	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4254251883Speter      fi
4255251883Speter
4256251883Speter      if test -n "$vinfo"; then
4257251883Speter	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4258251883Speter      fi
4259251883Speter
4260251883Speter      if test -n "$release"; then
4261251883Speter	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4262251883Speter      fi
4263251883Speter
4264251883Speter      case $output in
4265251883Speter      *.lo)
4266251883Speter	if test -n "$objs$old_deplibs"; then
4267251883Speter	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4268251883Speter	  exit $EXIT_FAILURE
4269251883Speter	fi
4270251883Speter	libobj="$output"
4271251883Speter	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4272251883Speter	;;
4273251883Speter      *)
4274251883Speter	libobj=
4275251883Speter	obj="$output"
4276251883Speter	;;
4277251883Speter      esac
4278251883Speter
4279251883Speter      # Delete the old objects.
4280251883Speter      $run $rm $obj $libobj
4281251883Speter
4282251883Speter      # Objects from convenience libraries.  This assumes
4283251883Speter      # single-version convenience libraries.  Whenever we create
4284251883Speter      # different ones for PIC/non-PIC, this we'll have to duplicate
4285251883Speter      # the extraction.
4286251883Speter      reload_conv_objs=
4287251883Speter      gentop=
4288251883Speter      # reload_cmds runs $LD directly, so let us get rid of
4289251883Speter      # -Wl from whole_archive_flag_spec and hope we can get by with
4290251883Speter      # turning comma into space..
4291251883Speter      wl=
4292251883Speter
4293251883Speter      if test -n "$convenience"; then
4294251883Speter	if test -n "$whole_archive_flag_spec"; then
4295251883Speter	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
4296251883Speter	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
4297251883Speter	else
4298251883Speter	  gentop="$output_objdir/${obj}x"
4299251883Speter	  generated="$generated $gentop"
4300251883Speter
4301251883Speter	  func_extract_archives $gentop $convenience
4302251883Speter	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4303251883Speter	fi
4304251883Speter      fi
4305251883Speter
4306251883Speter      # Create the old-style object.
4307251883Speter      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
4308251883Speter
4309251883Speter      output="$obj"
4310251883Speter      cmds=$reload_cmds
4311251883Speter      save_ifs="$IFS"; IFS='~'
4312251883Speter      for cmd in $cmds; do
4313251883Speter	IFS="$save_ifs"
4314251883Speter	eval cmd=\"$cmd\"
4315251883Speter	$show "$cmd"
4316251883Speter	$run eval "$cmd" || exit $?
4317251883Speter      done
4318251883Speter      IFS="$save_ifs"
4319251883Speter
4320251883Speter      # Exit if we aren't doing a library object file.
4321251883Speter      if test -z "$libobj"; then
4322251883Speter	if test -n "$gentop"; then
4323251883Speter	  $show "${rm}r $gentop"
4324251883Speter	  $run ${rm}r $gentop
4325251883Speter	fi
4326251883Speter
4327251883Speter	exit $EXIT_SUCCESS
4328251883Speter      fi
4329251883Speter
4330251883Speter      if test "$build_libtool_libs" != yes; then
4331251883Speter	if test -n "$gentop"; then
4332251883Speter	  $show "${rm}r $gentop"
4333251883Speter	  $run ${rm}r $gentop
4334251883Speter	fi
4335251883Speter
4336251883Speter	# Create an invalid libtool object if no PIC, so that we don't
4337251883Speter	# accidentally link it into a program.
4338251883Speter	# $show "echo timestamp > $libobj"
4339251883Speter	# $run eval "echo timestamp > $libobj" || exit $?
4340251883Speter	exit $EXIT_SUCCESS
4341251883Speter      fi
4342251883Speter
4343251883Speter      if test -n "$pic_flag" || test "$pic_mode" != default; then
4344251883Speter	# Only do commands if we really have different PIC objects.
4345251883Speter	reload_objs="$libobjs $reload_conv_objs"
4346251883Speter	output="$libobj"
4347251883Speter	cmds=$reload_cmds
4348251883Speter	save_ifs="$IFS"; IFS='~'
4349251883Speter	for cmd in $cmds; do
4350251883Speter	  IFS="$save_ifs"
4351251883Speter	  eval cmd=\"$cmd\"
4352251883Speter	  $show "$cmd"
4353251883Speter	  $run eval "$cmd" || exit $?
4354251883Speter	done
4355251883Speter	IFS="$save_ifs"
4356251883Speter      fi
4357251883Speter
4358251883Speter      if test -n "$gentop"; then
4359251883Speter	$show "${rm}r $gentop"
4360251883Speter	$run ${rm}r $gentop
4361251883Speter      fi
4362251883Speter
4363251883Speter      exit $EXIT_SUCCESS
4364251883Speter      ;;
4365251883Speter
4366251883Speter    prog)
4367251883Speter      case $host in
4368251883Speter	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4369251883Speter      esac
4370251883Speter      if test -n "$vinfo"; then
4371251883Speter	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4372251883Speter      fi
4373251883Speter
4374251883Speter      if test -n "$release"; then
4375251883Speter	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4376251883Speter      fi
4377251883Speter
4378251883Speter      if test "$preload" = yes; then
4379251883Speter	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4380251883Speter	   test "$dlopen_self_static" = unknown; then
4381251883Speter	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4382251883Speter	fi
4383251883Speter      fi
4384251883Speter
4385251883Speter      case $host in
4386251883Speter      *-*-rhapsody* | *-*-darwin1.[012])
4387251883Speter	# On Rhapsody replace the C library is the System framework
4388251883Speter	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4389251883Speter	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4390251883Speter	;;
4391251883Speter      esac
4392251883Speter
4393251883Speter      case $host in
4394251883Speter      *darwin*)
4395251883Speter        # Don't allow lazy linking, it breaks C++ global constructors
4396251883Speter        if test "$tagname" = CXX ; then
4397251883Speter        compile_command="$compile_command ${wl}-bind_at_load"
4398251883Speter        finalize_command="$finalize_command ${wl}-bind_at_load"
4399251883Speter        fi
4400251883Speter        ;;
4401251883Speter      esac
4402251883Speter
4403251883Speter
4404251883Speter      # move library search paths that coincide with paths to not yet
4405251883Speter      # installed libraries to the beginning of the library search list
4406251883Speter      new_libs=
4407251883Speter      for path in $notinst_path; do
4408251883Speter	case " $new_libs " in
4409251883Speter	*" -L$path/$objdir "*) ;;
4410251883Speter	*)
4411251883Speter	  case " $compile_deplibs " in
4412251883Speter	  *" -L$path/$objdir "*)
4413251883Speter	    new_libs="$new_libs -L$path/$objdir" ;;
4414251883Speter	  esac
4415251883Speter	  ;;
4416251883Speter	esac
4417251883Speter      done
4418251883Speter      for deplib in $compile_deplibs; do
4419251883Speter	case $deplib in
4420251883Speter	-L*)
4421251883Speter	  case " $new_libs " in
4422251883Speter	  *" $deplib "*) ;;
4423251883Speter	  *) new_libs="$new_libs $deplib" ;;
4424251883Speter	  esac
4425251883Speter	  ;;
4426251883Speter	*) new_libs="$new_libs $deplib" ;;
4427251883Speter	esac
4428251883Speter      done
4429251883Speter      compile_deplibs="$new_libs"
4430251883Speter
4431251883Speter
4432251883Speter      compile_command="$compile_command $compile_deplibs"
4433251883Speter      finalize_command="$finalize_command $finalize_deplibs"
4434251883Speter
4435251883Speter      if test -n "$rpath$xrpath"; then
4436251883Speter	# If the user specified any rpath flags, then add them.
4437251883Speter	for libdir in $rpath $xrpath; do
4438251883Speter	  # This is the magic to use -rpath.
4439251883Speter	  case "$finalize_rpath " in
4440251883Speter	  *" $libdir "*) ;;
4441251883Speter	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4442251883Speter	  esac
4443251883Speter	done
4444251883Speter      fi
4445251883Speter
4446251883Speter      # Now hardcode the library paths
4447251883Speter      rpath=
4448251883Speter      hardcode_libdirs=
4449251883Speter      for libdir in $compile_rpath $finalize_rpath; do
4450251883Speter	if test -n "$hardcode_libdir_flag_spec"; then
4451251883Speter	  if test -n "$hardcode_libdir_separator"; then
4452251883Speter	    if test -z "$hardcode_libdirs"; then
4453251883Speter	      hardcode_libdirs="$libdir"
4454251883Speter	    else
4455251883Speter	      # Just accumulate the unique libdirs.
4456251883Speter	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4457251883Speter	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4458251883Speter		;;
4459251883Speter	      *)
4460251883Speter		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4461251883Speter		;;
4462251883Speter	      esac
4463251883Speter	    fi
4464251883Speter	  else
4465251883Speter	    eval flag=\"$hardcode_libdir_flag_spec\"
4466251883Speter	    rpath="$rpath $flag"
4467251883Speter	  fi
4468251883Speter	elif test -n "$runpath_var"; then
4469251883Speter	  case "$perm_rpath " in
4470251883Speter	  *" $libdir "*) ;;
4471251883Speter	  *) perm_rpath="$perm_rpath $libdir" ;;
4472251883Speter	  esac
4473251883Speter	fi
4474251883Speter	case $host in
4475251883Speter	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4476251883Speter	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4477251883Speter	  case :$dllsearchpath: in
4478251883Speter	  *":$libdir:"*) ;;
4479251883Speter	  *) dllsearchpath="$dllsearchpath:$libdir";;
4480251883Speter	  esac
4481251883Speter	  case :$dllsearchpath: in
4482251883Speter	  *":$testbindir:"*) ;;
4483251883Speter	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4484251883Speter	  esac
4485251883Speter	  ;;
4486251883Speter	esac
4487251883Speter      done
4488251883Speter      # Substitute the hardcoded libdirs into the rpath.
4489251883Speter      if test -n "$hardcode_libdir_separator" &&
4490251883Speter	 test -n "$hardcode_libdirs"; then
4491251883Speter	libdir="$hardcode_libdirs"
4492251883Speter	eval rpath=\" $hardcode_libdir_flag_spec\"
4493251883Speter      fi
4494251883Speter      compile_rpath="$rpath"
4495251883Speter
4496251883Speter      rpath=
4497251883Speter      hardcode_libdirs=
4498251883Speter      for libdir in $finalize_rpath; do
4499251883Speter	if test -n "$hardcode_libdir_flag_spec"; then
4500251883Speter	  if test -n "$hardcode_libdir_separator"; then
4501251883Speter	    if test -z "$hardcode_libdirs"; then
4502251883Speter	      hardcode_libdirs="$libdir"
4503251883Speter	    else
4504251883Speter	      # Just accumulate the unique libdirs.
4505251883Speter	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4506251883Speter	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4507251883Speter		;;
4508251883Speter	      *)
4509251883Speter		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4510251883Speter		;;
4511251883Speter	      esac
4512251883Speter	    fi
4513251883Speter	  else
4514251883Speter	    eval flag=\"$hardcode_libdir_flag_spec\"
4515251883Speter	    rpath="$rpath $flag"
4516251883Speter	  fi
4517251883Speter	elif test -n "$runpath_var"; then
4518251883Speter	  case "$finalize_perm_rpath " in
4519251883Speter	  *" $libdir "*) ;;
4520251883Speter	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4521251883Speter	  esac
4522251883Speter	fi
4523251883Speter      done
4524251883Speter      # Substitute the hardcoded libdirs into the rpath.
4525251883Speter      if test -n "$hardcode_libdir_separator" &&
4526251883Speter	 test -n "$hardcode_libdirs"; then
4527251883Speter	libdir="$hardcode_libdirs"
4528251883Speter	eval rpath=\" $hardcode_libdir_flag_spec\"
4529251883Speter      fi
4530251883Speter      finalize_rpath="$rpath"
4531251883Speter
4532251883Speter      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4533251883Speter	# Transform all the library objects into standard objects.
4534251883Speter	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4535251883Speter	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4536251883Speter      fi
4537251883Speter
4538251883Speter      dlsyms=
4539251883Speter      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4540251883Speter	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4541251883Speter	  dlsyms="${outputname}S.c"
4542251883Speter	else
4543251883Speter	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4544251883Speter	fi
4545251883Speter      fi
4546251883Speter
4547251883Speter      if test -n "$dlsyms"; then
4548251883Speter	case $dlsyms in
4549251883Speter	"") ;;
4550251883Speter	*.c)
4551251883Speter	  # Discover the nlist of each of the dlfiles.
4552251883Speter	  nlist="$output_objdir/${outputname}.nm"
4553251883Speter
4554251883Speter	  $show "$rm $nlist ${nlist}S ${nlist}T"
4555251883Speter	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4556251883Speter
4557251883Speter	  # Parse the name list into a source file.
4558251883Speter	  $show "creating $output_objdir/$dlsyms"
4559251883Speter
4560251883Speter	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4561251883Speter/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4562251883Speter/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4563251883Speter
4564251883Speter#ifdef __cplusplus
4565251883Speterextern \"C\" {
4566251883Speter#endif
4567251883Speter
4568251883Speter/* Prevent the only kind of declaration conflicts we can make. */
4569251883Speter#define lt_preloaded_symbols some_other_symbol
4570251883Speter
4571251883Speter/* External symbol declarations for the compiler. */\
4572251883Speter"
4573251883Speter
4574251883Speter	  if test "$dlself" = yes; then
4575251883Speter	    $show "generating symbol list for \`$output'"
4576251883Speter
4577251883Speter	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4578251883Speter
4579251883Speter	    # Add our own program objects to the symbol list.
4580251883Speter	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4581251883Speter	    for arg in $progfiles; do
4582251883Speter	      $show "extracting global C symbols from \`$arg'"
4583251883Speter	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4584251883Speter	    done
4585251883Speter
4586251883Speter	    if test -n "$exclude_expsyms"; then
4587251883Speter	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4588251883Speter	      $run eval '$mv "$nlist"T "$nlist"'
4589251883Speter	    fi
4590251883Speter
4591251883Speter	    if test -n "$export_symbols_regex"; then
4592251883Speter	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4593251883Speter	      $run eval '$mv "$nlist"T "$nlist"'
4594251883Speter	    fi
4595251883Speter
4596251883Speter	    # Prepare the list of exported symbols
4597251883Speter	    if test -z "$export_symbols"; then
4598251883Speter	      export_symbols="$output_objdir/$outputname.exp"
4599251883Speter	      $run $rm $export_symbols
4600251883Speter	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4601251883Speter              case $host in
4602251883Speter              *cygwin* | *mingw* )
4603251883Speter	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4604251883Speter		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4605251883Speter                ;;
4606251883Speter              esac
4607251883Speter	    else
4608251883Speter	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4609251883Speter	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4610251883Speter	      $run eval 'mv "$nlist"T "$nlist"'
4611251883Speter              case $host in
4612251883Speter              *cygwin* | *mingw* )
4613251883Speter	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4614251883Speter		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4615251883Speter                ;;
4616251883Speter              esac
4617251883Speter	    fi
4618251883Speter	  fi
4619251883Speter
4620251883Speter	  for arg in $dlprefiles; do
4621251883Speter	    $show "extracting global C symbols from \`$arg'"
4622251883Speter	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4623251883Speter	    $run eval '$echo ": $name " >> "$nlist"'
4624251883Speter	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4625251883Speter	  done
4626251883Speter
4627251883Speter	  if test -z "$run"; then
4628251883Speter	    # Make sure we have at least an empty file.
4629251883Speter	    test -f "$nlist" || : > "$nlist"
4630251883Speter
4631251883Speter	    if test -n "$exclude_expsyms"; then
4632251883Speter	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4633251883Speter	      $mv "$nlist"T "$nlist"
4634251883Speter	    fi
4635251883Speter
4636251883Speter	    # Try sorting and uniquifying the output.
4637251883Speter	    if grep -v "^: " < "$nlist" |
4638251883Speter		if sort -k 3 </dev/null >/dev/null 2>&1; then
4639251883Speter		  sort -k 3
4640251883Speter		else
4641251883Speter		  sort +2
4642251883Speter		fi |
4643251883Speter		uniq > "$nlist"S; then
4644251883Speter	      :
4645251883Speter	    else
4646251883Speter	      grep -v "^: " < "$nlist" > "$nlist"S
4647251883Speter	    fi
4648251883Speter
4649251883Speter	    if test -f "$nlist"S; then
4650251883Speter	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4651251883Speter	    else
4652251883Speter	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4653251883Speter	    fi
4654251883Speter
4655251883Speter	    $echo >> "$output_objdir/$dlsyms" "\
4656251883Speter
4657251883Speter#undef lt_preloaded_symbols
4658251883Speter
4659251883Speter#if defined (__STDC__) && __STDC__
4660251883Speter# define lt_ptr void *
4661251883Speter#else
4662251883Speter# define lt_ptr char *
4663251883Speter# define const
4664251883Speter#endif
4665251883Speter
4666251883Speter/* The mapping between symbol names and symbols. */
4667251883Speter"
4668251883Speter
4669251883Speter	    case $host in
4670251883Speter	    *cygwin* | *mingw* )
4671251883Speter	  $echo >> "$output_objdir/$dlsyms" "\
4672251883Speter/* DATA imports from DLLs on WIN32 can't be const, because
4673251883Speter   runtime relocations are performed -- see ld's documentation
4674251883Speter   on pseudo-relocs */
4675251883Speterstruct {
4676251883Speter"
4677251883Speter	      ;;
4678251883Speter	    * )
4679251883Speter	  $echo >> "$output_objdir/$dlsyms" "\
4680251883Speterconst struct {
4681251883Speter"
4682251883Speter	      ;;
4683251883Speter	    esac
4684251883Speter
4685251883Speter
4686251883Speter	  $echo >> "$output_objdir/$dlsyms" "\
4687251883Speter  const char *name;
4688251883Speter  lt_ptr address;
4689251883Speter}
4690251883Speterlt_preloaded_symbols[] =
4691251883Speter{\
4692251883Speter"
4693251883Speter
4694251883Speter	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4695251883Speter
4696251883Speter	    $echo >> "$output_objdir/$dlsyms" "\
4697251883Speter  {0, (lt_ptr) 0}
4698251883Speter};
4699251883Speter
4700251883Speter/* This works around a problem in FreeBSD linker */
4701251883Speter#ifdef FREEBSD_WORKAROUND
4702251883Speterstatic const void *lt_preloaded_setup() {
4703251883Speter  return lt_preloaded_symbols;
4704251883Speter}
4705251883Speter#endif
4706251883Speter
4707251883Speter#ifdef __cplusplus
4708251883Speter}
4709251883Speter#endif\
4710251883Speter"
4711251883Speter	  fi
4712251883Speter
4713251883Speter	  pic_flag_for_symtable=
4714251883Speter	  case $host in
4715251883Speter	  # compiling the symbol table file with pic_flag works around
4716251883Speter	  # a FreeBSD bug that causes programs to crash when -lm is
4717251883Speter	  # linked before any other PIC object.  But we must not use
4718251883Speter	  # pic_flag when linking with -static.  The problem exists in
4719251883Speter	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4720251883Speter	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4721251883Speter	    case "$compile_command " in
4722251883Speter	    *" -static "*) ;;
4723251883Speter	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4724251883Speter	    esac;;
4725251883Speter	  *-*-hpux*)
4726251883Speter	    case "$compile_command " in
4727251883Speter	    *" -static "*) ;;
4728251883Speter	    *) pic_flag_for_symtable=" $pic_flag";;
4729251883Speter	    esac
4730251883Speter	  esac
4731251883Speter
4732251883Speter	  # Now compile the dynamic symbol file.
4733251883Speter	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4734251883Speter	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4735251883Speter
4736251883Speter	  # Clean up the generated files.
4737251883Speter	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4738251883Speter	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4739251883Speter
4740251883Speter	  # Transform the symbol file into the correct name.
4741251883Speter          case $host in
4742251883Speter          *cygwin* | *mingw* )
4743251883Speter            if test -f "$output_objdir/${outputname}.def" ; then
4744251883Speter              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4745251883Speter              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
4746251883Speter            else
4747251883Speter              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4748251883Speter              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4749251883Speter             fi
4750251883Speter            ;;
4751251883Speter          * )
4752251883Speter            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4753251883Speter            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
4754251883Speter            ;;
4755251883Speter          esac
4756251883Speter	  ;;
4757251883Speter	*)
4758251883Speter	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4759251883Speter	  exit $EXIT_FAILURE
4760251883Speter	  ;;
4761251883Speter	esac
4762251883Speter      else
4763251883Speter	# We keep going just in case the user didn't refer to
4764251883Speter	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4765251883Speter	# really was required.
4766251883Speter
4767251883Speter	# Nullify the symbol file.
4768251883Speter	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4769251883Speter	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
4770251883Speter      fi
4771251883Speter
4772251883Speter      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4773251883Speter	# Replace the output file specification.
4774251883Speter	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
4775251883Speter	link_command="$compile_command$compile_rpath"
4776251883Speter
4777251883Speter	# We have no uninstalled library dependencies, so finalize right now.
4778251883Speter	$show "$link_command"
4779251883Speter	$run eval "$link_command"
4780251883Speter	exit_status=$?
4781251883Speter
4782251883Speter	# Delete the generated files.
4783251883Speter	if test -n "$dlsyms"; then
4784251883Speter	  $show "$rm $output_objdir/${outputname}S.${objext}"
4785251883Speter	  $run $rm "$output_objdir/${outputname}S.${objext}"
4786251883Speter	fi
4787251883Speter
4788251883Speter	exit $exit_status
4789251883Speter      fi
4790251883Speter
4791251883Speter      if test -n "$shlibpath_var"; then
4792251883Speter	# We should set the shlibpath_var
4793251883Speter	rpath=
4794251883Speter	for dir in $temp_rpath; do
4795251883Speter	  case $dir in
4796251883Speter	  [\\/]* | [A-Za-z]:[\\/]*)
4797251883Speter	    # Absolute path.
4798251883Speter	    rpath="$rpath$dir:"
4799251883Speter	    ;;
4800251883Speter	  *)
4801251883Speter	    # Relative path: add a thisdir entry.
4802251883Speter	    rpath="$rpath\$thisdir/$dir:"
4803251883Speter	    ;;
4804251883Speter	  esac
4805251883Speter	done
4806251883Speter	temp_rpath="$rpath"
4807251883Speter      fi
4808251883Speter
4809251883Speter      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4810251883Speter	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4811251883Speter      fi
4812251883Speter      if test -n "$finalize_shlibpath"; then
4813251883Speter	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4814251883Speter      fi
4815251883Speter
4816251883Speter      compile_var=
4817251883Speter      finalize_var=
4818251883Speter      if test -n "$runpath_var"; then
4819251883Speter	if test -n "$perm_rpath"; then
4820251883Speter	  # We should set the runpath_var.
4821251883Speter	  rpath=
4822251883Speter	  for dir in $perm_rpath; do
4823251883Speter	    rpath="$rpath$dir:"
4824251883Speter	  done
4825251883Speter	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4826251883Speter	fi
4827251883Speter	if test -n "$finalize_perm_rpath"; then
4828251883Speter	  # We should set the runpath_var.
4829251883Speter	  rpath=
4830251883Speter	  for dir in $finalize_perm_rpath; do
4831251883Speter	    rpath="$rpath$dir:"
4832251883Speter	  done
4833251883Speter	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4834251883Speter	fi
4835251883Speter      fi
4836251883Speter
4837251883Speter      if test "$no_install" = yes; then
4838251883Speter	# We don't need to create a wrapper script.
4839251883Speter	link_command="$compile_var$compile_command$compile_rpath"
4840251883Speter	# Replace the output file specification.
4841251883Speter	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4842251883Speter	# Delete the old output file.
4843251883Speter	$run $rm $output
4844251883Speter	# Link the executable and exit
4845251883Speter	$show "$link_command"
4846251883Speter	$run eval "$link_command" || exit $?
4847251883Speter	exit $EXIT_SUCCESS
4848251883Speter      fi
4849251883Speter
4850251883Speter      if test "$hardcode_action" = relink; then
4851251883Speter	# Fast installation is not supported
4852251883Speter	link_command="$compile_var$compile_command$compile_rpath"
4853251883Speter	relink_command="$finalize_var$finalize_command$finalize_rpath"
4854251883Speter
4855251883Speter	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4856251883Speter	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4857251883Speter      else
4858251883Speter	if test "$fast_install" != no; then
4859251883Speter	  link_command="$finalize_var$compile_command$finalize_rpath"
4860251883Speter	  if test "$fast_install" = yes; then
4861251883Speter	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
4862251883Speter	  else
4863251883Speter	    # fast_install is set to needless
4864251883Speter	    relink_command=
4865251883Speter	  fi
4866251883Speter	else
4867251883Speter	  link_command="$compile_var$compile_command$compile_rpath"
4868251883Speter	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4869251883Speter	fi
4870251883Speter      fi
4871251883Speter
4872251883Speter      # Replace the output file specification.
4873251883Speter      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4874251883Speter
4875251883Speter      # Delete the old output files.
4876251883Speter      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4877251883Speter
4878251883Speter      $show "$link_command"
4879251883Speter      $run eval "$link_command" || exit $?
4880251883Speter
4881251883Speter      # Now create the wrapper script.
4882251883Speter      $show "creating $output"
4883251883Speter
4884251883Speter      # Quote the relink command for shipping.
4885251883Speter      if test -n "$relink_command"; then
4886251883Speter	# Preserve any variables that may affect compiler behavior
4887251883Speter	for var in $variables_saved_for_relink; do
4888251883Speter	  if eval test -z \"\${$var+set}\"; then
4889251883Speter	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4890251883Speter	  elif eval var_value=\$$var; test -z "$var_value"; then
4891251883Speter	    relink_command="$var=; export $var; $relink_command"
4892251883Speter	  else
4893251883Speter	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4894251883Speter	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4895251883Speter	  fi
4896251883Speter	done
4897251883Speter	relink_command="(cd `pwd`; $relink_command)"
4898251883Speter	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
4899251883Speter      fi
4900251883Speter
4901251883Speter      # Quote $echo for shipping.
4902251883Speter      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4903251883Speter	case $progpath in
4904251883Speter	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4905251883Speter	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4906251883Speter	esac
4907251883Speter	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4908251883Speter      else
4909251883Speter	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4910251883Speter      fi
4911251883Speter
4912251883Speter      # Only actually do things if our run command is non-null.
4913251883Speter      if test -z "$run"; then
4914251883Speter	# win32 will think the script is a binary if it has
4915251883Speter	# a .exe suffix, so we strip it off here.
4916251883Speter	case $output in
4917251883Speter	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4918251883Speter	esac
4919251883Speter	# test for cygwin because mv fails w/o .exe extensions
4920251883Speter	case $host in
4921251883Speter	  *cygwin*)
4922251883Speter	    exeext=.exe
4923251883Speter	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4924251883Speter	  *) exeext= ;;
4925251883Speter	esac
4926251883Speter	case $host in
4927251883Speter	  *cygwin* | *mingw* )
4928251883Speter            output_name=`basename $output`
4929251883Speter            output_path=`dirname $output`
4930251883Speter            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4931251883Speter            cwrapper="$output_path/$output_name.exe"
4932251883Speter            $rm $cwrappersource $cwrapper
4933251883Speter            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4934251883Speter
4935251883Speter	    cat > $cwrappersource <<EOF
4936251883Speter
4937251883Speter/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4938251883Speter   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4939251883Speter
4940251883Speter   The $output program cannot be directly executed until all the libtool
4941251883Speter   libraries that it depends on are installed.
4942251883Speter
4943251883Speter   This wrapper executable should never be moved out of the build directory.
4944251883Speter   If it is, it will not operate correctly.
4945251883Speter
4946251883Speter   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4947251883Speter   but could eventually absorb all of the scripts functionality and
4948251883Speter   exec $objdir/$outputname directly.
4949251883Speter*/
4950251883SpeterEOF
4951251883Speter	    cat >> $cwrappersource<<"EOF"
4952251883Speter#include <stdio.h>
4953251883Speter#include <stdlib.h>
4954251883Speter#include <unistd.h>
4955251883Speter#include <malloc.h>
4956251883Speter#include <stdarg.h>
4957251883Speter#include <assert.h>
4958251883Speter#include <string.h>
4959251883Speter#include <ctype.h>
4960251883Speter#include <sys/stat.h>
4961251883Speter
4962251883Speter#if defined(PATH_MAX)
4963251883Speter# define LT_PATHMAX PATH_MAX
4964251883Speter#elif defined(MAXPATHLEN)
4965251883Speter# define LT_PATHMAX MAXPATHLEN
4966251883Speter#else
4967251883Speter# define LT_PATHMAX 1024
4968251883Speter#endif
4969251883Speter
4970251883Speter#ifndef DIR_SEPARATOR
4971251883Speter# define DIR_SEPARATOR '/'
4972251883Speter# define PATH_SEPARATOR ':'
4973251883Speter#endif
4974251883Speter
4975251883Speter#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4976251883Speter  defined (__OS2__)
4977251883Speter# define HAVE_DOS_BASED_FILE_SYSTEM
4978251883Speter# ifndef DIR_SEPARATOR_2
4979251883Speter#  define DIR_SEPARATOR_2 '\\'
4980251883Speter# endif
4981251883Speter# ifndef PATH_SEPARATOR_2
4982251883Speter#  define PATH_SEPARATOR_2 ';'
4983251883Speter# endif
4984251883Speter#endif
4985251883Speter
4986251883Speter#ifndef DIR_SEPARATOR_2
4987251883Speter# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4988251883Speter#else /* DIR_SEPARATOR_2 */
4989251883Speter# define IS_DIR_SEPARATOR(ch) \
4990251883Speter        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4991251883Speter#endif /* DIR_SEPARATOR_2 */
4992251883Speter
4993251883Speter#ifndef PATH_SEPARATOR_2
4994251883Speter# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4995251883Speter#else /* PATH_SEPARATOR_2 */
4996251883Speter# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4997251883Speter#endif /* PATH_SEPARATOR_2 */
4998251883Speter
4999251883Speter#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
5000251883Speter#define XFREE(stale) do { \
5001251883Speter  if (stale) { free ((void *) stale); stale = 0; } \
5002251883Speter} while (0)
5003251883Speter
5004251883Speter/* -DDEBUG is fairly common in CFLAGS.  */
5005251883Speter#undef DEBUG
5006251883Speter#if defined DEBUGWRAPPER
5007251883Speter# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
5008251883Speter#else
5009251883Speter# define DEBUG(format, ...)
5010251883Speter#endif
5011251883Speter
5012251883Speterconst char *program_name = NULL;
5013251883Speter
5014251883Spetervoid * xmalloc (size_t num);
5015251883Speterchar * xstrdup (const char *string);
5016251883Speterconst char * base_name (const char *name);
5017251883Speterchar * find_executable(const char *wrapper);
5018251883Speterint    check_executable(const char *path);
5019251883Speterchar * strendzap(char *str, const char *pat);
5020251883Spetervoid lt_fatal (const char *message, ...);
5021251883Speter
5022251883Speterint
5023251883Spetermain (int argc, char *argv[])
5024251883Speter{
5025251883Speter  char **newargz;
5026251883Speter  int i;
5027251883Speter
5028251883Speter  program_name = (char *) xstrdup (base_name (argv[0]));
5029251883Speter  DEBUG("(main) argv[0]      : %s\n",argv[0]);
5030251883Speter  DEBUG("(main) program_name : %s\n",program_name);
5031251883Speter  newargz = XMALLOC(char *, argc+2);
5032251883SpeterEOF
5033251883Speter
5034251883Speter            cat >> $cwrappersource <<EOF
5035251883Speter  newargz[0] = (char *) xstrdup("$SHELL");
5036251883SpeterEOF
5037251883Speter
5038251883Speter            cat >> $cwrappersource <<"EOF"
5039251883Speter  newargz[1] = find_executable(argv[0]);
5040251883Speter  if (newargz[1] == NULL)
5041251883Speter    lt_fatal("Couldn't find %s", argv[0]);
5042251883Speter  DEBUG("(main) found exe at : %s\n",newargz[1]);
5043251883Speter  /* we know the script has the same name, without the .exe */
5044251883Speter  /* so make sure newargz[1] doesn't end in .exe */
5045251883Speter  strendzap(newargz[1],".exe");
5046251883Speter  for (i = 1; i < argc; i++)
5047251883Speter    newargz[i+1] = xstrdup(argv[i]);
5048251883Speter  newargz[argc+1] = NULL;
5049251883Speter
5050251883Speter  for (i=0; i<argc+1; i++)
5051251883Speter  {
5052251883Speter    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5053251883Speter    ;
5054251883Speter  }
5055251883Speter
5056251883SpeterEOF
5057251883Speter
5058251883Speter            case $host_os in
5059251883Speter              mingw*)
5060251883Speter                cat >> $cwrappersource <<EOF
5061251883Speter  execv("$SHELL",(char const **)newargz);
5062251883SpeterEOF
5063251883Speter              ;;
5064251883Speter              *)
5065251883Speter                cat >> $cwrappersource <<EOF
5066251883Speter  execv("$SHELL",newargz);
5067251883SpeterEOF
5068251883Speter              ;;
5069251883Speter            esac
5070251883Speter
5071251883Speter            cat >> $cwrappersource <<"EOF"
5072251883Speter  return 127;
5073251883Speter}
5074251883Speter
5075251883Spetervoid *
5076251883Speterxmalloc (size_t num)
5077251883Speter{
5078251883Speter  void * p = (void *) malloc (num);
5079251883Speter  if (!p)
5080251883Speter    lt_fatal ("Memory exhausted");
5081251883Speter
5082251883Speter  return p;
5083251883Speter}
5084251883Speter
5085251883Speterchar *
5086251883Speterxstrdup (const char *string)
5087251883Speter{
5088251883Speter  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5089251883Speter;
5090251883Speter}
5091251883Speter
5092251883Speterconst char *
5093251883Speterbase_name (const char *name)
5094251883Speter{
5095251883Speter  const char *base;
5096251883Speter
5097251883Speter#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5098251883Speter  /* Skip over the disk name in MSDOS pathnames. */
5099251883Speter  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5100251883Speter    name += 2;
5101251883Speter#endif
5102251883Speter
5103251883Speter  for (base = name; *name; name++)
5104251883Speter    if (IS_DIR_SEPARATOR (*name))
5105251883Speter      base = name + 1;
5106251883Speter  return base;
5107251883Speter}
5108251883Speter
5109251883Speterint
5110251883Spetercheck_executable(const char * path)
5111251883Speter{
5112251883Speter  struct stat st;
5113251883Speter
5114251883Speter  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5115251883Speter  if ((!path) || (!*path))
5116251883Speter    return 0;
5117251883Speter
5118251883Speter  if ((stat (path, &st) >= 0) &&
5119251883Speter      (
5120251883Speter        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5121251883Speter#if defined (S_IXOTH)
5122251883Speter       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5123251883Speter#endif
5124251883Speter#if defined (S_IXGRP)
5125251883Speter       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5126251883Speter#endif
5127251883Speter       ((st.st_mode & S_IXUSR) == S_IXUSR))
5128251883Speter      )
5129251883Speter    return 1;
5130251883Speter  else
5131251883Speter    return 0;
5132251883Speter}
5133251883Speter
5134251883Speter/* Searches for the full path of the wrapper.  Returns
5135251883Speter   newly allocated full path name if found, NULL otherwise */
5136251883Speterchar *
5137251883Speterfind_executable (const char* wrapper)
5138251883Speter{
5139251883Speter  int has_slash = 0;
5140251883Speter  const char* p;
5141251883Speter  const char* p_next;
5142251883Speter  /* static buffer for getcwd */
5143251883Speter  char tmp[LT_PATHMAX + 1];
5144251883Speter  int tmp_len;
5145251883Speter  char* concat_name;
5146251883Speter
5147251883Speter  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5148251883Speter
5149251883Speter  if ((wrapper == NULL) || (*wrapper == '\0'))
5150251883Speter    return NULL;
5151251883Speter
5152251883Speter  /* Absolute path? */
5153251883Speter#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5154251883Speter  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5155251883Speter  {
5156251883Speter    concat_name = xstrdup (wrapper);
5157251883Speter    if (check_executable(concat_name))
5158251883Speter      return concat_name;
5159251883Speter    XFREE(concat_name);
5160251883Speter  }
5161251883Speter  else
5162251883Speter  {
5163251883Speter#endif
5164251883Speter    if (IS_DIR_SEPARATOR (wrapper[0]))
5165251883Speter    {
5166251883Speter      concat_name = xstrdup (wrapper);
5167251883Speter      if (check_executable(concat_name))
5168251883Speter        return concat_name;
5169251883Speter      XFREE(concat_name);
5170251883Speter    }
5171251883Speter#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5172251883Speter  }
5173251883Speter#endif
5174251883Speter
5175251883Speter  for (p = wrapper; *p; p++)
5176251883Speter    if (*p == '/')
5177251883Speter    {
5178251883Speter      has_slash = 1;
5179251883Speter      break;
5180251883Speter    }
5181251883Speter  if (!has_slash)
5182251883Speter  {
5183251883Speter    /* no slashes; search PATH */
5184251883Speter    const char* path = getenv ("PATH");
5185251883Speter    if (path != NULL)
5186251883Speter    {
5187251883Speter      for (p = path; *p; p = p_next)
5188251883Speter      {
5189251883Speter        const char* q;
5190251883Speter        size_t p_len;
5191251883Speter        for (q = p; *q; q++)
5192251883Speter          if (IS_PATH_SEPARATOR(*q))
5193251883Speter            break;
5194251883Speter        p_len = q - p;
5195251883Speter        p_next = (*q == '\0' ? q : q + 1);
5196251883Speter        if (p_len == 0)
5197251883Speter        {
5198251883Speter          /* empty path: current directory */
5199251883Speter          if (getcwd (tmp, LT_PATHMAX) == NULL)
5200251883Speter            lt_fatal ("getcwd failed");
5201251883Speter          tmp_len = strlen(tmp);
5202251883Speter          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5203251883Speter          memcpy (concat_name, tmp, tmp_len);
5204251883Speter          concat_name[tmp_len] = '/';
5205251883Speter          strcpy (concat_name + tmp_len + 1, wrapper);
5206251883Speter        }
5207251883Speter        else
5208251883Speter        {
5209251883Speter          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5210251883Speter          memcpy (concat_name, p, p_len);
5211251883Speter          concat_name[p_len] = '/';
5212251883Speter          strcpy (concat_name + p_len + 1, wrapper);
5213251883Speter        }
5214251883Speter        if (check_executable(concat_name))
5215251883Speter          return concat_name;
5216251883Speter        XFREE(concat_name);
5217251883Speter      }
5218251883Speter    }
5219251883Speter    /* not found in PATH; assume curdir */
5220251883Speter  }
5221251883Speter  /* Relative path | not found in path: prepend cwd */
5222251883Speter  if (getcwd (tmp, LT_PATHMAX) == NULL)
5223251883Speter    lt_fatal ("getcwd failed");
5224251883Speter  tmp_len = strlen(tmp);
5225251883Speter  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5226251883Speter  memcpy (concat_name, tmp, tmp_len);
5227251883Speter  concat_name[tmp_len] = '/';
5228251883Speter  strcpy (concat_name + tmp_len + 1, wrapper);
5229251883Speter
5230251883Speter  if (check_executable(concat_name))
5231251883Speter    return concat_name;
5232251883Speter  XFREE(concat_name);
5233251883Speter  return NULL;
5234251883Speter}
5235251883Speter
5236251883Speterchar *
5237251883Speterstrendzap(char *str, const char *pat)
5238251883Speter{
5239251883Speter  size_t len, patlen;
5240251883Speter
5241251883Speter  assert(str != NULL);
5242251883Speter  assert(pat != NULL);
5243251883Speter
5244251883Speter  len = strlen(str);
5245251883Speter  patlen = strlen(pat);
5246251883Speter
5247251883Speter  if (patlen <= len)
5248251883Speter  {
5249251883Speter    str += len - patlen;
5250251883Speter    if (strcmp(str, pat) == 0)
5251251883Speter      *str = '\0';
5252251883Speter  }
5253251883Speter  return str;
5254251883Speter}
5255251883Speter
5256251883Speterstatic void
5257251883Speterlt_error_core (int exit_status, const char * mode,
5258251883Speter          const char * message, va_list ap)
5259251883Speter{
5260251883Speter  fprintf (stderr, "%s: %s: ", program_name, mode);
5261251883Speter  vfprintf (stderr, message, ap);
5262251883Speter  fprintf (stderr, ".\n");
5263251883Speter
5264251883Speter  if (exit_status >= 0)
5265251883Speter    exit (exit_status);
5266251883Speter}
5267251883Speter
5268251883Spetervoid
5269251883Speterlt_fatal (const char *message, ...)
5270251883Speter{
5271251883Speter  va_list ap;
5272251883Speter  va_start (ap, message);
5273251883Speter  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5274251883Speter  va_end (ap);
5275251883Speter}
5276251883SpeterEOF
5277251883Speter          # we should really use a build-platform specific compiler
5278251883Speter          # here, but OTOH, the wrappers (shell script and this C one)
5279251883Speter          # are only useful if you want to execute the "real" binary.
5280251883Speter          # Since the "real" binary is built for $host, then this
5281251883Speter          # wrapper might as well be built for $host, too.
5282251883Speter          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5283251883Speter          ;;
5284251883Speter        esac
5285251883Speter        $rm $output
5286251883Speter        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5287251883Speter
5288251883Speter	$echo > $output "\
5289251883Speter#! $SHELL
5290251883Speter
5291251883Speter# $output - temporary wrapper script for $objdir/$outputname
5292251883Speter# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5293251883Speter#
5294251883Speter# The $output program cannot be directly executed until all the libtool
5295251883Speter# libraries that it depends on are installed.
5296251883Speter#
5297251883Speter# This wrapper script should never be moved out of the build directory.
5298251883Speter# If it is, it will not operate correctly.
5299251883Speter
5300251883Speter# Sed substitution that helps us do robust quoting.  It backslashifies
5301251883Speter# metacharacters that are still active within double-quoted strings.
5302251883SpeterXsed='${SED} -e 1s/^X//'
5303251883Spetersed_quote_subst='$sed_quote_subst'
5304251883Speter
5305251883Speter# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
5306251883Speterif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
5307251883Speter  emulate sh
5308251883Speter  NULLCMD=:
5309251883Speter  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
5310251883Speter  # is contrary to our usage.  Disable this feature.
5311251883Speter  alias -g '\${1+\"\$@\"}'='\"\$@\"'
5312251883Speter  setopt NO_GLOB_SUBST
5313251883Speterelse
5314251883Speter  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
5315251883Speterfi
5316251883SpeterBIN_SH=xpg4; export BIN_SH # for Tru64
5317251883SpeterDUALCASE=1; export DUALCASE # for MKS sh
5318251883Speter
5319251883Speter# The HP-UX ksh and POSIX shell print the target directory to stdout
5320251883Speter# if CDPATH is set.
5321251883Speter(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5322251883Speter
5323251883Speterrelink_command=\"$relink_command\"
5324251883Speter
5325251883Speter# This environment variable determines our operation mode.
5326251883Speterif test \"\$libtool_install_magic\" = \"$magic\"; then
5327251883Speter  # install mode needs the following variable:
5328251883Speter  notinst_deplibs='$notinst_deplibs'
5329251883Speterelse
5330251883Speter  # When we are sourced in execute mode, \$file and \$echo are already set.
5331251883Speter  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5332251883Speter    echo=\"$qecho\"
5333251883Speter    file=\"\$0\"
5334251883Speter    # Make sure echo works.
5335251883Speter    if test \"X\$1\" = X--no-reexec; then
5336251883Speter      # Discard the --no-reexec flag, and continue.
5337251883Speter      shift
5338251883Speter    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5339251883Speter      # Yippee, \$echo works!
5340251883Speter      :
5341251883Speter    else
5342251883Speter      # Restart under the correct shell, and then maybe \$echo will work.
5343251883Speter      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5344251883Speter    fi
5345251883Speter  fi\
5346251883Speter"
5347251883Speter	$echo >> $output "\
5348251883Speter
5349251883Speter  # Find the directory that this script lives in.
5350251883Speter  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5351251883Speter  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5352251883Speter
5353251883Speter  # Follow symbolic links until we get to the real thisdir.
5354251883Speter  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5355251883Speter  while test -n \"\$file\"; do
5356251883Speter    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5357251883Speter
5358251883Speter    # If there was a directory component, then change thisdir.
5359251883Speter    if test \"x\$destdir\" != \"x\$file\"; then
5360251883Speter      case \"\$destdir\" in
5361251883Speter      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5362251883Speter      *) thisdir=\"\$thisdir/\$destdir\" ;;
5363251883Speter      esac
5364251883Speter    fi
5365251883Speter
5366251883Speter    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5367251883Speter    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5368251883Speter  done
5369251883Speter
5370251883Speter  # Try to get the absolute directory name.
5371251883Speter  absdir=\`cd \"\$thisdir\" && pwd\`
5372251883Speter  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5373251883Speter"
5374251883Speter
5375251883Speter	if test "$fast_install" = yes; then
5376251883Speter	  $echo >> $output "\
5377251883Speter  program=lt-'$outputname'$exeext
5378251883Speter  progdir=\"\$thisdir/$objdir\"
5379251883Speter
5380251883Speter  if test ! -f \"\$progdir/\$program\" || \\
5381251883Speter     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5382251883Speter       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5383251883Speter
5384251883Speter    file=\"\$\$-\$program\"
5385251883Speter
5386251883Speter    if test ! -d \"\$progdir\"; then
5387251883Speter      $mkdir \"\$progdir\"
5388251883Speter    else
5389251883Speter      $rm \"\$progdir/\$file\"
5390251883Speter    fi"
5391251883Speter
5392251883Speter	  $echo >> $output "\
5393251883Speter
5394251883Speter    # relink executable if necessary
5395251883Speter    if test -n \"\$relink_command\"; then
5396251883Speter      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5397251883Speter      else
5398251883Speter	$echo \"\$relink_command_output\" >&2
5399251883Speter	$rm \"\$progdir/\$file\"
5400251883Speter	exit $EXIT_FAILURE
5401251883Speter      fi
5402251883Speter    fi
5403251883Speter
5404251883Speter    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5405251883Speter    { $rm \"\$progdir/\$program\";
5406251883Speter      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5407251883Speter    $rm \"\$progdir/\$file\"
5408251883Speter  fi"
5409251883Speter	else
5410251883Speter	  $echo >> $output "\
5411251883Speter  program='$outputname'
5412251883Speter  progdir=\"\$thisdir/$objdir\"
5413251883Speter"
5414251883Speter	fi
5415251883Speter
5416251883Speter	$echo >> $output "\
5417251883Speter
5418251883Speter  if test -f \"\$progdir/\$program\"; then"
5419251883Speter
5420251883Speter	# Export our shlibpath_var if we have one.
5421251883Speter	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5422251883Speter	  $echo >> $output "\
5423251883Speter    # Add our own library path to $shlibpath_var
5424251883Speter    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5425251883Speter
5426251883Speter    # Some systems cannot cope with colon-terminated $shlibpath_var
5427251883Speter    # The second colon is a workaround for a bug in BeOS R4 sed
5428251883Speter    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5429251883Speter
5430251883Speter    export $shlibpath_var
5431251883Speter"
5432251883Speter	fi
5433251883Speter
5434251883Speter	# fixup the dll searchpath if we need to.
5435251883Speter	if test -n "$dllsearchpath"; then
5436251883Speter	  $echo >> $output "\
5437251883Speter    # Add the dll search path components to the executable PATH
5438251883Speter    PATH=$dllsearchpath:\$PATH
5439251883Speter"
5440251883Speter	fi
5441251883Speter
5442251883Speter	$echo >> $output "\
5443251883Speter    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5444251883Speter      # Run the actual program with our arguments.
5445251883Speter"
5446251883Speter	case $host in
5447251883Speter	# Backslashes separate directories on plain windows
5448251883Speter	*-*-mingw | *-*-os2*)
5449251883Speter	  $echo >> $output "\
5450251883Speter      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5451251883Speter"
5452251883Speter	  ;;
5453251883Speter
5454251883Speter	*)
5455251883Speter	  $echo >> $output "\
5456251883Speter      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5457251883Speter"
5458251883Speter	  ;;
5459251883Speter	esac
5460251883Speter	$echo >> $output "\
5461251883Speter      \$echo \"\$0: cannot exec \$program \$*\"
5462251883Speter      exit $EXIT_FAILURE
5463251883Speter    fi
5464251883Speter  else
5465251883Speter    # The program doesn't exist.
5466251883Speter    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5467251883Speter    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5468251883Speter    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5469251883Speter    exit $EXIT_FAILURE
5470251883Speter  fi
5471251883Speterfi\
5472251883Speter"
5473251883Speter	chmod +x $output
5474251883Speter      fi
5475251883Speter      exit $EXIT_SUCCESS
5476251883Speter      ;;
5477251883Speter    esac
5478251883Speter
5479251883Speter    # See if we need to build an old-fashioned archive.
5480251883Speter    for oldlib in $oldlibs; do
5481251883Speter
5482251883Speter      if test "$build_libtool_libs" = convenience; then
5483251883Speter	oldobjs="$libobjs_save"
5484251883Speter	addlibs="$convenience"
5485251883Speter	build_libtool_libs=no
5486251883Speter      else
5487251883Speter	if test "$build_libtool_libs" = module; then
5488251883Speter	  oldobjs="$libobjs_save"
5489251883Speter	  build_libtool_libs=no
5490251883Speter	else
5491251883Speter	  oldobjs="$old_deplibs $non_pic_objects"
5492251883Speter	fi
5493251883Speter	addlibs="$old_convenience"
5494251883Speter      fi
5495251883Speter
5496251883Speter      if test -n "$addlibs"; then
5497251883Speter	gentop="$output_objdir/${outputname}x"
5498251883Speter	generated="$generated $gentop"
5499251883Speter
5500251883Speter	func_extract_archives $gentop $addlibs
5501251883Speter	oldobjs="$oldobjs $func_extract_archives_result"
5502251883Speter      fi
5503251883Speter
5504251883Speter      # Do each command in the archive commands.
5505251883Speter      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5506251883Speter       cmds=$old_archive_from_new_cmds
5507251883Speter      else
5508251883Speter	# POSIX demands no paths to be encoded in archives.  We have
5509251883Speter	# to avoid creating archives with duplicate basenames if we
5510251883Speter	# might have to extract them afterwards, e.g., when creating a
5511251883Speter	# static archive out of a convenience library, or when linking
5512251883Speter	# the entirety of a libtool archive into another (currently
5513251883Speter	# not supported by libtool).
5514251883Speter	if (for obj in $oldobjs
5515251883Speter	    do
5516251883Speter	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5517251883Speter	    done | sort | sort -uc >/dev/null 2>&1); then
5518251883Speter	  :
5519251883Speter	else
5520251883Speter	  $echo "copying selected object files to avoid basename conflicts..."
5521251883Speter
5522251883Speter	  if test -z "$gentop"; then
5523251883Speter	    gentop="$output_objdir/${outputname}x"
5524251883Speter	    generated="$generated $gentop"
5525251883Speter
5526251883Speter	    $show "${rm}r $gentop"
5527251883Speter	    $run ${rm}r "$gentop"
5528251883Speter	    $show "$mkdir $gentop"
5529251883Speter	    $run $mkdir "$gentop"
5530251883Speter	    exit_status=$?
5531251883Speter	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5532251883Speter	      exit $exit_status
5533251883Speter	    fi
5534251883Speter	  fi
5535251883Speter
5536251883Speter	  save_oldobjs=$oldobjs
5537251883Speter	  oldobjs=
5538251883Speter	  counter=1
5539251883Speter	  for obj in $save_oldobjs
5540251883Speter	  do
5541251883Speter	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5542251883Speter	    case " $oldobjs " in
5543251883Speter	    " ") oldobjs=$obj ;;
5544251883Speter	    *[\ /]"$objbase "*)
5545251883Speter	      while :; do
5546251883Speter		# Make sure we don't pick an alternate name that also
5547251883Speter		# overlaps.
5548251883Speter		newobj=lt$counter-$objbase
5549251883Speter		counter=`expr $counter + 1`
5550251883Speter		case " $oldobjs " in
5551251883Speter		*[\ /]"$newobj "*) ;;
5552251883Speter		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5553251883Speter		esac
5554251883Speter	      done
5555251883Speter	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5556251883Speter	      $run ln "$obj" "$gentop/$newobj" ||
5557251883Speter	      $run cp "$obj" "$gentop/$newobj"
5558251883Speter	      oldobjs="$oldobjs $gentop/$newobj"
5559251883Speter	      ;;
5560251883Speter	    *) oldobjs="$oldobjs $obj" ;;
5561251883Speter	    esac
5562251883Speter	  done
5563251883Speter	fi
5564251883Speter
5565251883Speter	eval cmds=\"$old_archive_cmds\"
5566251883Speter
5567251883Speter	if len=`expr "X$cmds" : ".*"` &&
5568251883Speter	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5569251883Speter	  cmds=$old_archive_cmds
5570251883Speter	else
5571251883Speter	  # the command line is too long to link in one step, link in parts
5572251883Speter	  $echo "using piecewise archive linking..."
5573251883Speter	  save_RANLIB=$RANLIB
5574251883Speter	  RANLIB=:
5575251883Speter	  objlist=
5576251883Speter	  concat_cmds=
5577251883Speter	  save_oldobjs=$oldobjs
5578251883Speter
5579251883Speter	  # Is there a better way of finding the last object in the list?
5580251883Speter	  for obj in $save_oldobjs
5581251883Speter	  do
5582251883Speter	    last_oldobj=$obj
5583251883Speter	  done
5584251883Speter	  for obj in $save_oldobjs
5585251883Speter	  do
5586251883Speter	    oldobjs="$objlist $obj"
5587251883Speter	    objlist="$objlist $obj"
5588251883Speter	    eval test_cmds=\"$old_archive_cmds\"
5589251883Speter	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5590251883Speter	       test "$len" -le "$max_cmd_len"; then
5591251883Speter	      :
5592251883Speter	    else
5593251883Speter	      # the above command should be used before it gets too long
5594251883Speter	      oldobjs=$objlist
5595251883Speter	      if test "$obj" = "$last_oldobj" ; then
5596251883Speter	        RANLIB=$save_RANLIB
5597251883Speter	      fi
5598251883Speter	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5599251883Speter	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5600251883Speter	      objlist=
5601251883Speter	    fi
5602251883Speter	  done
5603251883Speter	  RANLIB=$save_RANLIB
5604251883Speter	  oldobjs=$objlist
5605251883Speter	  if test "X$oldobjs" = "X" ; then
5606251883Speter	    eval cmds=\"\$concat_cmds\"
5607251883Speter	  else
5608251883Speter	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5609251883Speter	  fi
5610251883Speter	fi
5611251883Speter      fi
5612251883Speter      save_ifs="$IFS"; IFS='~'
5613251883Speter      for cmd in $cmds; do
5614251883Speter        eval cmd=\"$cmd\"
5615251883Speter	IFS="$save_ifs"
5616251883Speter	$show "$cmd"
5617251883Speter	$run eval "$cmd" || exit $?
5618251883Speter      done
5619251883Speter      IFS="$save_ifs"
5620251883Speter    done
5621251883Speter
5622251883Speter    if test -n "$generated"; then
5623251883Speter      $show "${rm}r$generated"
5624251883Speter      $run ${rm}r$generated
5625251883Speter    fi
5626251883Speter
5627251883Speter    # Now create the libtool archive.
5628251883Speter    case $output in
5629251883Speter    *.la)
5630251883Speter      old_library=
5631251883Speter      test "$build_old_libs" = yes && old_library="$libname.$libext"
5632251883Speter      $show "creating $output"
5633251883Speter
5634251883Speter      # Preserve any variables that may affect compiler behavior
5635251883Speter      for var in $variables_saved_for_relink; do
5636251883Speter	if eval test -z \"\${$var+set}\"; then
5637251883Speter	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5638251883Speter	elif eval var_value=\$$var; test -z "$var_value"; then
5639251883Speter	  relink_command="$var=; export $var; $relink_command"
5640251883Speter	else
5641251883Speter	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5642251883Speter	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5643251883Speter	fi
5644251883Speter      done
5645251883Speter      # Quote the link command for shipping.
5646251883Speter      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5647251883Speter      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
5648251883Speter      if test "$hardcode_automatic" = yes ; then
5649251883Speter	relink_command=
5650251883Speter      fi
5651251883Speter
5652251883Speter
5653251883Speter      # Only create the output if not a dry run.
5654251883Speter      if test -z "$run"; then
5655251883Speter	for installed in no yes; do
5656251883Speter	  if test "$installed" = yes; then
5657251883Speter	    if test -z "$install_libdir"; then
5658251883Speter	      break
5659251883Speter	    fi
5660251883Speter	    output="$output_objdir/$outputname"i
5661251883Speter	    # Replace all uninstalled libtool libraries with the installed ones
5662251883Speter	    newdependency_libs=
5663251883Speter	    for deplib in $dependency_libs; do
5664251883Speter	      case $deplib in
5665251883Speter	      *.la)
5666251883Speter		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5667251883Speter		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5668251883Speter		if test -z "$libdir"; then
5669251883Speter		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5670251883Speter		  exit $EXIT_FAILURE
5671251883Speter		fi
5672251883Speter		newdependency_libs="$newdependency_libs $libdir/$name"
5673251883Speter		;;
5674251883Speter	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5675251883Speter	      esac
5676251883Speter	    done
5677251883Speter	    dependency_libs="$newdependency_libs"
5678251883Speter	    newdlfiles=
5679251883Speter	    for lib in $dlfiles; do
5680251883Speter	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5681251883Speter	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5682251883Speter	      if test -z "$libdir"; then
5683251883Speter		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5684251883Speter		exit $EXIT_FAILURE
5685251883Speter	      fi
5686251883Speter	      newdlfiles="$newdlfiles $libdir/$name"
5687251883Speter	    done
5688251883Speter	    dlfiles="$newdlfiles"
5689251883Speter	    newdlprefiles=
5690251883Speter	    for lib in $dlprefiles; do
5691251883Speter	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5692251883Speter	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5693251883Speter	      if test -z "$libdir"; then
5694251883Speter		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5695251883Speter		exit $EXIT_FAILURE
5696251883Speter	      fi
5697251883Speter	      newdlprefiles="$newdlprefiles $libdir/$name"
5698251883Speter	    done
5699251883Speter	    dlprefiles="$newdlprefiles"
5700251883Speter	  else
5701251883Speter	    newdlfiles=
5702251883Speter	    for lib in $dlfiles; do
5703251883Speter	      case $lib in
5704251883Speter		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5705251883Speter		*) abs=`pwd`"/$lib" ;;
5706251883Speter	      esac
5707251883Speter	      newdlfiles="$newdlfiles $abs"
5708251883Speter	    done
5709251883Speter	    dlfiles="$newdlfiles"
5710251883Speter	    newdlprefiles=
5711251883Speter	    for lib in $dlprefiles; do
5712251883Speter	      case $lib in
5713251883Speter		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5714251883Speter		*) abs=`pwd`"/$lib" ;;
5715251883Speter	      esac
5716251883Speter	      newdlprefiles="$newdlprefiles $abs"
5717251883Speter	    done
5718251883Speter	    dlprefiles="$newdlprefiles"
5719251883Speter	  fi
5720251883Speter	  $rm $output
5721251883Speter	  # place dlname in correct position for cygwin
5722251883Speter	  tdlname=$dlname
5723251883Speter	  case $host,$output,$installed,$module,$dlname in
5724251883Speter	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5725251883Speter	  esac
5726251883Speter	  $echo > $output "\
5727251883Speter# $outputname - a libtool library file
5728251883Speter# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5729251883Speter#
5730251883Speter# Please DO NOT delete this file!
5731251883Speter# It is necessary for linking the library.
5732251883Speter
5733251883Speter# The name that we can dlopen(3).
5734251883Speterdlname='$tdlname'
5735251883Speter
5736251883Speter# Names of this library.
5737251883Speterlibrary_names='$library_names'
5738251883Speter
5739251883Speter# The name of the static archive.
5740251883Speterold_library='$old_library'
5741251883Speter
5742251883Speter# Libraries that this one depends upon.
5743251883Speterdependency_libs='$dependency_libs'
5744251883Speter
5745251883Speter# Version information for $libname.
5746251883Spetercurrent=$current
5747251883Speterage=$age
5748251883Speterrevision=$revision
5749251883Speter
5750251883Speter# Is this an already installed library?
5751251883Speterinstalled=$installed
5752251883Speter
5753251883Speter# Should we warn about portability when linking against -modules?
5754251883Spetershouldnotlink=$module
5755251883Speter
5756251883Speter# Files to dlopen/dlpreopen
5757251883Speterdlopen='$dlfiles'
5758251883Speterdlpreopen='$dlprefiles'
5759251883Speter
5760251883Speter# Directory that this library needs to be installed in:
5761251883Speterlibdir='$install_libdir'"
5762251883Speter	  if test "$installed" = no && test "$need_relink" = yes; then
5763251883Speter	    $echo >> $output "\
5764251883Speterrelink_command=\"$relink_command\""
5765251883Speter	  fi
5766251883Speter	done
5767251883Speter      fi
5768251883Speter
5769251883Speter      # Do a symbolic link so that the libtool archive can be found in
5770251883Speter      # LD_LIBRARY_PATH before the program is installed.
5771251883Speter      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5772251883Speter      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5773251883Speter      ;;
5774251883Speter    esac
5775251883Speter    exit $EXIT_SUCCESS
5776251883Speter    ;;
5777251883Speter
5778251883Speter  # libtool install mode
5779251883Speter  install)
5780251883Speter    modename="$modename: install"
5781251883Speter
5782251883Speter    # There may be an optional sh(1) argument at the beginning of
5783251883Speter    # install_prog (especially on Windows NT).
5784251883Speter    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5785251883Speter       # Allow the use of GNU shtool's install command.
5786251883Speter       $echo "X$nonopt" | grep shtool > /dev/null; then
5787251883Speter      # Aesthetically quote it.
5788251883Speter      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5789251883Speter      case $arg in
5790251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5791251883Speter	arg="\"$arg\""
5792251883Speter	;;
5793251883Speter      esac
5794251883Speter      install_prog="$arg "
5795251883Speter      arg="$1"
5796251883Speter      shift
5797251883Speter    else
5798251883Speter      install_prog=
5799251883Speter      arg=$nonopt
5800251883Speter    fi
5801251883Speter
5802251883Speter    # The real first argument should be the name of the installation program.
5803251883Speter    # Aesthetically quote it.
5804251883Speter    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5805251883Speter    case $arg in
5806251883Speter    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5807251883Speter      arg="\"$arg\""
5808251883Speter      ;;
5809251883Speter    esac
5810251883Speter    install_prog="$install_prog$arg"
5811251883Speter
5812251883Speter    # We need to accept at least all the BSD install flags.
5813251883Speter    dest=
5814251883Speter    files=
5815251883Speter    opts=
5816251883Speter    prev=
5817251883Speter    install_type=
5818251883Speter    isdir=no
5819251883Speter    stripme=
5820251883Speter    for arg
5821251883Speter    do
5822251883Speter      if test -n "$dest"; then
5823251883Speter	files="$files $dest"
5824251883Speter	dest=$arg
5825251883Speter	continue
5826251883Speter      fi
5827251883Speter
5828251883Speter      case $arg in
5829251883Speter      -d) isdir=yes ;;
5830251883Speter      -f) 
5831251883Speter      	case " $install_prog " in
5832251883Speter	*[\\\ /]cp\ *) ;;
5833251883Speter	*) prev=$arg ;;
5834251883Speter	esac
5835251883Speter	;;
5836251883Speter      -g | -m | -o) prev=$arg ;;
5837251883Speter      -s)
5838251883Speter	stripme=" -s"
5839251883Speter	continue
5840251883Speter	;;
5841251883Speter      -*)
5842251883Speter	;;
5843251883Speter      *)
5844251883Speter	# If the previous option needed an argument, then skip it.
5845251883Speter	if test -n "$prev"; then
5846251883Speter	  prev=
5847251883Speter	else
5848251883Speter	  dest=$arg
5849251883Speter	  continue
5850251883Speter	fi
5851251883Speter	;;
5852251883Speter      esac
5853251883Speter
5854251883Speter      # Aesthetically quote the argument.
5855251883Speter      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5856251883Speter      case $arg in
5857251883Speter      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5858251883Speter	arg="\"$arg\""
5859251883Speter	;;
5860251883Speter      esac
5861251883Speter      install_prog="$install_prog $arg"
5862251883Speter    done
5863251883Speter
5864251883Speter    if test -z "$install_prog"; then
5865251883Speter      $echo "$modename: you must specify an install program" 1>&2
5866251883Speter      $echo "$help" 1>&2
5867251883Speter      exit $EXIT_FAILURE
5868251883Speter    fi
5869251883Speter
5870251883Speter    if test -n "$prev"; then
5871251883Speter      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5872251883Speter      $echo "$help" 1>&2
5873251883Speter      exit $EXIT_FAILURE
5874251883Speter    fi
5875251883Speter
5876251883Speter    if test -z "$files"; then
5877251883Speter      if test -z "$dest"; then
5878251883Speter	$echo "$modename: no file or destination specified" 1>&2
5879251883Speter      else
5880251883Speter	$echo "$modename: you must specify a destination" 1>&2
5881251883Speter      fi
5882251883Speter      $echo "$help" 1>&2
5883251883Speter      exit $EXIT_FAILURE
5884251883Speter    fi
5885251883Speter
5886251883Speter    # Strip any trailing slash from the destination.
5887251883Speter    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5888251883Speter
5889251883Speter    # Check to see that the destination is a directory.
5890251883Speter    test -d "$dest" && isdir=yes
5891251883Speter    if test "$isdir" = yes; then
5892251883Speter      destdir="$dest"
5893251883Speter      destname=
5894251883Speter    else
5895251883Speter      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5896251883Speter      test "X$destdir" = "X$dest" && destdir=.
5897251883Speter      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5898251883Speter
5899251883Speter      # Not a directory, so check to see that there is only one file specified.
5900251883Speter      set dummy $files
5901251883Speter      if test "$#" -gt 2; then
5902251883Speter	$echo "$modename: \`$dest' is not a directory" 1>&2
5903251883Speter	$echo "$help" 1>&2
5904251883Speter	exit $EXIT_FAILURE
5905251883Speter      fi
5906251883Speter    fi
5907251883Speter    case $destdir in
5908251883Speter    [\\/]* | [A-Za-z]:[\\/]*) ;;
5909251883Speter    *)
5910251883Speter      for file in $files; do
5911251883Speter	case $file in
5912251883Speter	*.lo) ;;
5913251883Speter	*)
5914251883Speter	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5915251883Speter	  $echo "$help" 1>&2
5916251883Speter	  exit $EXIT_FAILURE
5917251883Speter	  ;;
5918251883Speter	esac
5919251883Speter      done
5920251883Speter      ;;
5921251883Speter    esac
5922251883Speter
5923251883Speter    # This variable tells wrapper scripts just to set variables rather
5924251883Speter    # than running their programs.
5925251883Speter    libtool_install_magic="$magic"
5926251883Speter
5927251883Speter    staticlibs=
5928251883Speter    future_libdirs=
5929251883Speter    current_libdirs=
5930251883Speter    for file in $files; do
5931251883Speter
5932251883Speter      # Do each installation.
5933251883Speter      case $file in
5934251883Speter      *.$libext)
5935251883Speter	# Do the static libraries later.
5936251883Speter	staticlibs="$staticlibs $file"
5937251883Speter	;;
5938251883Speter
5939251883Speter      *.la)
5940251883Speter	# Check to see that this really is a libtool archive.
5941251883Speter	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5942251883Speter	else
5943251883Speter	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5944251883Speter	  $echo "$help" 1>&2
5945251883Speter	  exit $EXIT_FAILURE
5946251883Speter	fi
5947251883Speter
5948251883Speter	library_names=
5949251883Speter	old_library=
5950251883Speter	relink_command=
5951251883Speter	# If there is no directory component, then add one.
5952251883Speter	case $file in
5953251883Speter	*/* | *\\*) . $file ;;
5954251883Speter	*) . ./$file ;;
5955251883Speter	esac
5956251883Speter
5957251883Speter	# Add the libdir to current_libdirs if it is the destination.
5958251883Speter	if test "X$destdir" = "X$libdir"; then
5959251883Speter	  case "$current_libdirs " in
5960251883Speter	  *" $libdir "*) ;;
5961251883Speter	  *) current_libdirs="$current_libdirs $libdir" ;;
5962251883Speter	  esac
5963251883Speter	else
5964251883Speter	  # Note the libdir as a future libdir.
5965251883Speter	  case "$future_libdirs " in
5966251883Speter	  *" $libdir "*) ;;
5967251883Speter	  *) future_libdirs="$future_libdirs $libdir" ;;
5968251883Speter	  esac
5969251883Speter	fi
5970251883Speter
5971251883Speter	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5972251883Speter	test "X$dir" = "X$file/" && dir=
5973251883Speter	dir="$dir$objdir"
5974251883Speter
5975251883Speter	if test -n "$relink_command"; then
5976251883Speter	  # Determine the prefix the user has applied to our future dir.
5977251883Speter	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5978251883Speter
5979251883Speter	  # Don't allow the user to place us outside of our expected
5980251883Speter	  # location b/c this prevents finding dependent libraries that
5981251883Speter	  # are installed to the same prefix.
5982251883Speter	  # At present, this check doesn't affect windows .dll's that
5983251883Speter	  # are installed into $libdir/../bin (currently, that works fine)
5984251883Speter	  # but it's something to keep an eye on.
5985251883Speter	  if test "$inst_prefix_dir" = "$destdir"; then
5986251883Speter	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5987251883Speter	    exit $EXIT_FAILURE
5988251883Speter	  fi
5989251883Speter
5990251883Speter	  if test -n "$inst_prefix_dir"; then
5991251883Speter	    # Stick the inst_prefix_dir data into the link command.
5992251883Speter	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
5993251883Speter	  else
5994251883Speter	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
5995251883Speter	  fi
5996251883Speter
5997251883Speter	  $echo "$modename: warning: relinking \`$file'" 1>&2
5998251883Speter	  $show "$relink_command"
5999251883Speter	  if $run eval "$relink_command"; then :
6000251883Speter	  else
6001251883Speter	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6002251883Speter	    exit $EXIT_FAILURE
6003251883Speter	  fi
6004251883Speter	fi
6005251883Speter
6006251883Speter	# See the names of the shared library.
6007251883Speter	set dummy $library_names
6008251883Speter	if test -n "$2"; then
6009251883Speter	  realname="$2"
6010251883Speter	  shift
6011251883Speter	  shift
6012251883Speter
6013251883Speter	  srcname="$realname"
6014251883Speter	  test -n "$relink_command" && srcname="$realname"T
6015251883Speter
6016251883Speter	  # Install the shared library and build the symlinks.
6017251883Speter	  $show "$install_prog $dir/$srcname $destdir/$realname"
6018251883Speter	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
6019251883Speter	  if test -n "$stripme" && test -n "$striplib"; then
6020251883Speter	    $show "$striplib $destdir/$realname"
6021251883Speter	    $run eval "$striplib $destdir/$realname" || exit $?
6022251883Speter	  fi
6023251883Speter
6024251883Speter	  if test "$#" -gt 0; then
6025251883Speter	    # Delete the old symlinks, and create new ones.
6026251883Speter	    # Try `ln -sf' first, because the `ln' binary might depend on
6027251883Speter	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
6028251883Speter	    # so we also need to try rm && ln -s.
6029251883Speter	    for linkname
6030251883Speter	    do
6031251883Speter	      if test "$linkname" != "$realname"; then
6032251883Speter                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6033251883Speter                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
6034251883Speter	      fi
6035251883Speter	    done
6036251883Speter	  fi
6037251883Speter
6038251883Speter	  # Do each command in the postinstall commands.
6039251883Speter	  lib="$destdir/$realname"
6040251883Speter	  cmds=$postinstall_cmds
6041251883Speter	  save_ifs="$IFS"; IFS='~'
6042251883Speter	  for cmd in $cmds; do
6043251883Speter	    IFS="$save_ifs"
6044251883Speter	    eval cmd=\"$cmd\"
6045251883Speter	    $show "$cmd"
6046251883Speter	    $run eval "$cmd" || {
6047251883Speter	      lt_exit=$?
6048251883Speter
6049251883Speter	      # Restore the uninstalled library and exit
6050251883Speter	      if test "$mode" = relink; then
6051251883Speter		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
6052251883Speter	      fi
6053251883Speter
6054251883Speter	      exit $lt_exit
6055251883Speter	    }
6056251883Speter	  done
6057251883Speter	  IFS="$save_ifs"
6058251883Speter	fi
6059251883Speter
6060251883Speter	# Install the pseudo-library for information purposes.
6061251883Speter	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6062251883Speter	instname="$dir/$name"i
6063251883Speter	$show "$install_prog $instname $destdir/$name"
6064251883Speter	$run eval "$install_prog $instname $destdir/$name" || exit $?
6065251883Speter
6066251883Speter	# Maybe install the static library, too.
6067251883Speter	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6068251883Speter	;;
6069251883Speter
6070251883Speter      *.lo)
6071251883Speter	# Install (i.e. copy) a libtool object.
6072251883Speter
6073251883Speter	# Figure out destination file name, if it wasn't already specified.
6074251883Speter	if test -n "$destname"; then
6075251883Speter	  destfile="$destdir/$destname"
6076251883Speter	else
6077251883Speter	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6078251883Speter	  destfile="$destdir/$destfile"
6079251883Speter	fi
6080251883Speter
6081251883Speter	# Deduce the name of the destination old-style object file.
6082251883Speter	case $destfile in
6083251883Speter	*.lo)
6084251883Speter	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6085251883Speter	  ;;
6086251883Speter	*.$objext)
6087251883Speter	  staticdest="$destfile"
6088251883Speter	  destfile=
6089251883Speter	  ;;
6090251883Speter	*)
6091251883Speter	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6092251883Speter	  $echo "$help" 1>&2
6093251883Speter	  exit $EXIT_FAILURE
6094251883Speter	  ;;
6095251883Speter	esac
6096251883Speter
6097251883Speter	# Install the libtool object if requested.
6098251883Speter	if test -n "$destfile"; then
6099251883Speter	  $show "$install_prog $file $destfile"
6100251883Speter	  $run eval "$install_prog $file $destfile" || exit $?
6101251883Speter	fi
6102251883Speter
6103251883Speter	# Install the old object if enabled.
6104251883Speter	if test "$build_old_libs" = yes; then
6105251883Speter	  # Deduce the name of the old-style object file.
6106251883Speter	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6107251883Speter
6108251883Speter	  $show "$install_prog $staticobj $staticdest"
6109251883Speter	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6110251883Speter	fi
6111251883Speter	exit $EXIT_SUCCESS
6112251883Speter	;;
6113251883Speter
6114251883Speter      *)
6115251883Speter	# Figure out destination file name, if it wasn't already specified.
6116251883Speter	if test -n "$destname"; then
6117251883Speter	  destfile="$destdir/$destname"
6118251883Speter	else
6119251883Speter	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6120251883Speter	  destfile="$destdir/$destfile"
6121251883Speter	fi
6122251883Speter
6123251883Speter	# If the file is missing, and there is a .exe on the end, strip it
6124251883Speter	# because it is most likely a libtool script we actually want to
6125251883Speter	# install
6126251883Speter	stripped_ext=""
6127251883Speter	case $file in
6128251883Speter	  *.exe)
6129251883Speter	    if test ! -f "$file"; then
6130251883Speter	      file=`$echo $file|${SED} 's,.exe$,,'`
6131251883Speter	      stripped_ext=".exe"
6132251883Speter	    fi
6133251883Speter	    ;;
6134251883Speter	esac
6135251883Speter
6136251883Speter	# Do a test to see if this is really a libtool program.
6137251883Speter	case $host in
6138251883Speter	*cygwin*|*mingw*)
6139251883Speter	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6140251883Speter	    ;;
6141251883Speter	*)
6142251883Speter	    wrapper=$file
6143251883Speter	    ;;
6144251883Speter	esac
6145251883Speter	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6146251883Speter	  notinst_deplibs=
6147251883Speter	  relink_command=
6148251883Speter
6149251883Speter	  # Note that it is not necessary on cygwin/mingw to append a dot to
6150251883Speter	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6151251883Speter	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6152251883Speter	  # `FILE.' does not work on cygwin managed mounts.
6153251883Speter	  #
6154251883Speter	  # If there is no directory component, then add one.
6155251883Speter	  case $wrapper in
6156251883Speter	  */* | *\\*) . ${wrapper} ;;
6157251883Speter	  *) . ./${wrapper} ;;
6158251883Speter	  esac
6159251883Speter
6160251883Speter	  # Check the variables that should have been set.
6161251883Speter	  if test -z "$notinst_deplibs"; then
6162251883Speter	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6163251883Speter	    exit $EXIT_FAILURE
6164251883Speter	  fi
6165251883Speter
6166251883Speter	  finalize=yes
6167251883Speter	  for lib in $notinst_deplibs; do
6168251883Speter	    # Check to see that each library is installed.
6169251883Speter	    libdir=
6170251883Speter	    if test -f "$lib"; then
6171251883Speter	      # If there is no directory component, then add one.
6172251883Speter	      case $lib in
6173251883Speter	      */* | *\\*) . $lib ;;
6174251883Speter	      *) . ./$lib ;;
6175251883Speter	      esac
6176251883Speter	    fi
6177251883Speter	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6178251883Speter	    if test -n "$libdir" && test ! -f "$libfile"; then
6179251883Speter	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6180251883Speter	      finalize=no
6181251883Speter	    fi
6182251883Speter	  done
6183251883Speter
6184251883Speter	  relink_command=
6185251883Speter	  # Note that it is not necessary on cygwin/mingw to append a dot to
6186251883Speter	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6187251883Speter	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6188251883Speter	  # `FILE.' does not work on cygwin managed mounts.
6189251883Speter	  #
6190251883Speter	  # If there is no directory component, then add one.
6191251883Speter	  case $wrapper in
6192251883Speter	  */* | *\\*) . ${wrapper} ;;
6193251883Speter	  *) . ./${wrapper} ;;
6194251883Speter	  esac
6195251883Speter
6196251883Speter	  outputname=
6197251883Speter	  if test "$fast_install" = no && test -n "$relink_command"; then
6198251883Speter	    if test "$finalize" = yes && test -z "$run"; then
6199251883Speter	      tmpdir=`func_mktempdir`
6200251883Speter	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6201251883Speter	      outputname="$tmpdir/$file"
6202251883Speter	      # Replace the output file specification.
6203251883Speter	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
6204251883Speter
6205251883Speter	      $show "$relink_command"
6206251883Speter	      if $run eval "$relink_command"; then :
6207251883Speter	      else
6208251883Speter		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6209251883Speter		${rm}r "$tmpdir"
6210251883Speter		continue
6211251883Speter	      fi
6212251883Speter	      file="$outputname"
6213251883Speter	    else
6214251883Speter	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6215251883Speter	    fi
6216251883Speter	  else
6217251883Speter	    # Install the binary that we compiled earlier.
6218251883Speter	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6219251883Speter	  fi
6220251883Speter	fi
6221251883Speter
6222251883Speter	# remove .exe since cygwin /usr/bin/install will append another
6223251883Speter	# one anyway 
6224251883Speter	case $install_prog,$host in
6225251883Speter	*/usr/bin/install*,*cygwin*)
6226251883Speter	  case $file:$destfile in
6227251883Speter	  *.exe:*.exe)
6228251883Speter	    # this is ok
6229251883Speter	    ;;
6230251883Speter	  *.exe:*)
6231251883Speter	    destfile=$destfile.exe
6232251883Speter	    ;;
6233251883Speter	  *:*.exe)
6234251883Speter	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6235251883Speter	    ;;
6236251883Speter	  esac
6237251883Speter	  ;;
6238251883Speter	esac
6239251883Speter	$show "$install_prog$stripme $file $destfile"
6240251883Speter	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6241251883Speter	test -n "$outputname" && ${rm}r "$tmpdir"
6242251883Speter	;;
6243251883Speter      esac
6244251883Speter    done
6245251883Speter
6246251883Speter    for file in $staticlibs; do
6247251883Speter      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6248251883Speter
6249251883Speter      # Set up the ranlib parameters.
6250251883Speter      oldlib="$destdir/$name"
6251251883Speter
6252251883Speter      $show "$install_prog $file $oldlib"
6253251883Speter      $run eval "$install_prog \$file \$oldlib" || exit $?
6254251883Speter
6255251883Speter      if test -n "$stripme" && test -n "$old_striplib"; then
6256251883Speter	$show "$old_striplib $oldlib"
6257251883Speter	$run eval "$old_striplib $oldlib" || exit $?
6258251883Speter      fi
6259251883Speter
6260251883Speter      # Do each command in the postinstall commands.
6261251883Speter      cmds=$old_postinstall_cmds
6262251883Speter      save_ifs="$IFS"; IFS='~'
6263251883Speter      for cmd in $cmds; do
6264251883Speter	IFS="$save_ifs"
6265251883Speter	eval cmd=\"$cmd\"
6266251883Speter	$show "$cmd"
6267251883Speter	$run eval "$cmd" || exit $?
6268251883Speter      done
6269251883Speter      IFS="$save_ifs"
6270251883Speter    done
6271251883Speter
6272251883Speter    if test -n "$future_libdirs"; then
6273251883Speter      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6274251883Speter    fi
6275251883Speter
6276251883Speter    if test -n "$current_libdirs"; then
6277251883Speter      # Maybe just do a dry run.
6278251883Speter      test -n "$run" && current_libdirs=" -n$current_libdirs"
6279251883Speter      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6280251883Speter    else
6281251883Speter      exit $EXIT_SUCCESS
6282251883Speter    fi
6283251883Speter    ;;
6284251883Speter
6285251883Speter  # libtool finish mode
6286251883Speter  finish)
6287251883Speter    modename="$modename: finish"
6288251883Speter    libdirs="$nonopt"
6289251883Speter    admincmds=
6290251883Speter
6291251883Speter    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6292251883Speter      for dir
6293251883Speter      do
6294251883Speter	libdirs="$libdirs $dir"
6295251883Speter      done
6296251883Speter
6297251883Speter      for libdir in $libdirs; do
6298251883Speter	if test -n "$finish_cmds"; then
6299251883Speter	  # Do each command in the finish commands.
6300251883Speter	  cmds=$finish_cmds
6301251883Speter	  save_ifs="$IFS"; IFS='~'
6302251883Speter	  for cmd in $cmds; do
6303251883Speter	    IFS="$save_ifs"
6304251883Speter	    eval cmd=\"$cmd\"
6305251883Speter	    $show "$cmd"
6306251883Speter	    $run eval "$cmd" || admincmds="$admincmds
6307251883Speter       $cmd"
6308251883Speter	  done
6309251883Speter	  IFS="$save_ifs"
6310251883Speter	fi
6311251883Speter	if test -n "$finish_eval"; then
6312251883Speter	  # Do the single finish_eval.
6313251883Speter	  eval cmds=\"$finish_eval\"
6314251883Speter	  $run eval "$cmds" || admincmds="$admincmds
6315251883Speter       $cmds"
6316251883Speter	fi
6317251883Speter      done
6318251883Speter    fi
6319251883Speter
6320251883Speter    # Exit here if they wanted silent mode.
6321251883Speter    test "$show" = : && exit $EXIT_SUCCESS
6322251883Speter
6323251883Speter    $echo "X----------------------------------------------------------------------" | $Xsed
6324251883Speter    $echo "Libraries have been installed in:"
6325251883Speter    for libdir in $libdirs; do
6326251883Speter      $echo "   $libdir"
6327251883Speter    done
6328251883Speter    $echo
6329251883Speter    $echo "If you ever happen to want to link against installed libraries"
6330251883Speter    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6331251883Speter    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6332251883Speter    $echo "flag during linking and do at least one of the following:"
6333251883Speter    if test -n "$shlibpath_var"; then
6334251883Speter      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6335251883Speter      $echo "     during execution"
6336251883Speter    fi
6337251883Speter    if test -n "$runpath_var"; then
6338251883Speter      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6339251883Speter      $echo "     during linking"
6340251883Speter    fi
6341251883Speter    if test -n "$hardcode_libdir_flag_spec"; then
6342251883Speter      libdir=LIBDIR
6343251883Speter      eval flag=\"$hardcode_libdir_flag_spec\"
6344251883Speter
6345251883Speter      $echo "   - use the \`$flag' linker flag"
6346251883Speter    fi
6347251883Speter    if test -n "$admincmds"; then
6348251883Speter      $echo "   - have your system administrator run these commands:$admincmds"
6349251883Speter    fi
6350251883Speter    if test -f /etc/ld.so.conf; then
6351251883Speter      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6352251883Speter    fi
6353251883Speter    $echo
6354251883Speter    $echo "See any operating system documentation about shared libraries for"
6355251883Speter    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6356251883Speter    $echo "X----------------------------------------------------------------------" | $Xsed
6357251883Speter    exit $EXIT_SUCCESS
6358251883Speter    ;;
6359251883Speter
6360251883Speter  # libtool execute mode
6361251883Speter  execute)
6362251883Speter    modename="$modename: execute"
6363251883Speter
6364251883Speter    # The first argument is the command name.
6365251883Speter    cmd="$nonopt"
6366251883Speter    if test -z "$cmd"; then
6367251883Speter      $echo "$modename: you must specify a COMMAND" 1>&2
6368251883Speter      $echo "$help"
6369251883Speter      exit $EXIT_FAILURE
6370251883Speter    fi
6371251883Speter
6372251883Speter    # Handle -dlopen flags immediately.
6373251883Speter    for file in $execute_dlfiles; do
6374251883Speter      if test ! -f "$file"; then
6375251883Speter	$echo "$modename: \`$file' is not a file" 1>&2
6376251883Speter	$echo "$help" 1>&2
6377251883Speter	exit $EXIT_FAILURE
6378251883Speter      fi
6379251883Speter
6380251883Speter      dir=
6381251883Speter      case $file in
6382251883Speter      *.la)
6383251883Speter	# Check to see that this really is a libtool archive.
6384251883Speter	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6385251883Speter	else
6386251883Speter	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6387251883Speter	  $echo "$help" 1>&2
6388251883Speter	  exit $EXIT_FAILURE
6389251883Speter	fi
6390251883Speter
6391251883Speter	# Read the libtool library.
6392251883Speter	dlname=
6393251883Speter	library_names=
6394251883Speter
6395251883Speter	# If there is no directory component, then add one.
6396251883Speter	case $file in
6397251883Speter	*/* | *\\*) . $file ;;
6398251883Speter	*) . ./$file ;;
6399251883Speter	esac
6400251883Speter
6401251883Speter	# Skip this library if it cannot be dlopened.
6402251883Speter	if test -z "$dlname"; then
6403251883Speter	  # Warn if it was a shared library.
6404251883Speter	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6405251883Speter	  continue
6406251883Speter	fi
6407251883Speter
6408251883Speter	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6409251883Speter	test "X$dir" = "X$file" && dir=.
6410251883Speter
6411251883Speter	if test -f "$dir/$objdir/$dlname"; then
6412251883Speter	  dir="$dir/$objdir"
6413251883Speter	else
6414251883Speter	  if test ! -f "$dir/$dlname"; then
6415251883Speter	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6416251883Speter	    exit $EXIT_FAILURE
6417251883Speter	  fi
6418251883Speter	fi
6419251883Speter	;;
6420251883Speter
6421251883Speter      *.lo)
6422251883Speter	# Just add the directory containing the .lo file.
6423251883Speter	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6424251883Speter	test "X$dir" = "X$file" && dir=.
6425251883Speter	;;
6426251883Speter
6427251883Speter      *)
6428251883Speter	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6429251883Speter	continue
6430251883Speter	;;
6431251883Speter      esac
6432251883Speter
6433251883Speter      # Get the absolute pathname.
6434251883Speter      absdir=`cd "$dir" && pwd`
6435251883Speter      test -n "$absdir" && dir="$absdir"
6436251883Speter
6437251883Speter      # Now add the directory to shlibpath_var.
6438251883Speter      if eval "test -z \"\$$shlibpath_var\""; then
6439251883Speter	eval "$shlibpath_var=\"\$dir\""
6440251883Speter      else
6441251883Speter	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6442251883Speter      fi
6443251883Speter    done
6444251883Speter
6445251883Speter    # This variable tells wrapper scripts just to set shlibpath_var
6446251883Speter    # rather than running their programs.
6447251883Speter    libtool_execute_magic="$magic"
6448251883Speter
6449251883Speter    # Check if any of the arguments is a wrapper script.
6450251883Speter    args=
6451251883Speter    for file
6452251883Speter    do
6453251883Speter      case $file in
6454251883Speter      -*) ;;
6455251883Speter      *)
6456251883Speter	# Do a test to see if this is really a libtool program.
6457251883Speter	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6458251883Speter	  # If there is no directory component, then add one.
6459251883Speter	  case $file in
6460251883Speter	  */* | *\\*) . $file ;;
6461251883Speter	  *) . ./$file ;;
6462251883Speter	  esac
6463251883Speter
6464251883Speter	  # Transform arg to wrapped name.
6465251883Speter	  file="$progdir/$program"
6466251883Speter	fi
6467251883Speter	;;
6468251883Speter      esac
6469251883Speter      # Quote arguments (to preserve shell metacharacters).
6470251883Speter      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6471251883Speter      args="$args \"$file\""
6472251883Speter    done
6473251883Speter
6474251883Speter    if test -z "$run"; then
6475251883Speter      if test -n "$shlibpath_var"; then
6476251883Speter	# Export the shlibpath_var.
6477251883Speter	eval "export $shlibpath_var"
6478251883Speter      fi
6479251883Speter
6480251883Speter      # Restore saved environment variables
6481251883Speter      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
6482251883Speter      do
6483251883Speter	eval "if test \"\${save_$lt_var+set}\" = set; then
6484251883Speter		$lt_var=\$save_$lt_var; export $lt_var
6485251883Speter	      fi"
6486251883Speter      done
6487251883Speter
6488251883Speter      # Now prepare to actually exec the command.
6489251883Speter      exec_cmd="\$cmd$args"
6490251883Speter    else
6491251883Speter      # Display what would be done.
6492251883Speter      if test -n "$shlibpath_var"; then
6493251883Speter	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6494251883Speter	$echo "export $shlibpath_var"
6495251883Speter      fi
6496251883Speter      $echo "$cmd$args"
6497251883Speter      exit $EXIT_SUCCESS
6498251883Speter    fi
6499251883Speter    ;;
6500251883Speter
6501251883Speter  # libtool clean and uninstall mode
6502251883Speter  clean | uninstall)
6503251883Speter    modename="$modename: $mode"
6504251883Speter    rm="$nonopt"
6505251883Speter    files=
6506251883Speter    rmforce=
6507251883Speter    exit_status=0
6508251883Speter
6509251883Speter    # This variable tells wrapper scripts just to set variables rather
6510251883Speter    # than running their programs.
6511251883Speter    libtool_install_magic="$magic"
6512251883Speter
6513251883Speter    for arg
6514251883Speter    do
6515251883Speter      case $arg in
6516251883Speter      -f) rm="$rm $arg"; rmforce=yes ;;
6517251883Speter      -*) rm="$rm $arg" ;;
6518251883Speter      *) files="$files $arg" ;;
6519251883Speter      esac
6520251883Speter    done
6521251883Speter
6522251883Speter    if test -z "$rm"; then
6523251883Speter      $echo "$modename: you must specify an RM program" 1>&2
6524251883Speter      $echo "$help" 1>&2
6525251883Speter      exit $EXIT_FAILURE
6526251883Speter    fi
6527251883Speter
6528251883Speter    rmdirs=
6529251883Speter
6530251883Speter    origobjdir="$objdir"
6531251883Speter    for file in $files; do
6532251883Speter      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6533251883Speter      if test "X$dir" = "X$file"; then
6534251883Speter	dir=.
6535251883Speter	objdir="$origobjdir"
6536251883Speter      else
6537251883Speter	objdir="$dir/$origobjdir"
6538251883Speter      fi
6539251883Speter      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6540251883Speter      test "$mode" = uninstall && objdir="$dir"
6541251883Speter
6542251883Speter      # Remember objdir for removal later, being careful to avoid duplicates
6543251883Speter      if test "$mode" = clean; then
6544251883Speter	case " $rmdirs " in
6545251883Speter	  *" $objdir "*) ;;
6546251883Speter	  *) rmdirs="$rmdirs $objdir" ;;
6547251883Speter	esac
6548251883Speter      fi
6549251883Speter
6550251883Speter      # Don't error if the file doesn't exist and rm -f was used.
6551251883Speter      if (test -L "$file") >/dev/null 2>&1 \
6552251883Speter	|| (test -h "$file") >/dev/null 2>&1 \
6553251883Speter	|| test -f "$file"; then
6554251883Speter	:
6555251883Speter      elif test -d "$file"; then
6556251883Speter	exit_status=1
6557251883Speter	continue
6558251883Speter      elif test "$rmforce" = yes; then
6559251883Speter	continue
6560251883Speter      fi
6561251883Speter
6562251883Speter      rmfiles="$file"
6563251883Speter
6564251883Speter      case $name in
6565251883Speter      *.la)
6566251883Speter	# Possibly a libtool archive, so verify it.
6567251883Speter	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6568251883Speter	  . $dir/$name
6569251883Speter
6570251883Speter	  # Delete the libtool libraries and symlinks.
6571251883Speter	  for n in $library_names; do
6572251883Speter	    rmfiles="$rmfiles $objdir/$n"
6573251883Speter	  done
6574251883Speter	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6575251883Speter
6576251883Speter	  case "$mode" in
6577251883Speter	  clean)
6578251883Speter	    case "  $library_names " in
6579251883Speter	    # "  " in the beginning catches empty $dlname
6580251883Speter	    *" $dlname "*) ;;
6581251883Speter	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6582251883Speter	    esac
6583251883Speter	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6584251883Speter	    ;;
6585251883Speter	  uninstall)
6586251883Speter	    if test -n "$library_names"; then
6587251883Speter	      # Do each command in the postuninstall commands.
6588251883Speter	      cmds=$postuninstall_cmds
6589251883Speter	      save_ifs="$IFS"; IFS='~'
6590251883Speter	      for cmd in $cmds; do
6591251883Speter		IFS="$save_ifs"
6592251883Speter		eval cmd=\"$cmd\"
6593251883Speter		$show "$cmd"
6594251883Speter		$run eval "$cmd"
6595251883Speter		if test "$?" -ne 0 && test "$rmforce" != yes; then
6596251883Speter		  exit_status=1
6597251883Speter		fi
6598251883Speter	      done
6599251883Speter	      IFS="$save_ifs"
6600251883Speter	    fi
6601251883Speter
6602251883Speter	    if test -n "$old_library"; then
6603251883Speter	      # Do each command in the old_postuninstall commands.
6604251883Speter	      cmds=$old_postuninstall_cmds
6605251883Speter	      save_ifs="$IFS"; IFS='~'
6606251883Speter	      for cmd in $cmds; do
6607251883Speter		IFS="$save_ifs"
6608251883Speter		eval cmd=\"$cmd\"
6609251883Speter		$show "$cmd"
6610251883Speter		$run eval "$cmd"
6611251883Speter		if test "$?" -ne 0 && test "$rmforce" != yes; then
6612251883Speter		  exit_status=1
6613251883Speter		fi
6614251883Speter	      done
6615251883Speter	      IFS="$save_ifs"
6616251883Speter	    fi
6617251883Speter	    # FIXME: should reinstall the best remaining shared library.
6618251883Speter	    ;;
6619251883Speter	  esac
6620251883Speter	fi
6621251883Speter	;;
6622251883Speter
6623251883Speter      *.lo)
6624251883Speter	# Possibly a libtool object, so verify it.
6625251883Speter	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6626251883Speter
6627251883Speter	  # Read the .lo file
6628251883Speter	  . $dir/$name
6629251883Speter
6630251883Speter	  # Add PIC object to the list of files to remove.
6631251883Speter	  if test -n "$pic_object" \
6632251883Speter	     && test "$pic_object" != none; then
6633251883Speter	    rmfiles="$rmfiles $dir/$pic_object"
6634251883Speter	  fi
6635251883Speter
6636251883Speter	  # Add non-PIC object to the list of files to remove.
6637251883Speter	  if test -n "$non_pic_object" \
6638251883Speter	     && test "$non_pic_object" != none; then
6639251883Speter	    rmfiles="$rmfiles $dir/$non_pic_object"
6640251883Speter	  fi
6641251883Speter	fi
6642251883Speter	;;
6643251883Speter
6644251883Speter      *)
6645251883Speter	if test "$mode" = clean ; then
6646251883Speter	  noexename=$name
6647251883Speter	  case $file in
6648251883Speter	  *.exe)
6649251883Speter	    file=`$echo $file|${SED} 's,.exe$,,'`
6650251883Speter	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6651251883Speter	    # $file with .exe has already been added to rmfiles,
6652251883Speter	    # add $file without .exe
6653251883Speter	    rmfiles="$rmfiles $file"
6654251883Speter	    ;;
6655251883Speter	  esac
6656251883Speter	  # Do a test to see if this is a libtool program.
6657251883Speter	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6658251883Speter	    relink_command=
6659251883Speter	    . $dir/$noexename
6660251883Speter
6661251883Speter	    # note $name still contains .exe if it was in $file originally
6662251883Speter	    # as does the version of $file that was added into $rmfiles
6663251883Speter	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6664251883Speter	    if test "$fast_install" = yes && test -n "$relink_command"; then
6665251883Speter	      rmfiles="$rmfiles $objdir/lt-$name"
6666251883Speter	    fi
6667251883Speter	    if test "X$noexename" != "X$name" ; then
6668251883Speter	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6669251883Speter	    fi
6670251883Speter	  fi
6671251883Speter	fi
6672251883Speter	;;
6673251883Speter      esac
6674251883Speter      $show "$rm $rmfiles"
6675251883Speter      $run $rm $rmfiles || exit_status=1
6676251883Speter    done
6677251883Speter    objdir="$origobjdir"
6678251883Speter
6679251883Speter    # Try to remove the ${objdir}s in the directories where we deleted files
6680251883Speter    for dir in $rmdirs; do
6681251883Speter      if test -d "$dir"; then
6682251883Speter	$show "rmdir $dir"
6683251883Speter	$run rmdir $dir >/dev/null 2>&1
6684251883Speter      fi
6685251883Speter    done
6686251883Speter
6687251883Speter    exit $exit_status
6688251883Speter    ;;
6689251883Speter
6690251883Speter  "")
6691251883Speter    $echo "$modename: you must specify a MODE" 1>&2
6692251883Speter    $echo "$generic_help" 1>&2
6693251883Speter    exit $EXIT_FAILURE
6694251883Speter    ;;
6695251883Speter  esac
6696251883Speter
6697251883Speter  if test -z "$exec_cmd"; then
6698251883Speter    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6699251883Speter    $echo "$generic_help" 1>&2
6700251883Speter    exit $EXIT_FAILURE
6701251883Speter  fi
6702251883Speterfi # test -z "$show_help"
6703251883Speter
6704251883Speterif test -n "$exec_cmd"; then
6705251883Speter  eval exec $exec_cmd
6706251883Speter  exit $EXIT_FAILURE
6707251883Speterfi
6708251883Speter
6709251883Speter# We need to display help for each of the modes.
6710251883Spetercase $mode in
6711251883Speter"") $echo \
6712251883Speter"Usage: $modename [OPTION]... [MODE-ARG]...
6713251883Speter
6714251883SpeterProvide generalized library-building support services.
6715251883Speter
6716251883Speter    --config          show all configuration variables
6717251883Speter    --debug           enable verbose shell tracing
6718251883Speter-n, --dry-run         display commands without modifying any files
6719251883Speter    --features        display basic configuration information and exit
6720251883Speter    --finish          same as \`--mode=finish'
6721251883Speter    --help            display this help message and exit
6722251883Speter    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6723251883Speter    --quiet           same as \`--silent'
6724251883Speter    --silent          don't print informational messages
6725251883Speter    --tag=TAG         use configuration variables from tag TAG
6726251883Speter    --version         print version information
6727251883Speter
6728251883SpeterMODE must be one of the following:
6729251883Speter
6730251883Speter      clean           remove files from the build directory
6731251883Speter      compile         compile a source file into a libtool object
6732251883Speter      execute         automatically set library path, then run a program
6733251883Speter      finish          complete the installation of libtool libraries
6734251883Speter      install         install libraries or executables
6735251883Speter      link            create a library or an executable
6736251883Speter      uninstall       remove libraries from an installed directory
6737251883Speter
6738251883SpeterMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6739251883Spetera more detailed description of MODE.
6740251883Speter
6741251883SpeterReport bugs to <bug-libtool@gnu.org>."
6742251883Speter  exit $EXIT_SUCCESS
6743251883Speter  ;;
6744251883Speter
6745251883Speterclean)
6746251883Speter  $echo \
6747251883Speter"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6748251883Speter
6749251883SpeterRemove files from the build directory.
6750251883Speter
6751251883SpeterRM is the name of the program to use to delete files associated with each FILE
6752251883Speter(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6753251883Speterto RM.
6754251883Speter
6755251883SpeterIf FILE is a libtool library, object or program, all the files associated
6756251883Speterwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6757251883Speter  ;;
6758251883Speter
6759251883Spetercompile)
6760251883Speter  $echo \
6761251883Speter"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6762251883Speter
6763251883SpeterCompile a source file into a libtool library object.
6764251883Speter
6765251883SpeterThis mode accepts the following additional options:
6766251883Speter
6767251883Speter  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6768251883Speter  -prefer-pic       try to building PIC objects only
6769251883Speter  -prefer-non-pic   try to building non-PIC objects only
6770251883Speter  -static           always build a \`.o' file suitable for static linking
6771251883Speter
6772251883SpeterCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6773251883Speterfrom the given SOURCEFILE.
6774251883Speter
6775251883SpeterThe output file name is determined by removing the directory component from
6776251883SpeterSOURCEFILE, then substituting the C source code suffix \`.c' with the
6777251883Speterlibrary object suffix, \`.lo'."
6778251883Speter  ;;
6779251883Speter
6780251883Speterexecute)
6781251883Speter  $echo \
6782251883Speter"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6783251883Speter
6784251883SpeterAutomatically set library path, then run a program.
6785251883Speter
6786251883SpeterThis mode accepts the following additional options:
6787251883Speter
6788251883Speter  -dlopen FILE      add the directory containing FILE to the library path
6789251883Speter
6790251883SpeterThis mode sets the library path environment variable according to \`-dlopen'
6791251883Speterflags.
6792251883Speter
6793251883SpeterIf any of the ARGS are libtool executable wrappers, then they are translated
6794251883Speterinto their corresponding uninstalled binary, and any of their required library
6795251883Speterdirectories are added to the library path.
6796251883Speter
6797251883SpeterThen, COMMAND is executed, with ARGS as arguments."
6798251883Speter  ;;
6799251883Speter
6800251883Speterfinish)
6801251883Speter  $echo \
6802251883Speter"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6803251883Speter
6804251883SpeterComplete the installation of libtool libraries.
6805251883Speter
6806251883SpeterEach LIBDIR is a directory that contains libtool libraries.
6807251883Speter
6808251883SpeterThe commands that this mode executes may require superuser privileges.  Use
6809251883Speterthe \`--dry-run' option if you just want to see what would be executed."
6810251883Speter  ;;
6811251883Speter
6812251883Speterinstall)
6813251883Speter  $echo \
6814251883Speter"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6815251883Speter
6816251883SpeterInstall executables or libraries.
6817251883Speter
6818251883SpeterINSTALL-COMMAND is the installation command.  The first component should be
6819251883Spetereither the \`install' or \`cp' program.
6820251883Speter
6821251883SpeterThe rest of the components are interpreted as arguments to that command (only
6822251883SpeterBSD-compatible install options are recognized)."
6823251883Speter  ;;
6824251883Speter
6825251883Speterlink)
6826251883Speter  $echo \
6827251883Speter"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6828251883Speter
6829251883SpeterLink object files or libraries together to form another library, or to
6830251883Spetercreate an executable program.
6831251883Speter
6832251883SpeterLINK-COMMAND is a command using the C compiler that you would use to create
6833251883Spetera program from several object files.
6834251883Speter
6835251883SpeterThe following components of LINK-COMMAND are treated specially:
6836251883Speter
6837251883Speter  -all-static       do not do any dynamic linking at all
6838251883Speter  -avoid-version    do not add a version suffix if possible
6839251883Speter  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6840251883Speter  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6841251883Speter  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6842251883Speter  -export-symbols SYMFILE
6843251883Speter                    try to export only the symbols listed in SYMFILE
6844251883Speter  -export-symbols-regex REGEX
6845251883Speter                    try to export only the symbols matching REGEX
6846251883Speter  -LLIBDIR          search LIBDIR for required installed libraries
6847251883Speter  -lNAME            OUTPUT-FILE requires the installed library libNAME
6848251883Speter  -module           build a library that can dlopened
6849251883Speter  -no-fast-install  disable the fast-install mode
6850251883Speter  -no-install       link a not-installable executable
6851251883Speter  -no-undefined     declare that a library does not refer to external symbols
6852251883Speter  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6853251883Speter  -objectlist FILE  Use a list of object files found in FILE to specify objects
6854251883Speter  -precious-files-regex REGEX
6855251883Speter                    don't remove output files matching REGEX
6856251883Speter  -release RELEASE  specify package release information
6857251883Speter  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6858251883Speter  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6859251883Speter  -static           do not do any dynamic linking of uninstalled libtool libraries
6860251883Speter  -static-libtool-libs
6861251883Speter                    do not do any dynamic linking of libtool libraries
6862251883Speter  -version-info CURRENT[:REVISION[:AGE]]
6863251883Speter                    specify library version info [each variable defaults to 0]
6864251883Speter
6865251883SpeterAll other options (arguments beginning with \`-') are ignored.
6866251883Speter
6867251883SpeterEvery other argument is treated as a filename.  Files ending in \`.la' are
6868251883Spetertreated as uninstalled libtool libraries, other files are standard or library
6869251883Speterobject files.
6870251883Speter
6871251883SpeterIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6872251883Speteronly library objects (\`.lo' files) may be specified, and \`-rpath' is
6873251883Speterrequired, except when creating a convenience library.
6874251883Speter
6875251883SpeterIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6876251883Speterusing \`ar' and \`ranlib', or on Windows using \`lib'.
6877251883Speter
6878251883SpeterIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6879251883Speteris created, otherwise an executable program is created."
6880251883Speter  ;;
6881251883Speter
6882251883Speteruninstall)
6883251883Speter  $echo \
6884251883Speter"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6885251883Speter
6886251883SpeterRemove libraries from an installation directory.
6887251883Speter
6888251883SpeterRM is the name of the program to use to delete files associated with each FILE
6889251883Speter(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6890251883Speterto RM.
6891251883Speter
6892251883SpeterIf FILE is a libtool library, all the files associated with it are deleted.
6893251883SpeterOtherwise, only FILE itself is deleted using RM."
6894251883Speter  ;;
6895251883Speter
6896251883Speter*)
6897251883Speter  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6898251883Speter  $echo "$help" 1>&2
6899251883Speter  exit $EXIT_FAILURE
6900251883Speter  ;;
6901251883Speteresac
6902251883Speter
6903251883Speter$echo
6904251883Speter$echo "Try \`$modename --help' for more information about other modes."
6905251883Speter
6906251883Speterexit $?
6907251883Speter
6908251883Speter# The TAGs below are defined such that we never get into a situation
6909251883Speter# in which we disable both kinds of libraries.  Given conflicting
6910251883Speter# choices, we go for a static library, that is the most portable,
6911251883Speter# since we can't tell whether shared libraries were disabled because
6912251883Speter# the user asked for that or because the platform doesn't support
6913251883Speter# them.  This is particularly important on AIX, because we don't
6914251883Speter# support having both static and shared libraries enabled at the same
6915251883Speter# time on that platform, so we default to a shared-only configuration.
6916251883Speter# If a disable-shared tag is given, we'll fallback to a static-only
6917251883Speter# configuration.  But we'll never go from static-only to shared-only.
6918251883Speter
6919251883Speter# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6920251883Speterdisable_libs=shared
6921251883Speter# ### END LIBTOOL TAG CONFIG: disable-shared
6922251883Speter
6923251883Speter# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6924251883Speterdisable_libs=static
6925251883Speter# ### END LIBTOOL TAG CONFIG: disable-static
6926251883Speter
6927251883Speter# Local Variables:
6928251883Speter# mode:shell-script
6929251883Speter# sh-indentation:2
6930251883Speter# End:
6931