ltmain.sh revision 5c42550e
15c42550eSmrg# ltmain.sh - Provide generalized library-building support services.
25c42550eSmrg# NOTE: Changing this file will not affect anything until you rerun configure.
35c42550eSmrg#
45c42550eSmrg# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
55c42550eSmrg# 2007, 2008  Free Software Foundation, Inc.
65c42550eSmrg# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
75c42550eSmrg#
85c42550eSmrg# This program is free software; you can redistribute it and/or modify
9ab47cfaaSmrg# it under the terms of the GNU General Public License as published by
10ab47cfaaSmrg# the Free Software Foundation; either version 2 of the License, or
11ab47cfaaSmrg# (at your option) any later version.
12ab47cfaaSmrg#
135c42550eSmrg# This program is distributed in the hope that it will be useful, but
14ab47cfaaSmrg# WITHOUT ANY WARRANTY; without even the implied warranty of
15ab47cfaaSmrg# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16ab47cfaaSmrg# General Public License for more details.
17ab47cfaaSmrg#
18ab47cfaaSmrg# You should have received a copy of the GNU General Public License
195c42550eSmrg# along with this program; if not, write to the Free Software
205c42550eSmrg# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
211473d951Smrg#
225c42550eSmrg# As a special exception to the GNU General Public License, if you
235c42550eSmrg# distribute this file as part of a program that contains a
245c42550eSmrg# configuration script generated by Autoconf, you may include it under
255c42550eSmrg# the same distribution terms that you use for the rest of that program.
265c42550eSmrg
275c42550eSmrgbasename="s,^.*/,,g"
285c42550eSmrg
295c42550eSmrg# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
305c42550eSmrg# is ksh but when the shell is invoked as "sh" and the current value of
315c42550eSmrg# the _XPG environment variable is not equal to 1 (one), the special
325c42550eSmrg# positional parameter $0, within a function call, is the name of the
335c42550eSmrg# function.
345c42550eSmrgprogpath="$0"
355c42550eSmrg
365c42550eSmrg# The name of this program:
375c42550eSmrgprogname=`echo "$progpath" | $SED $basename`
385c42550eSmrgmodename="$progname"
395c42550eSmrg
405c42550eSmrg# Global variables:
415c42550eSmrgEXIT_SUCCESS=0
425c42550eSmrgEXIT_FAILURE=1
43ab47cfaaSmrg
44ab47cfaaSmrgPROGRAM=ltmain.sh
45ab47cfaaSmrgPACKAGE=libtool
465c42550eSmrgVERSION=1.5.26
475c42550eSmrgTIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
488697ee19Smrg
495c42550eSmrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
508697ee19Smrgif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
518697ee19Smrg  emulate sh
528697ee19Smrg  NULLCMD=:
538697ee19Smrg  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
548697ee19Smrg  # is contrary to our usage.  Disable this feature.
558697ee19Smrg  alias -g '${1+"$@"}'='"$@"'
56ab47cfaaSmrg  setopt NO_GLOB_SUBST
578697ee19Smrgelse
588697ee19Smrg  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
59ab47cfaaSmrgfi
608697ee19SmrgBIN_SH=xpg4; export BIN_SH # for Tru64
618697ee19SmrgDUALCASE=1; export DUALCASE # for MKS sh
62ab47cfaaSmrg
635c42550eSmrg# Check that we have a working $echo.
645c42550eSmrgif test "X$1" = X--no-reexec; then
655c42550eSmrg  # Discard the --no-reexec flag, and continue.
665c42550eSmrg  shift
675c42550eSmrgelif test "X$1" = X--fallback-echo; then
685c42550eSmrg  # Avoid inline document here, it may be left over
695c42550eSmrg  :
705c42550eSmrgelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
715c42550eSmrg  # Yippee, $echo works!
725c42550eSmrg  :
735c42550eSmrgelse
745c42550eSmrg  # Restart under the correct shell, and then maybe $echo will work.
755c42550eSmrg  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
765c42550eSmrgfi
775c42550eSmrg
785c42550eSmrgif test "X$1" = X--fallback-echo; then
795c42550eSmrg  # used as fallback echo
805c42550eSmrg  shift
815c42550eSmrg  cat <<EOF
825c42550eSmrg$*
835c42550eSmrgEOF
845c42550eSmrg  exit $EXIT_SUCCESS
855c42550eSmrgfi
865c42550eSmrg
875c42550eSmrgdefault_mode=
885c42550eSmrghelp="Try \`$progname --help' for more information."
895c42550eSmrgmagic="%%%MAGIC variable%%%"
905c42550eSmrgmkdir="mkdir"
915c42550eSmrgmv="mv -f"
925c42550eSmrgrm="rm -f"
935c42550eSmrg
945c42550eSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
955c42550eSmrg# metacharacters that are still active within double-quoted strings.
965c42550eSmrgXsed="${SED}"' -e 1s/^X//'
975c42550eSmrgsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
985c42550eSmrg# test EBCDIC or ASCII
995c42550eSmrgcase `echo X|tr X '\101'` in
1005c42550eSmrg A) # ASCII based system
1015c42550eSmrg    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
1025c42550eSmrg  SP2NL='tr \040 \012'
1035c42550eSmrg  NL2SP='tr \015\012 \040\040'
1045c42550eSmrg  ;;
1055c42550eSmrg *) # EBCDIC based system
1065c42550eSmrg  SP2NL='tr \100 \n'
1075c42550eSmrg  NL2SP='tr \r\n \100\100'
1085c42550eSmrg  ;;
1095c42550eSmrgesac
1105c42550eSmrg
1115c42550eSmrg# NLS nuisances.
112ab47cfaaSmrg# Only set LANG and LC_ALL to C if already set.
113ab47cfaaSmrg# These must not be set unconditionally because not all systems understand
114ab47cfaaSmrg# e.g. LANG=C (notably SCO).
1155c42550eSmrg# We save the old values to restore during execute mode.
1165c42550eSmrglt_env=
1171473d951Smrgfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1188697ee19Smrgdo
1198697ee19Smrg  eval "if test \"\${$lt_var+set}\" = set; then
1205c42550eSmrg	  save_$lt_var=\$$lt_var
1215c42550eSmrg	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
1225c42550eSmrg	  $lt_var=C
1238697ee19Smrg	  export $lt_var
1248697ee19Smrg	fi"
1258697ee19Smrgdone
126ab47cfaaSmrg
1275c42550eSmrgif test -n "$lt_env"; then
1285c42550eSmrg  lt_env="env $lt_env"
1295c42550eSmrgfi
1301473d951Smrg
131ab47cfaaSmrg# Make sure IFS has a sensible default
132ab47cfaaSmrglt_nl='
133ab47cfaaSmrg'
134ab47cfaaSmrgIFS=" 	$lt_nl"
135ab47cfaaSmrg
1365c42550eSmrgif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1375c42550eSmrg  $echo "$modename: not configured to build any kind of library" 1>&2
1385c42550eSmrg  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1395c42550eSmrg  exit $EXIT_FAILURE
1405c42550eSmrgfi
1411473d951Smrg
1425c42550eSmrg# Global variables.
1435c42550eSmrgmode=$default_mode
1445c42550eSmrgnonopt=
1455c42550eSmrgprev=
1465c42550eSmrgprevopt=
1475c42550eSmrgrun=
1485c42550eSmrgshow="$echo"
1495c42550eSmrgshow_help=
1505c42550eSmrgexecute_dlfiles=
1515c42550eSmrgduplicate_deps=no
1525c42550eSmrgpreserve_args=
1535c42550eSmrglo2o="s/\\.lo\$/.${objext}/"
1545c42550eSmrgo2lo="s/\\.${objext}\$/.lo/"
1555c42550eSmrgextracted_archives=
1565c42550eSmrgextracted_serial=0
157ab47cfaaSmrg
1585c42550eSmrg#####################################
1595c42550eSmrg# Shell function definitions:
1605c42550eSmrg# This seems to be the best place for them
161ab47cfaaSmrg
162ab47cfaaSmrg# func_mktempdir [string]
163ab47cfaaSmrg# Make a temporary directory that won't clash with other running
164ab47cfaaSmrg# libtool processes, and avoids race conditions if possible.  If
165ab47cfaaSmrg# given, STRING is the basename for that directory.
166ab47cfaaSmrgfunc_mktempdir ()
167ab47cfaaSmrg{
168ab47cfaaSmrg    my_template="${TMPDIR-/tmp}/${1-$progname}"
169ab47cfaaSmrg
1705c42550eSmrg    if test "$run" = ":"; then
171ab47cfaaSmrg      # Return a directory name, but don't create it in dry-run mode
172ab47cfaaSmrg      my_tmpdir="${my_template}-$$"
173ab47cfaaSmrg    else
174ab47cfaaSmrg
175ab47cfaaSmrg      # If mktemp works, use that first and foremost
176ab47cfaaSmrg      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
177ab47cfaaSmrg
178ab47cfaaSmrg      if test ! -d "$my_tmpdir"; then
1795c42550eSmrg	# Failing that, at least try and use $RANDOM to avoid a race
1805c42550eSmrg	my_tmpdir="${my_template}-${RANDOM-0}$$"
181ab47cfaaSmrg
1825c42550eSmrg	save_mktempdir_umask=`umask`
1835c42550eSmrg	umask 0077
1845c42550eSmrg	$mkdir "$my_tmpdir"
1855c42550eSmrg	umask $save_mktempdir_umask
186ab47cfaaSmrg      fi
187ab47cfaaSmrg
188ab47cfaaSmrg      # If we're not in dry-run mode, bomb out on failure
1895c42550eSmrg      test -d "$my_tmpdir" || {
1905c42550eSmrg        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
1915c42550eSmrg	exit $EXIT_FAILURE
1925c42550eSmrg      }
193ab47cfaaSmrg    fi
194ab47cfaaSmrg
1955c42550eSmrg    $echo "X$my_tmpdir" | $Xsed
196ab47cfaaSmrg}
197ab47cfaaSmrg
198ab47cfaaSmrg
1995c42550eSmrg# func_win32_libid arg
2005c42550eSmrg# return the library type of file 'arg'
2015c42550eSmrg#
2025c42550eSmrg# Need a lot of goo to handle *both* DLLs and import libs
2035c42550eSmrg# Has to be a shell function in order to 'eat' the argument
2045c42550eSmrg# that is supplied when $file_magic_command is called.
2055c42550eSmrgfunc_win32_libid ()
206ab47cfaaSmrg{
2075c42550eSmrg  win32_libid_type="unknown"
2085c42550eSmrg  win32_fileres=`file -L $1 2>/dev/null`
2095c42550eSmrg  case $win32_fileres in
2105c42550eSmrg  *ar\ archive\ import\ library*) # definitely import
2115c42550eSmrg    win32_libid_type="x86 archive import"
2125c42550eSmrg    ;;
2135c42550eSmrg  *ar\ archive*) # could be an import, or static
2145c42550eSmrg    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
2155c42550eSmrg      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2165c42550eSmrg      win32_nmres=`eval $NM -f posix -A $1 | \
2175c42550eSmrg	$SED -n -e '1,100{
2185c42550eSmrg		/ I /{
2195c42550eSmrg			s,.*,import,
2205c42550eSmrg			p
2215c42550eSmrg			q
2225c42550eSmrg			}
2235c42550eSmrg		}'`
2245c42550eSmrg      case $win32_nmres in
2255c42550eSmrg      import*)  win32_libid_type="x86 archive import";;
2265c42550eSmrg      *)        win32_libid_type="x86 archive static";;
2275c42550eSmrg      esac
2285c42550eSmrg    fi
2295c42550eSmrg    ;;
2305c42550eSmrg  *DLL*)
2315c42550eSmrg    win32_libid_type="x86 DLL"
2325c42550eSmrg    ;;
2335c42550eSmrg  *executable*) # but shell scripts are "executable" too...
2345c42550eSmrg    case $win32_fileres in
2355c42550eSmrg    *MS\ Windows\ PE\ Intel*)
2365c42550eSmrg      win32_libid_type="x86 DLL"
2375c42550eSmrg      ;;
238ab47cfaaSmrg    esac
2395c42550eSmrg    ;;
2405c42550eSmrg  esac
2415c42550eSmrg  $echo $win32_libid_type
242ab47cfaaSmrg}
243ab47cfaaSmrg
244ab47cfaaSmrg
2455c42550eSmrg# func_infer_tag arg
2465c42550eSmrg# Infer tagged configuration to use if any are available and
2475c42550eSmrg# if one wasn't chosen via the "--tag" command line option.
2485c42550eSmrg# Only attempt this if the compiler in the base compile
2495c42550eSmrg# command doesn't match the default compiler.
2505c42550eSmrg# arg is usually of the form 'gcc ...'
2515c42550eSmrgfunc_infer_tag ()
252ab47cfaaSmrg{
2535c42550eSmrg    if test -n "$available_tags" && test -z "$tagname"; then
2545c42550eSmrg      CC_quoted=
2555c42550eSmrg      for arg in $CC; do
2565c42550eSmrg	case $arg in
2575c42550eSmrg	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2585c42550eSmrg	  arg="\"$arg\""
2595c42550eSmrg	  ;;
2605c42550eSmrg	esac
2615c42550eSmrg	CC_quoted="$CC_quoted $arg"
2625c42550eSmrg      done
2635c42550eSmrg      case $@ in
2645c42550eSmrg      # Blanks in the command may have been stripped by the calling shell,
2655c42550eSmrg      # but not from the CC environment variable when configure was run.
2665c42550eSmrg      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
2675c42550eSmrg      # Blanks at the start of $base_compile will cause this to fail
2685c42550eSmrg      # if we don't check for them as well.
269ab47cfaaSmrg      *)
2705c42550eSmrg	for z in $available_tags; do
2715c42550eSmrg	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
2725c42550eSmrg	    # Evaluate the configuration.
2735c42550eSmrg	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
2745c42550eSmrg	    CC_quoted=
2755c42550eSmrg	    for arg in $CC; do
2765c42550eSmrg	    # Double-quote args containing other shell metacharacters.
2775c42550eSmrg	    case $arg in
2785c42550eSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2795c42550eSmrg	      arg="\"$arg\""
2805c42550eSmrg	      ;;
2815c42550eSmrg	    esac
2825c42550eSmrg	    CC_quoted="$CC_quoted $arg"
2835c42550eSmrg	  done
2845c42550eSmrg	    case "$@ " in
2855c42550eSmrg	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
2865c42550eSmrg	      # The compiler in the base compile command matches
2875c42550eSmrg	      # the one in the tagged configuration.
2885c42550eSmrg	      # Assume this is the tagged configuration we want.
2895c42550eSmrg	      tagname=$z
2905c42550eSmrg	      break
2915c42550eSmrg	      ;;
2925c42550eSmrg	    esac
2935c42550eSmrg	  fi
2945c42550eSmrg	done
2955c42550eSmrg	# If $tagname still isn't set, then no tagged configuration
2965c42550eSmrg	# was found and let the user know that the "--tag" command
2975c42550eSmrg	# line option must be used.
2985c42550eSmrg	if test -z "$tagname"; then
2995c42550eSmrg	  $echo "$modename: unable to infer tagged configuration"
3005c42550eSmrg	  $echo "$modename: specify a tag with \`--tag'" 1>&2
3015c42550eSmrg	  exit $EXIT_FAILURE
3025c42550eSmrg#        else
3035c42550eSmrg#          $echo "$modename: using $tagname tagged configuration"
3045c42550eSmrg	fi
3055c42550eSmrg	;;
3065c42550eSmrg      esac
3075c42550eSmrg    fi
308ab47cfaaSmrg}
309ab47cfaaSmrg
310ab47cfaaSmrg
3115c42550eSmrg# func_extract_an_archive dir oldlib
3125c42550eSmrgfunc_extract_an_archive ()
313ab47cfaaSmrg{
3145c42550eSmrg    f_ex_an_ar_dir="$1"; shift
3155c42550eSmrg    f_ex_an_ar_oldlib="$1"
3161473d951Smrg
3175c42550eSmrg    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
3185c42550eSmrg    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
3195c42550eSmrg    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3205c42550eSmrg     :
3215c42550eSmrg    else
3225c42550eSmrg      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
3235c42550eSmrg      exit $EXIT_FAILURE
324ab47cfaaSmrg    fi
325ab47cfaaSmrg}
326ab47cfaaSmrg
3275c42550eSmrg# func_extract_archives gentop oldlib ...
3285c42550eSmrgfunc_extract_archives ()
329ab47cfaaSmrg{
3305c42550eSmrg    my_gentop="$1"; shift
3315c42550eSmrg    my_oldlibs=${1+"$@"}
3325c42550eSmrg    my_oldobjs=""
3335c42550eSmrg    my_xlib=""
3345c42550eSmrg    my_xabs=""
3355c42550eSmrg    my_xdir=""
3365c42550eSmrg    my_status=""
3375c42550eSmrg
3385c42550eSmrg    $show "${rm}r $my_gentop"
3395c42550eSmrg    $run ${rm}r "$my_gentop"
3405c42550eSmrg    $show "$mkdir $my_gentop"
3415c42550eSmrg    $run $mkdir "$my_gentop"
3425c42550eSmrg    my_status=$?
3435c42550eSmrg    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
3445c42550eSmrg      exit $my_status
345ab47cfaaSmrg    fi
346ab47cfaaSmrg
3475c42550eSmrg    for my_xlib in $my_oldlibs; do
3485c42550eSmrg      # Extract the objects.
3495c42550eSmrg      case $my_xlib in
3505c42550eSmrg	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3515c42550eSmrg	*) my_xabs=`pwd`"/$my_xlib" ;;
3525c42550eSmrg      esac
3535c42550eSmrg      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
3545c42550eSmrg      my_xlib_u=$my_xlib
3555c42550eSmrg      while :; do
3565c42550eSmrg        case " $extracted_archives " in
3575c42550eSmrg	*" $my_xlib_u "*)
3585c42550eSmrg	  extracted_serial=`expr $extracted_serial + 1`
3595c42550eSmrg	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
3605c42550eSmrg	*) break ;;
3615c42550eSmrg	esac
3625c42550eSmrg      done
3635c42550eSmrg      extracted_archives="$extracted_archives $my_xlib_u"
3645c42550eSmrg      my_xdir="$my_gentop/$my_xlib_u"
3651473d951Smrg
3665c42550eSmrg      $show "${rm}r $my_xdir"
3675c42550eSmrg      $run ${rm}r "$my_xdir"
3685c42550eSmrg      $show "$mkdir $my_xdir"
3695c42550eSmrg      $run $mkdir "$my_xdir"
3705c42550eSmrg      exit_status=$?
3715c42550eSmrg      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
3725c42550eSmrg	exit $exit_status
3735c42550eSmrg      fi
3745c42550eSmrg      case $host in
3755c42550eSmrg      *-darwin*)
3765c42550eSmrg	$show "Extracting $my_xabs"
3775c42550eSmrg	# Do not bother doing anything if just a dry run
3785c42550eSmrg	if test -z "$run"; then
3795c42550eSmrg	  darwin_orig_dir=`pwd`
3805c42550eSmrg	  cd $my_xdir || exit $?
3815c42550eSmrg	  darwin_archive=$my_xabs
3825c42550eSmrg	  darwin_curdir=`pwd`
3835c42550eSmrg	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
3845c42550eSmrg	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
3855c42550eSmrg	  if test -n "$darwin_arches"; then 
3865c42550eSmrg	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
3875c42550eSmrg	    darwin_arch=
3885c42550eSmrg	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
3895c42550eSmrg	    for darwin_arch in  $darwin_arches ; do
3905c42550eSmrg	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3915c42550eSmrg	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3925c42550eSmrg	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3935c42550eSmrg	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3945c42550eSmrg	      cd "$darwin_curdir"
3955c42550eSmrg	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3965c42550eSmrg	    done # $darwin_arches
3975c42550eSmrg      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
3985c42550eSmrg	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
3995c42550eSmrg	    darwin_file=
4005c42550eSmrg	    darwin_files=
4015c42550eSmrg	    for darwin_file in $darwin_filelist; do
4025c42550eSmrg	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
4035c42550eSmrg	      lipo -create -output "$darwin_file" $darwin_files
4045c42550eSmrg	    done # $darwin_filelist
4055c42550eSmrg	    ${rm}r unfat-$$
4065c42550eSmrg	    cd "$darwin_orig_dir"
4075c42550eSmrg	  else
4085c42550eSmrg	    cd "$darwin_orig_dir"
4095c42550eSmrg 	    func_extract_an_archive "$my_xdir" "$my_xabs"
4105c42550eSmrg	  fi # $darwin_arches
4115c42550eSmrg	fi # $run
4125c42550eSmrg	;;
4135c42550eSmrg      *)
4145c42550eSmrg        func_extract_an_archive "$my_xdir" "$my_xabs"
4155c42550eSmrg        ;;
4165c42550eSmrg      esac
4175c42550eSmrg      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
4185c42550eSmrg    done
4195c42550eSmrg    func_extract_archives_result="$my_oldobjs"
420ab47cfaaSmrg}
4215c42550eSmrg# End of Shell function definitions
4225c42550eSmrg#####################################
423ab47cfaaSmrg
4245c42550eSmrg# Darwin sucks
4255c42550eSmrgeval std_shrext=\"$shrext_cmds\"
4261473d951Smrg
4275c42550eSmrgdisable_libs=no
4281473d951Smrg
4295c42550eSmrg# Parse our command line options once, thoroughly.
4305c42550eSmrgwhile test "$#" -gt 0
4315c42550eSmrgdo
4325c42550eSmrg  arg="$1"
4331473d951Smrg  shift
434ab47cfaaSmrg
4355c42550eSmrg  case $arg in
4365c42550eSmrg  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
4375c42550eSmrg  *) optarg= ;;
4385c42550eSmrg  esac
439ab47cfaaSmrg
4405c42550eSmrg  # If the previous option needs an argument, assign it.
4415c42550eSmrg  if test -n "$prev"; then
4425c42550eSmrg    case $prev in
4435c42550eSmrg    execute_dlfiles)
4445c42550eSmrg      execute_dlfiles="$execute_dlfiles $arg"
4455c42550eSmrg      ;;
4465c42550eSmrg    tag)
4475c42550eSmrg      tagname="$arg"
4485c42550eSmrg      preserve_args="${preserve_args}=$arg"
4495c42550eSmrg
4505c42550eSmrg      # Check whether tagname contains only valid characters
4515c42550eSmrg      case $tagname in
4525c42550eSmrg      *[!-_A-Za-z0-9,/]*)
4535c42550eSmrg	$echo "$progname: invalid tag name: $tagname" 1>&2
4545c42550eSmrg	exit $EXIT_FAILURE
4555c42550eSmrg	;;
4565c42550eSmrg      esac
457ab47cfaaSmrg
4585c42550eSmrg      case $tagname in
4595c42550eSmrg      CC)
4605c42550eSmrg	# Don't test for the "default" C tag, as we know, it's there, but
4615c42550eSmrg	# not specially marked.
4625c42550eSmrg	;;
4635c42550eSmrg      *)
4645c42550eSmrg	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
4655c42550eSmrg	  taglist="$taglist $tagname"
4665c42550eSmrg	  # Evaluate the configuration.
4675c42550eSmrg	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
4685c42550eSmrg	else
4695c42550eSmrg	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
4705c42550eSmrg	fi
4715c42550eSmrg	;;
4725c42550eSmrg      esac
4735c42550eSmrg      ;;
4745c42550eSmrg    *)
4755c42550eSmrg      eval "$prev=\$arg"
4765c42550eSmrg      ;;
4775c42550eSmrg    esac
4781473d951Smrg
4795c42550eSmrg    prev=
4805c42550eSmrg    prevopt=
4815c42550eSmrg    continue
4825c42550eSmrg  fi
483ab47cfaaSmrg
4845c42550eSmrg  # Have we seen a non-optional argument yet?
4855c42550eSmrg  case $arg in
4865c42550eSmrg  --help)
4875c42550eSmrg    show_help=yes
4885c42550eSmrg    ;;
4898697ee19Smrg
4905c42550eSmrg  --version)
4915c42550eSmrg    echo "\
4925c42550eSmrg$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
4931473d951Smrg
4945c42550eSmrgCopyright (C) 2008  Free Software Foundation, Inc.
4955c42550eSmrgThis is free software; see the source for copying conditions.  There is NO
4965c42550eSmrgwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
4975c42550eSmrg    exit $?
4985c42550eSmrg    ;;
499ab47cfaaSmrg
5005c42550eSmrg  --config)
5015c42550eSmrg    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
502ab47cfaaSmrg    # Now print the configurations for the tags.
503ab47cfaaSmrg    for tagname in $taglist; do
5045c42550eSmrg      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
505ab47cfaaSmrg    done
5061473d951Smrg    exit $?
5075c42550eSmrg    ;;
508ab47cfaaSmrg
5095c42550eSmrg  --debug)
5105c42550eSmrg    $echo "$progname: enabling shell trace mode"
5115c42550eSmrg    set -x
5125c42550eSmrg    preserve_args="$preserve_args $arg"
5135c42550eSmrg    ;;
5145c42550eSmrg
5155c42550eSmrg  --dry-run | -n)
5165c42550eSmrg    run=:
5175c42550eSmrg    ;;
5185c42550eSmrg
5195c42550eSmrg  --features)
5205c42550eSmrg    $echo "host: $host"
521ab47cfaaSmrg    if test "$build_libtool_libs" = yes; then
5225c42550eSmrg      $echo "enable shared libraries"
523ab47cfaaSmrg    else
5245c42550eSmrg      $echo "disable shared libraries"
525ab47cfaaSmrg    fi
526ab47cfaaSmrg    if test "$build_old_libs" = yes; then
5275c42550eSmrg      $echo "enable static libraries"
528ab47cfaaSmrg    else
5295c42550eSmrg      $echo "disable static libraries"
530ab47cfaaSmrg    fi
531ab47cfaaSmrg    exit $?
5325c42550eSmrg    ;;
533ab47cfaaSmrg
5345c42550eSmrg  --finish) mode="finish" ;;
535ab47cfaaSmrg
5365c42550eSmrg  --mode) prevopt="--mode" prev=mode ;;
5375c42550eSmrg  --mode=*) mode="$optarg" ;;
5381473d951Smrg
5395c42550eSmrg  --preserve-dup-deps) duplicate_deps="yes" ;;
540ab47cfaaSmrg
5415c42550eSmrg  --quiet | --silent)
5425c42550eSmrg    show=:
5435c42550eSmrg    preserve_args="$preserve_args $arg"
544ab47cfaaSmrg    ;;
5455c42550eSmrg
5465c42550eSmrg  --tag)
5475c42550eSmrg    prevopt="--tag"
5485c42550eSmrg    prev=tag
5495c42550eSmrg    preserve_args="$preserve_args --tag"
550ab47cfaaSmrg    ;;
5515c42550eSmrg  --tag=*)
5525c42550eSmrg    set tag "$optarg" ${1+"$@"}
5535c42550eSmrg    shift
5545c42550eSmrg    prev=tag
5555c42550eSmrg    preserve_args="$preserve_args --tag"
556ab47cfaaSmrg    ;;
5575c42550eSmrg
5585c42550eSmrg  -dlopen)
5595c42550eSmrg    prevopt="-dlopen"
5605c42550eSmrg    prev=execute_dlfiles
5611473d951Smrg    ;;
5625c42550eSmrg
5635c42550eSmrg  -*)
5645c42550eSmrg    $echo "$modename: unrecognized option \`$arg'" 1>&2
5655c42550eSmrg    $echo "$help" 1>&2
5665c42550eSmrg    exit $EXIT_FAILURE
5671473d951Smrg    ;;
5685c42550eSmrg
5695c42550eSmrg  *)
5705c42550eSmrg    nonopt="$arg"
5715c42550eSmrg    break
572ab47cfaaSmrg    ;;
573ab47cfaaSmrg  esac
5745c42550eSmrgdone
575ab47cfaaSmrg
5765c42550eSmrgif test -n "$prevopt"; then
5775c42550eSmrg  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
5785c42550eSmrg  $echo "$help" 1>&2
5795c42550eSmrg  exit $EXIT_FAILURE
5805c42550eSmrgfi
5811473d951Smrg
5825c42550eSmrgcase $disable_libs in
5835c42550eSmrgno) 
5845c42550eSmrg  ;;
5855c42550eSmrgshared)
5865c42550eSmrg  build_libtool_libs=no
5875c42550eSmrg  build_old_libs=yes
5885c42550eSmrg  ;;
5895c42550eSmrgstatic)
5905c42550eSmrg  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5915c42550eSmrg  ;;
5925c42550eSmrgesac
5931473d951Smrg
5945c42550eSmrg# If this variable is set in any of the actions, the command in it
5955c42550eSmrg# will be execed at the end.  This prevents here-documents from being
5965c42550eSmrg# left over by shells.
5975c42550eSmrgexec_cmd=
5981473d951Smrg
5995c42550eSmrgif test -z "$show_help"; then
6001473d951Smrg
6015c42550eSmrg  # Infer the operation mode.
6025c42550eSmrg  if test -z "$mode"; then
6035c42550eSmrg    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
6045c42550eSmrg    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
6055c42550eSmrg    case $nonopt in
6065c42550eSmrg    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
6075c42550eSmrg      mode=link
6085c42550eSmrg      for arg
6095c42550eSmrg      do
6105c42550eSmrg	case $arg in
6115c42550eSmrg	-c)
6125c42550eSmrg	   mode=compile
6135c42550eSmrg	   break
6145c42550eSmrg	   ;;
6155c42550eSmrg	esac
6165c42550eSmrg      done
617ab47cfaaSmrg      ;;
6185c42550eSmrg    *db | *dbx | *strace | *truss)
6195c42550eSmrg      mode=execute
6201473d951Smrg      ;;
6215c42550eSmrg    *install*|cp|mv)
6225c42550eSmrg      mode=install
6235c42550eSmrg      ;;
6245c42550eSmrg    *rm)
6255c42550eSmrg      mode=uninstall
6265c42550eSmrg      ;;
6275c42550eSmrg    *)
6285c42550eSmrg      # If we have no mode, but dlfiles were specified, then do execute mode.
6295c42550eSmrg      test -n "$execute_dlfiles" && mode=execute
6301473d951Smrg
6315c42550eSmrg      # Just use the default operation mode.
6325c42550eSmrg      if test -z "$mode"; then
6335c42550eSmrg	if test -n "$nonopt"; then
6345c42550eSmrg	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
6355c42550eSmrg	else
6365c42550eSmrg	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
6375c42550eSmrg	fi
638ab47cfaaSmrg      fi
6395c42550eSmrg      ;;
6405c42550eSmrg    esac
641ab47cfaaSmrg  fi
642ab47cfaaSmrg
643ab47cfaaSmrg  # Only execute mode is allowed to have -dlopen flags.
644ab47cfaaSmrg  if test -n "$execute_dlfiles" && test "$mode" != execute; then
6455c42550eSmrg    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
6465c42550eSmrg    $echo "$help" 1>&2
647ab47cfaaSmrg    exit $EXIT_FAILURE
648ab47cfaaSmrg  fi
649ab47cfaaSmrg
650ab47cfaaSmrg  # Change the help message to a mode-specific one.
651ab47cfaaSmrg  generic_help="$help"
6525c42550eSmrg  help="Try \`$modename --help --mode=$mode' for more information."
653ab47cfaaSmrg
6545c42550eSmrg  # These modes are in order of execution frequency so that they run quickly.
6555c42550eSmrg  case $mode in
6565c42550eSmrg  # libtool compile mode
6575c42550eSmrg  compile)
6585c42550eSmrg    modename="$modename: compile"
6595c42550eSmrg    # Get the compilation command and the source file.
6605c42550eSmrg    base_compile=
6615c42550eSmrg    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
6625c42550eSmrg    suppress_opt=yes
6635c42550eSmrg    suppress_output=
6645c42550eSmrg    arg_mode=normal
6655c42550eSmrg    libobj=
6665c42550eSmrg    later=
667ab47cfaaSmrg
6685c42550eSmrg    for arg
6695c42550eSmrg    do
6705c42550eSmrg      case $arg_mode in
6715c42550eSmrg      arg  )
6725c42550eSmrg	# do not "continue".  Instead, add this to base_compile
6735c42550eSmrg	lastarg="$arg"
6745c42550eSmrg	arg_mode=normal
6755c42550eSmrg	;;
676ab47cfaaSmrg
6775c42550eSmrg      target )
6785c42550eSmrg	libobj="$arg"
6795c42550eSmrg	arg_mode=normal
6805c42550eSmrg	continue
6815c42550eSmrg	;;
682ab47cfaaSmrg
6835c42550eSmrg      normal )
6845c42550eSmrg	# Accept any command-line options.
6855c42550eSmrg	case $arg in
6865c42550eSmrg	-o)
6875c42550eSmrg	  if test -n "$libobj" ; then
6885c42550eSmrg	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
6895c42550eSmrg	    exit $EXIT_FAILURE
6905c42550eSmrg	  fi
6915c42550eSmrg	  arg_mode=target
6925c42550eSmrg	  continue
6935c42550eSmrg	  ;;
694ab47cfaaSmrg
6955c42550eSmrg	-static | -prefer-pic | -prefer-non-pic)
6965c42550eSmrg	  later="$later $arg"
6975c42550eSmrg	  continue
6985c42550eSmrg	  ;;
6991473d951Smrg
7001473d951Smrg	-no-suppress)
701ab47cfaaSmrg	  suppress_opt=no
702ab47cfaaSmrg	  continue
703ab47cfaaSmrg	  ;;
704ab47cfaaSmrg
705ab47cfaaSmrg	-Xcompiler)
706ab47cfaaSmrg	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
707ab47cfaaSmrg	  continue      #  The current "srcfile" will either be retained or
708ab47cfaaSmrg	  ;;            #  replaced later.  I would guess that would be a bug.
709ab47cfaaSmrg
710ab47cfaaSmrg	-Wc,*)
7115c42550eSmrg	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
712ab47cfaaSmrg	  lastarg=
713ab47cfaaSmrg	  save_ifs="$IFS"; IFS=','
7145c42550eSmrg 	  for arg in $args; do
715ab47cfaaSmrg	    IFS="$save_ifs"
7165c42550eSmrg
7175c42550eSmrg	    # Double-quote args containing other shell metacharacters.
7185c42550eSmrg	    # Many Bourne shells cannot handle close brackets correctly
7195c42550eSmrg	    # in scan sets, so we specify it separately.
7205c42550eSmrg	    case $arg in
7215c42550eSmrg	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7225c42550eSmrg	      arg="\"$arg\""
7235c42550eSmrg	      ;;
7245c42550eSmrg	    esac
7255c42550eSmrg	    lastarg="$lastarg $arg"
726ab47cfaaSmrg	  done
727ab47cfaaSmrg	  IFS="$save_ifs"
7285c42550eSmrg	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
729ab47cfaaSmrg
730ab47cfaaSmrg	  # Add the arguments to base_compile.
731ab47cfaaSmrg	  base_compile="$base_compile $lastarg"
732ab47cfaaSmrg	  continue
733ab47cfaaSmrg	  ;;
734ab47cfaaSmrg
7355c42550eSmrg	* )
736ab47cfaaSmrg	  # Accept the current argument as the source file.
737ab47cfaaSmrg	  # The previous "srcfile" becomes the current argument.
738ab47cfaaSmrg	  #
739ab47cfaaSmrg	  lastarg="$srcfile"
740ab47cfaaSmrg	  srcfile="$arg"
741ab47cfaaSmrg	  ;;
742ab47cfaaSmrg	esac  #  case $arg
743ab47cfaaSmrg	;;
744ab47cfaaSmrg      esac    #  case $arg_mode
745ab47cfaaSmrg
746ab47cfaaSmrg      # Aesthetically quote the previous argument.
7475c42550eSmrg      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
7485c42550eSmrg
7495c42550eSmrg      case $lastarg in
7505c42550eSmrg      # Double-quote args containing other shell metacharacters.
7515c42550eSmrg      # Many Bourne shells cannot handle close brackets correctly
7525c42550eSmrg      # in scan sets, and some SunOS ksh mistreat backslash-escaping
7535c42550eSmrg      # in scan sets (worked around with variable expansion),
7545c42550eSmrg      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
7555c42550eSmrg      # at all, so we specify them separately.
7565c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7575c42550eSmrg	lastarg="\"$lastarg\""
7585c42550eSmrg	;;
7595c42550eSmrg      esac
7605c42550eSmrg
7615c42550eSmrg      base_compile="$base_compile $lastarg"
762ab47cfaaSmrg    done # for arg
763ab47cfaaSmrg
764ab47cfaaSmrg    case $arg_mode in
765ab47cfaaSmrg    arg)
7665c42550eSmrg      $echo "$modename: you must specify an argument for -Xcompile"
7675c42550eSmrg      exit $EXIT_FAILURE
768ab47cfaaSmrg      ;;
769ab47cfaaSmrg    target)
7705c42550eSmrg      $echo "$modename: you must specify a target with \`-o'" 1>&2
7715c42550eSmrg      exit $EXIT_FAILURE
772ab47cfaaSmrg      ;;
773ab47cfaaSmrg    *)
774ab47cfaaSmrg      # Get the name of the library object.
7755c42550eSmrg      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
776ab47cfaaSmrg      ;;
777ab47cfaaSmrg    esac
778ab47cfaaSmrg
779ab47cfaaSmrg    # Recognize several different file suffixes.
780ab47cfaaSmrg    # If the user specifies -o file.o, it is replaced with file.lo
7815c42550eSmrg    xform='[cCFSifmso]'
782ab47cfaaSmrg    case $libobj in
7835c42550eSmrg    *.ada) xform=ada ;;
7845c42550eSmrg    *.adb) xform=adb ;;
7855c42550eSmrg    *.ads) xform=ads ;;
7865c42550eSmrg    *.asm) xform=asm ;;
7875c42550eSmrg    *.c++) xform=c++ ;;
7885c42550eSmrg    *.cc) xform=cc ;;
7895c42550eSmrg    *.ii) xform=ii ;;
7905c42550eSmrg    *.class) xform=class ;;
7915c42550eSmrg    *.cpp) xform=cpp ;;
7925c42550eSmrg    *.cxx) xform=cxx ;;
7935c42550eSmrg    *.[fF][09]?) xform=[fF][09]. ;;
7945c42550eSmrg    *.for) xform=for ;;
7955c42550eSmrg    *.java) xform=java ;;
7965c42550eSmrg    *.obj) xform=obj ;;
7975c42550eSmrg    *.sx) xform=sx ;;
798ab47cfaaSmrg    esac
799ab47cfaaSmrg
8005c42550eSmrg    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
8015c42550eSmrg
802ab47cfaaSmrg    case $libobj in
8035c42550eSmrg    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
804ab47cfaaSmrg    *)
8055c42550eSmrg      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
8065c42550eSmrg      exit $EXIT_FAILURE
807ab47cfaaSmrg      ;;
808ab47cfaaSmrg    esac
809ab47cfaaSmrg
810ab47cfaaSmrg    func_infer_tag $base_compile
811ab47cfaaSmrg
812ab47cfaaSmrg    for arg in $later; do
813ab47cfaaSmrg      case $arg in
814ab47cfaaSmrg      -static)
815ab47cfaaSmrg	build_old_libs=yes
816ab47cfaaSmrg	continue
817ab47cfaaSmrg	;;
818ab47cfaaSmrg
819ab47cfaaSmrg      -prefer-pic)
820ab47cfaaSmrg	pic_mode=yes
821ab47cfaaSmrg	continue
822ab47cfaaSmrg	;;
823ab47cfaaSmrg
824ab47cfaaSmrg      -prefer-non-pic)
825ab47cfaaSmrg	pic_mode=no
826ab47cfaaSmrg	continue
827ab47cfaaSmrg	;;
828ab47cfaaSmrg      esac
829ab47cfaaSmrg    done
830ab47cfaaSmrg
8315c42550eSmrg    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
8325c42550eSmrg    case $qlibobj in
8335c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
8345c42550eSmrg	qlibobj="\"$qlibobj\"" ;;
8355c42550eSmrg    esac
8365c42550eSmrg    test "X$libobj" != "X$qlibobj" \
8375c42550eSmrg	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
8385c42550eSmrg	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
8395c42550eSmrg    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
8405c42550eSmrg    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
8415c42550eSmrg    if test "X$xdir" = "X$obj"; then
8425c42550eSmrg      xdir=
8435c42550eSmrg    else
8445c42550eSmrg      xdir=$xdir/
8455c42550eSmrg    fi
846ab47cfaaSmrg    lobj=${xdir}$objdir/$objname
847ab47cfaaSmrg
8485c42550eSmrg    if test -z "$base_compile"; then
8495c42550eSmrg      $echo "$modename: you must specify a compilation command" 1>&2
8505c42550eSmrg      $echo "$help" 1>&2
8515c42550eSmrg      exit $EXIT_FAILURE
8525c42550eSmrg    fi
853ab47cfaaSmrg
854ab47cfaaSmrg    # Delete any leftover library objects.
855ab47cfaaSmrg    if test "$build_old_libs" = yes; then
856ab47cfaaSmrg      removelist="$obj $lobj $libobj ${libobj}T"
857ab47cfaaSmrg    else
858ab47cfaaSmrg      removelist="$lobj $libobj ${libobj}T"
859ab47cfaaSmrg    fi
860ab47cfaaSmrg
8615c42550eSmrg    $run $rm $removelist
8625c42550eSmrg    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8635c42550eSmrg
864ab47cfaaSmrg    # On Cygwin there's no "real" PIC flag so we must build both object types
865ab47cfaaSmrg    case $host_os in
8665c42550eSmrg    cygwin* | mingw* | pw32* | os2*)
867ab47cfaaSmrg      pic_mode=default
868ab47cfaaSmrg      ;;
869ab47cfaaSmrg    esac
870ab47cfaaSmrg    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
871ab47cfaaSmrg      # non-PIC code in shared libraries is not supported
872ab47cfaaSmrg      pic_mode=default
873ab47cfaaSmrg    fi
874ab47cfaaSmrg
875ab47cfaaSmrg    # Calculate the filename of the output object if compiler does
876ab47cfaaSmrg    # not support -o with -c
877ab47cfaaSmrg    if test "$compiler_c_o" = no; then
8785c42550eSmrg      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
879ab47cfaaSmrg      lockfile="$output_obj.lock"
8805c42550eSmrg      removelist="$removelist $output_obj $lockfile"
8815c42550eSmrg      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
882ab47cfaaSmrg    else
883ab47cfaaSmrg      output_obj=
884ab47cfaaSmrg      need_locks=no
885ab47cfaaSmrg      lockfile=
886ab47cfaaSmrg    fi
887ab47cfaaSmrg
888ab47cfaaSmrg    # Lock this critical section if it is needed
889ab47cfaaSmrg    # We use this script file to make the link, it avoids creating a new file
890ab47cfaaSmrg    if test "$need_locks" = yes; then
8915c42550eSmrg      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
8925c42550eSmrg	$show "Waiting for $lockfile to be removed"
893ab47cfaaSmrg	sleep 2
894ab47cfaaSmrg      done
895ab47cfaaSmrg    elif test "$need_locks" = warn; then
896ab47cfaaSmrg      if test -f "$lockfile"; then
8975c42550eSmrg	$echo "\
898ab47cfaaSmrg*** ERROR, $lockfile exists and contains:
899ab47cfaaSmrg`cat $lockfile 2>/dev/null`
900ab47cfaaSmrg
901ab47cfaaSmrgThis indicates that another process is trying to use the same
902ab47cfaaSmrgtemporary object file, and libtool could not work around it because
903ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together.  If you
904ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better
905ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better
906ab47cfaaSmrgcompiler."
907ab47cfaaSmrg
9085c42550eSmrg	$run $rm $removelist
909ab47cfaaSmrg	exit $EXIT_FAILURE
910ab47cfaaSmrg      fi
9115c42550eSmrg      $echo "$srcfile" > "$lockfile"
912ab47cfaaSmrg    fi
913ab47cfaaSmrg
914ab47cfaaSmrg    if test -n "$fix_srcfile_path"; then
915ab47cfaaSmrg      eval srcfile=\"$fix_srcfile_path\"
916ab47cfaaSmrg    fi
9175c42550eSmrg    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
9185c42550eSmrg    case $qsrcfile in
9195c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
9205c42550eSmrg      qsrcfile="\"$qsrcfile\"" ;;
9215c42550eSmrg    esac
9225c42550eSmrg
9235c42550eSmrg    $run $rm "$libobj" "${libobj}T"
9245c42550eSmrg
9255c42550eSmrg    # Create a libtool object file (analogous to a ".la" file),
9265c42550eSmrg    # but don't create it if we're doing a dry run.
9275c42550eSmrg    test -z "$run" && cat > ${libobj}T <<EOF
9285c42550eSmrg# $libobj - a libtool object file
9295c42550eSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
9305c42550eSmrg#
9315c42550eSmrg# Please DO NOT delete this file!
9325c42550eSmrg# It is necessary for linking the library.
9335c42550eSmrg
9345c42550eSmrg# Name of the PIC object.
9355c42550eSmrgEOF
936ab47cfaaSmrg
937ab47cfaaSmrg    # Only build a PIC object if we are building libtool libraries.
938ab47cfaaSmrg    if test "$build_libtool_libs" = yes; then
939ab47cfaaSmrg      # Without this assignment, base_compile gets emptied.
940ab47cfaaSmrg      fbsd_hideous_sh_bug=$base_compile
941ab47cfaaSmrg
942ab47cfaaSmrg      if test "$pic_mode" != no; then
943ab47cfaaSmrg	command="$base_compile $qsrcfile $pic_flag"
944ab47cfaaSmrg      else
945ab47cfaaSmrg	# Don't build PIC code
946ab47cfaaSmrg	command="$base_compile $qsrcfile"
947ab47cfaaSmrg      fi
948ab47cfaaSmrg
9495c42550eSmrg      if test ! -d "${xdir}$objdir"; then
9505c42550eSmrg	$show "$mkdir ${xdir}$objdir"
9515c42550eSmrg	$run $mkdir ${xdir}$objdir
9525c42550eSmrg	exit_status=$?
9535c42550eSmrg	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
9545c42550eSmrg	  exit $exit_status
9555c42550eSmrg	fi
9565c42550eSmrg      fi
957ab47cfaaSmrg
958ab47cfaaSmrg      if test -z "$output_obj"; then
959ab47cfaaSmrg	# Place PIC objects in $objdir
960ab47cfaaSmrg	command="$command -o $lobj"
961ab47cfaaSmrg      fi
962ab47cfaaSmrg
9635c42550eSmrg      $run $rm "$lobj" "$output_obj"
9645c42550eSmrg
9655c42550eSmrg      $show "$command"
9665c42550eSmrg      if $run eval $lt_env "$command"; then :
9675c42550eSmrg      else
9685c42550eSmrg	test -n "$output_obj" && $run $rm $removelist
9695c42550eSmrg	exit $EXIT_FAILURE
9705c42550eSmrg      fi
971ab47cfaaSmrg
972ab47cfaaSmrg      if test "$need_locks" = warn &&
973ab47cfaaSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
9745c42550eSmrg	$echo "\
975ab47cfaaSmrg*** ERROR, $lockfile contains:
976ab47cfaaSmrg`cat $lockfile 2>/dev/null`
977ab47cfaaSmrg
978ab47cfaaSmrgbut it should contain:
979ab47cfaaSmrg$srcfile
980ab47cfaaSmrg
981ab47cfaaSmrgThis indicates that another process is trying to use the same
982ab47cfaaSmrgtemporary object file, and libtool could not work around it because
983ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together.  If you
984ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better
985ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better
986ab47cfaaSmrgcompiler."
987ab47cfaaSmrg
9885c42550eSmrg	$run $rm $removelist
989ab47cfaaSmrg	exit $EXIT_FAILURE
990ab47cfaaSmrg      fi
991ab47cfaaSmrg
992ab47cfaaSmrg      # Just move the object if needed, then go on to compile the next one
993ab47cfaaSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
9945c42550eSmrg	$show "$mv $output_obj $lobj"
9955c42550eSmrg	if $run $mv $output_obj $lobj; then :
9965c42550eSmrg	else
9975c42550eSmrg	  error=$?
9985c42550eSmrg	  $run $rm $removelist
9995c42550eSmrg	  exit $error
10005c42550eSmrg	fi
1001ab47cfaaSmrg      fi
1002ab47cfaaSmrg
10035c42550eSmrg      # Append the name of the PIC object to the libtool object file.
10045c42550eSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
10055c42550eSmrgpic_object='$objdir/$objname'
10065c42550eSmrg
10075c42550eSmrgEOF
10085c42550eSmrg
1009ab47cfaaSmrg      # Allow error messages only from the first compilation.
1010ab47cfaaSmrg      if test "$suppress_opt" = yes; then
10115c42550eSmrg        suppress_output=' >/dev/null 2>&1'
1012ab47cfaaSmrg      fi
10135c42550eSmrg    else
10145c42550eSmrg      # No PIC object so indicate it doesn't exist in the libtool
10155c42550eSmrg      # object file.
10165c42550eSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
10175c42550eSmrgpic_object=none
10185c42550eSmrg
10195c42550eSmrgEOF
1020ab47cfaaSmrg    fi
1021ab47cfaaSmrg
1022ab47cfaaSmrg    # Only build a position-dependent object if we build old libraries.
1023ab47cfaaSmrg    if test "$build_old_libs" = yes; then
1024ab47cfaaSmrg      if test "$pic_mode" != yes; then
1025ab47cfaaSmrg	# Don't build PIC code
10265c42550eSmrg	command="$base_compile $qsrcfile"
1027ab47cfaaSmrg      else
1028ab47cfaaSmrg	command="$base_compile $qsrcfile $pic_flag"
1029ab47cfaaSmrg      fi
1030ab47cfaaSmrg      if test "$compiler_c_o" = yes; then
1031ab47cfaaSmrg	command="$command -o $obj"
1032ab47cfaaSmrg      fi
1033ab47cfaaSmrg
1034ab47cfaaSmrg      # Suppress compiler output if we already did a PIC compilation.
1035ab47cfaaSmrg      command="$command$suppress_output"
10365c42550eSmrg      $run $rm "$obj" "$output_obj"
10375c42550eSmrg      $show "$command"
10385c42550eSmrg      if $run eval $lt_env "$command"; then :
10395c42550eSmrg      else
10405c42550eSmrg	$run $rm $removelist
10415c42550eSmrg	exit $EXIT_FAILURE
10425c42550eSmrg      fi
1043ab47cfaaSmrg
1044ab47cfaaSmrg      if test "$need_locks" = warn &&
1045ab47cfaaSmrg	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
10465c42550eSmrg	$echo "\
1047ab47cfaaSmrg*** ERROR, $lockfile contains:
1048ab47cfaaSmrg`cat $lockfile 2>/dev/null`
1049ab47cfaaSmrg
1050ab47cfaaSmrgbut it should contain:
1051ab47cfaaSmrg$srcfile
1052ab47cfaaSmrg
1053ab47cfaaSmrgThis indicates that another process is trying to use the same
1054ab47cfaaSmrgtemporary object file, and libtool could not work around it because
1055ab47cfaaSmrgyour compiler does not support \`-c' and \`-o' together.  If you
1056ab47cfaaSmrgrepeat this compilation, it may succeed, by chance, but you had better
1057ab47cfaaSmrgavoid parallel builds (make -j) in this platform, or get a better
1058ab47cfaaSmrgcompiler."
1059ab47cfaaSmrg
10605c42550eSmrg	$run $rm $removelist
1061ab47cfaaSmrg	exit $EXIT_FAILURE
1062ab47cfaaSmrg      fi
1063ab47cfaaSmrg
1064ab47cfaaSmrg      # Just move the object if needed
1065ab47cfaaSmrg      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
10665c42550eSmrg	$show "$mv $output_obj $obj"
10675c42550eSmrg	if $run $mv $output_obj $obj; then :
10685c42550eSmrg	else
10695c42550eSmrg	  error=$?
10705c42550eSmrg	  $run $rm $removelist
10715c42550eSmrg	  exit $error
10725c42550eSmrg	fi
1073ab47cfaaSmrg      fi
10745c42550eSmrg
10755c42550eSmrg      # Append the name of the non-PIC object the libtool object file.
10765c42550eSmrg      # Only append if the libtool object file exists.
10775c42550eSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
10785c42550eSmrg# Name of the non-PIC object.
10795c42550eSmrgnon_pic_object='$objname'
10805c42550eSmrg
10815c42550eSmrgEOF
10825c42550eSmrg    else
10835c42550eSmrg      # Append the name of the non-PIC object the libtool object file.
10845c42550eSmrg      # Only append if the libtool object file exists.
10855c42550eSmrg      test -z "$run" && cat >> ${libobj}T <<EOF
10865c42550eSmrg# Name of the non-PIC object.
10875c42550eSmrgnon_pic_object=none
10885c42550eSmrg
10895c42550eSmrgEOF
1090ab47cfaaSmrg    fi
1091ab47cfaaSmrg
10925c42550eSmrg    $run $mv "${libobj}T" "${libobj}"
1093ab47cfaaSmrg
10945c42550eSmrg    # Unlock the critical section if it was locked
10955c42550eSmrg    if test "$need_locks" != no; then
10965c42550eSmrg      $run $rm "$lockfile"
10975c42550eSmrg    fi
1098ab47cfaaSmrg
1099ab47cfaaSmrg    exit $EXIT_SUCCESS
11005c42550eSmrg    ;;
1101ab47cfaaSmrg
11025c42550eSmrg  # libtool link mode
11035c42550eSmrg  link | relink)
11045c42550eSmrg    modename="$modename: link"
11055c42550eSmrg    case $host in
11065c42550eSmrg    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
11075c42550eSmrg      # It is impossible to link a dll without this setting, and
11085c42550eSmrg      # we shouldn't force the makefile maintainer to figure out
11095c42550eSmrg      # which system we are compiling for in order to pass an extra
11105c42550eSmrg      # flag for every libtool invocation.
11115c42550eSmrg      # allow_undefined=no
1112ab47cfaaSmrg
11135c42550eSmrg      # FIXME: Unfortunately, there are problems with the above when trying
11145c42550eSmrg      # to make a dll which has undefined symbols, in which case not
11155c42550eSmrg      # even a static library is built.  For now, we need to specify
11165c42550eSmrg      # -no-undefined on the libtool link line when we can be certain
11175c42550eSmrg      # that all symbols are satisfied, otherwise we get a static library.
11185c42550eSmrg      allow_undefined=yes
11195c42550eSmrg      ;;
11205c42550eSmrg    *)
11215c42550eSmrg      allow_undefined=yes
11225c42550eSmrg      ;;
11235c42550eSmrg    esac
11245c42550eSmrg    libtool_args="$nonopt"
11255c42550eSmrg    base_compile="$nonopt $@"
11265c42550eSmrg    compile_command="$nonopt"
11275c42550eSmrg    finalize_command="$nonopt"
1128ab47cfaaSmrg
11295c42550eSmrg    compile_rpath=
11305c42550eSmrg    finalize_rpath=
11315c42550eSmrg    compile_shlibpath=
11325c42550eSmrg    finalize_shlibpath=
11335c42550eSmrg    convenience=
11345c42550eSmrg    old_convenience=
11355c42550eSmrg    deplibs=
11365c42550eSmrg    old_deplibs=
11375c42550eSmrg    compiler_flags=
11385c42550eSmrg    linker_flags=
11395c42550eSmrg    dllsearchpath=
11405c42550eSmrg    lib_search_path=`pwd`
11415c42550eSmrg    inst_prefix_dir=
1142ab47cfaaSmrg
11435c42550eSmrg    avoid_version=no
11445c42550eSmrg    dlfiles=
11455c42550eSmrg    dlprefiles=
11465c42550eSmrg    dlself=no
11475c42550eSmrg    export_dynamic=no
11485c42550eSmrg    export_symbols=
11495c42550eSmrg    export_symbols_regex=
11505c42550eSmrg    generated=
11515c42550eSmrg    libobjs=
11525c42550eSmrg    ltlibs=
11535c42550eSmrg    module=no
11545c42550eSmrg    no_install=no
11555c42550eSmrg    objs=
11565c42550eSmrg    non_pic_objects=
11575c42550eSmrg    notinst_path= # paths that contain not-installed libtool libraries
11585c42550eSmrg    precious_files_regex=
11595c42550eSmrg    prefer_static_libs=no
11605c42550eSmrg    preload=no
11615c42550eSmrg    prev=
11625c42550eSmrg    prevarg=
11635c42550eSmrg    release=
11645c42550eSmrg    rpath=
11655c42550eSmrg    xrpath=
11665c42550eSmrg    perm_rpath=
11675c42550eSmrg    temp_rpath=
11685c42550eSmrg    thread_safe=no
11695c42550eSmrg    vinfo=
11705c42550eSmrg    vinfo_number=no
11715c42550eSmrg    single_module="${wl}-single_module"
1172ab47cfaaSmrg
11735c42550eSmrg    func_infer_tag $base_compile
1174ab47cfaaSmrg
11755c42550eSmrg    # We need to know -static, to get the right output filenames.
11765c42550eSmrg    for arg
11775c42550eSmrg    do
11785c42550eSmrg      case $arg in
11795c42550eSmrg      -all-static | -static | -static-libtool-libs)
11805c42550eSmrg	case $arg in
11815c42550eSmrg	-all-static)
11825c42550eSmrg	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
11835c42550eSmrg	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
11845c42550eSmrg	  fi
11855c42550eSmrg	  if test -n "$link_static_flag"; then
11865c42550eSmrg	    dlopen_self=$dlopen_self_static
11875c42550eSmrg	  fi
11885c42550eSmrg	  prefer_static_libs=yes
11895c42550eSmrg	  ;;
11905c42550eSmrg	-static)
11915c42550eSmrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11925c42550eSmrg	    dlopen_self=$dlopen_self_static
11935c42550eSmrg	  fi
11945c42550eSmrg	  prefer_static_libs=built
11955c42550eSmrg	  ;;
11965c42550eSmrg	-static-libtool-libs)
11975c42550eSmrg	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11985c42550eSmrg	    dlopen_self=$dlopen_self_static
11995c42550eSmrg	  fi
12005c42550eSmrg	  prefer_static_libs=yes
12015c42550eSmrg	  ;;
12025c42550eSmrg	esac
12035c42550eSmrg	build_libtool_libs=no
12045c42550eSmrg	build_old_libs=yes
12055c42550eSmrg	break
12065c42550eSmrg	;;
12075c42550eSmrg      esac
12085c42550eSmrg    done
1209ab47cfaaSmrg
12105c42550eSmrg    # See if our shared archives depend on static archives.
12115c42550eSmrg    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1212ab47cfaaSmrg
12135c42550eSmrg    # Go through the arguments, transforming them on the way.
12145c42550eSmrg    while test "$#" -gt 0; do
12155c42550eSmrg      arg="$1"
12165c42550eSmrg      shift
12175c42550eSmrg      case $arg in
12185c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
12195c42550eSmrg	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
12205c42550eSmrg	;;
12215c42550eSmrg      *) qarg=$arg ;;
12225c42550eSmrg      esac
12235c42550eSmrg      libtool_args="$libtool_args $qarg"
1224ab47cfaaSmrg
12255c42550eSmrg      # If the previous option needs an argument, assign it.
12265c42550eSmrg      if test -n "$prev"; then
12275c42550eSmrg	case $prev in
12285c42550eSmrg	output)
12295c42550eSmrg	  compile_command="$compile_command @OUTPUT@"
12305c42550eSmrg	  finalize_command="$finalize_command @OUTPUT@"
12315c42550eSmrg	  ;;
12325c42550eSmrg	esac
1233ab47cfaaSmrg
12345c42550eSmrg	case $prev in
12355c42550eSmrg	dlfiles|dlprefiles)
12365c42550eSmrg	  if test "$preload" = no; then
12375c42550eSmrg	    # Add the symbol object into the linking commands.
12385c42550eSmrg	    compile_command="$compile_command @SYMFILE@"
12395c42550eSmrg	    finalize_command="$finalize_command @SYMFILE@"
12405c42550eSmrg	    preload=yes
12415c42550eSmrg	  fi
12425c42550eSmrg	  case $arg in
12435c42550eSmrg	  *.la | *.lo) ;;  # We handle these cases below.
12445c42550eSmrg	  force)
12455c42550eSmrg	    if test "$dlself" = no; then
12465c42550eSmrg	      dlself=needless
12475c42550eSmrg	      export_dynamic=yes
12485c42550eSmrg	    fi
12495c42550eSmrg	    prev=
12505c42550eSmrg	    continue
12515c42550eSmrg	    ;;
12525c42550eSmrg	  self)
12535c42550eSmrg	    if test "$prev" = dlprefiles; then
12545c42550eSmrg	      dlself=yes
12555c42550eSmrg	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
12565c42550eSmrg	      dlself=yes
12575c42550eSmrg	    else
12585c42550eSmrg	      dlself=needless
12595c42550eSmrg	      export_dynamic=yes
12605c42550eSmrg	    fi
12615c42550eSmrg	    prev=
12625c42550eSmrg	    continue
12635c42550eSmrg	    ;;
12645c42550eSmrg	  *)
12655c42550eSmrg	    if test "$prev" = dlfiles; then
12665c42550eSmrg	      dlfiles="$dlfiles $arg"
12675c42550eSmrg	    else
12685c42550eSmrg	      dlprefiles="$dlprefiles $arg"
12695c42550eSmrg	    fi
12705c42550eSmrg	    prev=
12715c42550eSmrg	    continue
12725c42550eSmrg	    ;;
12735c42550eSmrg	  esac
12745c42550eSmrg	  ;;
12755c42550eSmrg	expsyms)
12765c42550eSmrg	  export_symbols="$arg"
12775c42550eSmrg	  if test ! -f "$arg"; then
12785c42550eSmrg	    $echo "$modename: symbol file \`$arg' does not exist"
12795c42550eSmrg	    exit $EXIT_FAILURE
12805c42550eSmrg	  fi
12815c42550eSmrg	  prev=
12825c42550eSmrg	  continue
12835c42550eSmrg	  ;;
12845c42550eSmrg	expsyms_regex)
12855c42550eSmrg	  export_symbols_regex="$arg"
12865c42550eSmrg	  prev=
12875c42550eSmrg	  continue
12885c42550eSmrg	  ;;
12895c42550eSmrg	inst_prefix)
12905c42550eSmrg	  inst_prefix_dir="$arg"
12915c42550eSmrg	  prev=
12925c42550eSmrg	  continue
12935c42550eSmrg	  ;;
12945c42550eSmrg	precious_regex)
12955c42550eSmrg	  precious_files_regex="$arg"
12965c42550eSmrg	  prev=
12975c42550eSmrg	  continue
12985c42550eSmrg	  ;;
12995c42550eSmrg	release)
13005c42550eSmrg	  release="-$arg"
13015c42550eSmrg	  prev=
13025c42550eSmrg	  continue
13035c42550eSmrg	  ;;
13045c42550eSmrg	objectlist)
13055c42550eSmrg	  if test -f "$arg"; then
13065c42550eSmrg	    save_arg=$arg
13075c42550eSmrg	    moreargs=
13085c42550eSmrg	    for fil in `cat $save_arg`
13095c42550eSmrg	    do
13105c42550eSmrg#	      moreargs="$moreargs $fil"
13115c42550eSmrg	      arg=$fil
13125c42550eSmrg	      # A libtool-controlled object.
1313ab47cfaaSmrg
13145c42550eSmrg	      # Check to see that this really is a libtool object.
13155c42550eSmrg	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
13165c42550eSmrg		pic_object=
13175c42550eSmrg		non_pic_object=
1318ab47cfaaSmrg
13195c42550eSmrg		# Read the .lo file
13205c42550eSmrg		# If there is no directory component, then add one.
13215c42550eSmrg		case $arg in
13225c42550eSmrg		*/* | *\\*) . $arg ;;
13235c42550eSmrg		*) . ./$arg ;;
13245c42550eSmrg		esac
1325ab47cfaaSmrg
13265c42550eSmrg		if test -z "$pic_object" || \
13275c42550eSmrg		   test -z "$non_pic_object" ||
13285c42550eSmrg		   test "$pic_object" = none && \
13295c42550eSmrg		   test "$non_pic_object" = none; then
13305c42550eSmrg		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
13315c42550eSmrg		  exit $EXIT_FAILURE
13325c42550eSmrg		fi
1333ab47cfaaSmrg
13345c42550eSmrg		# Extract subdirectory from the argument.
13355c42550eSmrg		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13365c42550eSmrg		if test "X$xdir" = "X$arg"; then
13375c42550eSmrg		  xdir=
13385c42550eSmrg		else
13395c42550eSmrg		  xdir="$xdir/"
13405c42550eSmrg		fi
1341ab47cfaaSmrg
13425c42550eSmrg		if test "$pic_object" != none; then
13435c42550eSmrg		  # Prepend the subdirectory the object is found in.
13445c42550eSmrg		  pic_object="$xdir$pic_object"
1345ab47cfaaSmrg
13465c42550eSmrg		  if test "$prev" = dlfiles; then
13475c42550eSmrg		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
13485c42550eSmrg		      dlfiles="$dlfiles $pic_object"
13495c42550eSmrg		      prev=
13505c42550eSmrg		      continue
13515c42550eSmrg		    else
13525c42550eSmrg		      # If libtool objects are unsupported, then we need to preload.
13535c42550eSmrg		      prev=dlprefiles
13545c42550eSmrg		    fi
13555c42550eSmrg		  fi
1356ab47cfaaSmrg
13575c42550eSmrg		  # CHECK ME:  I think I busted this.  -Ossama
13585c42550eSmrg		  if test "$prev" = dlprefiles; then
13595c42550eSmrg		    # Preload the old-style object.
13605c42550eSmrg		    dlprefiles="$dlprefiles $pic_object"
13615c42550eSmrg		    prev=
13625c42550eSmrg		  fi
1363ab47cfaaSmrg
13645c42550eSmrg		  # A PIC object.
13655c42550eSmrg		  libobjs="$libobjs $pic_object"
13665c42550eSmrg		  arg="$pic_object"
13675c42550eSmrg		fi
1368ab47cfaaSmrg
13695c42550eSmrg		# Non-PIC object.
13705c42550eSmrg		if test "$non_pic_object" != none; then
13715c42550eSmrg		  # Prepend the subdirectory the object is found in.
13725c42550eSmrg		  non_pic_object="$xdir$non_pic_object"
1373ab47cfaaSmrg
13745c42550eSmrg		  # A standard non-PIC object
13755c42550eSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
13765c42550eSmrg		  if test -z "$pic_object" || test "$pic_object" = none ; then
13775c42550eSmrg		    arg="$non_pic_object"
13785c42550eSmrg		  fi
13795c42550eSmrg		else
13805c42550eSmrg		  # If the PIC object exists, use it instead.
13815c42550eSmrg		  # $xdir was prepended to $pic_object above.
13825c42550eSmrg		  non_pic_object="$pic_object"
13835c42550eSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
13845c42550eSmrg		fi
13855c42550eSmrg	      else
13865c42550eSmrg		# Only an error if not doing a dry-run.
13875c42550eSmrg		if test -z "$run"; then
13885c42550eSmrg		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
13895c42550eSmrg		  exit $EXIT_FAILURE
13905c42550eSmrg		else
13915c42550eSmrg		  # Dry-run case.
1392ab47cfaaSmrg
13935c42550eSmrg		  # Extract subdirectory from the argument.
13945c42550eSmrg		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13955c42550eSmrg		  if test "X$xdir" = "X$arg"; then
13965c42550eSmrg		    xdir=
13975c42550eSmrg		  else
13985c42550eSmrg		    xdir="$xdir/"
13995c42550eSmrg		  fi
1400ab47cfaaSmrg
14015c42550eSmrg		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
14025c42550eSmrg		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
14035c42550eSmrg		  libobjs="$libobjs $pic_object"
14045c42550eSmrg		  non_pic_objects="$non_pic_objects $non_pic_object"
14055c42550eSmrg		fi
14065c42550eSmrg	      fi
14075c42550eSmrg	    done
14085c42550eSmrg	  else
14095c42550eSmrg	    $echo "$modename: link input file \`$save_arg' does not exist"
14105c42550eSmrg	    exit $EXIT_FAILURE
14115c42550eSmrg	  fi
14125c42550eSmrg	  arg=$save_arg
14135c42550eSmrg	  prev=
14145c42550eSmrg	  continue
14155c42550eSmrg	  ;;
14165c42550eSmrg	rpath | xrpath)
14175c42550eSmrg	  # We need an absolute path.
14185c42550eSmrg	  case $arg in
14195c42550eSmrg	  [\\/]* | [A-Za-z]:[\\/]*) ;;
14205c42550eSmrg	  *)
14215c42550eSmrg	    $echo "$modename: only absolute run-paths are allowed" 1>&2
14225c42550eSmrg	    exit $EXIT_FAILURE
14235c42550eSmrg	    ;;
14245c42550eSmrg	  esac
14255c42550eSmrg	  if test "$prev" = rpath; then
14265c42550eSmrg	    case "$rpath " in
14275c42550eSmrg	    *" $arg "*) ;;
14285c42550eSmrg	    *) rpath="$rpath $arg" ;;
14295c42550eSmrg	    esac
14305c42550eSmrg	  else
14315c42550eSmrg	    case "$xrpath " in
14325c42550eSmrg	    *" $arg "*) ;;
14335c42550eSmrg	    *) xrpath="$xrpath $arg" ;;
14345c42550eSmrg	    esac
14355c42550eSmrg	  fi
14365c42550eSmrg	  prev=
14375c42550eSmrg	  continue
14385c42550eSmrg	  ;;
14395c42550eSmrg	xcompiler)
14405c42550eSmrg	  compiler_flags="$compiler_flags $qarg"
14415c42550eSmrg	  prev=
14425c42550eSmrg	  compile_command="$compile_command $qarg"
14435c42550eSmrg	  finalize_command="$finalize_command $qarg"
14445c42550eSmrg	  continue
14455c42550eSmrg	  ;;
14465c42550eSmrg	xlinker)
14475c42550eSmrg	  linker_flags="$linker_flags $qarg"
14485c42550eSmrg	  compiler_flags="$compiler_flags $wl$qarg"
14495c42550eSmrg	  prev=
14505c42550eSmrg	  compile_command="$compile_command $wl$qarg"
14515c42550eSmrg	  finalize_command="$finalize_command $wl$qarg"
14525c42550eSmrg	  continue
14535c42550eSmrg	  ;;
14545c42550eSmrg	xcclinker)
14555c42550eSmrg	  linker_flags="$linker_flags $qarg"
14565c42550eSmrg	  compiler_flags="$compiler_flags $qarg"
14575c42550eSmrg	  prev=
14585c42550eSmrg	  compile_command="$compile_command $qarg"
14595c42550eSmrg	  finalize_command="$finalize_command $qarg"
14605c42550eSmrg	  continue
14615c42550eSmrg	  ;;
14625c42550eSmrg	shrext)
14635c42550eSmrg  	  shrext_cmds="$arg"
14645c42550eSmrg	  prev=
14655c42550eSmrg	  continue
14665c42550eSmrg	  ;;
14675c42550eSmrg	darwin_framework|darwin_framework_skip)
14685c42550eSmrg	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
14695c42550eSmrg	  compile_command="$compile_command $arg"
14705c42550eSmrg	  finalize_command="$finalize_command $arg"
14715c42550eSmrg	  prev=
14725c42550eSmrg	  continue
14735c42550eSmrg	  ;;
14745c42550eSmrg	*)
14755c42550eSmrg	  eval "$prev=\"\$arg\""
14765c42550eSmrg	  prev=
14775c42550eSmrg	  continue
14785c42550eSmrg	  ;;
14795c42550eSmrg	esac
14805c42550eSmrg      fi # test -n "$prev"
1481ab47cfaaSmrg
14825c42550eSmrg      prevarg="$arg"
1483ab47cfaaSmrg
14845c42550eSmrg      case $arg in
14855c42550eSmrg      -all-static)
14865c42550eSmrg	if test -n "$link_static_flag"; then
14875c42550eSmrg	  compile_command="$compile_command $link_static_flag"
14885c42550eSmrg	  finalize_command="$finalize_command $link_static_flag"
14895c42550eSmrg	fi
14905c42550eSmrg	continue
14915c42550eSmrg	;;
1492ab47cfaaSmrg
14935c42550eSmrg      -allow-undefined)
14945c42550eSmrg	# FIXME: remove this flag sometime in the future.
14955c42550eSmrg	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
14965c42550eSmrg	continue
14975c42550eSmrg	;;
1498ab47cfaaSmrg
14995c42550eSmrg      -avoid-version)
15005c42550eSmrg	avoid_version=yes
15015c42550eSmrg	continue
15025c42550eSmrg	;;
1503ab47cfaaSmrg
15045c42550eSmrg      -dlopen)
15055c42550eSmrg	prev=dlfiles
15065c42550eSmrg	continue
15075c42550eSmrg	;;
1508ab47cfaaSmrg
15095c42550eSmrg      -dlpreopen)
15105c42550eSmrg	prev=dlprefiles
15115c42550eSmrg	continue
15125c42550eSmrg	;;
1513ab47cfaaSmrg
15145c42550eSmrg      -export-dynamic)
15155c42550eSmrg	export_dynamic=yes
15165c42550eSmrg	continue
15175c42550eSmrg	;;
1518ab47cfaaSmrg
15195c42550eSmrg      -export-symbols | -export-symbols-regex)
15205c42550eSmrg	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
15215c42550eSmrg	  $echo "$modename: more than one -exported-symbols argument is not allowed"
15225c42550eSmrg	  exit $EXIT_FAILURE
15235c42550eSmrg	fi
15245c42550eSmrg	if test "X$arg" = "X-export-symbols"; then
15255c42550eSmrg	  prev=expsyms
15265c42550eSmrg	else
15275c42550eSmrg	  prev=expsyms_regex
15285c42550eSmrg	fi
15295c42550eSmrg	continue
15305c42550eSmrg	;;
1531ab47cfaaSmrg
15325c42550eSmrg      -framework|-arch|-isysroot)
15335c42550eSmrg	case " $CC " in
15345c42550eSmrg	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
15355c42550eSmrg		prev=darwin_framework_skip ;;
15365c42550eSmrg	  *) compiler_flags="$compiler_flags $arg"
15375c42550eSmrg	     prev=darwin_framework ;;
15385c42550eSmrg	esac
15395c42550eSmrg	compile_command="$compile_command $arg"
15405c42550eSmrg	finalize_command="$finalize_command $arg"
15415c42550eSmrg	continue
15425c42550eSmrg	;;
1543ab47cfaaSmrg
15445c42550eSmrg      -inst-prefix-dir)
15455c42550eSmrg	prev=inst_prefix
15465c42550eSmrg	continue
15475c42550eSmrg	;;
1548ab47cfaaSmrg
15495c42550eSmrg      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
15505c42550eSmrg      # so, if we see these flags be careful not to treat them like -L
15515c42550eSmrg      -L[A-Z][A-Z]*:*)
15525c42550eSmrg	case $with_gcc/$host in
15535c42550eSmrg	no/*-*-irix* | /*-*-irix*)
15545c42550eSmrg	  compile_command="$compile_command $arg"
15555c42550eSmrg	  finalize_command="$finalize_command $arg"
15565c42550eSmrg	  ;;
15575c42550eSmrg	esac
15585c42550eSmrg	continue
15595c42550eSmrg	;;
1560ab47cfaaSmrg
15615c42550eSmrg      -L*)
15625c42550eSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
15635c42550eSmrg	# We need an absolute path.
15645c42550eSmrg	case $dir in
15655c42550eSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
15665c42550eSmrg	*)
15675c42550eSmrg	  absdir=`cd "$dir" && pwd`
15685c42550eSmrg	  if test -z "$absdir"; then
15695c42550eSmrg	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
15705c42550eSmrg	    absdir="$dir"
15715c42550eSmrg	    notinst_path="$notinst_path $dir"
15725c42550eSmrg	  fi
15735c42550eSmrg	  dir="$absdir"
15745c42550eSmrg	  ;;
15755c42550eSmrg	esac
15765c42550eSmrg	case "$deplibs " in
15775c42550eSmrg	*" -L$dir "*) ;;
15785c42550eSmrg	*)
15795c42550eSmrg	  deplibs="$deplibs -L$dir"
15805c42550eSmrg	  lib_search_path="$lib_search_path $dir"
15815c42550eSmrg	  ;;
15825c42550eSmrg	esac
15835c42550eSmrg	case $host in
15845c42550eSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
15855c42550eSmrg	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
15865c42550eSmrg	  case :$dllsearchpath: in
15875c42550eSmrg	  *":$dir:"*) ;;
15885c42550eSmrg	  *) dllsearchpath="$dllsearchpath:$dir";;
15895c42550eSmrg	  esac
15905c42550eSmrg	  case :$dllsearchpath: in
15915c42550eSmrg	  *":$testbindir:"*) ;;
15925c42550eSmrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
15935c42550eSmrg	  esac
15945c42550eSmrg	  ;;
15955c42550eSmrg	esac
15965c42550eSmrg	continue
15975c42550eSmrg	;;
1598ab47cfaaSmrg
15995c42550eSmrg      -l*)
16005c42550eSmrg	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
16015c42550eSmrg	  case $host in
16025c42550eSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
16035c42550eSmrg	    # These systems don't actually have a C or math library (as such)
16045c42550eSmrg	    continue
16055c42550eSmrg	    ;;
16065c42550eSmrg	  *-*-os2*)
16075c42550eSmrg	    # These systems don't actually have a C library (as such)
16085c42550eSmrg	    test "X$arg" = "X-lc" && continue
16095c42550eSmrg	    ;;
16105c42550eSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16115c42550eSmrg	    # Do not include libc due to us having libc/libc_r.
16125c42550eSmrg	    test "X$arg" = "X-lc" && continue
16135c42550eSmrg	    ;;
16145c42550eSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
16155c42550eSmrg	    # Rhapsody C and math libraries are in the System framework
16165c42550eSmrg	    deplibs="$deplibs -framework System"
16175c42550eSmrg	    continue
16185c42550eSmrg	    ;;
16195c42550eSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
16205c42550eSmrg	    # Causes problems with __ctype
16215c42550eSmrg	    test "X$arg" = "X-lc" && continue
16225c42550eSmrg	    ;;
16235c42550eSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
16245c42550eSmrg	    # Compiler inserts libc in the correct place for threads to work
16255c42550eSmrg	    test "X$arg" = "X-lc" && continue
16265c42550eSmrg	    ;;
16275c42550eSmrg	  esac
16285c42550eSmrg	elif test "X$arg" = "X-lc_r"; then
16295c42550eSmrg	 case $host in
16305c42550eSmrg	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16315c42550eSmrg	   # Do not include libc_r directly, use -pthread flag.
16325c42550eSmrg	   continue
16335c42550eSmrg	   ;;
16345c42550eSmrg	 esac
16351473d951Smrg	fi
16365c42550eSmrg	deplibs="$deplibs $arg"
16375c42550eSmrg	continue
16385c42550eSmrg	;;
1639ab47cfaaSmrg
16405c42550eSmrg      # Tru64 UNIX uses -model [arg] to determine the layout of C++
16415c42550eSmrg      # classes, name mangling, and exception handling.
16425c42550eSmrg      -model)
16435c42550eSmrg	compile_command="$compile_command $arg"
16445c42550eSmrg	compiler_flags="$compiler_flags $arg"
16455c42550eSmrg	finalize_command="$finalize_command $arg"
16465c42550eSmrg	prev=xcompiler
16475c42550eSmrg	continue
1648ab47cfaaSmrg	;;
1649ab47cfaaSmrg
16505c42550eSmrg     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
16515c42550eSmrg	compiler_flags="$compiler_flags $arg"
16525c42550eSmrg	compile_command="$compile_command $arg"
16535c42550eSmrg	finalize_command="$finalize_command $arg"
16545c42550eSmrg	continue
1655ab47cfaaSmrg	;;
1656ab47cfaaSmrg
16575c42550eSmrg      -multi_module)
16585c42550eSmrg	single_module="${wl}-multi_module"
1659ab47cfaaSmrg	continue
1660ab47cfaaSmrg	;;
1661ab47cfaaSmrg
16625c42550eSmrg      -module)
16635c42550eSmrg	module=yes
16645c42550eSmrg	continue
16655c42550eSmrg	;;
1666ab47cfaaSmrg
16675c42550eSmrg      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
16685c42550eSmrg      # -r[0-9][0-9]* specifies the processor on the SGI compiler
16695c42550eSmrg      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
16705c42550eSmrg      # +DA*, +DD* enable 64-bit mode on the HP compiler
16715c42550eSmrg      # -q* pass through compiler args for the IBM compiler
16725c42550eSmrg      # -m* pass through architecture-specific compiler args for GCC
16735c42550eSmrg      # -m*, -t[45]*, -txscale* pass through architecture-specific
16745c42550eSmrg      # compiler args for GCC
16755c42550eSmrg      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
16765c42550eSmrg      # -F/path gives path to uninstalled frameworks, gcc on darwin
16775c42550eSmrg      # @file GCC response files
16785c42550eSmrg      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
16795c42550eSmrg      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
1680ab47cfaaSmrg
16815c42550eSmrg	# Unknown arguments in both finalize_command and compile_command need
16825c42550eSmrg	# to be aesthetically quoted because they are evaled later.
16835c42550eSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
16845c42550eSmrg	case $arg in
16855c42550eSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
16865c42550eSmrg	  arg="\"$arg\""
16875c42550eSmrg	  ;;
16885c42550eSmrg	esac
16895c42550eSmrg        compile_command="$compile_command $arg"
16905c42550eSmrg        finalize_command="$finalize_command $arg"
16915c42550eSmrg        compiler_flags="$compiler_flags $arg"
16925c42550eSmrg        continue
16935c42550eSmrg        ;;
1694ab47cfaaSmrg
16955c42550eSmrg      -shrext)
16965c42550eSmrg	prev=shrext
16975c42550eSmrg	continue
16981473d951Smrg	;;
1699ab47cfaaSmrg
17005c42550eSmrg      -no-fast-install)
17015c42550eSmrg	fast_install=no
17025c42550eSmrg	continue
17035c42550eSmrg	;;
1704ab47cfaaSmrg
17055c42550eSmrg      -no-install)
17065c42550eSmrg	case $host in
17075c42550eSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
17085c42550eSmrg	  # The PATH hackery in wrapper scripts is required on Windows
17095c42550eSmrg	  # and Darwin in order for the loader to find any dlls it needs.
17105c42550eSmrg	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
17115c42550eSmrg	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
17125c42550eSmrg	  fast_install=no
17135c42550eSmrg	  ;;
17145c42550eSmrg	*) no_install=yes ;;
17155c42550eSmrg	esac
17165c42550eSmrg	continue
17175c42550eSmrg	;;
1718ab47cfaaSmrg
17195c42550eSmrg      -no-undefined)
17205c42550eSmrg	allow_undefined=no
17215c42550eSmrg	continue
17225c42550eSmrg	;;
17231473d951Smrg
17245c42550eSmrg      -objectlist)
17255c42550eSmrg	prev=objectlist
17265c42550eSmrg	continue
17271473d951Smrg	;;
17281473d951Smrg
17295c42550eSmrg      -o) prev=output ;;
17301473d951Smrg
17315c42550eSmrg      -precious-files-regex)
17325c42550eSmrg	prev=precious_regex
17335c42550eSmrg	continue
17345c42550eSmrg	;;
17351473d951Smrg
17365c42550eSmrg      -release)
17375c42550eSmrg	prev=release
17385c42550eSmrg	continue
17395c42550eSmrg	;;
17401473d951Smrg
17415c42550eSmrg      -rpath)
17425c42550eSmrg	prev=rpath
17435c42550eSmrg	continue
17445c42550eSmrg	;;
17451473d951Smrg
17465c42550eSmrg      -R)
17475c42550eSmrg	prev=xrpath
17481473d951Smrg	continue
17495c42550eSmrg	;;
17501473d951Smrg
17515c42550eSmrg      -R*)
17525c42550eSmrg	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
17535c42550eSmrg	# We need an absolute path.
17545c42550eSmrg	case $dir in
17555c42550eSmrg	[\\/]* | [A-Za-z]:[\\/]*) ;;
17565c42550eSmrg	*)
17575c42550eSmrg	  $echo "$modename: only absolute run-paths are allowed" 1>&2
17585c42550eSmrg	  exit $EXIT_FAILURE
17595c42550eSmrg	  ;;
17605c42550eSmrg	esac
17615c42550eSmrg	case "$xrpath " in
17625c42550eSmrg	*" $dir "*) ;;
17635c42550eSmrg	*) xrpath="$xrpath $dir" ;;
17641473d951Smrg	esac
17655c42550eSmrg	continue
17661473d951Smrg	;;
17675c42550eSmrg
17685c42550eSmrg      -static | -static-libtool-libs)
17695c42550eSmrg	# The effects of -static are defined in a previous loop.
17705c42550eSmrg	# We used to do the same as -all-static on platforms that
17715c42550eSmrg	# didn't have a PIC flag, but the assumption that the effects
17725c42550eSmrg	# would be equivalent was wrong.  It would break on at least
17735c42550eSmrg	# Digital Unix and AIX.
17745c42550eSmrg	continue
17751473d951Smrg	;;
17765c42550eSmrg
17775c42550eSmrg      -thread-safe)
17785c42550eSmrg	thread_safe=yes
17791473d951Smrg	continue
17801473d951Smrg	;;
17815c42550eSmrg
17825c42550eSmrg      -version-info)
17835c42550eSmrg	prev=vinfo
17845c42550eSmrg	continue
17851473d951Smrg	;;
17865c42550eSmrg      -version-number)
17875c42550eSmrg	prev=vinfo
17885c42550eSmrg	vinfo_number=yes
17895c42550eSmrg	continue
1790ab47cfaaSmrg	;;
1791ab47cfaaSmrg
17925c42550eSmrg      -Wc,*)
17935c42550eSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
17945c42550eSmrg	arg=
17955c42550eSmrg	save_ifs="$IFS"; IFS=','
17965c42550eSmrg	for flag in $args; do
17975c42550eSmrg	  IFS="$save_ifs"
17985c42550eSmrg	  case $flag in
17995c42550eSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18005c42550eSmrg	    flag="\"$flag\""
18015c42550eSmrg	    ;;
18025c42550eSmrg	  esac
18035c42550eSmrg	  arg="$arg $wl$flag"
18045c42550eSmrg	  compiler_flags="$compiler_flags $flag"
18055c42550eSmrg	done
18065c42550eSmrg	IFS="$save_ifs"
18075c42550eSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18085c42550eSmrg	;;
1809ab47cfaaSmrg
18105c42550eSmrg      -Wl,*)
18115c42550eSmrg	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
18125c42550eSmrg	arg=
18135c42550eSmrg	save_ifs="$IFS"; IFS=','
18145c42550eSmrg	for flag in $args; do
18155c42550eSmrg	  IFS="$save_ifs"
18165c42550eSmrg	  case $flag in
18175c42550eSmrg	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18185c42550eSmrg	    flag="\"$flag\""
18195c42550eSmrg	    ;;
18205c42550eSmrg	  esac
18215c42550eSmrg	  arg="$arg $wl$flag"
18225c42550eSmrg	  compiler_flags="$compiler_flags $wl$flag"
18235c42550eSmrg	  linker_flags="$linker_flags $flag"
18245c42550eSmrg	done
18255c42550eSmrg	IFS="$save_ifs"
18265c42550eSmrg	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18275c42550eSmrg	;;
1828ab47cfaaSmrg
18295c42550eSmrg      -Xcompiler)
18305c42550eSmrg	prev=xcompiler
18315c42550eSmrg	continue
18325c42550eSmrg	;;
1833ab47cfaaSmrg
18345c42550eSmrg      -Xlinker)
18355c42550eSmrg	prev=xlinker
18365c42550eSmrg	continue
18375c42550eSmrg	;;
1838ab47cfaaSmrg
18395c42550eSmrg      -XCClinker)
18405c42550eSmrg	prev=xcclinker
18415c42550eSmrg	continue
18425c42550eSmrg	;;
1843ab47cfaaSmrg
18445c42550eSmrg      # Some other compiler flag.
18455c42550eSmrg      -* | +*)
18465c42550eSmrg	# Unknown arguments in both finalize_command and compile_command need
18475c42550eSmrg	# to be aesthetically quoted because they are evaled later.
18485c42550eSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
18495c42550eSmrg	case $arg in
18505c42550eSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18515c42550eSmrg	  arg="\"$arg\""
18521473d951Smrg	  ;;
18531473d951Smrg	esac
18545c42550eSmrg	;;
1855ab47cfaaSmrg
18565c42550eSmrg      *.$objext)
18575c42550eSmrg	# A standard object.
18585c42550eSmrg	objs="$objs $arg"
18591473d951Smrg	;;
18601473d951Smrg
18615c42550eSmrg      *.lo)
18625c42550eSmrg	# A libtool-controlled object.
18631473d951Smrg
18645c42550eSmrg	# Check to see that this really is a libtool object.
18655c42550eSmrg	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
18665c42550eSmrg	  pic_object=
18675c42550eSmrg	  non_pic_object=
18681473d951Smrg
18695c42550eSmrg	  # Read the .lo file
18705c42550eSmrg	  # If there is no directory component, then add one.
18715c42550eSmrg	  case $arg in
18725c42550eSmrg	  */* | *\\*) . $arg ;;
18735c42550eSmrg	  *) . ./$arg ;;
18741473d951Smrg	  esac
18751473d951Smrg
18765c42550eSmrg	  if test -z "$pic_object" || \
18775c42550eSmrg	     test -z "$non_pic_object" ||
18785c42550eSmrg	     test "$pic_object" = none && \
18795c42550eSmrg	     test "$non_pic_object" = none; then
18805c42550eSmrg	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
18815c42550eSmrg	    exit $EXIT_FAILURE
18825c42550eSmrg	  fi
18831473d951Smrg
18845c42550eSmrg	  # Extract subdirectory from the argument.
18855c42550eSmrg	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
18865c42550eSmrg	  if test "X$xdir" = "X$arg"; then
18875c42550eSmrg	    xdir=
18885c42550eSmrg 	  else
18895c42550eSmrg	    xdir="$xdir/"
18901473d951Smrg	  fi
18911473d951Smrg
18925c42550eSmrg	  if test "$pic_object" != none; then
18935c42550eSmrg	    # Prepend the subdirectory the object is found in.
18945c42550eSmrg	    pic_object="$xdir$pic_object"
18951473d951Smrg
18965c42550eSmrg	    if test "$prev" = dlfiles; then
18975c42550eSmrg	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
18985c42550eSmrg		dlfiles="$dlfiles $pic_object"
18995c42550eSmrg		prev=
19005c42550eSmrg		continue
19015c42550eSmrg	      else
19025c42550eSmrg		# If libtool objects are unsupported, then we need to preload.
19035c42550eSmrg		prev=dlprefiles
19045c42550eSmrg	      fi
19055c42550eSmrg	    fi
19061473d951Smrg
19075c42550eSmrg	    # CHECK ME:  I think I busted this.  -Ossama
19085c42550eSmrg	    if test "$prev" = dlprefiles; then
19095c42550eSmrg	      # Preload the old-style object.
19105c42550eSmrg	      dlprefiles="$dlprefiles $pic_object"
19115c42550eSmrg	      prev=
19125c42550eSmrg	    fi
19131473d951Smrg
19145c42550eSmrg	    # A PIC object.
19155c42550eSmrg	    libobjs="$libobjs $pic_object"
19165c42550eSmrg	    arg="$pic_object"
1917ab47cfaaSmrg	  fi
19181473d951Smrg
19195c42550eSmrg	  # Non-PIC object.
19205c42550eSmrg	  if test "$non_pic_object" != none; then
19215c42550eSmrg	    # Prepend the subdirectory the object is found in.
19225c42550eSmrg	    non_pic_object="$xdir$non_pic_object"
19235c42550eSmrg
19245c42550eSmrg	    # A standard non-PIC object
19255c42550eSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
19265c42550eSmrg	    if test -z "$pic_object" || test "$pic_object" = none ; then
19275c42550eSmrg	      arg="$non_pic_object"
19285c42550eSmrg	    fi
19295c42550eSmrg	  else
19305c42550eSmrg	    # If the PIC object exists, use it instead.
19315c42550eSmrg	    # $xdir was prepended to $pic_object above.
19325c42550eSmrg	    non_pic_object="$pic_object"
19335c42550eSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
1934ab47cfaaSmrg	  fi
19355c42550eSmrg	else
19365c42550eSmrg	  # Only an error if not doing a dry-run.
19375c42550eSmrg	  if test -z "$run"; then
19385c42550eSmrg	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
19395c42550eSmrg	    exit $EXIT_FAILURE
19405c42550eSmrg	  else
19415c42550eSmrg	    # Dry-run case.
1942ab47cfaaSmrg
19435c42550eSmrg	    # Extract subdirectory from the argument.
19445c42550eSmrg	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
19455c42550eSmrg	    if test "X$xdir" = "X$arg"; then
19465c42550eSmrg	      xdir=
19475c42550eSmrg	    else
19485c42550eSmrg	      xdir="$xdir/"
19495c42550eSmrg	    fi
1950ab47cfaaSmrg
19515c42550eSmrg	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
19525c42550eSmrg	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
19535c42550eSmrg	    libobjs="$libobjs $pic_object"
19545c42550eSmrg	    non_pic_objects="$non_pic_objects $non_pic_object"
19555c42550eSmrg	  fi
19565c42550eSmrg	fi
19575c42550eSmrg	;;
1958ab47cfaaSmrg
19595c42550eSmrg      *.$libext)
19605c42550eSmrg	# An archive.
19615c42550eSmrg	deplibs="$deplibs $arg"
19625c42550eSmrg	old_deplibs="$old_deplibs $arg"
19635c42550eSmrg	continue
19641473d951Smrg	;;
1965ab47cfaaSmrg
19665c42550eSmrg      *.la)
19675c42550eSmrg	# A libtool-controlled library.
1968ab47cfaaSmrg
19695c42550eSmrg	if test "$prev" = dlfiles; then
19705c42550eSmrg	  # This library was specified with -dlopen.
19715c42550eSmrg	  dlfiles="$dlfiles $arg"
19725c42550eSmrg	  prev=
19735c42550eSmrg	elif test "$prev" = dlprefiles; then
19745c42550eSmrg	  # The library was specified with -dlpreopen.
19755c42550eSmrg	  dlprefiles="$dlprefiles $arg"
19765c42550eSmrg	  prev=
19771473d951Smrg	else
19785c42550eSmrg	  deplibs="$deplibs $arg"
1979ab47cfaaSmrg	fi
19805c42550eSmrg	continue
19815c42550eSmrg	;;
1982ab47cfaaSmrg
19835c42550eSmrg      # Some other compiler argument.
19845c42550eSmrg      *)
19855c42550eSmrg	# Unknown arguments in both finalize_command and compile_command need
19865c42550eSmrg	# to be aesthetically quoted because they are evaled later.
19875c42550eSmrg	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
19885c42550eSmrg	case $arg in
19895c42550eSmrg	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
19905c42550eSmrg	  arg="\"$arg\""
19911473d951Smrg	  ;;
19921473d951Smrg	esac
19931473d951Smrg	;;
19945c42550eSmrg      esac # arg
1995ab47cfaaSmrg
19965c42550eSmrg      # Now actually substitute the argument into the commands.
19975c42550eSmrg      if test -n "$arg"; then
19985c42550eSmrg	compile_command="$compile_command $arg"
19995c42550eSmrg	finalize_command="$finalize_command $arg"
20005c42550eSmrg      fi
20015c42550eSmrg    done # argument parsing loop
2002ab47cfaaSmrg
20035c42550eSmrg    if test -n "$prev"; then
20045c42550eSmrg      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
20055c42550eSmrg      $echo "$help" 1>&2
20065c42550eSmrg      exit $EXIT_FAILURE
20075c42550eSmrg    fi
20081473d951Smrg
20095c42550eSmrg    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
20105c42550eSmrg      eval arg=\"$export_dynamic_flag_spec\"
20115c42550eSmrg      compile_command="$compile_command $arg"
20125c42550eSmrg      finalize_command="$finalize_command $arg"
20135c42550eSmrg    fi
20141473d951Smrg
20155c42550eSmrg    oldlibs=
20165c42550eSmrg    # calculate the name of the file, without its directory
20175c42550eSmrg    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
20185c42550eSmrg    libobjs_save="$libobjs"
20191473d951Smrg
20205c42550eSmrg    if test -n "$shlibpath_var"; then
20215c42550eSmrg      # get the directories listed in $shlibpath_var
20225c42550eSmrg      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
20235c42550eSmrg    else
20245c42550eSmrg      shlib_search_path=
20255c42550eSmrg    fi
20265c42550eSmrg    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
20275c42550eSmrg    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
20281473d951Smrg
20295c42550eSmrg    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
20305c42550eSmrg    if test "X$output_objdir" = "X$output"; then
20315c42550eSmrg      output_objdir="$objdir"
20321473d951Smrg    else
20335c42550eSmrg      output_objdir="$output_objdir/$objdir"
20341473d951Smrg    fi
20355c42550eSmrg    # Create the object directory.
20365c42550eSmrg    if test ! -d "$output_objdir"; then
20375c42550eSmrg      $show "$mkdir $output_objdir"
20385c42550eSmrg      $run $mkdir $output_objdir
20395c42550eSmrg      exit_status=$?
20405c42550eSmrg      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
20415c42550eSmrg	exit $exit_status
20421473d951Smrg      fi
20431473d951Smrg    fi
20441473d951Smrg
20455c42550eSmrg    # Determine the type of output
20465c42550eSmrg    case $output in
20475c42550eSmrg    "")
20485c42550eSmrg      $echo "$modename: you must specify an output file" 1>&2
20495c42550eSmrg      $echo "$help" 1>&2
20505c42550eSmrg      exit $EXIT_FAILURE
20515c42550eSmrg      ;;
20525c42550eSmrg    *.$libext) linkmode=oldlib ;;
20535c42550eSmrg    *.lo | *.$objext) linkmode=obj ;;
20545c42550eSmrg    *.la) linkmode=lib ;;
20555c42550eSmrg    *) linkmode=prog ;; # Anything else should be a program.
20565c42550eSmrg    esac
2057ab47cfaaSmrg
20585c42550eSmrg    case $host in
20595c42550eSmrg    *cygwin* | *mingw* | *pw32*)
20605c42550eSmrg      # don't eliminate duplications in $postdeps and $predeps
20615c42550eSmrg      duplicate_compiler_generated_deps=yes
20625c42550eSmrg      ;;
20635c42550eSmrg    *)
20645c42550eSmrg      duplicate_compiler_generated_deps=$duplicate_deps
20655c42550eSmrg      ;;
20665c42550eSmrg    esac
20675c42550eSmrg    specialdeplibs=
2068ab47cfaaSmrg
20695c42550eSmrg    libs=
20705c42550eSmrg    # Find all interdependent deplibs by searching for libraries
20715c42550eSmrg    # that are linked more than once (e.g. -la -lb -la)
20725c42550eSmrg    for deplib in $deplibs; do
20735c42550eSmrg      if test "X$duplicate_deps" = "Xyes" ; then
20745c42550eSmrg	case "$libs " in
20755c42550eSmrg	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
20765c42550eSmrg	esac
20775c42550eSmrg      fi
20785c42550eSmrg      libs="$libs $deplib"
20795c42550eSmrg    done
2080ab47cfaaSmrg
20815c42550eSmrg    if test "$linkmode" = lib; then
20825c42550eSmrg      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2083ab47cfaaSmrg
20845c42550eSmrg      # Compute libraries that are listed more than once in $predeps
20855c42550eSmrg      # $postdeps and mark them as special (i.e., whose duplicates are
20865c42550eSmrg      # not to be eliminated).
20875c42550eSmrg      pre_post_deps=
20885c42550eSmrg      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
20895c42550eSmrg	for pre_post_dep in $predeps $postdeps; do
20905c42550eSmrg	  case "$pre_post_deps " in
20915c42550eSmrg	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
20921473d951Smrg	  esac
20935c42550eSmrg	  pre_post_deps="$pre_post_deps $pre_post_dep"
20945c42550eSmrg	done
20955c42550eSmrg      fi
20965c42550eSmrg      pre_post_deps=
20975c42550eSmrg    fi
2098ab47cfaaSmrg
20995c42550eSmrg    deplibs=
21005c42550eSmrg    newdependency_libs=
21015c42550eSmrg    newlib_search_path=
21025c42550eSmrg    need_relink=no # whether we're linking any uninstalled libtool libraries
21035c42550eSmrg    notinst_deplibs= # not-installed libtool libraries
21045c42550eSmrg    case $linkmode in
21055c42550eSmrg    lib)
21065c42550eSmrg	passes="conv link"
21075c42550eSmrg	for file in $dlfiles $dlprefiles; do
21085c42550eSmrg	  case $file in
21095c42550eSmrg	  *.la) ;;
21101473d951Smrg	  *)
21115c42550eSmrg	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
21125c42550eSmrg	    exit $EXIT_FAILURE
21131473d951Smrg	    ;;
21141473d951Smrg	  esac
21151473d951Smrg	done
21161473d951Smrg	;;
21175c42550eSmrg    prog)
21185c42550eSmrg	compile_deplibs=
21195c42550eSmrg	finalize_deplibs=
21205c42550eSmrg	alldeplibs=no
21215c42550eSmrg	newdlfiles=
21225c42550eSmrg	newdlprefiles=
21235c42550eSmrg	passes="conv scan dlopen dlpreopen link"
21245c42550eSmrg	;;
21255c42550eSmrg    *)  passes="conv"
21261473d951Smrg	;;
21271473d951Smrg    esac
21285c42550eSmrg    for pass in $passes; do
21295c42550eSmrg      if test "$linkmode,$pass" = "lib,link" ||
21305c42550eSmrg	 test "$linkmode,$pass" = "prog,scan"; then
21315c42550eSmrg	libs="$deplibs"
21325c42550eSmrg	deplibs=
21335c42550eSmrg      fi
21345c42550eSmrg      if test "$linkmode" = prog; then
21355c42550eSmrg	case $pass in
21365c42550eSmrg	dlopen) libs="$dlfiles" ;;
21375c42550eSmrg	dlpreopen) libs="$dlprefiles" ;;
21385c42550eSmrg	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
21395c42550eSmrg	esac
21405c42550eSmrg      fi
21415c42550eSmrg      if test "$pass" = dlopen; then
21425c42550eSmrg	# Collect dlpreopened libraries
21435c42550eSmrg	save_deplibs="$deplibs"
21445c42550eSmrg	deplibs=
21455c42550eSmrg      fi
21465c42550eSmrg      for deplib in $libs; do
21475c42550eSmrg	lib=
21485c42550eSmrg	found=no
21495c42550eSmrg	case $deplib in
21505c42550eSmrg	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
21515c42550eSmrg	  if test "$linkmode,$pass" = "prog,link"; then
21525c42550eSmrg	    compile_deplibs="$deplib $compile_deplibs"
21535c42550eSmrg	    finalize_deplibs="$deplib $finalize_deplibs"
21545c42550eSmrg	  else
21555c42550eSmrg	    compiler_flags="$compiler_flags $deplib"
21565c42550eSmrg	  fi
21575c42550eSmrg	  continue
21585c42550eSmrg	  ;;
21595c42550eSmrg	-l*)
21605c42550eSmrg	  if test "$linkmode" != lib && test "$linkmode" != prog; then
21615c42550eSmrg	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
21625c42550eSmrg	    continue
21635c42550eSmrg	  fi
21645c42550eSmrg	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
21655c42550eSmrg	  if test "$linkmode" = lib; then
21665c42550eSmrg	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
21675c42550eSmrg	  else
21685c42550eSmrg	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
21695c42550eSmrg	  fi
21705c42550eSmrg	  for searchdir in $searchdirs; do
21715c42550eSmrg	    for search_ext in .la $std_shrext .so .a; do
21725c42550eSmrg	      # Search the libtool library
21735c42550eSmrg	      lib="$searchdir/lib${name}${search_ext}"
21745c42550eSmrg	      if test -f "$lib"; then
21755c42550eSmrg		if test "$search_ext" = ".la"; then
21765c42550eSmrg		  found=yes
21775c42550eSmrg		else
21785c42550eSmrg		  found=no
21795c42550eSmrg		fi
21805c42550eSmrg		break 2
21815c42550eSmrg	      fi
21825c42550eSmrg	    done
21835c42550eSmrg	  done
21845c42550eSmrg	  if test "$found" != yes; then
21855c42550eSmrg	    # deplib doesn't seem to be a libtool library
21865c42550eSmrg	    if test "$linkmode,$pass" = "prog,link"; then
21875c42550eSmrg	      compile_deplibs="$deplib $compile_deplibs"
21885c42550eSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
21895c42550eSmrg	    else
21905c42550eSmrg	      deplibs="$deplib $deplibs"
21915c42550eSmrg	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
21925c42550eSmrg	    fi
21935c42550eSmrg	    continue
21945c42550eSmrg	  else # deplib is a libtool library
21955c42550eSmrg	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
21965c42550eSmrg	    # We need to do some special things here, and not later.
21975c42550eSmrg	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
21985c42550eSmrg	      case " $predeps $postdeps " in
21995c42550eSmrg	      *" $deplib "*)
22005c42550eSmrg		if (${SED} -e '2q' $lib |
22015c42550eSmrg                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
22025c42550eSmrg		  library_names=
22035c42550eSmrg		  old_library=
22045c42550eSmrg		  case $lib in
22055c42550eSmrg		  */* | *\\*) . $lib ;;
22065c42550eSmrg		  *) . ./$lib ;;
22075c42550eSmrg		  esac
22085c42550eSmrg		  for l in $old_library $library_names; do
22095c42550eSmrg		    ll="$l"
22105c42550eSmrg		  done
22115c42550eSmrg		  if test "X$ll" = "X$old_library" ; then # only static version available
22125c42550eSmrg		    found=no
22135c42550eSmrg		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
22145c42550eSmrg		    test "X$ladir" = "X$lib" && ladir="."
22155c42550eSmrg		    lib=$ladir/$old_library
22165c42550eSmrg		    if test "$linkmode,$pass" = "prog,link"; then
22175c42550eSmrg		      compile_deplibs="$deplib $compile_deplibs"
22185c42550eSmrg		      finalize_deplibs="$deplib $finalize_deplibs"
22195c42550eSmrg		    else
22205c42550eSmrg		      deplibs="$deplib $deplibs"
22215c42550eSmrg		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
22225c42550eSmrg		    fi
22235c42550eSmrg		    continue
22245c42550eSmrg		  fi
22255c42550eSmrg		fi
22265c42550eSmrg	        ;;
22275c42550eSmrg	      *) ;;
22285c42550eSmrg	      esac
22295c42550eSmrg	    fi
22305c42550eSmrg	  fi
22315c42550eSmrg	  ;; # -l
22325c42550eSmrg	-L*)
22335c42550eSmrg	  case $linkmode in
22345c42550eSmrg	  lib)
22355c42550eSmrg	    deplibs="$deplib $deplibs"
22365c42550eSmrg	    test "$pass" = conv && continue
22375c42550eSmrg	    newdependency_libs="$deplib $newdependency_libs"
22385c42550eSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22395c42550eSmrg	    ;;
22405c42550eSmrg	  prog)
22415c42550eSmrg	    if test "$pass" = conv; then
22425c42550eSmrg	      deplibs="$deplib $deplibs"
22435c42550eSmrg	      continue
22445c42550eSmrg	    fi
22455c42550eSmrg	    if test "$pass" = scan; then
22465c42550eSmrg	      deplibs="$deplib $deplibs"
22475c42550eSmrg	    else
22485c42550eSmrg	      compile_deplibs="$deplib $compile_deplibs"
22495c42550eSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
22505c42550eSmrg	    fi
22515c42550eSmrg	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22525c42550eSmrg	    ;;
22535c42550eSmrg	  *)
22545c42550eSmrg	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
22555c42550eSmrg	    ;;
22565c42550eSmrg	  esac # linkmode
22575c42550eSmrg	  continue
22585c42550eSmrg	  ;; # -L
22595c42550eSmrg	-R*)
22605c42550eSmrg	  if test "$pass" = link; then
22615c42550eSmrg	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
22625c42550eSmrg	    # Make sure the xrpath contains only unique directories.
22635c42550eSmrg	    case "$xrpath " in
22645c42550eSmrg	    *" $dir "*) ;;
22655c42550eSmrg	    *) xrpath="$xrpath $dir" ;;
22665c42550eSmrg	    esac
22675c42550eSmrg	  fi
22685c42550eSmrg	  deplibs="$deplib $deplibs"
22695c42550eSmrg	  continue
22705c42550eSmrg	  ;;
22715c42550eSmrg	*.la) lib="$deplib" ;;
22725c42550eSmrg	*.$libext)
22735c42550eSmrg	  if test "$pass" = conv; then
22745c42550eSmrg	    deplibs="$deplib $deplibs"
22755c42550eSmrg	    continue
22765c42550eSmrg	  fi
22775c42550eSmrg	  case $linkmode in
22785c42550eSmrg	  lib)
22795c42550eSmrg	    valid_a_lib=no
22805c42550eSmrg	    case $deplibs_check_method in
22815c42550eSmrg	      match_pattern*)
22825c42550eSmrg		set dummy $deplibs_check_method
22835c42550eSmrg	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
22845c42550eSmrg		if eval $echo \"$deplib\" 2>/dev/null \
22855c42550eSmrg		    | $SED 10q \
22865c42550eSmrg		    | $EGREP "$match_pattern_regex" > /dev/null; then
22875c42550eSmrg		  valid_a_lib=yes
22885c42550eSmrg		fi
22895c42550eSmrg		;;
22905c42550eSmrg	      pass_all)
22915c42550eSmrg		valid_a_lib=yes
22925c42550eSmrg		;;
22935c42550eSmrg            esac
22945c42550eSmrg	    if test "$valid_a_lib" != yes; then
22955c42550eSmrg	      $echo
22965c42550eSmrg	      $echo "*** Warning: Trying to link with static lib archive $deplib."
22975c42550eSmrg	      $echo "*** I have the capability to make that library automatically link in when"
22985c42550eSmrg	      $echo "*** you link to this library.  But I can only do this if you have a"
22995c42550eSmrg	      $echo "*** shared version of the library, which you do not appear to have"
23005c42550eSmrg	      $echo "*** because the file extensions .$libext of this argument makes me believe"
23015c42550eSmrg	      $echo "*** that it is just a static archive that I should not used here."
23025c42550eSmrg	    else
23035c42550eSmrg	      $echo
23045c42550eSmrg	      $echo "*** Warning: Linking the shared library $output against the"
23055c42550eSmrg	      $echo "*** static library $deplib is not portable!"
23065c42550eSmrg	      deplibs="$deplib $deplibs"
23075c42550eSmrg	    fi
23085c42550eSmrg	    continue
23095c42550eSmrg	    ;;
23105c42550eSmrg	  prog)
23115c42550eSmrg	    if test "$pass" != link; then
23125c42550eSmrg	      deplibs="$deplib $deplibs"
23135c42550eSmrg	    else
23145c42550eSmrg	      compile_deplibs="$deplib $compile_deplibs"
23155c42550eSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
23165c42550eSmrg	    fi
23175c42550eSmrg	    continue
23185c42550eSmrg	    ;;
23195c42550eSmrg	  esac # linkmode
23205c42550eSmrg	  ;; # *.$libext
23215c42550eSmrg	*.lo | *.$objext)
23225c42550eSmrg	  if test "$pass" = conv; then
23235c42550eSmrg	    deplibs="$deplib $deplibs"
23245c42550eSmrg	  elif test "$linkmode" = prog; then
23255c42550eSmrg	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
23265c42550eSmrg	      # If there is no dlopen support or we're linking statically,
23275c42550eSmrg	      # we need to preload.
23285c42550eSmrg	      newdlprefiles="$newdlprefiles $deplib"
23295c42550eSmrg	      compile_deplibs="$deplib $compile_deplibs"
23305c42550eSmrg	      finalize_deplibs="$deplib $finalize_deplibs"
23315c42550eSmrg	    else
23325c42550eSmrg	      newdlfiles="$newdlfiles $deplib"
23335c42550eSmrg	    fi
23345c42550eSmrg	  fi
23355c42550eSmrg	  continue
23365c42550eSmrg	  ;;
23375c42550eSmrg	%DEPLIBS%)
23385c42550eSmrg	  alldeplibs=yes
23395c42550eSmrg	  continue
23405c42550eSmrg	  ;;
23415c42550eSmrg	esac # case $deplib
23425c42550eSmrg	if test "$found" = yes || test -f "$lib"; then :
23435c42550eSmrg	else
23445c42550eSmrg	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
23455c42550eSmrg	  exit $EXIT_FAILURE
23465c42550eSmrg	fi
2347ab47cfaaSmrg
23485c42550eSmrg	# Check to see that this really is a libtool archive.
23495c42550eSmrg	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
23505c42550eSmrg	else
23515c42550eSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
23525c42550eSmrg	  exit $EXIT_FAILURE
23535c42550eSmrg	fi
2354ab47cfaaSmrg
23555c42550eSmrg	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
23565c42550eSmrg	test "X$ladir" = "X$lib" && ladir="."
2357ab47cfaaSmrg
23585c42550eSmrg	dlname=
23595c42550eSmrg	dlopen=
23605c42550eSmrg	dlpreopen=
23615c42550eSmrg	libdir=
23625c42550eSmrg	library_names=
23635c42550eSmrg	old_library=
23645c42550eSmrg	# If the library was installed with an old release of libtool,
23655c42550eSmrg	# it will not redefine variables installed, or shouldnotlink
23665c42550eSmrg	installed=yes
23675c42550eSmrg	shouldnotlink=no
23685c42550eSmrg	avoidtemprpath=
2369ab47cfaaSmrg
2370ab47cfaaSmrg
23715c42550eSmrg	# Read the .la file
23725c42550eSmrg	case $lib in
23735c42550eSmrg	*/* | *\\*) . $lib ;;
23745c42550eSmrg	*) . ./$lib ;;
23751473d951Smrg	esac
2376ab47cfaaSmrg
23775c42550eSmrg	if test "$linkmode,$pass" = "lib,link" ||
23785c42550eSmrg	   test "$linkmode,$pass" = "prog,scan" ||
23795c42550eSmrg	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
23805c42550eSmrg	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
23815c42550eSmrg	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
23825c42550eSmrg	fi
2383ab47cfaaSmrg
23845c42550eSmrg	if test "$pass" = conv; then
23855c42550eSmrg	  # Only check for convenience libraries
23865c42550eSmrg	  deplibs="$lib $deplibs"
23875c42550eSmrg	  if test -z "$libdir"; then
23885c42550eSmrg	    if test -z "$old_library"; then
23895c42550eSmrg	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
23905c42550eSmrg	      exit $EXIT_FAILURE
23915c42550eSmrg	    fi
23925c42550eSmrg	    # It is a libtool convenience library, so add in its objects.
23935c42550eSmrg	    convenience="$convenience $ladir/$objdir/$old_library"
23945c42550eSmrg	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
23955c42550eSmrg	    tmp_libs=
23965c42550eSmrg	    for deplib in $dependency_libs; do
23975c42550eSmrg	      deplibs="$deplib $deplibs"
23985c42550eSmrg              if test "X$duplicate_deps" = "Xyes" ; then
23995c42550eSmrg	        case "$tmp_libs " in
24005c42550eSmrg	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
24015c42550eSmrg	        esac
24025c42550eSmrg              fi
24035c42550eSmrg	      tmp_libs="$tmp_libs $deplib"
24045c42550eSmrg	    done
24055c42550eSmrg	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
24065c42550eSmrg	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
24075c42550eSmrg	    exit $EXIT_FAILURE
24085c42550eSmrg	  fi
24095c42550eSmrg	  continue
24105c42550eSmrg	fi # $pass = conv
2411ab47cfaaSmrg
2412ab47cfaaSmrg
24135c42550eSmrg	# Get the name of the library we link against.
24145c42550eSmrg	linklib=
24155c42550eSmrg	for l in $old_library $library_names; do
24165c42550eSmrg	  linklib="$l"
24175c42550eSmrg	done
24185c42550eSmrg	if test -z "$linklib"; then
24195c42550eSmrg	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
24205c42550eSmrg	  exit $EXIT_FAILURE
2421ab47cfaaSmrg	fi
2422ab47cfaaSmrg
24235c42550eSmrg	# This library was specified with -dlopen.
24245c42550eSmrg	if test "$pass" = dlopen; then
24255c42550eSmrg	  if test -z "$libdir"; then
24265c42550eSmrg	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
24275c42550eSmrg	    exit $EXIT_FAILURE
24285c42550eSmrg	  fi
24295c42550eSmrg	  if test -z "$dlname" ||
24305c42550eSmrg	     test "$dlopen_support" != yes ||
24315c42550eSmrg	     test "$build_libtool_libs" = no; then
24325c42550eSmrg	    # If there is no dlname, no dlopen support or we're linking
24335c42550eSmrg	    # statically, we need to preload.  We also need to preload any
24345c42550eSmrg	    # dependent libraries so libltdl's deplib preloader doesn't
24355c42550eSmrg	    # bomb out in the load deplibs phase.
24365c42550eSmrg	    dlprefiles="$dlprefiles $lib $dependency_libs"
24375c42550eSmrg	  else
24385c42550eSmrg	    newdlfiles="$newdlfiles $lib"
24395c42550eSmrg	  fi
24405c42550eSmrg	  continue
24415c42550eSmrg	fi # $pass = dlopen
2442ab47cfaaSmrg
24435c42550eSmrg	# We need an absolute path.
24445c42550eSmrg	case $ladir in
24455c42550eSmrg	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
24465c42550eSmrg	*)
24475c42550eSmrg	  abs_ladir=`cd "$ladir" && pwd`
24485c42550eSmrg	  if test -z "$abs_ladir"; then
24495c42550eSmrg	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
24505c42550eSmrg	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
24515c42550eSmrg	    abs_ladir="$ladir"
24525c42550eSmrg	  fi
24535c42550eSmrg	  ;;
24545c42550eSmrg	esac
24555c42550eSmrg	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2456ab47cfaaSmrg
24575c42550eSmrg	# Find the relevant object directory and library name.
24585c42550eSmrg	if test "X$installed" = Xyes; then
24595c42550eSmrg	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24605c42550eSmrg	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
24615c42550eSmrg	    dir="$ladir"
24625c42550eSmrg	    absdir="$abs_ladir"
24635c42550eSmrg	    libdir="$abs_ladir"
24645c42550eSmrg	  else
24655c42550eSmrg	    dir="$libdir"
24665c42550eSmrg	    absdir="$libdir"
24675c42550eSmrg	  fi
24685c42550eSmrg	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
24695c42550eSmrg	else
24705c42550eSmrg	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24715c42550eSmrg	    dir="$ladir"
24725c42550eSmrg	    absdir="$abs_ladir"
24735c42550eSmrg	    # Remove this search path later
24745c42550eSmrg	    notinst_path="$notinst_path $abs_ladir"
24755c42550eSmrg	  else
24765c42550eSmrg	    dir="$ladir/$objdir"
24775c42550eSmrg	    absdir="$abs_ladir/$objdir"
24785c42550eSmrg	    # Remove this search path later
24795c42550eSmrg	    notinst_path="$notinst_path $abs_ladir"
24805c42550eSmrg	  fi
24815c42550eSmrg	fi # $installed = yes
24825c42550eSmrg	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2483ab47cfaaSmrg
24845c42550eSmrg	# This library was specified with -dlpreopen.
24855c42550eSmrg	if test "$pass" = dlpreopen; then
24865c42550eSmrg	  if test -z "$libdir"; then
24875c42550eSmrg	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
24885c42550eSmrg	    exit $EXIT_FAILURE
24895c42550eSmrg	  fi
24905c42550eSmrg	  # Prefer using a static library (so that no silly _DYNAMIC symbols
24915c42550eSmrg	  # are required to link).
24925c42550eSmrg	  if test -n "$old_library"; then
24935c42550eSmrg	    newdlprefiles="$newdlprefiles $dir/$old_library"
24945c42550eSmrg	  # Otherwise, use the dlname, so that lt_dlopen finds it.
24955c42550eSmrg	  elif test -n "$dlname"; then
24965c42550eSmrg	    newdlprefiles="$newdlprefiles $dir/$dlname"
24975c42550eSmrg	  else
24985c42550eSmrg	    newdlprefiles="$newdlprefiles $dir/$linklib"
24995c42550eSmrg	  fi
25005c42550eSmrg	fi # $pass = dlpreopen
2501ab47cfaaSmrg
25025c42550eSmrg	if test -z "$libdir"; then
25035c42550eSmrg	  # Link the convenience library
25045c42550eSmrg	  if test "$linkmode" = lib; then
25055c42550eSmrg	    deplibs="$dir/$old_library $deplibs"
25065c42550eSmrg	  elif test "$linkmode,$pass" = "prog,link"; then
25075c42550eSmrg	    compile_deplibs="$dir/$old_library $compile_deplibs"
25085c42550eSmrg	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
25095c42550eSmrg	  else
25105c42550eSmrg	    deplibs="$lib $deplibs" # used for prog,scan pass
25115c42550eSmrg	  fi
25125c42550eSmrg	  continue
25135c42550eSmrg	fi
2514ab47cfaaSmrg
2515ab47cfaaSmrg
25165c42550eSmrg	if test "$linkmode" = prog && test "$pass" != link; then
25175c42550eSmrg	  newlib_search_path="$newlib_search_path $ladir"
25185c42550eSmrg	  deplibs="$lib $deplibs"
2519ab47cfaaSmrg
25205c42550eSmrg	  linkalldeplibs=no
25215c42550eSmrg	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
25225c42550eSmrg	     test "$build_libtool_libs" = no; then
25235c42550eSmrg	    linkalldeplibs=yes
25245c42550eSmrg	  fi
2525ab47cfaaSmrg
25265c42550eSmrg	  tmp_libs=
25275c42550eSmrg	  for deplib in $dependency_libs; do
25285c42550eSmrg	    case $deplib in
25295c42550eSmrg	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
25305c42550eSmrg	    esac
25315c42550eSmrg	    # Need to link against all dependency_libs?
25325c42550eSmrg	    if test "$linkalldeplibs" = yes; then
25335c42550eSmrg	      deplibs="$deplib $deplibs"
25345c42550eSmrg	    else
25355c42550eSmrg	      # Need to hardcode shared library paths
25365c42550eSmrg	      # or/and link against static libraries
25375c42550eSmrg	      newdependency_libs="$deplib $newdependency_libs"
25385c42550eSmrg	    fi
25395c42550eSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
25405c42550eSmrg	      case "$tmp_libs " in
25415c42550eSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
25425c42550eSmrg	      esac
25435c42550eSmrg	    fi
25445c42550eSmrg	    tmp_libs="$tmp_libs $deplib"
25455c42550eSmrg	  done # for deplib
25465c42550eSmrg	  continue
25475c42550eSmrg	fi # $linkmode = prog...
25481473d951Smrg
25495c42550eSmrg	if test "$linkmode,$pass" = "prog,link"; then
25505c42550eSmrg	  if test -n "$library_names" &&
25515c42550eSmrg	     { { test "$prefer_static_libs" = no ||
25525c42550eSmrg		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
25535c42550eSmrg	       test -z "$old_library"; }; then
25545c42550eSmrg	    # We need to hardcode the library path
25555c42550eSmrg	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
25565c42550eSmrg	      # Make sure the rpath contains only unique directories.
25575c42550eSmrg	      case "$temp_rpath " in
25585c42550eSmrg	      *" $dir "*) ;;
25595c42550eSmrg	      *" $absdir "*) ;;
25605c42550eSmrg	      *) temp_rpath="$temp_rpath $absdir" ;;
25615c42550eSmrg	      esac
25625c42550eSmrg	    fi
2563ab47cfaaSmrg
25645c42550eSmrg	    # Hardcode the library path.
25655c42550eSmrg	    # Skip directories that are in the system default run-time
25665c42550eSmrg	    # search path.
25675c42550eSmrg	    case " $sys_lib_dlsearch_path " in
25685c42550eSmrg	    *" $absdir "*) ;;
25695c42550eSmrg	    *)
25705c42550eSmrg	      case "$compile_rpath " in
25715c42550eSmrg	      *" $absdir "*) ;;
25725c42550eSmrg	      *) compile_rpath="$compile_rpath $absdir"
25735c42550eSmrg	      esac
25745c42550eSmrg	      ;;
25755c42550eSmrg	    esac
25765c42550eSmrg	    case " $sys_lib_dlsearch_path " in
25775c42550eSmrg	    *" $libdir "*) ;;
25785c42550eSmrg	    *)
25795c42550eSmrg	      case "$finalize_rpath " in
25805c42550eSmrg	      *" $libdir "*) ;;
25815c42550eSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
25825c42550eSmrg	      esac
25835c42550eSmrg	      ;;
25845c42550eSmrg	    esac
25855c42550eSmrg	  fi # $linkmode,$pass = prog,link...
25861473d951Smrg
25875c42550eSmrg	  if test "$alldeplibs" = yes &&
25885c42550eSmrg	     { test "$deplibs_check_method" = pass_all ||
25895c42550eSmrg	       { test "$build_libtool_libs" = yes &&
25905c42550eSmrg		 test -n "$library_names"; }; }; then
25915c42550eSmrg	    # We only need to search for static libraries
25925c42550eSmrg	    continue
25935c42550eSmrg	  fi
2594ab47cfaaSmrg	fi
2595ab47cfaaSmrg
25965c42550eSmrg	link_static=no # Whether the deplib will be linked statically
25975c42550eSmrg	use_static_libs=$prefer_static_libs
25985c42550eSmrg	if test "$use_static_libs" = built && test "$installed" = yes ; then
25995c42550eSmrg	  use_static_libs=no
26005c42550eSmrg	fi
26015c42550eSmrg	if test -n "$library_names" &&
26025c42550eSmrg	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
26035c42550eSmrg	  if test "$installed" = no; then
26045c42550eSmrg	    notinst_deplibs="$notinst_deplibs $lib"
26055c42550eSmrg	    need_relink=yes
26065c42550eSmrg	  fi
26075c42550eSmrg	  # This is a shared library
2608ab47cfaaSmrg
26095c42550eSmrg	  # Warn about portability, can't link against -module's on
26105c42550eSmrg	  # some systems (darwin)
26115c42550eSmrg	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
26125c42550eSmrg	    $echo
26135c42550eSmrg	    if test "$linkmode" = prog; then
26145c42550eSmrg	      $echo "*** Warning: Linking the executable $output against the loadable module"
26155c42550eSmrg	    else
26165c42550eSmrg	      $echo "*** Warning: Linking the shared library $output against the loadable module"
26175c42550eSmrg	    fi
26185c42550eSmrg	    $echo "*** $linklib is not portable!"
26195c42550eSmrg	  fi
26205c42550eSmrg	  if test "$linkmode" = lib &&
26215c42550eSmrg	     test "$hardcode_into_libs" = yes; then
26225c42550eSmrg	    # Hardcode the library path.
26235c42550eSmrg	    # Skip directories that are in the system default run-time
26245c42550eSmrg	    # search path.
26255c42550eSmrg	    case " $sys_lib_dlsearch_path " in
26265c42550eSmrg	    *" $absdir "*) ;;
26275c42550eSmrg	    *)
26285c42550eSmrg	      case "$compile_rpath " in
26295c42550eSmrg	      *" $absdir "*) ;;
26305c42550eSmrg	      *) compile_rpath="$compile_rpath $absdir"
26315c42550eSmrg	      esac
26325c42550eSmrg	      ;;
26335c42550eSmrg	    esac
26345c42550eSmrg	    case " $sys_lib_dlsearch_path " in
26355c42550eSmrg	    *" $libdir "*) ;;
26365c42550eSmrg	    *)
26375c42550eSmrg	      case "$finalize_rpath " in
26385c42550eSmrg	      *" $libdir "*) ;;
26395c42550eSmrg	      *) finalize_rpath="$finalize_rpath $libdir"
26405c42550eSmrg	      esac
26415c42550eSmrg	      ;;
26425c42550eSmrg	    esac
26435c42550eSmrg	  fi
26441473d951Smrg
26455c42550eSmrg	  if test -n "$old_archive_from_expsyms_cmds"; then
26465c42550eSmrg	    # figure out the soname
26475c42550eSmrg	    set dummy $library_names
26485c42550eSmrg	    realname="$2"
26495c42550eSmrg	    shift; shift
26505c42550eSmrg	    libname=`eval \\$echo \"$libname_spec\"`
26515c42550eSmrg	    # use dlname if we got it. it's perfectly good, no?
26525c42550eSmrg	    if test -n "$dlname"; then
26535c42550eSmrg	      soname="$dlname"
26545c42550eSmrg	    elif test -n "$soname_spec"; then
26555c42550eSmrg	      # bleh windows
26565c42550eSmrg	      case $host in
26575c42550eSmrg	      *cygwin* | mingw*)
26585c42550eSmrg		major=`expr $current - $age`
26595c42550eSmrg		versuffix="-$major"
26605c42550eSmrg		;;
26615c42550eSmrg	      esac
26625c42550eSmrg	      eval soname=\"$soname_spec\"
26635c42550eSmrg	    else
26645c42550eSmrg	      soname="$realname"
26655c42550eSmrg	    fi
26661473d951Smrg
26675c42550eSmrg	    # Make a new name for the extract_expsyms_cmds to use
26685c42550eSmrg	    soroot="$soname"
26695c42550eSmrg	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
26705c42550eSmrg	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
26711473d951Smrg
26725c42550eSmrg	    # If the library has no export list, then create one now
26735c42550eSmrg	    if test -f "$output_objdir/$soname-def"; then :
26745c42550eSmrg	    else
26755c42550eSmrg	      $show "extracting exported symbol list from \`$soname'"
26765c42550eSmrg	      save_ifs="$IFS"; IFS='~'
26775c42550eSmrg	      cmds=$extract_expsyms_cmds
26785c42550eSmrg	      for cmd in $cmds; do
26795c42550eSmrg		IFS="$save_ifs"
26805c42550eSmrg		eval cmd=\"$cmd\"
26815c42550eSmrg		$show "$cmd"
26825c42550eSmrg		$run eval "$cmd" || exit $?
26835c42550eSmrg	      done
26845c42550eSmrg	      IFS="$save_ifs"
26855c42550eSmrg	    fi
26861473d951Smrg
26875c42550eSmrg	    # Create $newlib
26885c42550eSmrg	    if test -f "$output_objdir/$newlib"; then :; else
26895c42550eSmrg	      $show "generating import library for \`$soname'"
26905c42550eSmrg	      save_ifs="$IFS"; IFS='~'
26915c42550eSmrg	      cmds=$old_archive_from_expsyms_cmds
26925c42550eSmrg	      for cmd in $cmds; do
26935c42550eSmrg		IFS="$save_ifs"
26945c42550eSmrg		eval cmd=\"$cmd\"
26955c42550eSmrg		$show "$cmd"
26965c42550eSmrg		$run eval "$cmd" || exit $?
26975c42550eSmrg	      done
26985c42550eSmrg	      IFS="$save_ifs"
26995c42550eSmrg	    fi
27005c42550eSmrg	    # make sure the library variables are pointing to the new library
27015c42550eSmrg	    dir=$output_objdir
27025c42550eSmrg	    linklib=$newlib
27035c42550eSmrg	  fi # test -n "$old_archive_from_expsyms_cmds"
2704ab47cfaaSmrg
27055c42550eSmrg	  if test "$linkmode" = prog || test "$mode" != relink; then
27065c42550eSmrg	    add_shlibpath=
27075c42550eSmrg	    add_dir=
27085c42550eSmrg	    add=
27095c42550eSmrg	    lib_linked=yes
27105c42550eSmrg	    case $hardcode_action in
27115c42550eSmrg	    immediate | unsupported)
27125c42550eSmrg	      if test "$hardcode_direct" = no; then
27135c42550eSmrg		add="$dir/$linklib"
27145c42550eSmrg		case $host in
27155c42550eSmrg		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
27165c42550eSmrg		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
27175c42550eSmrg		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
27185c42550eSmrg		    *-*-unixware7*) add_dir="-L$dir" ;;
27195c42550eSmrg		  *-*-darwin* )
27205c42550eSmrg		    # if the lib is a module then we can not link against
27215c42550eSmrg		    # it, someone is ignoring the new warnings I added
27225c42550eSmrg		    if /usr/bin/file -L $add 2> /dev/null |
27235c42550eSmrg                      $EGREP ": [^:]* bundle" >/dev/null ; then
27245c42550eSmrg		      $echo "** Warning, lib $linklib is a module, not a shared library"
27255c42550eSmrg		      if test -z "$old_library" ; then
27265c42550eSmrg		        $echo
27275c42550eSmrg		        $echo "** And there doesn't seem to be a static archive available"
27285c42550eSmrg		        $echo "** The link will probably fail, sorry"
27295c42550eSmrg		      else
27305c42550eSmrg		        add="$dir/$old_library"
27315c42550eSmrg		      fi
27325c42550eSmrg		    fi
27335c42550eSmrg		esac
27345c42550eSmrg	      elif test "$hardcode_minus_L" = no; then
27355c42550eSmrg		case $host in
27365c42550eSmrg		*-*-sunos*) add_shlibpath="$dir" ;;
27375c42550eSmrg		esac
27385c42550eSmrg		add_dir="-L$dir"
27395c42550eSmrg		add="-l$name"
27405c42550eSmrg	      elif test "$hardcode_shlibpath_var" = no; then
27415c42550eSmrg		add_shlibpath="$dir"
27425c42550eSmrg		add="-l$name"
27435c42550eSmrg	      else
27445c42550eSmrg		lib_linked=no
27455c42550eSmrg	      fi
27465c42550eSmrg	      ;;
27475c42550eSmrg	    relink)
27485c42550eSmrg	      if test "$hardcode_direct" = yes; then
27495c42550eSmrg		add="$dir/$linklib"
27505c42550eSmrg	      elif test "$hardcode_minus_L" = yes; then
27515c42550eSmrg		add_dir="-L$dir"
27525c42550eSmrg		# Try looking first in the location we're being installed to.
27535c42550eSmrg		if test -n "$inst_prefix_dir"; then
27545c42550eSmrg		  case $libdir in
27555c42550eSmrg		    [\\/]*)
27565c42550eSmrg		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
27575c42550eSmrg		      ;;
27585c42550eSmrg		  esac
27595c42550eSmrg		fi
27605c42550eSmrg		add="-l$name"
27615c42550eSmrg	      elif test "$hardcode_shlibpath_var" = yes; then
27625c42550eSmrg		add_shlibpath="$dir"
27635c42550eSmrg		add="-l$name"
27645c42550eSmrg	      else
27655c42550eSmrg		lib_linked=no
27665c42550eSmrg	      fi
27675c42550eSmrg	      ;;
27685c42550eSmrg	    *) lib_linked=no ;;
27695c42550eSmrg	    esac
2770ab47cfaaSmrg
27715c42550eSmrg	    if test "$lib_linked" != yes; then
27725c42550eSmrg	      $echo "$modename: configuration error: unsupported hardcode properties"
27735c42550eSmrg	      exit $EXIT_FAILURE
27745c42550eSmrg	    fi
27751473d951Smrg
27765c42550eSmrg	    if test -n "$add_shlibpath"; then
27775c42550eSmrg	      case :$compile_shlibpath: in
27785c42550eSmrg	      *":$add_shlibpath:"*) ;;
27795c42550eSmrg	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
27805c42550eSmrg	      esac
27815c42550eSmrg	    fi
27825c42550eSmrg	    if test "$linkmode" = prog; then
27835c42550eSmrg	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
27845c42550eSmrg	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
27855c42550eSmrg	    else
27865c42550eSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
27875c42550eSmrg	      test -n "$add" && deplibs="$add $deplibs"
27885c42550eSmrg	      if test "$hardcode_direct" != yes && \
27895c42550eSmrg		 test "$hardcode_minus_L" != yes && \
27905c42550eSmrg		 test "$hardcode_shlibpath_var" = yes; then
27915c42550eSmrg		case :$finalize_shlibpath: in
27925c42550eSmrg		*":$libdir:"*) ;;
27935c42550eSmrg		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
27945c42550eSmrg		esac
27955c42550eSmrg	      fi
27965c42550eSmrg	    fi
27975c42550eSmrg	  fi
27981473d951Smrg
27995c42550eSmrg	  if test "$linkmode" = prog || test "$mode" = relink; then
28005c42550eSmrg	    add_shlibpath=
28015c42550eSmrg	    add_dir=
28025c42550eSmrg	    add=
28035c42550eSmrg	    # Finalize command for both is simple: just hardcode it.
28045c42550eSmrg	    if test "$hardcode_direct" = yes; then
28055c42550eSmrg	      add="$libdir/$linklib"
28065c42550eSmrg	    elif test "$hardcode_minus_L" = yes; then
28075c42550eSmrg	      add_dir="-L$libdir"
28085c42550eSmrg	      add="-l$name"
28095c42550eSmrg	    elif test "$hardcode_shlibpath_var" = yes; then
28105c42550eSmrg	      case :$finalize_shlibpath: in
28115c42550eSmrg	      *":$libdir:"*) ;;
28125c42550eSmrg	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
28135c42550eSmrg	      esac
28145c42550eSmrg	      add="-l$name"
28155c42550eSmrg	    elif test "$hardcode_automatic" = yes; then
28165c42550eSmrg	      if test -n "$inst_prefix_dir" &&
28175c42550eSmrg		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
28185c42550eSmrg	        add="$inst_prefix_dir$libdir/$linklib"
28195c42550eSmrg	      else
28205c42550eSmrg	        add="$libdir/$linklib"
28215c42550eSmrg	      fi
28225c42550eSmrg	    else
28235c42550eSmrg	      # We cannot seem to hardcode it, guess we'll fake it.
28245c42550eSmrg	      add_dir="-L$libdir"
28255c42550eSmrg	      # Try looking first in the location we're being installed to.
28265c42550eSmrg	      if test -n "$inst_prefix_dir"; then
28275c42550eSmrg		case $libdir in
28285c42550eSmrg		  [\\/]*)
28295c42550eSmrg		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
28305c42550eSmrg		    ;;
28315c42550eSmrg		esac
28325c42550eSmrg	      fi
28335c42550eSmrg	      add="-l$name"
28345c42550eSmrg	    fi
28351473d951Smrg
28365c42550eSmrg	    if test "$linkmode" = prog; then
28375c42550eSmrg	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
28385c42550eSmrg	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
28395c42550eSmrg	    else
28405c42550eSmrg	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
28415c42550eSmrg	      test -n "$add" && deplibs="$add $deplibs"
28425c42550eSmrg	    fi
28435c42550eSmrg	  fi
28445c42550eSmrg	elif test "$linkmode" = prog; then
28455c42550eSmrg	  # Here we assume that one of hardcode_direct or hardcode_minus_L
28465c42550eSmrg	  # is not unsupported.  This is valid on all known static and
28475c42550eSmrg	  # shared platforms.
28485c42550eSmrg	  if test "$hardcode_direct" != unsupported; then
28495c42550eSmrg	    test -n "$old_library" && linklib="$old_library"
28505c42550eSmrg	    compile_deplibs="$dir/$linklib $compile_deplibs"
28515c42550eSmrg	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
28525c42550eSmrg	  else
28535c42550eSmrg	    compile_deplibs="-l$name -L$dir $compile_deplibs"
28545c42550eSmrg	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
28555c42550eSmrg	  fi
28565c42550eSmrg	elif test "$build_libtool_libs" = yes; then
28575c42550eSmrg	  # Not a shared library
28585c42550eSmrg	  if test "$deplibs_check_method" != pass_all; then
28595c42550eSmrg	    # We're trying link a shared library against a static one
28605c42550eSmrg	    # but the system doesn't support it.
28611473d951Smrg
28625c42550eSmrg	    # Just print a warning and add the library to dependency_libs so
28635c42550eSmrg	    # that the program can be linked against the static library.
28645c42550eSmrg	    $echo
28655c42550eSmrg	    $echo "*** Warning: This system can not link to static lib archive $lib."
28665c42550eSmrg	    $echo "*** I have the capability to make that library automatically link in when"
28675c42550eSmrg	    $echo "*** you link to this library.  But I can only do this if you have a"
28685c42550eSmrg	    $echo "*** shared version of the library, which you do not appear to have."
28695c42550eSmrg	    if test "$module" = yes; then
28705c42550eSmrg	      $echo "*** But as you try to build a module library, libtool will still create "
28715c42550eSmrg	      $echo "*** a static module, that should work as long as the dlopening application"
28725c42550eSmrg	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
28735c42550eSmrg	      if test -z "$global_symbol_pipe"; then
28745c42550eSmrg		$echo
28755c42550eSmrg		$echo "*** However, this would only work if libtool was able to extract symbol"
28765c42550eSmrg		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
28775c42550eSmrg		$echo "*** not find such a program.  So, this module is probably useless."
28785c42550eSmrg		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
28795c42550eSmrg	      fi
28805c42550eSmrg	      if test "$build_old_libs" = no; then
28815c42550eSmrg		build_libtool_libs=module
28825c42550eSmrg		build_old_libs=yes
28835c42550eSmrg	      else
28845c42550eSmrg		build_libtool_libs=no
28855c42550eSmrg	      fi
28865c42550eSmrg	    fi
28875c42550eSmrg	  else
28885c42550eSmrg	    deplibs="$dir/$old_library $deplibs"
28895c42550eSmrg	    link_static=yes
28905c42550eSmrg	  fi
28915c42550eSmrg	fi # link shared/static library?
2892ab47cfaaSmrg
28935c42550eSmrg	if test "$linkmode" = lib; then
28945c42550eSmrg	  if test -n "$dependency_libs" &&
28955c42550eSmrg	     { test "$hardcode_into_libs" != yes ||
28965c42550eSmrg	       test "$build_old_libs" = yes ||
28975c42550eSmrg	       test "$link_static" = yes; }; then
28985c42550eSmrg	    # Extract -R from dependency_libs
28995c42550eSmrg	    temp_deplibs=
29005c42550eSmrg	    for libdir in $dependency_libs; do
29015c42550eSmrg	      case $libdir in
29025c42550eSmrg	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
29035c42550eSmrg		   case " $xrpath " in
29045c42550eSmrg		   *" $temp_xrpath "*) ;;
29055c42550eSmrg		   *) xrpath="$xrpath $temp_xrpath";;
29065c42550eSmrg		   esac;;
29075c42550eSmrg	      *) temp_deplibs="$temp_deplibs $libdir";;
29085c42550eSmrg	      esac
29095c42550eSmrg	    done
29105c42550eSmrg	    dependency_libs="$temp_deplibs"
29115c42550eSmrg	  fi
2912ab47cfaaSmrg
29135c42550eSmrg	  newlib_search_path="$newlib_search_path $absdir"
29145c42550eSmrg	  # Link against this library
29155c42550eSmrg	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
29165c42550eSmrg	  # ... and its dependency_libs
29175c42550eSmrg	  tmp_libs=
29185c42550eSmrg	  for deplib in $dependency_libs; do
29195c42550eSmrg	    newdependency_libs="$deplib $newdependency_libs"
29205c42550eSmrg	    if test "X$duplicate_deps" = "Xyes" ; then
29215c42550eSmrg	      case "$tmp_libs " in
29225c42550eSmrg	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
29235c42550eSmrg	      esac
29245c42550eSmrg	    fi
29255c42550eSmrg	    tmp_libs="$tmp_libs $deplib"
29265c42550eSmrg	  done
29271473d951Smrg
29285c42550eSmrg	  if test "$link_all_deplibs" != no; then
29295c42550eSmrg	    # Add the search paths of all dependency libraries
29305c42550eSmrg	    for deplib in $dependency_libs; do
29315c42550eSmrg	      case $deplib in
29325c42550eSmrg	      -L*) path="$deplib" ;;
29335c42550eSmrg	      *.la)
29345c42550eSmrg		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
29355c42550eSmrg		test "X$dir" = "X$deplib" && dir="."
29365c42550eSmrg		# We need an absolute path.
29375c42550eSmrg		case $dir in
29385c42550eSmrg		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
29395c42550eSmrg		*)
29405c42550eSmrg		  absdir=`cd "$dir" && pwd`
29415c42550eSmrg		  if test -z "$absdir"; then
29425c42550eSmrg		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
29435c42550eSmrg		    absdir="$dir"
29445c42550eSmrg		  fi
29455c42550eSmrg		  ;;
29465c42550eSmrg		esac
29475c42550eSmrg		if grep "^installed=no" $deplib > /dev/null; then
29485c42550eSmrg		  path="$absdir/$objdir"
29495c42550eSmrg		else
29505c42550eSmrg		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29515c42550eSmrg		  if test -z "$libdir"; then
29525c42550eSmrg		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
29535c42550eSmrg		    exit $EXIT_FAILURE
29545c42550eSmrg		  fi
29555c42550eSmrg		  if test "$absdir" != "$libdir"; then
29565c42550eSmrg		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
29575c42550eSmrg		  fi
29585c42550eSmrg		  path="$absdir"
29595c42550eSmrg		fi
29605c42550eSmrg		depdepl=
29615c42550eSmrg		case $host in
29625c42550eSmrg		*-*-darwin*)
29635c42550eSmrg		  # we do not want to link against static libs,
29645c42550eSmrg		  # but need to link against shared
29655c42550eSmrg		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
29665c42550eSmrg		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29675c42550eSmrg		  if test -n "$deplibrary_names" ; then
29685c42550eSmrg		    for tmp in $deplibrary_names ; do
29695c42550eSmrg		      depdepl=$tmp
29705c42550eSmrg		    done
29715c42550eSmrg		    if test -f "$deplibdir/$depdepl" ; then
29725c42550eSmrg		      depdepl="$deplibdir/$depdepl"
29735c42550eSmrg	      	    elif test -f "$path/$depdepl" ; then
29745c42550eSmrg		      depdepl="$path/$depdepl"
29755c42550eSmrg		    else
29765c42550eSmrg		      # Can't find it, oh well...
29775c42550eSmrg		      depdepl=
29785c42550eSmrg		    fi
29795c42550eSmrg		    # do not add paths which are already there
29805c42550eSmrg		    case " $newlib_search_path " in
29815c42550eSmrg		    *" $path "*) ;;
29825c42550eSmrg		    *) newlib_search_path="$newlib_search_path $path";;
29835c42550eSmrg		    esac
29845c42550eSmrg		  fi
29855c42550eSmrg		  path=""
29865c42550eSmrg		  ;;
29875c42550eSmrg		*)
29885c42550eSmrg		  path="-L$path"
29895c42550eSmrg		  ;;
29905c42550eSmrg		esac
29915c42550eSmrg		;;
29925c42550eSmrg	      -l*)
29935c42550eSmrg		case $host in
29945c42550eSmrg		*-*-darwin*)
29955c42550eSmrg		  # Again, we only want to link against shared libraries
29965c42550eSmrg		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
29975c42550eSmrg		  for tmp in $newlib_search_path ; do
29985c42550eSmrg		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
29995c42550eSmrg		      eval depdepl="$tmp/lib$tmp_libs.dylib"
30005c42550eSmrg		      break
30015c42550eSmrg		    fi
30025c42550eSmrg		  done
30035c42550eSmrg		  path=""
30045c42550eSmrg		  ;;
30055c42550eSmrg		*) continue ;;
30065c42550eSmrg		esac
30075c42550eSmrg		;;
30085c42550eSmrg	      *) continue ;;
30095c42550eSmrg	      esac
30105c42550eSmrg	      case " $deplibs " in
30115c42550eSmrg	      *" $path "*) ;;
30125c42550eSmrg	      *) deplibs="$path $deplibs" ;;
30135c42550eSmrg	      esac
30145c42550eSmrg	      case " $deplibs " in
30155c42550eSmrg	      *" $depdepl "*) ;;
30165c42550eSmrg	      *) deplibs="$depdepl $deplibs" ;;
30175c42550eSmrg	      esac
30185c42550eSmrg	    done
30195c42550eSmrg	  fi # link_all_deplibs != no
30205c42550eSmrg	fi # linkmode = lib
30215c42550eSmrg      done # for deplib in $libs
30225c42550eSmrg      dependency_libs="$newdependency_libs"
30235c42550eSmrg      if test "$pass" = dlpreopen; then
30245c42550eSmrg	# Link the dlpreopened libraries before other libraries
30255c42550eSmrg	for deplib in $save_deplibs; do
30265c42550eSmrg	  deplibs="$deplib $deplibs"
30275c42550eSmrg	done
30285c42550eSmrg      fi
30295c42550eSmrg      if test "$pass" != dlopen; then
30305c42550eSmrg	if test "$pass" != conv; then
30315c42550eSmrg	  # Make sure lib_search_path contains only unique directories.
30325c42550eSmrg	  lib_search_path=
30335c42550eSmrg	  for dir in $newlib_search_path; do
30345c42550eSmrg	    case "$lib_search_path " in
30355c42550eSmrg	    *" $dir "*) ;;
30365c42550eSmrg	    *) lib_search_path="$lib_search_path $dir" ;;
30375c42550eSmrg	    esac
30385c42550eSmrg	  done
30395c42550eSmrg	  newlib_search_path=
30405c42550eSmrg	fi
30415c42550eSmrg
30425c42550eSmrg	if test "$linkmode,$pass" != "prog,link"; then
30435c42550eSmrg	  vars="deplibs"
30445c42550eSmrg	else
30455c42550eSmrg	  vars="compile_deplibs finalize_deplibs"
30465c42550eSmrg	fi
30475c42550eSmrg	for var in $vars dependency_libs; do
30485c42550eSmrg	  # Add libraries to $var in reverse order
30495c42550eSmrg	  eval tmp_libs=\"\$$var\"
30505c42550eSmrg	  new_libs=
30515c42550eSmrg	  for deplib in $tmp_libs; do
30525c42550eSmrg	    # FIXME: Pedantically, this is the right thing to do, so
30535c42550eSmrg	    #        that some nasty dependency loop isn't accidentally
30545c42550eSmrg	    #        broken:
30555c42550eSmrg	    #new_libs="$deplib $new_libs"
30565c42550eSmrg	    # Pragmatically, this seems to cause very few problems in
30575c42550eSmrg	    # practice:
30585c42550eSmrg	    case $deplib in
30595c42550eSmrg	    -L*) new_libs="$deplib $new_libs" ;;
30605c42550eSmrg	    -R*) ;;
30615c42550eSmrg	    *)
30625c42550eSmrg	      # And here is the reason: when a library appears more
30635c42550eSmrg	      # than once as an explicit dependence of a library, or
30645c42550eSmrg	      # is implicitly linked in more than once by the
30655c42550eSmrg	      # compiler, it is considered special, and multiple
30665c42550eSmrg	      # occurrences thereof are not removed.  Compare this
30675c42550eSmrg	      # with having the same library being listed as a
30685c42550eSmrg	      # dependency of multiple other libraries: in this case,
30695c42550eSmrg	      # we know (pedantically, we assume) the library does not
30705c42550eSmrg	      # need to be listed more than once, so we keep only the
30715c42550eSmrg	      # last copy.  This is not always right, but it is rare
30725c42550eSmrg	      # enough that we require users that really mean to play
30735c42550eSmrg	      # such unportable linking tricks to link the library
30745c42550eSmrg	      # using -Wl,-lname, so that libtool does not consider it
30755c42550eSmrg	      # for duplicate removal.
30765c42550eSmrg	      case " $specialdeplibs " in
30775c42550eSmrg	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
30785c42550eSmrg	      *)
30795c42550eSmrg		case " $new_libs " in
30805c42550eSmrg		*" $deplib "*) ;;
30815c42550eSmrg		*) new_libs="$deplib $new_libs" ;;
30825c42550eSmrg		esac
30835c42550eSmrg		;;
30845c42550eSmrg	      esac
30855c42550eSmrg	      ;;
30865c42550eSmrg	    esac
30875c42550eSmrg	  done
30885c42550eSmrg	  tmp_libs=
30895c42550eSmrg	  for deplib in $new_libs; do
30905c42550eSmrg	    case $deplib in
30915c42550eSmrg	    -L*)
30925c42550eSmrg	      case " $tmp_libs " in
30935c42550eSmrg	      *" $deplib "*) ;;
30945c42550eSmrg	      *) tmp_libs="$tmp_libs $deplib" ;;
30955c42550eSmrg	      esac
30965c42550eSmrg	      ;;
30975c42550eSmrg	    *) tmp_libs="$tmp_libs $deplib" ;;
30985c42550eSmrg	    esac
30995c42550eSmrg	  done
31005c42550eSmrg	  eval $var=\"$tmp_libs\"
31015c42550eSmrg	done # for var
31025c42550eSmrg      fi
31035c42550eSmrg      # Last step: remove runtime libs from dependency_libs
31045c42550eSmrg      # (they stay in deplibs)
31055c42550eSmrg      tmp_libs=
31065c42550eSmrg      for i in $dependency_libs ; do
31075c42550eSmrg	case " $predeps $postdeps $compiler_lib_search_path " in
31085c42550eSmrg	*" $i "*)
31095c42550eSmrg	  i=""
31101473d951Smrg	  ;;
31111473d951Smrg	esac
31125c42550eSmrg	if test -n "$i" ; then
31135c42550eSmrg	  tmp_libs="$tmp_libs $i"
31145c42550eSmrg	fi
31155c42550eSmrg      done
31165c42550eSmrg      dependency_libs=$tmp_libs
31175c42550eSmrg    done # for pass
31185c42550eSmrg    if test "$linkmode" = prog; then
31195c42550eSmrg      dlfiles="$newdlfiles"
31205c42550eSmrg      dlprefiles="$newdlprefiles"
31211473d951Smrg    fi
31221473d951Smrg
31235c42550eSmrg    case $linkmode in
31245c42550eSmrg    oldlib)
31255c42550eSmrg      case " $deplibs" in
31265c42550eSmrg      *\ -l* | *\ -L*)
31275c42550eSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
31285c42550eSmrg      esac
3129ab47cfaaSmrg
31305c42550eSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
31315c42550eSmrg	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
31325c42550eSmrg      fi
3133ab47cfaaSmrg
31345c42550eSmrg      if test -n "$rpath"; then
31355c42550eSmrg	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
31365c42550eSmrg      fi
3137ab47cfaaSmrg
31385c42550eSmrg      if test -n "$xrpath"; then
31395c42550eSmrg	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
31405c42550eSmrg      fi
3141ab47cfaaSmrg
31425c42550eSmrg      if test -n "$vinfo"; then
31435c42550eSmrg	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
31445c42550eSmrg      fi
3145ab47cfaaSmrg
31465c42550eSmrg      if test -n "$release"; then
31475c42550eSmrg	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
31485c42550eSmrg      fi
3149ab47cfaaSmrg
31505c42550eSmrg      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
31515c42550eSmrg	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
31525c42550eSmrg      fi
3153ab47cfaaSmrg
31545c42550eSmrg      # Now set the variables for building old libraries.
31555c42550eSmrg      build_libtool_libs=no
31565c42550eSmrg      oldlibs="$output"
31575c42550eSmrg      objs="$objs$old_deplibs"
31585c42550eSmrg      ;;
3159ab47cfaaSmrg
31605c42550eSmrg    lib)
31615c42550eSmrg      # Make sure we only generate libraries of the form `libNAME.la'.
31625c42550eSmrg      case $outputname in
31635c42550eSmrg      lib*)
31645c42550eSmrg	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
31655c42550eSmrg	eval shared_ext=\"$shrext_cmds\"
31665c42550eSmrg	eval libname=\"$libname_spec\"
31675c42550eSmrg	;;
31685c42550eSmrg      *)
31695c42550eSmrg	if test "$module" = no; then
31705c42550eSmrg	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
31715c42550eSmrg	  $echo "$help" 1>&2
31725c42550eSmrg	  exit $EXIT_FAILURE
31735c42550eSmrg	fi
31745c42550eSmrg	if test "$need_lib_prefix" != no; then
31755c42550eSmrg	  # Add the "lib" prefix for modules if required
31765c42550eSmrg	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31775c42550eSmrg	  eval shared_ext=\"$shrext_cmds\"
31785c42550eSmrg	  eval libname=\"$libname_spec\"
31795c42550eSmrg	else
31805c42550eSmrg	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31815c42550eSmrg	fi
31825c42550eSmrg	;;
31835c42550eSmrg      esac
3184ab47cfaaSmrg
31855c42550eSmrg      if test -n "$objs"; then
31865c42550eSmrg	if test "$deplibs_check_method" != pass_all; then
31875c42550eSmrg	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
31885c42550eSmrg	  exit $EXIT_FAILURE
31895c42550eSmrg	else
31905c42550eSmrg	  $echo
31915c42550eSmrg	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
31925c42550eSmrg	  $echo "*** objects $objs is not portable!"
31935c42550eSmrg	  libobjs="$libobjs $objs"
31945c42550eSmrg	fi
31955c42550eSmrg      fi
3196ab47cfaaSmrg
31975c42550eSmrg      if test "$dlself" != no; then
31985c42550eSmrg	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
31995c42550eSmrg      fi
3200ab47cfaaSmrg
32015c42550eSmrg      set dummy $rpath
32025c42550eSmrg      if test "$#" -gt 2; then
32035c42550eSmrg	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
32045c42550eSmrg      fi
32055c42550eSmrg      install_libdir="$2"
3206ab47cfaaSmrg
32075c42550eSmrg      oldlibs=
32085c42550eSmrg      if test -z "$rpath"; then
32095c42550eSmrg	if test "$build_libtool_libs" = yes; then
32105c42550eSmrg	  # Building a libtool convenience library.
32115c42550eSmrg	  # Some compilers have problems with a `.al' extension so
32125c42550eSmrg	  # convenience libraries should have the same extension an
32135c42550eSmrg	  # archive normally would.
32145c42550eSmrg	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
32155c42550eSmrg	  build_libtool_libs=convenience
32165c42550eSmrg	  build_old_libs=yes
32175c42550eSmrg	fi
3218ab47cfaaSmrg
32195c42550eSmrg	if test -n "$vinfo"; then
32205c42550eSmrg	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
32215c42550eSmrg	fi
3222ab47cfaaSmrg
32235c42550eSmrg	if test -n "$release"; then
32245c42550eSmrg	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
32255c42550eSmrg	fi
32265c42550eSmrg      else
3227ab47cfaaSmrg
32285c42550eSmrg	# Parse the version information argument.
32295c42550eSmrg	save_ifs="$IFS"; IFS=':'
32305c42550eSmrg	set dummy $vinfo 0 0 0
32315c42550eSmrg	IFS="$save_ifs"
3232ab47cfaaSmrg
32335c42550eSmrg	if test -n "$8"; then
32345c42550eSmrg	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
32355c42550eSmrg	  $echo "$help" 1>&2
32365c42550eSmrg	  exit $EXIT_FAILURE
32375c42550eSmrg	fi
3238ab47cfaaSmrg
32395c42550eSmrg	# convert absolute version numbers to libtool ages
32405c42550eSmrg	# this retains compatibility with .la files and attempts
32415c42550eSmrg	# to make the code below a bit more comprehensible
3242ab47cfaaSmrg
32435c42550eSmrg	case $vinfo_number in
32445c42550eSmrg	yes)
32455c42550eSmrg	  number_major="$2"
32465c42550eSmrg	  number_minor="$3"
32475c42550eSmrg	  number_revision="$4"
32485c42550eSmrg	  #
32495c42550eSmrg	  # There are really only two kinds -- those that
32505c42550eSmrg	  # use the current revision as the major version
32515c42550eSmrg	  # and those that subtract age and use age as
32525c42550eSmrg	  # a minor version.  But, then there is irix
32535c42550eSmrg	  # which has an extra 1 added just for fun
32545c42550eSmrg	  #
32555c42550eSmrg	  case $version_type in
32565c42550eSmrg	  darwin|linux|osf|windows|none)
32575c42550eSmrg	    current=`expr $number_major + $number_minor`
32585c42550eSmrg	    age="$number_minor"
32595c42550eSmrg	    revision="$number_revision"
32605c42550eSmrg	    ;;
32615c42550eSmrg	  freebsd-aout|freebsd-elf|sunos)
32625c42550eSmrg	    current="$number_major"
32635c42550eSmrg	    revision="$number_minor"
32645c42550eSmrg	    age="0"
32655c42550eSmrg	    ;;
32665c42550eSmrg	  irix|nonstopux)
32675c42550eSmrg	    current=`expr $number_major + $number_minor`
32685c42550eSmrg	    age="$number_minor"
32695c42550eSmrg	    revision="$number_minor"
32705c42550eSmrg	    lt_irix_increment=no
32715c42550eSmrg	    ;;
32725c42550eSmrg	  esac
32735c42550eSmrg	  ;;
32745c42550eSmrg	no)
32755c42550eSmrg	  current="$2"
32765c42550eSmrg	  revision="$3"
32775c42550eSmrg	  age="$4"
32785c42550eSmrg	  ;;
32795c42550eSmrg	esac
3280ab47cfaaSmrg
32815c42550eSmrg	# Check that each of the things are valid numbers.
32825c42550eSmrg	case $current in
32835c42550eSmrg	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]) ;;
32845c42550eSmrg	*)
32855c42550eSmrg	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
32865c42550eSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32875c42550eSmrg	  exit $EXIT_FAILURE
32885c42550eSmrg	  ;;
32895c42550eSmrg	esac
3290ab47cfaaSmrg
32915c42550eSmrg	case $revision in
32925c42550eSmrg	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]) ;;
32935c42550eSmrg	*)
32945c42550eSmrg	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
32955c42550eSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32965c42550eSmrg	  exit $EXIT_FAILURE
32975c42550eSmrg	  ;;
32985c42550eSmrg	esac
3299ab47cfaaSmrg
33005c42550eSmrg	case $age in
33015c42550eSmrg	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]) ;;
33025c42550eSmrg	*)
33035c42550eSmrg	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
33045c42550eSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33055c42550eSmrg	  exit $EXIT_FAILURE
33065c42550eSmrg	  ;;
33075c42550eSmrg	esac
3308ab47cfaaSmrg
33095c42550eSmrg	if test "$age" -gt "$current"; then
33105c42550eSmrg	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
33115c42550eSmrg	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33125c42550eSmrg	  exit $EXIT_FAILURE
33135c42550eSmrg	fi
3314ab47cfaaSmrg
33155c42550eSmrg	# Calculate the version variables.
33165c42550eSmrg	major=
33175c42550eSmrg	versuffix=
33185c42550eSmrg	verstring=
33195c42550eSmrg	case $version_type in
33205c42550eSmrg	none) ;;
3321ab47cfaaSmrg
33225c42550eSmrg	darwin)
33235c42550eSmrg	  # Like Linux, but with the current version available in
33245c42550eSmrg	  # verstring for coding it into the library header
33255c42550eSmrg	  major=.`expr $current - $age`
33265c42550eSmrg	  versuffix="$major.$age.$revision"
33275c42550eSmrg	  # Darwin ld doesn't like 0 for these options...
33285c42550eSmrg	  minor_current=`expr $current + 1`
33295c42550eSmrg	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
33305c42550eSmrg	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
33315c42550eSmrg	  ;;
3332ab47cfaaSmrg
33335c42550eSmrg	freebsd-aout)
33345c42550eSmrg	  major=".$current"
33355c42550eSmrg	  versuffix=".$current.$revision";
33365c42550eSmrg	  ;;
3337ab47cfaaSmrg
33385c42550eSmrg	freebsd-elf)
33395c42550eSmrg	  major=".$current"
33405c42550eSmrg	  versuffix=".$current";
33415c42550eSmrg	  ;;
3342ab47cfaaSmrg
33435c42550eSmrg	irix | nonstopux)
33445c42550eSmrg	  if test "X$lt_irix_increment" = "Xno"; then
33455c42550eSmrg	    major=`expr $current - $age`
33465c42550eSmrg	  else
33475c42550eSmrg	    major=`expr $current - $age + 1`
33485c42550eSmrg	  fi
33495c42550eSmrg	  case $version_type in
33505c42550eSmrg	    nonstopux) verstring_prefix=nonstopux ;;
33515c42550eSmrg	    *)         verstring_prefix=sgi ;;
33525c42550eSmrg	  esac
33535c42550eSmrg	  verstring="$verstring_prefix$major.$revision"
3354ab47cfaaSmrg
33555c42550eSmrg	  # Add in all the interfaces that we are compatible with.
33565c42550eSmrg	  loop=$revision
33575c42550eSmrg	  while test "$loop" -ne 0; do
33585c42550eSmrg	    iface=`expr $revision - $loop`
33595c42550eSmrg	    loop=`expr $loop - 1`
33605c42550eSmrg	    verstring="$verstring_prefix$major.$iface:$verstring"
33615c42550eSmrg	  done
3362ab47cfaaSmrg
33635c42550eSmrg	  # Before this point, $major must not contain `.'.
33645c42550eSmrg	  major=.$major
33655c42550eSmrg	  versuffix="$major.$revision"
33665c42550eSmrg	  ;;
3367ab47cfaaSmrg
33685c42550eSmrg	linux)
33695c42550eSmrg	  major=.`expr $current - $age`
33705c42550eSmrg	  versuffix="$major.$age.$revision"
33715c42550eSmrg	  ;;
3372ab47cfaaSmrg
33735c42550eSmrg	osf)
33745c42550eSmrg	  major=.`expr $current - $age`
33755c42550eSmrg	  versuffix=".$current.$age.$revision"
33765c42550eSmrg	  verstring="$current.$age.$revision"
33771473d951Smrg
33785c42550eSmrg	  # Add in all the interfaces that we are compatible with.
33795c42550eSmrg	  loop=$age
33805c42550eSmrg	  while test "$loop" -ne 0; do
33815c42550eSmrg	    iface=`expr $current - $loop`
33825c42550eSmrg	    loop=`expr $loop - 1`
33835c42550eSmrg	    verstring="$verstring:${iface}.0"
33845c42550eSmrg	  done
33851473d951Smrg
33865c42550eSmrg	  # Make executables depend on our current version.
33875c42550eSmrg	  verstring="$verstring:${current}.0"
33885c42550eSmrg	  ;;
33891473d951Smrg
33905c42550eSmrg	sunos)
33915c42550eSmrg	  major=".$current"
33925c42550eSmrg	  versuffix=".$current.$revision"
33935c42550eSmrg	  ;;
33941473d951Smrg
33955c42550eSmrg	windows)
33965c42550eSmrg	  # Use '-' rather than '.', since we only want one
33975c42550eSmrg	  # extension on DOS 8.3 filesystems.
33985c42550eSmrg	  major=`expr $current - $age`
33995c42550eSmrg	  versuffix="-$major"
34005c42550eSmrg	  ;;
34011473d951Smrg
34025c42550eSmrg	*)
34035c42550eSmrg	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
34045c42550eSmrg	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
34055c42550eSmrg	  exit $EXIT_FAILURE
34065c42550eSmrg	  ;;
34075c42550eSmrg	esac
34081473d951Smrg
34095c42550eSmrg	# Clear the version info if we defaulted, and they specified a release.
34105c42550eSmrg	if test -z "$vinfo" && test -n "$release"; then
34115c42550eSmrg	  major=
34125c42550eSmrg	  case $version_type in
34135c42550eSmrg	  darwin)
34145c42550eSmrg	    # we can't check for "0.0" in archive_cmds due to quoting
34155c42550eSmrg	    # problems, so we reset it completely
34165c42550eSmrg	    verstring=
3417ab47cfaaSmrg	    ;;
34185c42550eSmrg	  *)
34195c42550eSmrg	    verstring="0.0"
34205c42550eSmrg	    ;;
34215c42550eSmrg	  esac
34225c42550eSmrg	  if test "$need_version" = no; then
34235c42550eSmrg	    versuffix=
34245c42550eSmrg	  else
34255c42550eSmrg	    versuffix=".0.0"
34265c42550eSmrg	  fi
34275c42550eSmrg	fi
3428ab47cfaaSmrg
34295c42550eSmrg	# Remove version info from name if versioning should be avoided
34305c42550eSmrg	if test "$avoid_version" = yes && test "$need_version" = no; then
34315c42550eSmrg	  major=
34325c42550eSmrg	  versuffix=
34335c42550eSmrg	  verstring=""
34345c42550eSmrg	fi
3435ab47cfaaSmrg
34365c42550eSmrg	# Check to see if the archive will have undefined symbols.
34375c42550eSmrg	if test "$allow_undefined" = yes; then
34385c42550eSmrg	  if test "$allow_undefined_flag" = unsupported; then
34395c42550eSmrg	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
34405c42550eSmrg	    build_libtool_libs=no
34415c42550eSmrg	    build_old_libs=yes
34425c42550eSmrg	  fi
34435c42550eSmrg	else
34445c42550eSmrg	  # Don't allow undefined symbols.
34455c42550eSmrg	  allow_undefined_flag="$no_undefined_flag"
34465c42550eSmrg	fi
34475c42550eSmrg      fi
3448ab47cfaaSmrg
34495c42550eSmrg      if test "$mode" != relink; then
34505c42550eSmrg	# Remove our outputs, but don't remove object files since they
34515c42550eSmrg	# may have been created when compiling PIC objects.
34525c42550eSmrg	removelist=
34535c42550eSmrg	tempremovelist=`$echo "$output_objdir/*"`
34545c42550eSmrg	for p in $tempremovelist; do
34555c42550eSmrg	  case $p in
34565c42550eSmrg	    *.$objext)
34575c42550eSmrg	       ;;
34585c42550eSmrg	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
34595c42550eSmrg	       if test "X$precious_files_regex" != "X"; then
34605c42550eSmrg	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
34615c42550eSmrg	         then
34625c42550eSmrg		   continue
34635c42550eSmrg		 fi
34645c42550eSmrg	       fi
34655c42550eSmrg	       removelist="$removelist $p"
34665c42550eSmrg	       ;;
34675c42550eSmrg	    *) ;;
34685c42550eSmrg	  esac
34695c42550eSmrg	done
34705c42550eSmrg	if test -n "$removelist"; then
34715c42550eSmrg	  $show "${rm}r $removelist"
34725c42550eSmrg	  $run ${rm}r $removelist
34735c42550eSmrg	fi
34745c42550eSmrg      fi
3475ab47cfaaSmrg
34765c42550eSmrg      # Now set the variables for building old libraries.
34775c42550eSmrg      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
34785c42550eSmrg	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3479ab47cfaaSmrg
34805c42550eSmrg	# Transform .lo files to .o files.
34815c42550eSmrg	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
34825c42550eSmrg      fi
3483ab47cfaaSmrg
34845c42550eSmrg      # Eliminate all temporary directories.
34855c42550eSmrg      #for path in $notinst_path; do
34865c42550eSmrg      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
34875c42550eSmrg      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
34885c42550eSmrg      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
34895c42550eSmrg      #done
3490ab47cfaaSmrg
34915c42550eSmrg      if test -n "$xrpath"; then
34925c42550eSmrg	# If the user specified any rpath flags, then add them.
34935c42550eSmrg	temp_xrpath=
34945c42550eSmrg	for libdir in $xrpath; do
34955c42550eSmrg	  temp_xrpath="$temp_xrpath -R$libdir"
34965c42550eSmrg	  case "$finalize_rpath " in
34975c42550eSmrg	  *" $libdir "*) ;;
34985c42550eSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
34995c42550eSmrg	  esac
35005c42550eSmrg	done
35015c42550eSmrg	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
35025c42550eSmrg	  dependency_libs="$temp_xrpath $dependency_libs"
35035c42550eSmrg	fi
35045c42550eSmrg      fi
3505ab47cfaaSmrg
35065c42550eSmrg      # Make sure dlfiles contains only unique files that won't be dlpreopened
35075c42550eSmrg      old_dlfiles="$dlfiles"
35085c42550eSmrg      dlfiles=
35095c42550eSmrg      for lib in $old_dlfiles; do
35105c42550eSmrg	case " $dlprefiles $dlfiles " in
35115c42550eSmrg	*" $lib "*) ;;
35125c42550eSmrg	*) dlfiles="$dlfiles $lib" ;;
35135c42550eSmrg	esac
35145c42550eSmrg      done
3515ab47cfaaSmrg
35165c42550eSmrg      # Make sure dlprefiles contains only unique files
35175c42550eSmrg      old_dlprefiles="$dlprefiles"
35185c42550eSmrg      dlprefiles=
35195c42550eSmrg      for lib in $old_dlprefiles; do
35205c42550eSmrg	case "$dlprefiles " in
35215c42550eSmrg	*" $lib "*) ;;
35225c42550eSmrg	*) dlprefiles="$dlprefiles $lib" ;;
35235c42550eSmrg	esac
35245c42550eSmrg      done
3525ab47cfaaSmrg
35265c42550eSmrg      if test "$build_libtool_libs" = yes; then
35275c42550eSmrg	if test -n "$rpath"; then
35285c42550eSmrg	  case $host in
35295c42550eSmrg	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
35305c42550eSmrg	    # these systems don't actually have a c library (as such)!
35315c42550eSmrg	    ;;
35325c42550eSmrg	  *-*-rhapsody* | *-*-darwin1.[012])
35335c42550eSmrg	    # Rhapsody C library is in the System framework
35345c42550eSmrg	    deplibs="$deplibs -framework System"
35355c42550eSmrg	    ;;
35365c42550eSmrg	  *-*-netbsd*)
35375c42550eSmrg	    # Don't link with libc until the a.out ld.so is fixed.
35385c42550eSmrg	    ;;
35395c42550eSmrg	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
35405c42550eSmrg	    # Do not include libc due to us having libc/libc_r.
35415c42550eSmrg	    ;;
35425c42550eSmrg	  *-*-sco3.2v5* | *-*-sco5v6*)
35435c42550eSmrg	    # Causes problems with __ctype
35445c42550eSmrg	    ;;
35455c42550eSmrg	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
35465c42550eSmrg	    # Compiler inserts libc in the correct place for threads to work
35475c42550eSmrg	    ;;
35485c42550eSmrg 	  *)
35495c42550eSmrg	    # Add libc to deplibs on all other systems if necessary.
35505c42550eSmrg	    if test "$build_libtool_need_lc" = "yes"; then
35515c42550eSmrg	      deplibs="$deplibs -lc"
35525c42550eSmrg	    fi
35535c42550eSmrg	    ;;
35545c42550eSmrg	  esac
35555c42550eSmrg	fi
3556ab47cfaaSmrg
35575c42550eSmrg	# Transform deplibs into only deplibs that can be linked in shared.
35585c42550eSmrg	name_save=$name
35595c42550eSmrg	libname_save=$libname
35605c42550eSmrg	release_save=$release
35615c42550eSmrg	versuffix_save=$versuffix
35625c42550eSmrg	major_save=$major
35635c42550eSmrg	# I'm not sure if I'm treating the release correctly.  I think
35645c42550eSmrg	# release should show up in the -l (ie -lgmp5) so we don't want to
35655c42550eSmrg	# add it in twice.  Is that correct?
35665c42550eSmrg	release=""
35675c42550eSmrg	versuffix=""
35685c42550eSmrg	major=""
35695c42550eSmrg	newdeplibs=
35705c42550eSmrg	droppeddeps=no
35715c42550eSmrg	case $deplibs_check_method in
35725c42550eSmrg	pass_all)
35735c42550eSmrg	  # Don't check for shared/static.  Everything works.
35745c42550eSmrg	  # This might be a little naive.  We might want to check
35755c42550eSmrg	  # whether the library exists or not.  But this is on
35765c42550eSmrg	  # osf3 & osf4 and I'm not really sure... Just
35775c42550eSmrg	  # implementing what was already the behavior.
35785c42550eSmrg	  newdeplibs=$deplibs
35795c42550eSmrg	  ;;
35805c42550eSmrg	test_compile)
35815c42550eSmrg	  # This code stresses the "libraries are programs" paradigm to its
35825c42550eSmrg	  # limits. Maybe even breaks it.  We compile a program, linking it
35835c42550eSmrg	  # against the deplibs as a proxy for the library.  Then we can check
35845c42550eSmrg	  # whether they linked in statically or dynamically with ldd.
35855c42550eSmrg	  $rm conftest.c
35865c42550eSmrg	  cat > conftest.c <<EOF
35875c42550eSmrg	  int main() { return 0; }
35885c42550eSmrgEOF
35895c42550eSmrg	  $rm conftest
35905c42550eSmrg	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
35915c42550eSmrg	    ldd_output=`ldd conftest`
35925c42550eSmrg	    for i in $deplibs; do
35935c42550eSmrg	      name=`expr $i : '-l\(.*\)'`
35945c42550eSmrg	      # If $name is empty we are operating on a -L argument.
35955c42550eSmrg              if test "$name" != "" && test "$name" != "0"; then
35965c42550eSmrg		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
35975c42550eSmrg		  case " $predeps $postdeps " in
35985c42550eSmrg		  *" $i "*)
35995c42550eSmrg		    newdeplibs="$newdeplibs $i"
36005c42550eSmrg		    i=""
36015c42550eSmrg		    ;;
36025c42550eSmrg		  esac
36035c42550eSmrg	        fi
36045c42550eSmrg		if test -n "$i" ; then
36055c42550eSmrg		  libname=`eval \\$echo \"$libname_spec\"`
36065c42550eSmrg		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
36075c42550eSmrg		  set dummy $deplib_matches
36085c42550eSmrg		  deplib_match=$2
36095c42550eSmrg		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36105c42550eSmrg		    newdeplibs="$newdeplibs $i"
36115c42550eSmrg		  else
36125c42550eSmrg		    droppeddeps=yes
36135c42550eSmrg		    $echo
36145c42550eSmrg		    $echo "*** Warning: dynamic linker does not accept needed library $i."
36155c42550eSmrg		    $echo "*** I have the capability to make that library automatically link in when"
36165c42550eSmrg		    $echo "*** you link to this library.  But I can only do this if you have a"
36175c42550eSmrg		    $echo "*** shared version of the library, which I believe you do not have"
36185c42550eSmrg		    $echo "*** because a test_compile did reveal that the linker did not use it for"
36195c42550eSmrg		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
36205c42550eSmrg		  fi
36215c42550eSmrg		fi
36225c42550eSmrg	      else
36235c42550eSmrg		newdeplibs="$newdeplibs $i"
36245c42550eSmrg	      fi
36255c42550eSmrg	    done
36265c42550eSmrg	  else
36275c42550eSmrg	    # Error occurred in the first compile.  Let's try to salvage
36285c42550eSmrg	    # the situation: Compile a separate program for each library.
36295c42550eSmrg	    for i in $deplibs; do
36305c42550eSmrg	      name=`expr $i : '-l\(.*\)'`
36315c42550eSmrg	      # If $name is empty we are operating on a -L argument.
36325c42550eSmrg              if test "$name" != "" && test "$name" != "0"; then
36335c42550eSmrg		$rm conftest
36345c42550eSmrg		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
36355c42550eSmrg		  ldd_output=`ldd conftest`
36365c42550eSmrg		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36375c42550eSmrg		    case " $predeps $postdeps " in
36385c42550eSmrg		    *" $i "*)
36395c42550eSmrg		      newdeplibs="$newdeplibs $i"
36405c42550eSmrg		      i=""
36415c42550eSmrg		      ;;
36425c42550eSmrg		    esac
36435c42550eSmrg		  fi
36445c42550eSmrg		  if test -n "$i" ; then
36455c42550eSmrg		    libname=`eval \\$echo \"$libname_spec\"`
36465c42550eSmrg		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
36475c42550eSmrg		    set dummy $deplib_matches
36485c42550eSmrg		    deplib_match=$2
36495c42550eSmrg		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36505c42550eSmrg		      newdeplibs="$newdeplibs $i"
36515c42550eSmrg		    else
36525c42550eSmrg		      droppeddeps=yes
36535c42550eSmrg		      $echo
36545c42550eSmrg		      $echo "*** Warning: dynamic linker does not accept needed library $i."
36555c42550eSmrg		      $echo "*** I have the capability to make that library automatically link in when"
36565c42550eSmrg		      $echo "*** you link to this library.  But I can only do this if you have a"
36575c42550eSmrg		      $echo "*** shared version of the library, which you do not appear to have"
36585c42550eSmrg		      $echo "*** because a test_compile did reveal that the linker did not use this one"
36595c42550eSmrg		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
36605c42550eSmrg		    fi
36615c42550eSmrg		  fi
36625c42550eSmrg		else
36635c42550eSmrg		  droppeddeps=yes
36645c42550eSmrg		  $echo
36655c42550eSmrg		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
36665c42550eSmrg		  $echo "*** make it link in!  You will probably need to install it or some"
36675c42550eSmrg		  $echo "*** library that it depends on before this library will be fully"
36685c42550eSmrg		  $echo "*** functional.  Installing it before continuing would be even better."
36695c42550eSmrg		fi
36705c42550eSmrg	      else
36715c42550eSmrg		newdeplibs="$newdeplibs $i"
36725c42550eSmrg	      fi
36735c42550eSmrg	    done
36745c42550eSmrg	  fi
36755c42550eSmrg	  ;;
36765c42550eSmrg	file_magic*)
36775c42550eSmrg	  set dummy $deplibs_check_method
36785c42550eSmrg	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
36795c42550eSmrg	  for a_deplib in $deplibs; do
36805c42550eSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
36815c42550eSmrg	    # If $name is empty we are operating on a -L argument.
36825c42550eSmrg            if test "$name" != "" && test  "$name" != "0"; then
36835c42550eSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36845c42550eSmrg		case " $predeps $postdeps " in
36855c42550eSmrg		*" $a_deplib "*)
36865c42550eSmrg		  newdeplibs="$newdeplibs $a_deplib"
36875c42550eSmrg		  a_deplib=""
36885c42550eSmrg		  ;;
36895c42550eSmrg		esac
36905c42550eSmrg	      fi
36915c42550eSmrg	      if test -n "$a_deplib" ; then
36925c42550eSmrg		libname=`eval \\$echo \"$libname_spec\"`
36935c42550eSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
36945c42550eSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
36955c42550eSmrg		  for potent_lib in $potential_libs; do
36965c42550eSmrg		      # Follow soft links.
36975c42550eSmrg		      if ls -lLd "$potent_lib" 2>/dev/null \
36985c42550eSmrg			 | grep " -> " >/dev/null; then
36995c42550eSmrg			continue
37005c42550eSmrg		      fi
37015c42550eSmrg		      # The statement above tries to avoid entering an
37025c42550eSmrg		      # endless loop below, in case of cyclic links.
37035c42550eSmrg		      # We might still enter an endless loop, since a link
37045c42550eSmrg		      # loop can be closed while we follow links,
37055c42550eSmrg		      # but so what?
37065c42550eSmrg		      potlib="$potent_lib"
37075c42550eSmrg		      while test -h "$potlib" 2>/dev/null; do
37085c42550eSmrg			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
37095c42550eSmrg			case $potliblink in
37105c42550eSmrg			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
37115c42550eSmrg			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
37125c42550eSmrg			esac
37135c42550eSmrg		      done
37145c42550eSmrg		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
37155c42550eSmrg			 | ${SED} 10q \
37165c42550eSmrg			 | $EGREP "$file_magic_regex" > /dev/null; then
37175c42550eSmrg			newdeplibs="$newdeplibs $a_deplib"
37185c42550eSmrg			a_deplib=""
37195c42550eSmrg			break 2
37205c42550eSmrg		      fi
37215c42550eSmrg		  done
37225c42550eSmrg		done
37235c42550eSmrg	      fi
37245c42550eSmrg	      if test -n "$a_deplib" ; then
37255c42550eSmrg		droppeddeps=yes
37265c42550eSmrg		$echo
37275c42550eSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37285c42550eSmrg		$echo "*** I have the capability to make that library automatically link in when"
37295c42550eSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
37305c42550eSmrg		$echo "*** shared version of the library, which you do not appear to have"
37315c42550eSmrg		$echo "*** because I did check the linker path looking for a file starting"
37325c42550eSmrg		if test -z "$potlib" ; then
37335c42550eSmrg		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
37345c42550eSmrg		else
37355c42550eSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
37365c42550eSmrg		  $echo "*** using a file magic. Last file checked: $potlib"
37375c42550eSmrg		fi
37385c42550eSmrg	      fi
37395c42550eSmrg	    else
37405c42550eSmrg	      # Add a -L argument.
37415c42550eSmrg	      newdeplibs="$newdeplibs $a_deplib"
37425c42550eSmrg	    fi
37435c42550eSmrg	  done # Gone through all deplibs.
37445c42550eSmrg	  ;;
37455c42550eSmrg	match_pattern*)
37465c42550eSmrg	  set dummy $deplibs_check_method
37475c42550eSmrg	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
37485c42550eSmrg	  for a_deplib in $deplibs; do
37495c42550eSmrg	    name=`expr $a_deplib : '-l\(.*\)'`
37505c42550eSmrg	    # If $name is empty we are operating on a -L argument.
37515c42550eSmrg	    if test -n "$name" && test "$name" != "0"; then
37525c42550eSmrg	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
37535c42550eSmrg		case " $predeps $postdeps " in
37545c42550eSmrg		*" $a_deplib "*)
37555c42550eSmrg		  newdeplibs="$newdeplibs $a_deplib"
37565c42550eSmrg		  a_deplib=""
37575c42550eSmrg		  ;;
37585c42550eSmrg		esac
37595c42550eSmrg	      fi
37605c42550eSmrg	      if test -n "$a_deplib" ; then
37615c42550eSmrg		libname=`eval \\$echo \"$libname_spec\"`
37625c42550eSmrg		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
37635c42550eSmrg		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
37645c42550eSmrg		  for potent_lib in $potential_libs; do
37655c42550eSmrg		    potlib="$potent_lib" # see symlink-check above in file_magic test
37665c42550eSmrg		    if eval $echo \"$potent_lib\" 2>/dev/null \
37675c42550eSmrg		        | ${SED} 10q \
37685c42550eSmrg		        | $EGREP "$match_pattern_regex" > /dev/null; then
37695c42550eSmrg		      newdeplibs="$newdeplibs $a_deplib"
37705c42550eSmrg		      a_deplib=""
37715c42550eSmrg		      break 2
37725c42550eSmrg		    fi
37735c42550eSmrg		  done
37745c42550eSmrg		done
37755c42550eSmrg	      fi
37765c42550eSmrg	      if test -n "$a_deplib" ; then
37775c42550eSmrg		droppeddeps=yes
37785c42550eSmrg		$echo
37795c42550eSmrg		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37805c42550eSmrg		$echo "*** I have the capability to make that library automatically link in when"
37815c42550eSmrg		$echo "*** you link to this library.  But I can only do this if you have a"
37825c42550eSmrg		$echo "*** shared version of the library, which you do not appear to have"
37835c42550eSmrg		$echo "*** because I did check the linker path looking for a file starting"
37845c42550eSmrg		if test -z "$potlib" ; then
37855c42550eSmrg		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
37865c42550eSmrg		else
37875c42550eSmrg		  $echo "*** with $libname and none of the candidates passed a file format test"
37885c42550eSmrg		  $echo "*** using a regex pattern. Last file checked: $potlib"
37895c42550eSmrg		fi
37905c42550eSmrg	      fi
37915c42550eSmrg	    else
37925c42550eSmrg	      # Add a -L argument.
37935c42550eSmrg	      newdeplibs="$newdeplibs $a_deplib"
37945c42550eSmrg	    fi
37955c42550eSmrg	  done # Gone through all deplibs.
37965c42550eSmrg	  ;;
37975c42550eSmrg	none | unknown | *)
37985c42550eSmrg	  newdeplibs=""
37995c42550eSmrg	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
38005c42550eSmrg	    -e 's/ -[LR][^ ]*//g'`
38015c42550eSmrg	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
38025c42550eSmrg	    for i in $predeps $postdeps ; do
38035c42550eSmrg	      # can't use Xsed below, because $i might contain '/'
38045c42550eSmrg	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
38055c42550eSmrg	    done
38065c42550eSmrg	  fi
38075c42550eSmrg	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
38085c42550eSmrg	    | grep . >/dev/null; then
38095c42550eSmrg	    $echo
38105c42550eSmrg	    if test "X$deplibs_check_method" = "Xnone"; then
38115c42550eSmrg	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
38125c42550eSmrg	    else
38135c42550eSmrg	      $echo "*** Warning: inter-library dependencies are not known to be supported."
38145c42550eSmrg	    fi
38155c42550eSmrg	    $echo "*** All declared inter-library dependencies are being dropped."
38165c42550eSmrg	    droppeddeps=yes
38175c42550eSmrg	  fi
38185c42550eSmrg	  ;;
38195c42550eSmrg	esac
38205c42550eSmrg	versuffix=$versuffix_save
38215c42550eSmrg	major=$major_save
38225c42550eSmrg	release=$release_save
38235c42550eSmrg	libname=$libname_save
38245c42550eSmrg	name=$name_save
3825ab47cfaaSmrg
38265c42550eSmrg	case $host in
38275c42550eSmrg	*-*-rhapsody* | *-*-darwin1.[012])
38285c42550eSmrg	  # On Rhapsody replace the C library is the System framework
38295c42550eSmrg	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
38305c42550eSmrg	  ;;
38315c42550eSmrg	esac
3832ab47cfaaSmrg
38335c42550eSmrg	if test "$droppeddeps" = yes; then
38345c42550eSmrg	  if test "$module" = yes; then
38355c42550eSmrg	    $echo
38365c42550eSmrg	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
38375c42550eSmrg	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
38385c42550eSmrg	    $echo "*** a static module, that should work as long as the dlopening"
38395c42550eSmrg	    $echo "*** application is linked with the -dlopen flag."
38405c42550eSmrg	    if test -z "$global_symbol_pipe"; then
38415c42550eSmrg	      $echo
38425c42550eSmrg	      $echo "*** However, this would only work if libtool was able to extract symbol"
38435c42550eSmrg	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
38445c42550eSmrg	      $echo "*** not find such a program.  So, this module is probably useless."
38455c42550eSmrg	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
38465c42550eSmrg	    fi
38475c42550eSmrg	    if test "$build_old_libs" = no; then
38485c42550eSmrg	      oldlibs="$output_objdir/$libname.$libext"
38495c42550eSmrg	      build_libtool_libs=module
38505c42550eSmrg	      build_old_libs=yes
38515c42550eSmrg	    else
38525c42550eSmrg	      build_libtool_libs=no
38535c42550eSmrg	    fi
38545c42550eSmrg	  else
38555c42550eSmrg	    $echo "*** The inter-library dependencies that have been dropped here will be"
38565c42550eSmrg	    $echo "*** automatically added whenever a program is linked with this library"
38575c42550eSmrg	    $echo "*** or is declared to -dlopen it."
3858ab47cfaaSmrg
38595c42550eSmrg	    if test "$allow_undefined" = no; then
38605c42550eSmrg	      $echo
38615c42550eSmrg	      $echo "*** Since this library must not contain undefined symbols,"
38625c42550eSmrg	      $echo "*** because either the platform does not support them or"
38635c42550eSmrg	      $echo "*** it was explicitly requested with -no-undefined,"
38645c42550eSmrg	      $echo "*** libtool will only create a static version of it."
38655c42550eSmrg	      if test "$build_old_libs" = no; then
38665c42550eSmrg		oldlibs="$output_objdir/$libname.$libext"
38675c42550eSmrg		build_libtool_libs=module
38685c42550eSmrg		build_old_libs=yes
38695c42550eSmrg	      else
38705c42550eSmrg		build_libtool_libs=no
38715c42550eSmrg	      fi
38725c42550eSmrg	    fi
38735c42550eSmrg	  fi
38745c42550eSmrg	fi
38755c42550eSmrg	# Done checking deplibs!
38765c42550eSmrg	deplibs=$newdeplibs
38775c42550eSmrg      fi
3878ab47cfaaSmrg
3879ab47cfaaSmrg
38805c42550eSmrg      # move library search paths that coincide with paths to not yet
38815c42550eSmrg      # installed libraries to the beginning of the library search list
38825c42550eSmrg      new_libs=
38835c42550eSmrg      for path in $notinst_path; do
38845c42550eSmrg	case " $new_libs " in
38855c42550eSmrg	*" -L$path/$objdir "*) ;;
38865c42550eSmrg	*)
38875c42550eSmrg	  case " $deplibs " in
38885c42550eSmrg	  *" -L$path/$objdir "*)
38895c42550eSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
38905c42550eSmrg	  esac
38915c42550eSmrg	  ;;
38925c42550eSmrg	esac
38935c42550eSmrg      done
38945c42550eSmrg      for deplib in $deplibs; do
38955c42550eSmrg	case $deplib in
38965c42550eSmrg	-L*)
38975c42550eSmrg	  case " $new_libs " in
38985c42550eSmrg	  *" $deplib "*) ;;
38995c42550eSmrg	  *) new_libs="$new_libs $deplib" ;;
39005c42550eSmrg	  esac
39015c42550eSmrg	  ;;
39025c42550eSmrg	*) new_libs="$new_libs $deplib" ;;
39035c42550eSmrg	esac
39045c42550eSmrg      done
39055c42550eSmrg      deplibs="$new_libs"
3906ab47cfaaSmrg
3907ab47cfaaSmrg
39085c42550eSmrg      # All the library-specific variables (install_libdir is set above).
39095c42550eSmrg      library_names=
39105c42550eSmrg      old_library=
39115c42550eSmrg      dlname=
3912ab47cfaaSmrg
39135c42550eSmrg      # Test again, we may have decided not to build it any more
39145c42550eSmrg      if test "$build_libtool_libs" = yes; then
39155c42550eSmrg	if test "$hardcode_into_libs" = yes; then
39165c42550eSmrg	  # Hardcode the library paths
39175c42550eSmrg	  hardcode_libdirs=
39185c42550eSmrg	  dep_rpath=
39195c42550eSmrg	  rpath="$finalize_rpath"
39205c42550eSmrg	  test "$mode" != relink && rpath="$compile_rpath$rpath"
39215c42550eSmrg	  for libdir in $rpath; do
39225c42550eSmrg	    if test -n "$hardcode_libdir_flag_spec"; then
39235c42550eSmrg	      if test -n "$hardcode_libdir_separator"; then
39245c42550eSmrg		if test -z "$hardcode_libdirs"; then
39255c42550eSmrg		  hardcode_libdirs="$libdir"
39265c42550eSmrg		else
39275c42550eSmrg		  # Just accumulate the unique libdirs.
39285c42550eSmrg		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
39295c42550eSmrg		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
39305c42550eSmrg		    ;;
39315c42550eSmrg		  *)
39325c42550eSmrg		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
39335c42550eSmrg		    ;;
39345c42550eSmrg		  esac
39355c42550eSmrg		fi
39365c42550eSmrg	      else
39375c42550eSmrg		eval flag=\"$hardcode_libdir_flag_spec\"
39385c42550eSmrg		dep_rpath="$dep_rpath $flag"
39395c42550eSmrg	      fi
39405c42550eSmrg	    elif test -n "$runpath_var"; then
39415c42550eSmrg	      case "$perm_rpath " in
39425c42550eSmrg	      *" $libdir "*) ;;
39435c42550eSmrg	      *) perm_rpath="$perm_rpath $libdir" ;;
39445c42550eSmrg	      esac
39455c42550eSmrg	    fi
39465c42550eSmrg	  done
39475c42550eSmrg	  # Substitute the hardcoded libdirs into the rpath.
39485c42550eSmrg	  if test -n "$hardcode_libdir_separator" &&
39495c42550eSmrg	     test -n "$hardcode_libdirs"; then
39505c42550eSmrg	    libdir="$hardcode_libdirs"
39515c42550eSmrg	    if test -n "$hardcode_libdir_flag_spec_ld"; then
39525c42550eSmrg	      case $archive_cmds in
39535c42550eSmrg	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
39545c42550eSmrg	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
39555c42550eSmrg	      esac
39565c42550eSmrg	    else
39575c42550eSmrg	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
39585c42550eSmrg	    fi
39595c42550eSmrg	  fi
39605c42550eSmrg	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
39615c42550eSmrg	    # We should set the runpath_var.
39625c42550eSmrg	    rpath=
39635c42550eSmrg	    for dir in $perm_rpath; do
39645c42550eSmrg	      rpath="$rpath$dir:"
39655c42550eSmrg	    done
39665c42550eSmrg	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
39675c42550eSmrg	  fi
39685c42550eSmrg	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
39695c42550eSmrg	fi
3970ab47cfaaSmrg
39715c42550eSmrg	shlibpath="$finalize_shlibpath"
39725c42550eSmrg	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
39735c42550eSmrg	if test -n "$shlibpath"; then
39745c42550eSmrg	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
39755c42550eSmrg	fi
3976ab47cfaaSmrg
39775c42550eSmrg	# Get the real and link names of the library.
39785c42550eSmrg	eval shared_ext=\"$shrext_cmds\"
39795c42550eSmrg	eval library_names=\"$library_names_spec\"
39805c42550eSmrg	set dummy $library_names
39815c42550eSmrg	realname="$2"
39825c42550eSmrg	shift; shift
3983ab47cfaaSmrg
39845c42550eSmrg	if test -n "$soname_spec"; then
39855c42550eSmrg	  eval soname=\"$soname_spec\"
39865c42550eSmrg	else
39875c42550eSmrg	  soname="$realname"
39885c42550eSmrg	fi
39895c42550eSmrg	if test -z "$dlname"; then
39905c42550eSmrg	  dlname=$soname
39915c42550eSmrg	fi
3992ab47cfaaSmrg
39935c42550eSmrg	lib="$output_objdir/$realname"
39945c42550eSmrg	linknames=
39955c42550eSmrg	for link
39965c42550eSmrg	do
39975c42550eSmrg	  linknames="$linknames $link"
39985c42550eSmrg	done
3999ab47cfaaSmrg
40005c42550eSmrg	# Use standard objects if they are pic
40015c42550eSmrg	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4002ab47cfaaSmrg
40035c42550eSmrg	# Prepare the list of exported symbols
40045c42550eSmrg	if test -z "$export_symbols"; then
40055c42550eSmrg	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
40065c42550eSmrg	    $show "generating symbol list for \`$libname.la'"
40075c42550eSmrg	    export_symbols="$output_objdir/$libname.exp"
40085c42550eSmrg	    $run $rm $export_symbols
40095c42550eSmrg	    cmds=$export_symbols_cmds
40105c42550eSmrg	    save_ifs="$IFS"; IFS='~'
40115c42550eSmrg	    for cmd in $cmds; do
40125c42550eSmrg	      IFS="$save_ifs"
40135c42550eSmrg	      eval cmd=\"$cmd\"
40145c42550eSmrg	      if len=`expr "X$cmd" : ".*"` &&
40155c42550eSmrg	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40165c42550eSmrg	        $show "$cmd"
40175c42550eSmrg	        $run eval "$cmd" || exit $?
40185c42550eSmrg	        skipped_export=false
40195c42550eSmrg	      else
40205c42550eSmrg	        # The command line is too long to execute in one step.
40215c42550eSmrg	        $show "using reloadable object file for export list..."
40225c42550eSmrg	        skipped_export=:
40235c42550eSmrg		# Break out early, otherwise skipped_export may be
40245c42550eSmrg		# set to false by a later but shorter cmd.
40255c42550eSmrg		break
40265c42550eSmrg	      fi
40275c42550eSmrg	    done
40285c42550eSmrg	    IFS="$save_ifs"
40295c42550eSmrg	    if test -n "$export_symbols_regex"; then
40305c42550eSmrg	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
40315c42550eSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
40325c42550eSmrg	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
40335c42550eSmrg	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
40345c42550eSmrg	    fi
40355c42550eSmrg	  fi
40365c42550eSmrg	fi
4037ab47cfaaSmrg
40385c42550eSmrg	if test -n "$export_symbols" && test -n "$include_expsyms"; then
40395c42550eSmrg	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
40405c42550eSmrg	fi
4041ab47cfaaSmrg
40425c42550eSmrg	tmp_deplibs=
40435c42550eSmrg	for test_deplib in $deplibs; do
40445c42550eSmrg		case " $convenience " in
40455c42550eSmrg		*" $test_deplib "*) ;;
40465c42550eSmrg		*)
40475c42550eSmrg			tmp_deplibs="$tmp_deplibs $test_deplib"
40485c42550eSmrg			;;
40495c42550eSmrg		esac
40505c42550eSmrg	done
40515c42550eSmrg	deplibs="$tmp_deplibs"
4052ab47cfaaSmrg
40535c42550eSmrg	if test -n "$convenience"; then
40545c42550eSmrg	  if test -n "$whole_archive_flag_spec"; then
40555c42550eSmrg	    save_libobjs=$libobjs
40565c42550eSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
40575c42550eSmrg	  else
40585c42550eSmrg	    gentop="$output_objdir/${outputname}x"
40595c42550eSmrg	    generated="$generated $gentop"
4060ab47cfaaSmrg
40615c42550eSmrg	    func_extract_archives $gentop $convenience
40625c42550eSmrg	    libobjs="$libobjs $func_extract_archives_result"
40635c42550eSmrg	  fi
40645c42550eSmrg	fi
40655c42550eSmrg	
40665c42550eSmrg	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
40675c42550eSmrg	  eval flag=\"$thread_safe_flag_spec\"
40685c42550eSmrg	  linker_flags="$linker_flags $flag"
40695c42550eSmrg	fi
4070ab47cfaaSmrg
40715c42550eSmrg	# Make a backup of the uninstalled library when relinking
40725c42550eSmrg	if test "$mode" = relink; then
40735c42550eSmrg	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
40745c42550eSmrg	fi
4075ab47cfaaSmrg
40765c42550eSmrg	# Do each of the archive commands.
40775c42550eSmrg	if test "$module" = yes && test -n "$module_cmds" ; then
40785c42550eSmrg	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
40795c42550eSmrg	    eval test_cmds=\"$module_expsym_cmds\"
40805c42550eSmrg	    cmds=$module_expsym_cmds
40815c42550eSmrg	  else
40825c42550eSmrg	    eval test_cmds=\"$module_cmds\"
40835c42550eSmrg	    cmds=$module_cmds
40845c42550eSmrg	  fi
40855c42550eSmrg	else
40865c42550eSmrg	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
40875c42550eSmrg	  eval test_cmds=\"$archive_expsym_cmds\"
40885c42550eSmrg	  cmds=$archive_expsym_cmds
40895c42550eSmrg	else
40905c42550eSmrg	  eval test_cmds=\"$archive_cmds\"
40915c42550eSmrg	  cmds=$archive_cmds
40925c42550eSmrg	  fi
40935c42550eSmrg	fi
4094ab47cfaaSmrg
40955c42550eSmrg	if test "X$skipped_export" != "X:" &&
40965c42550eSmrg	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
40975c42550eSmrg	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40985c42550eSmrg	  :
40995c42550eSmrg	else
41005c42550eSmrg	  # The command line is too long to link in one step, link piecewise.
41015c42550eSmrg	  $echo "creating reloadable object files..."
4102ab47cfaaSmrg
41035c42550eSmrg	  # Save the value of $output and $libobjs because we want to
41045c42550eSmrg	  # use them later.  If we have whole_archive_flag_spec, we
41055c42550eSmrg	  # want to use save_libobjs as it was before
41065c42550eSmrg	  # whole_archive_flag_spec was expanded, because we can't
41075c42550eSmrg	  # assume the linker understands whole_archive_flag_spec.
41085c42550eSmrg	  # This may have to be revisited, in case too many
41095c42550eSmrg	  # convenience libraries get linked in and end up exceeding
41105c42550eSmrg	  # the spec.
41115c42550eSmrg	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
41125c42550eSmrg	    save_libobjs=$libobjs
41135c42550eSmrg	  fi
41145c42550eSmrg	  save_output=$output
41155c42550eSmrg	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4116ab47cfaaSmrg
41175c42550eSmrg	  # Clear the reloadable object creation command queue and
41185c42550eSmrg	  # initialize k to one.
41195c42550eSmrg	  test_cmds=
41205c42550eSmrg	  concat_cmds=
41215c42550eSmrg	  objlist=
41225c42550eSmrg	  delfiles=
41235c42550eSmrg	  last_robj=
41245c42550eSmrg	  k=1
41255c42550eSmrg	  output=$output_objdir/$output_la-${k}.$objext
41265c42550eSmrg	  # Loop over the list of objects to be linked.
41275c42550eSmrg	  for obj in $save_libobjs
41285c42550eSmrg	  do
41295c42550eSmrg	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
41305c42550eSmrg	    if test "X$objlist" = X ||
41315c42550eSmrg	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
41325c42550eSmrg		 test "$len" -le "$max_cmd_len"; }; then
41335c42550eSmrg	      objlist="$objlist $obj"
41345c42550eSmrg	    else
41355c42550eSmrg	      # The command $test_cmds is almost too long, add a
41365c42550eSmrg	      # command to the queue.
41375c42550eSmrg	      if test "$k" -eq 1 ; then
41385c42550eSmrg		# The first file doesn't have a previous command to add.
41395c42550eSmrg		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
41405c42550eSmrg	      else
41415c42550eSmrg		# All subsequent reloadable object files will link in
41425c42550eSmrg		# the last one created.
41435c42550eSmrg		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
41445c42550eSmrg	      fi
41455c42550eSmrg	      last_robj=$output_objdir/$output_la-${k}.$objext
41465c42550eSmrg	      k=`expr $k + 1`
41475c42550eSmrg	      output=$output_objdir/$output_la-${k}.$objext
41485c42550eSmrg	      objlist=$obj
41495c42550eSmrg	      len=1
41505c42550eSmrg	    fi
41515c42550eSmrg	  done
41525c42550eSmrg	  # Handle the remaining objects by creating one last
41535c42550eSmrg	  # reloadable object file.  All subsequent reloadable object
41545c42550eSmrg	  # files will link in the last one created.
41555c42550eSmrg	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
41565c42550eSmrg	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
41575c42550eSmrg
41585c42550eSmrg	  if ${skipped_export-false}; then
41595c42550eSmrg	    $show "generating symbol list for \`$libname.la'"
41605c42550eSmrg	    export_symbols="$output_objdir/$libname.exp"
41615c42550eSmrg	    $run $rm $export_symbols
41625c42550eSmrg	    libobjs=$output
41635c42550eSmrg	    # Append the command to create the export file.
41645c42550eSmrg	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
41655c42550eSmrg          fi
41665c42550eSmrg
41675c42550eSmrg	  # Set up a command to remove the reloadable object files
41685c42550eSmrg	  # after they are used.
41695c42550eSmrg	  i=0
41705c42550eSmrg	  while test "$i" -lt "$k"
41715c42550eSmrg	  do
41725c42550eSmrg	    i=`expr $i + 1`
41735c42550eSmrg	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
41745c42550eSmrg	  done
4175ab47cfaaSmrg
41765c42550eSmrg	  $echo "creating a temporary reloadable object file: $output"
4177ab47cfaaSmrg
41785c42550eSmrg	  # Loop through the commands generated above and execute them.
41795c42550eSmrg	  save_ifs="$IFS"; IFS='~'
41805c42550eSmrg	  for cmd in $concat_cmds; do
41815c42550eSmrg	    IFS="$save_ifs"
41825c42550eSmrg	    $show "$cmd"
41835c42550eSmrg	    $run eval "$cmd" || exit $?
41845c42550eSmrg	  done
41855c42550eSmrg	  IFS="$save_ifs"
4186ab47cfaaSmrg
41875c42550eSmrg	  libobjs=$output
41885c42550eSmrg	  # Restore the value of output.
41895c42550eSmrg	  output=$save_output
4190ab47cfaaSmrg
41915c42550eSmrg	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
41925c42550eSmrg	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
41935c42550eSmrg	  fi
41945c42550eSmrg	  # Expand the library linking commands again to reset the
41955c42550eSmrg	  # value of $libobjs for piecewise linking.
4196ab47cfaaSmrg
41975c42550eSmrg	  # Do each of the archive commands.
41985c42550eSmrg	  if test "$module" = yes && test -n "$module_cmds" ; then
41995c42550eSmrg	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
42005c42550eSmrg	      cmds=$module_expsym_cmds
42015c42550eSmrg	    else
42025c42550eSmrg	      cmds=$module_cmds
42035c42550eSmrg	    fi
42045c42550eSmrg	  else
42055c42550eSmrg	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
42065c42550eSmrg	    cmds=$archive_expsym_cmds
42075c42550eSmrg	  else
42085c42550eSmrg	    cmds=$archive_cmds
42095c42550eSmrg	    fi
42105c42550eSmrg	  fi
4211ab47cfaaSmrg
42125c42550eSmrg	  # Append the command to remove the reloadable object files
42135c42550eSmrg	  # to the just-reset $cmds.
42145c42550eSmrg	  eval cmds=\"\$cmds~\$rm $delfiles\"
42155c42550eSmrg	fi
42165c42550eSmrg	save_ifs="$IFS"; IFS='~'
42175c42550eSmrg	for cmd in $cmds; do
42185c42550eSmrg	  IFS="$save_ifs"
42195c42550eSmrg	  eval cmd=\"$cmd\"
42205c42550eSmrg	  $show "$cmd"
42215c42550eSmrg	  $run eval "$cmd" || {
42225c42550eSmrg	    lt_exit=$?
4223ab47cfaaSmrg
42245c42550eSmrg	    # Restore the uninstalled library and exit
42255c42550eSmrg	    if test "$mode" = relink; then
42265c42550eSmrg	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
42275c42550eSmrg	    fi
4228ab47cfaaSmrg
42295c42550eSmrg	    exit $lt_exit
42305c42550eSmrg	  }
42315c42550eSmrg	done
42325c42550eSmrg	IFS="$save_ifs"
42335c42550eSmrg
42345c42550eSmrg	# Restore the uninstalled library and exit
42355c42550eSmrg	if test "$mode" = relink; then
42365c42550eSmrg	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
42375c42550eSmrg
42385c42550eSmrg	  if test -n "$convenience"; then
42395c42550eSmrg	    if test -z "$whole_archive_flag_spec"; then
42405c42550eSmrg	      $show "${rm}r $gentop"
42415c42550eSmrg	      $run ${rm}r "$gentop"
42425c42550eSmrg	    fi
42435c42550eSmrg	  fi
42445c42550eSmrg
42455c42550eSmrg	  exit $EXIT_SUCCESS
42465c42550eSmrg	fi
42475c42550eSmrg
42485c42550eSmrg	# Create links to the real library.
42495c42550eSmrg	for linkname in $linknames; do
42505c42550eSmrg	  if test "$realname" != "$linkname"; then
42515c42550eSmrg	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
42525c42550eSmrg	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
42535c42550eSmrg	  fi
42545c42550eSmrg	done
42555c42550eSmrg
42565c42550eSmrg	# If -module or -export-dynamic was specified, set the dlname.
42575c42550eSmrg	if test "$module" = yes || test "$export_dynamic" = yes; then
42585c42550eSmrg	  # On all known operating systems, these are identical.
42595c42550eSmrg	  dlname="$soname"
42605c42550eSmrg	fi
42615c42550eSmrg      fi
42621473d951Smrg      ;;
4263ab47cfaaSmrg
42645c42550eSmrg    obj)
42655c42550eSmrg      case " $deplibs" in
42665c42550eSmrg      *\ -l* | *\ -L*)
42675c42550eSmrg	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
42685c42550eSmrg      esac
4269ab47cfaaSmrg
42705c42550eSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
42715c42550eSmrg	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
42725c42550eSmrg      fi
4273ab47cfaaSmrg
42745c42550eSmrg      if test -n "$rpath"; then
42755c42550eSmrg	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
42765c42550eSmrg      fi
42775c42550eSmrg
42785c42550eSmrg      if test -n "$xrpath"; then
42795c42550eSmrg	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
42805c42550eSmrg      fi
42815c42550eSmrg
42825c42550eSmrg      if test -n "$vinfo"; then
42835c42550eSmrg	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
42845c42550eSmrg      fi
42855c42550eSmrg
42865c42550eSmrg      if test -n "$release"; then
42875c42550eSmrg	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
42885c42550eSmrg      fi
42895c42550eSmrg
42905c42550eSmrg      case $output in
42915c42550eSmrg      *.lo)
42925c42550eSmrg	if test -n "$objs$old_deplibs"; then
42935c42550eSmrg	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
42945c42550eSmrg	  exit $EXIT_FAILURE
42955c42550eSmrg	fi
42965c42550eSmrg	libobj="$output"
42975c42550eSmrg	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
42981473d951Smrg	;;
42995c42550eSmrg      *)
43005c42550eSmrg	libobj=
43015c42550eSmrg	obj="$output"
4302ab47cfaaSmrg	;;
4303ab47cfaaSmrg      esac
4304ab47cfaaSmrg
43055c42550eSmrg      # Delete the old objects.
43065c42550eSmrg      $run $rm $obj $libobj
4307ab47cfaaSmrg
43085c42550eSmrg      # Objects from convenience libraries.  This assumes
43095c42550eSmrg      # single-version convenience libraries.  Whenever we create
43105c42550eSmrg      # different ones for PIC/non-PIC, this we'll have to duplicate
43115c42550eSmrg      # the extraction.
43125c42550eSmrg      reload_conv_objs=
43135c42550eSmrg      gentop=
43145c42550eSmrg      # reload_cmds runs $LD directly, so let us get rid of
43155c42550eSmrg      # -Wl from whole_archive_flag_spec and hope we can get by with
43165c42550eSmrg      # turning comma into space..
43175c42550eSmrg      wl=
4318ab47cfaaSmrg
43195c42550eSmrg      if test -n "$convenience"; then
43205c42550eSmrg	if test -n "$whole_archive_flag_spec"; then
43215c42550eSmrg	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
43225c42550eSmrg	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
43235c42550eSmrg	else
43245c42550eSmrg	  gentop="$output_objdir/${obj}x"
43255c42550eSmrg	  generated="$generated $gentop"
4326ab47cfaaSmrg
43275c42550eSmrg	  func_extract_archives $gentop $convenience
43285c42550eSmrg	  reload_conv_objs="$reload_objs $func_extract_archives_result"
43295c42550eSmrg	fi
43305c42550eSmrg      fi
4331ab47cfaaSmrg
43325c42550eSmrg      # Create the old-style object.
43335c42550eSmrg      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
4334ab47cfaaSmrg
43355c42550eSmrg      output="$obj"
43365c42550eSmrg      cmds=$reload_cmds
43375c42550eSmrg      save_ifs="$IFS"; IFS='~'
43385c42550eSmrg      for cmd in $cmds; do
43395c42550eSmrg	IFS="$save_ifs"
43405c42550eSmrg	eval cmd=\"$cmd\"
43415c42550eSmrg	$show "$cmd"
43425c42550eSmrg	$run eval "$cmd" || exit $?
43435c42550eSmrg      done
43445c42550eSmrg      IFS="$save_ifs"
4345ab47cfaaSmrg
43465c42550eSmrg      # Exit if we aren't doing a library object file.
43475c42550eSmrg      if test -z "$libobj"; then
43485c42550eSmrg	if test -n "$gentop"; then
43495c42550eSmrg	  $show "${rm}r $gentop"
43505c42550eSmrg	  $run ${rm}r $gentop
43515c42550eSmrg	fi
4352ab47cfaaSmrg
43535c42550eSmrg	exit $EXIT_SUCCESS
43545c42550eSmrg      fi
4355ab47cfaaSmrg
43565c42550eSmrg      if test "$build_libtool_libs" != yes; then
43575c42550eSmrg	if test -n "$gentop"; then
43585c42550eSmrg	  $show "${rm}r $gentop"
43595c42550eSmrg	  $run ${rm}r $gentop
43605c42550eSmrg	fi
4361ab47cfaaSmrg
43625c42550eSmrg	# Create an invalid libtool object if no PIC, so that we don't
43635c42550eSmrg	# accidentally link it into a program.
43645c42550eSmrg	# $show "echo timestamp > $libobj"
43655c42550eSmrg	# $run eval "echo timestamp > $libobj" || exit $?
43665c42550eSmrg	exit $EXIT_SUCCESS
43675c42550eSmrg      fi
4368ab47cfaaSmrg
43695c42550eSmrg      if test -n "$pic_flag" || test "$pic_mode" != default; then
43705c42550eSmrg	# Only do commands if we really have different PIC objects.
43715c42550eSmrg	reload_objs="$libobjs $reload_conv_objs"
43725c42550eSmrg	output="$libobj"
43735c42550eSmrg	cmds=$reload_cmds
43745c42550eSmrg	save_ifs="$IFS"; IFS='~'
43755c42550eSmrg	for cmd in $cmds; do
43765c42550eSmrg	  IFS="$save_ifs"
43775c42550eSmrg	  eval cmd=\"$cmd\"
43785c42550eSmrg	  $show "$cmd"
43795c42550eSmrg	  $run eval "$cmd" || exit $?
43805c42550eSmrg	done
43815c42550eSmrg	IFS="$save_ifs"
43825c42550eSmrg      fi
4383ab47cfaaSmrg
43845c42550eSmrg      if test -n "$gentop"; then
43855c42550eSmrg	$show "${rm}r $gentop"
43865c42550eSmrg	$run ${rm}r $gentop
43875c42550eSmrg      fi
4388ab47cfaaSmrg
43895c42550eSmrg      exit $EXIT_SUCCESS
43905c42550eSmrg      ;;
4391ab47cfaaSmrg
43925c42550eSmrg    prog)
43935c42550eSmrg      case $host in
43945c42550eSmrg	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
43955c42550eSmrg      esac
43965c42550eSmrg      if test -n "$vinfo"; then
43975c42550eSmrg	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
43985c42550eSmrg      fi
4399ab47cfaaSmrg
44005c42550eSmrg      if test -n "$release"; then
44015c42550eSmrg	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
44025c42550eSmrg      fi
4403ab47cfaaSmrg
44045c42550eSmrg      if test "$preload" = yes; then
44055c42550eSmrg	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
44065c42550eSmrg	   test "$dlopen_self_static" = unknown; then
44075c42550eSmrg	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4408ab47cfaaSmrg	fi
44095c42550eSmrg      fi
4410ab47cfaaSmrg
44115c42550eSmrg      case $host in
44125c42550eSmrg      *-*-rhapsody* | *-*-darwin1.[012])
44135c42550eSmrg	# On Rhapsody replace the C library is the System framework
44145c42550eSmrg	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44155c42550eSmrg	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44161473d951Smrg	;;
44175c42550eSmrg      esac
4418ab47cfaaSmrg
44195c42550eSmrg      case $host in
44205c42550eSmrg      *darwin*)
44215c42550eSmrg        # Don't allow lazy linking, it breaks C++ global constructors
44225c42550eSmrg        if test "$tagname" = CXX ; then
44235c42550eSmrg        compile_command="$compile_command ${wl}-bind_at_load"
44245c42550eSmrg        finalize_command="$finalize_command ${wl}-bind_at_load"
44255c42550eSmrg        fi
44265c42550eSmrg        ;;
44275c42550eSmrg      esac
4428ab47cfaaSmrg
4429ab47cfaaSmrg
44305c42550eSmrg      # move library search paths that coincide with paths to not yet
44315c42550eSmrg      # installed libraries to the beginning of the library search list
44325c42550eSmrg      new_libs=
44335c42550eSmrg      for path in $notinst_path; do
44345c42550eSmrg	case " $new_libs " in
44355c42550eSmrg	*" -L$path/$objdir "*) ;;
44365c42550eSmrg	*)
44375c42550eSmrg	  case " $compile_deplibs " in
44385c42550eSmrg	  *" -L$path/$objdir "*)
44395c42550eSmrg	    new_libs="$new_libs -L$path/$objdir" ;;
44405c42550eSmrg	  esac
44415c42550eSmrg	  ;;
44425c42550eSmrg	esac
44435c42550eSmrg      done
44445c42550eSmrg      for deplib in $compile_deplibs; do
44455c42550eSmrg	case $deplib in
44465c42550eSmrg	-L*)
44475c42550eSmrg	  case " $new_libs " in
44485c42550eSmrg	  *" $deplib "*) ;;
44495c42550eSmrg	  *) new_libs="$new_libs $deplib" ;;
44505c42550eSmrg	  esac
44515c42550eSmrg	  ;;
44525c42550eSmrg	*) new_libs="$new_libs $deplib" ;;
44535c42550eSmrg	esac
44545c42550eSmrg      done
44555c42550eSmrg      compile_deplibs="$new_libs"
4456ab47cfaaSmrg
4457ab47cfaaSmrg
44585c42550eSmrg      compile_command="$compile_command $compile_deplibs"
44595c42550eSmrg      finalize_command="$finalize_command $finalize_deplibs"
4460ab47cfaaSmrg
44615c42550eSmrg      if test -n "$rpath$xrpath"; then
44625c42550eSmrg	# If the user specified any rpath flags, then add them.
44635c42550eSmrg	for libdir in $rpath $xrpath; do
44645c42550eSmrg	  # This is the magic to use -rpath.
44655c42550eSmrg	  case "$finalize_rpath " in
44665c42550eSmrg	  *" $libdir "*) ;;
44675c42550eSmrg	  *) finalize_rpath="$finalize_rpath $libdir" ;;
44685c42550eSmrg	  esac
44695c42550eSmrg	done
44705c42550eSmrg      fi
4471ab47cfaaSmrg
44725c42550eSmrg      # Now hardcode the library paths
44735c42550eSmrg      rpath=
44745c42550eSmrg      hardcode_libdirs=
44755c42550eSmrg      for libdir in $compile_rpath $finalize_rpath; do
44765c42550eSmrg	if test -n "$hardcode_libdir_flag_spec"; then
44775c42550eSmrg	  if test -n "$hardcode_libdir_separator"; then
44785c42550eSmrg	    if test -z "$hardcode_libdirs"; then
44795c42550eSmrg	      hardcode_libdirs="$libdir"
44805c42550eSmrg	    else
44815c42550eSmrg	      # Just accumulate the unique libdirs.
44825c42550eSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
44835c42550eSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
44845c42550eSmrg		;;
44855c42550eSmrg	      *)
44865c42550eSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
44875c42550eSmrg		;;
44885c42550eSmrg	      esac
44895c42550eSmrg	    fi
4490ab47cfaaSmrg	  else
44915c42550eSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
44925c42550eSmrg	    rpath="$rpath $flag"
4493ab47cfaaSmrg	  fi
44945c42550eSmrg	elif test -n "$runpath_var"; then
44955c42550eSmrg	  case "$perm_rpath " in
44965c42550eSmrg	  *" $libdir "*) ;;
44975c42550eSmrg	  *) perm_rpath="$perm_rpath $libdir" ;;
44985c42550eSmrg	  esac
44991473d951Smrg	fi
4500ab47cfaaSmrg	case $host in
45015c42550eSmrg	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
45025c42550eSmrg	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
45031473d951Smrg	  case :$dllsearchpath: in
45045c42550eSmrg	  *":$libdir:"*) ;;
45055c42550eSmrg	  *) dllsearchpath="$dllsearchpath:$libdir";;
45061473d951Smrg	  esac
45071473d951Smrg	  case :$dllsearchpath: in
45081473d951Smrg	  *":$testbindir:"*) ;;
45091473d951Smrg	  *) dllsearchpath="$dllsearchpath:$testbindir";;
45101473d951Smrg	  esac
45111473d951Smrg	  ;;
4512ab47cfaaSmrg	esac
45135c42550eSmrg      done
45145c42550eSmrg      # Substitute the hardcoded libdirs into the rpath.
45155c42550eSmrg      if test -n "$hardcode_libdir_separator" &&
45165c42550eSmrg	 test -n "$hardcode_libdirs"; then
45175c42550eSmrg	libdir="$hardcode_libdirs"
45185c42550eSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
45195c42550eSmrg      fi
45205c42550eSmrg      compile_rpath="$rpath"
4521ab47cfaaSmrg
45225c42550eSmrg      rpath=
45235c42550eSmrg      hardcode_libdirs=
45245c42550eSmrg      for libdir in $finalize_rpath; do
45255c42550eSmrg	if test -n "$hardcode_libdir_flag_spec"; then
45265c42550eSmrg	  if test -n "$hardcode_libdir_separator"; then
45275c42550eSmrg	    if test -z "$hardcode_libdirs"; then
45285c42550eSmrg	      hardcode_libdirs="$libdir"
45295c42550eSmrg	    else
45305c42550eSmrg	      # Just accumulate the unique libdirs.
45315c42550eSmrg	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
45325c42550eSmrg	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
45335c42550eSmrg		;;
45345c42550eSmrg	      *)
45355c42550eSmrg		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
45365c42550eSmrg		;;
45375c42550eSmrg	      esac
45385c42550eSmrg	    fi
45395c42550eSmrg	  else
45405c42550eSmrg	    eval flag=\"$hardcode_libdir_flag_spec\"
45415c42550eSmrg	    rpath="$rpath $flag"
45425c42550eSmrg	  fi
45435c42550eSmrg	elif test -n "$runpath_var"; then
45445c42550eSmrg	  case "$finalize_perm_rpath " in
45455c42550eSmrg	  *" $libdir "*) ;;
45465c42550eSmrg	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
45471473d951Smrg	  esac
45481473d951Smrg	fi
45495c42550eSmrg      done
45505c42550eSmrg      # Substitute the hardcoded libdirs into the rpath.
45515c42550eSmrg      if test -n "$hardcode_libdir_separator" &&
45525c42550eSmrg	 test -n "$hardcode_libdirs"; then
45535c42550eSmrg	libdir="$hardcode_libdirs"
45545c42550eSmrg	eval rpath=\" $hardcode_libdir_flag_spec\"
45555c42550eSmrg      fi
45565c42550eSmrg      finalize_rpath="$rpath"
4557ab47cfaaSmrg
45585c42550eSmrg      if test -n "$libobjs" && test "$build_old_libs" = yes; then
45595c42550eSmrg	# Transform all the library objects into standard objects.
45605c42550eSmrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45615c42550eSmrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45625c42550eSmrg      fi
4563ab47cfaaSmrg
45645c42550eSmrg      dlsyms=
45655c42550eSmrg      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
45665c42550eSmrg	if test -n "$NM" && test -n "$global_symbol_pipe"; then
45675c42550eSmrg	  dlsyms="${outputname}S.c"
45685c42550eSmrg	else
45695c42550eSmrg	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
45705c42550eSmrg	fi
45715c42550eSmrg      fi
4572ab47cfaaSmrg
45735c42550eSmrg      if test -n "$dlsyms"; then
45745c42550eSmrg	case $dlsyms in
45755c42550eSmrg	"") ;;
45765c42550eSmrg	*.c)
45775c42550eSmrg	  # Discover the nlist of each of the dlfiles.
45785c42550eSmrg	  nlist="$output_objdir/${outputname}.nm"
4579ab47cfaaSmrg
45805c42550eSmrg	  $show "$rm $nlist ${nlist}S ${nlist}T"
45815c42550eSmrg	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4582ab47cfaaSmrg
45835c42550eSmrg	  # Parse the name list into a source file.
45845c42550eSmrg	  $show "creating $output_objdir/$dlsyms"
4585ab47cfaaSmrg
45865c42550eSmrg	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
45875c42550eSmrg/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
45885c42550eSmrg/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4589ab47cfaaSmrg
45905c42550eSmrg#ifdef __cplusplus
45915c42550eSmrgextern \"C\" {
45925c42550eSmrg#endif
4593ab47cfaaSmrg
45945c42550eSmrg/* Prevent the only kind of declaration conflicts we can make. */
45955c42550eSmrg#define lt_preloaded_symbols some_other_symbol
4596ab47cfaaSmrg
45975c42550eSmrg/* External symbol declarations for the compiler. */\
45985c42550eSmrg"
4599ab47cfaaSmrg
46005c42550eSmrg	  if test "$dlself" = yes; then
46015c42550eSmrg	    $show "generating symbol list for \`$output'"
4602ab47cfaaSmrg
46035c42550eSmrg	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4604ab47cfaaSmrg
46055c42550eSmrg	    # Add our own program objects to the symbol list.
46065c42550eSmrg	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
46075c42550eSmrg	    for arg in $progfiles; do
46085c42550eSmrg	      $show "extracting global C symbols from \`$arg'"
46095c42550eSmrg	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46105c42550eSmrg	    done
4611ab47cfaaSmrg
46125c42550eSmrg	    if test -n "$exclude_expsyms"; then
46135c42550eSmrg	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
46145c42550eSmrg	      $run eval '$mv "$nlist"T "$nlist"'
46155c42550eSmrg	    fi
4616ab47cfaaSmrg
46175c42550eSmrg	    if test -n "$export_symbols_regex"; then
46185c42550eSmrg	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
46195c42550eSmrg	      $run eval '$mv "$nlist"T "$nlist"'
46205c42550eSmrg	    fi
4621ab47cfaaSmrg
46225c42550eSmrg	    # Prepare the list of exported symbols
46235c42550eSmrg	    if test -z "$export_symbols"; then
46245c42550eSmrg	      export_symbols="$output_objdir/$outputname.exp"
46255c42550eSmrg	      $run $rm $export_symbols
46265c42550eSmrg	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
46275c42550eSmrg              case $host in
46285c42550eSmrg              *cygwin* | *mingw* )
46295c42550eSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46305c42550eSmrg		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
46315c42550eSmrg                ;;
46325c42550eSmrg              esac
46335c42550eSmrg	    else
46345c42550eSmrg	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
46355c42550eSmrg	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
46365c42550eSmrg	      $run eval 'mv "$nlist"T "$nlist"'
46375c42550eSmrg              case $host in
46385c42550eSmrg              *cygwin* | *mingw* )
46395c42550eSmrg	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46405c42550eSmrg		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
46415c42550eSmrg                ;;
46425c42550eSmrg              esac
46435c42550eSmrg	    fi
46445c42550eSmrg	  fi
4645ab47cfaaSmrg
46465c42550eSmrg	  for arg in $dlprefiles; do
46475c42550eSmrg	    $show "extracting global C symbols from \`$arg'"
46485c42550eSmrg	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
46495c42550eSmrg	    $run eval '$echo ": $name " >> "$nlist"'
46505c42550eSmrg	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46515c42550eSmrg	  done
4652ab47cfaaSmrg
46535c42550eSmrg	  if test -z "$run"; then
46545c42550eSmrg	    # Make sure we have at least an empty file.
46555c42550eSmrg	    test -f "$nlist" || : > "$nlist"
4656ab47cfaaSmrg
46575c42550eSmrg	    if test -n "$exclude_expsyms"; then
46585c42550eSmrg	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
46595c42550eSmrg	      $mv "$nlist"T "$nlist"
46605c42550eSmrg	    fi
4661ab47cfaaSmrg
46625c42550eSmrg	    # Try sorting and uniquifying the output.
46635c42550eSmrg	    if grep -v "^: " < "$nlist" |
46645c42550eSmrg		if sort -k 3 </dev/null >/dev/null 2>&1; then
46655c42550eSmrg		  sort -k 3
46665c42550eSmrg		else
46675c42550eSmrg		  sort +2
46685c42550eSmrg		fi |
46695c42550eSmrg		uniq > "$nlist"S; then
46705c42550eSmrg	      :
46715c42550eSmrg	    else
46725c42550eSmrg	      grep -v "^: " < "$nlist" > "$nlist"S
46735c42550eSmrg	    fi
4674ab47cfaaSmrg
46755c42550eSmrg	    if test -f "$nlist"S; then
46765c42550eSmrg	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
46775c42550eSmrg	    else
46785c42550eSmrg	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
46795c42550eSmrg	    fi
4680ab47cfaaSmrg
46815c42550eSmrg	    $echo >> "$output_objdir/$dlsyms" "\
4682ab47cfaaSmrg
46835c42550eSmrg#undef lt_preloaded_symbols
4684ab47cfaaSmrg
46855c42550eSmrg#if defined (__STDC__) && __STDC__
46865c42550eSmrg# define lt_ptr void *
46875c42550eSmrg#else
46885c42550eSmrg# define lt_ptr char *
46895c42550eSmrg# define const
46905c42550eSmrg#endif
4691ab47cfaaSmrg
46925c42550eSmrg/* The mapping between symbol names and symbols. */
46935c42550eSmrg"
4694ab47cfaaSmrg
46955c42550eSmrg	    case $host in
46965c42550eSmrg	    *cygwin* | *mingw* )
46975c42550eSmrg	  $echo >> "$output_objdir/$dlsyms" "\
46985c42550eSmrg/* DATA imports from DLLs on WIN32 can't be const, because
46995c42550eSmrg   runtime relocations are performed -- see ld's documentation
47005c42550eSmrg   on pseudo-relocs */
47015c42550eSmrgstruct {
47025c42550eSmrg"
47035c42550eSmrg	      ;;
47045c42550eSmrg	    * )
47055c42550eSmrg	  $echo >> "$output_objdir/$dlsyms" "\
47065c42550eSmrgconst struct {
47075c42550eSmrg"
47085c42550eSmrg	      ;;
47095c42550eSmrg	    esac
4710ab47cfaaSmrg
4711ab47cfaaSmrg
47125c42550eSmrg	  $echo >> "$output_objdir/$dlsyms" "\
47135c42550eSmrg  const char *name;
47145c42550eSmrg  lt_ptr address;
47155c42550eSmrg}
47165c42550eSmrglt_preloaded_symbols[] =
47175c42550eSmrg{\
47185c42550eSmrg"
4719ab47cfaaSmrg
47205c42550eSmrg	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4721ab47cfaaSmrg
47225c42550eSmrg	    $echo >> "$output_objdir/$dlsyms" "\
47235c42550eSmrg  {0, (lt_ptr) 0}
47245c42550eSmrg};
4725ab47cfaaSmrg
47265c42550eSmrg/* This works around a problem in FreeBSD linker */
47275c42550eSmrg#ifdef FREEBSD_WORKAROUND
47285c42550eSmrgstatic const void *lt_preloaded_setup() {
47295c42550eSmrg  return lt_preloaded_symbols;
47305c42550eSmrg}
47315c42550eSmrg#endif
4732ab47cfaaSmrg
47335c42550eSmrg#ifdef __cplusplus
47345c42550eSmrg}
47355c42550eSmrg#endif\
47365c42550eSmrg"
47371473d951Smrg	  fi
4738ab47cfaaSmrg
47395c42550eSmrg	  pic_flag_for_symtable=
47405c42550eSmrg	  case $host in
47415c42550eSmrg	  # compiling the symbol table file with pic_flag works around
47425c42550eSmrg	  # a FreeBSD bug that causes programs to crash when -lm is
47435c42550eSmrg	  # linked before any other PIC object.  But we must not use
47445c42550eSmrg	  # pic_flag when linking with -static.  The problem exists in
47455c42550eSmrg	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
47465c42550eSmrg	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
47475c42550eSmrg	    case "$compile_command " in
47485c42550eSmrg	    *" -static "*) ;;
47495c42550eSmrg	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
47505c42550eSmrg	    esac;;
47515c42550eSmrg	  *-*-hpux*)
47525c42550eSmrg	    case "$compile_command " in
47535c42550eSmrg	    *" -static "*) ;;
47545c42550eSmrg	    *) pic_flag_for_symtable=" $pic_flag";;
47555c42550eSmrg	    esac
47565c42550eSmrg	  esac
4757ab47cfaaSmrg
47585c42550eSmrg	  # Now compile the dynamic symbol file.
47595c42550eSmrg	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
47605c42550eSmrg	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4761ab47cfaaSmrg
47625c42550eSmrg	  # Clean up the generated files.
47635c42550eSmrg	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
47645c42550eSmrg	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4765ab47cfaaSmrg
47665c42550eSmrg	  # Transform the symbol file into the correct name.
47675c42550eSmrg          case $host in
47685c42550eSmrg          *cygwin* | *mingw* )
47695c42550eSmrg            if test -f "$output_objdir/${outputname}.def" ; then
47705c42550eSmrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47715c42550eSmrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47725c42550eSmrg            else
47735c42550eSmrg              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47745c42550eSmrg              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47755c42550eSmrg             fi
47765c42550eSmrg            ;;
47775c42550eSmrg          * )
47785c42550eSmrg            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47795c42550eSmrg            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47805c42550eSmrg            ;;
47815c42550eSmrg          esac
47825c42550eSmrg	  ;;
47835c42550eSmrg	*)
47845c42550eSmrg	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
47855c42550eSmrg	  exit $EXIT_FAILURE
47865c42550eSmrg	  ;;
47875c42550eSmrg	esac
47885c42550eSmrg      else
47895c42550eSmrg	# We keep going just in case the user didn't refer to
47905c42550eSmrg	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
47915c42550eSmrg	# really was required.
4792ab47cfaaSmrg
47935c42550eSmrg	# Nullify the symbol file.
47945c42550eSmrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
47955c42550eSmrg	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
47965c42550eSmrg      fi
4797ab47cfaaSmrg
47985c42550eSmrg      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
47995c42550eSmrg	# Replace the output file specification.
48005c42550eSmrg	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
48015c42550eSmrg	link_command="$compile_command$compile_rpath"
4802ab47cfaaSmrg
48035c42550eSmrg	# We have no uninstalled library dependencies, so finalize right now.
48045c42550eSmrg	$show "$link_command"
48055c42550eSmrg	$run eval "$link_command"
48065c42550eSmrg	exit_status=$?
4807ab47cfaaSmrg
48085c42550eSmrg	# Delete the generated files.
48095c42550eSmrg	if test -n "$dlsyms"; then
48105c42550eSmrg	  $show "$rm $output_objdir/${outputname}S.${objext}"
48115c42550eSmrg	  $run $rm "$output_objdir/${outputname}S.${objext}"
48121473d951Smrg	fi
4813ab47cfaaSmrg
48145c42550eSmrg	exit $exit_status
48155c42550eSmrg      fi
4816ab47cfaaSmrg
48175c42550eSmrg      if test -n "$shlibpath_var"; then
48185c42550eSmrg	# We should set the shlibpath_var
48195c42550eSmrg	rpath=
48205c42550eSmrg	for dir in $temp_rpath; do
48215c42550eSmrg	  case $dir in
48225c42550eSmrg	  [\\/]* | [A-Za-z]:[\\/]*)
48235c42550eSmrg	    # Absolute path.
48245c42550eSmrg	    rpath="$rpath$dir:"
48255c42550eSmrg	    ;;
48265c42550eSmrg	  *)
48275c42550eSmrg	    # Relative path: add a thisdir entry.
48285c42550eSmrg	    rpath="$rpath\$thisdir/$dir:"
48295c42550eSmrg	    ;;
48305c42550eSmrg	  esac
48315c42550eSmrg	done
48325c42550eSmrg	temp_rpath="$rpath"
48331473d951Smrg      fi
48348697ee19Smrg
48355c42550eSmrg      if test -n "$compile_shlibpath$finalize_shlibpath"; then
48365c42550eSmrg	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
48375c42550eSmrg      fi
48385c42550eSmrg      if test -n "$finalize_shlibpath"; then
48395c42550eSmrg	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
48405c42550eSmrg      fi
4841ab47cfaaSmrg
48425c42550eSmrg      compile_var=
48435c42550eSmrg      finalize_var=
48445c42550eSmrg      if test -n "$runpath_var"; then
48455c42550eSmrg	if test -n "$perm_rpath"; then
48465c42550eSmrg	  # We should set the runpath_var.
48475c42550eSmrg	  rpath=
48485c42550eSmrg	  for dir in $perm_rpath; do
48495c42550eSmrg	    rpath="$rpath$dir:"
48505c42550eSmrg	  done
48515c42550eSmrg	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
48525c42550eSmrg	fi
48535c42550eSmrg	if test -n "$finalize_perm_rpath"; then
48545c42550eSmrg	  # We should set the runpath_var.
48555c42550eSmrg	  rpath=
48565c42550eSmrg	  for dir in $finalize_perm_rpath; do
48575c42550eSmrg	    rpath="$rpath$dir:"
48585c42550eSmrg	  done
48595c42550eSmrg	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
48605c42550eSmrg	fi
48615c42550eSmrg      fi
4862ab47cfaaSmrg
48635c42550eSmrg      if test "$no_install" = yes; then
48645c42550eSmrg	# We don't need to create a wrapper script.
48655c42550eSmrg	link_command="$compile_var$compile_command$compile_rpath"
48665c42550eSmrg	# Replace the output file specification.
48675c42550eSmrg	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
48685c42550eSmrg	# Delete the old output file.
48695c42550eSmrg	$run $rm $output
48705c42550eSmrg	# Link the executable and exit
48715c42550eSmrg	$show "$link_command"
48725c42550eSmrg	$run eval "$link_command" || exit $?
48735c42550eSmrg	exit $EXIT_SUCCESS
48745c42550eSmrg      fi
48751473d951Smrg
48765c42550eSmrg      if test "$hardcode_action" = relink; then
48775c42550eSmrg	# Fast installation is not supported
48785c42550eSmrg	link_command="$compile_var$compile_command$compile_rpath"
48795c42550eSmrg	relink_command="$finalize_var$finalize_command$finalize_rpath"
48801473d951Smrg
48815c42550eSmrg	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
48825c42550eSmrg	$echo "$modename: \`$output' will be relinked during installation" 1>&2
48835c42550eSmrg      else
48845c42550eSmrg	if test "$fast_install" != no; then
48855c42550eSmrg	  link_command="$finalize_var$compile_command$finalize_rpath"
48865c42550eSmrg	  if test "$fast_install" = yes; then
48875c42550eSmrg	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
48885c42550eSmrg	  else
48895c42550eSmrg	    # fast_install is set to needless
48905c42550eSmrg	    relink_command=
48915c42550eSmrg	  fi
48925c42550eSmrg	else
48935c42550eSmrg	  link_command="$compile_var$compile_command$compile_rpath"
48945c42550eSmrg	  relink_command="$finalize_var$finalize_command$finalize_rpath"
48955c42550eSmrg	fi
48961473d951Smrg      fi
48971473d951Smrg
48985c42550eSmrg      # Replace the output file specification.
48995c42550eSmrg      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
49001473d951Smrg
49015c42550eSmrg      # Delete the old output files.
49025c42550eSmrg      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
49031473d951Smrg
49045c42550eSmrg      $show "$link_command"
49055c42550eSmrg      $run eval "$link_command" || exit $?
49061473d951Smrg
49075c42550eSmrg      # Now create the wrapper script.
49085c42550eSmrg      $show "creating $output"
49091473d951Smrg
49105c42550eSmrg      # Quote the relink command for shipping.
49115c42550eSmrg      if test -n "$relink_command"; then
49125c42550eSmrg	# Preserve any variables that may affect compiler behavior
49135c42550eSmrg	for var in $variables_saved_for_relink; do
49145c42550eSmrg	  if eval test -z \"\${$var+set}\"; then
49155c42550eSmrg	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
49165c42550eSmrg	  elif eval var_value=\$$var; test -z "$var_value"; then
49175c42550eSmrg	    relink_command="$var=; export $var; $relink_command"
49185c42550eSmrg	  else
49195c42550eSmrg	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
49205c42550eSmrg	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
49215c42550eSmrg	  fi
49221473d951Smrg	done
49235c42550eSmrg	relink_command="(cd `pwd`; $relink_command)"
49245c42550eSmrg	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
49251473d951Smrg      fi
49261473d951Smrg
49275c42550eSmrg      # Quote $echo for shipping.
49285c42550eSmrg      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
49295c42550eSmrg	case $progpath in
49305c42550eSmrg	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
49315c42550eSmrg	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
49321473d951Smrg	esac
49335c42550eSmrg	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
49345c42550eSmrg      else
49355c42550eSmrg	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
49361473d951Smrg      fi
49371473d951Smrg
49385c42550eSmrg      # Only actually do things if our run command is non-null.
49395c42550eSmrg      if test -z "$run"; then
49405c42550eSmrg	# win32 will think the script is a binary if it has
49415c42550eSmrg	# a .exe suffix, so we strip it off here.
49425c42550eSmrg	case $output in
49435c42550eSmrg	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
49445c42550eSmrg	esac
49455c42550eSmrg	# test for cygwin because mv fails w/o .exe extensions
49465c42550eSmrg	case $host in
49475c42550eSmrg	  *cygwin*)
49485c42550eSmrg	    exeext=.exe
49495c42550eSmrg	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
49505c42550eSmrg	  *) exeext= ;;
49515c42550eSmrg	esac
49525c42550eSmrg	case $host in
49535c42550eSmrg	  *cygwin* | *mingw* )
49545c42550eSmrg            output_name=`basename $output`
49555c42550eSmrg            output_path=`dirname $output`
49565c42550eSmrg            cwrappersource="$output_path/$objdir/lt-$output_name.c"
49575c42550eSmrg            cwrapper="$output_path/$output_name.exe"
49585c42550eSmrg            $rm $cwrappersource $cwrapper
49595c42550eSmrg            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
49601473d951Smrg
49615c42550eSmrg	    cat > $cwrappersource <<EOF
49621473d951Smrg
49635c42550eSmrg/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
49645c42550eSmrg   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
49651473d951Smrg
49665c42550eSmrg   The $output program cannot be directly executed until all the libtool
49675c42550eSmrg   libraries that it depends on are installed.
49681473d951Smrg
49695c42550eSmrg   This wrapper executable should never be moved out of the build directory.
49705c42550eSmrg   If it is, it will not operate correctly.
49711473d951Smrg
49725c42550eSmrg   Currently, it simply execs the wrapper *script* "/bin/sh $output",
49735c42550eSmrg   but could eventually absorb all of the scripts functionality and
49745c42550eSmrg   exec $objdir/$outputname directly.
49755c42550eSmrg*/
49765c42550eSmrgEOF
49775c42550eSmrg	    cat >> $cwrappersource<<"EOF"
49785c42550eSmrg#include <stdio.h>
49795c42550eSmrg#include <stdlib.h>
49805c42550eSmrg#include <unistd.h>
49815c42550eSmrg#include <malloc.h>
49825c42550eSmrg#include <stdarg.h>
49835c42550eSmrg#include <assert.h>
49845c42550eSmrg#include <string.h>
49855c42550eSmrg#include <ctype.h>
49865c42550eSmrg#include <sys/stat.h>
49871473d951Smrg
49885c42550eSmrg#if defined(PATH_MAX)
49895c42550eSmrg# define LT_PATHMAX PATH_MAX
49905c42550eSmrg#elif defined(MAXPATHLEN)
49915c42550eSmrg# define LT_PATHMAX MAXPATHLEN
49925c42550eSmrg#else
49935c42550eSmrg# define LT_PATHMAX 1024
49945c42550eSmrg#endif
49951473d951Smrg
49965c42550eSmrg#ifndef DIR_SEPARATOR
49975c42550eSmrg# define DIR_SEPARATOR '/'
49985c42550eSmrg# define PATH_SEPARATOR ':'
49995c42550eSmrg#endif
50001473d951Smrg
50015c42550eSmrg#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
50025c42550eSmrg  defined (__OS2__)
50035c42550eSmrg# define HAVE_DOS_BASED_FILE_SYSTEM
50045c42550eSmrg# ifndef DIR_SEPARATOR_2
50055c42550eSmrg#  define DIR_SEPARATOR_2 '\\'
50065c42550eSmrg# endif
50075c42550eSmrg# ifndef PATH_SEPARATOR_2
50085c42550eSmrg#  define PATH_SEPARATOR_2 ';'
50095c42550eSmrg# endif
50105c42550eSmrg#endif
50111473d951Smrg
50125c42550eSmrg#ifndef DIR_SEPARATOR_2
50135c42550eSmrg# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
50145c42550eSmrg#else /* DIR_SEPARATOR_2 */
50155c42550eSmrg# define IS_DIR_SEPARATOR(ch) \
50165c42550eSmrg        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
50175c42550eSmrg#endif /* DIR_SEPARATOR_2 */
50181473d951Smrg
50195c42550eSmrg#ifndef PATH_SEPARATOR_2
50205c42550eSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
50215c42550eSmrg#else /* PATH_SEPARATOR_2 */
50225c42550eSmrg# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
50235c42550eSmrg#endif /* PATH_SEPARATOR_2 */
50241473d951Smrg
50255c42550eSmrg#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
50265c42550eSmrg#define XFREE(stale) do { \
50275c42550eSmrg  if (stale) { free ((void *) stale); stale = 0; } \
50285c42550eSmrg} while (0)
50291473d951Smrg
50305c42550eSmrg/* -DDEBUG is fairly common in CFLAGS.  */
50315c42550eSmrg#undef DEBUG
50325c42550eSmrg#if defined DEBUGWRAPPER
50335c42550eSmrg# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
50345c42550eSmrg#else
50355c42550eSmrg# define DEBUG(format, ...)
50365c42550eSmrg#endif
50371473d951Smrg
50385c42550eSmrgconst char *program_name = NULL;
50391473d951Smrg
50405c42550eSmrgvoid * xmalloc (size_t num);
50415c42550eSmrgchar * xstrdup (const char *string);
50425c42550eSmrgconst char * base_name (const char *name);
50435c42550eSmrgchar * find_executable(const char *wrapper);
50445c42550eSmrgint    check_executable(const char *path);
50455c42550eSmrgchar * strendzap(char *str, const char *pat);
50465c42550eSmrgvoid lt_fatal (const char *message, ...);
50471473d951Smrg
50485c42550eSmrgint
50495c42550eSmrgmain (int argc, char *argv[])
50505c42550eSmrg{
50515c42550eSmrg  char **newargz;
50525c42550eSmrg  int i;
50531473d951Smrg
50545c42550eSmrg  program_name = (char *) xstrdup (base_name (argv[0]));
50555c42550eSmrg  DEBUG("(main) argv[0]      : %s\n",argv[0]);
50565c42550eSmrg  DEBUG("(main) program_name : %s\n",program_name);
50575c42550eSmrg  newargz = XMALLOC(char *, argc+2);
50585c42550eSmrgEOF
50591473d951Smrg
50605c42550eSmrg            cat >> $cwrappersource <<EOF
50615c42550eSmrg  newargz[0] = (char *) xstrdup("$SHELL");
50625c42550eSmrgEOF
50631473d951Smrg
50645c42550eSmrg            cat >> $cwrappersource <<"EOF"
50655c42550eSmrg  newargz[1] = find_executable(argv[0]);
50665c42550eSmrg  if (newargz[1] == NULL)
50675c42550eSmrg    lt_fatal("Couldn't find %s", argv[0]);
50685c42550eSmrg  DEBUG("(main) found exe at : %s\n",newargz[1]);
50695c42550eSmrg  /* we know the script has the same name, without the .exe */
50705c42550eSmrg  /* so make sure newargz[1] doesn't end in .exe */
50715c42550eSmrg  strendzap(newargz[1],".exe");
50725c42550eSmrg  for (i = 1; i < argc; i++)
50735c42550eSmrg    newargz[i+1] = xstrdup(argv[i]);
50745c42550eSmrg  newargz[argc+1] = NULL;
50751473d951Smrg
50765c42550eSmrg  for (i=0; i<argc+1; i++)
50775c42550eSmrg  {
50785c42550eSmrg    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
50795c42550eSmrg    ;
50805c42550eSmrg  }
50811473d951Smrg
50825c42550eSmrgEOF
50831473d951Smrg
50845c42550eSmrg            case $host_os in
50855c42550eSmrg              mingw*)
50865c42550eSmrg                cat >> $cwrappersource <<EOF
50875c42550eSmrg  execv("$SHELL",(char const **)newargz);
50885c42550eSmrgEOF
50895c42550eSmrg              ;;
50905c42550eSmrg              *)
50915c42550eSmrg                cat >> $cwrappersource <<EOF
50925c42550eSmrg  execv("$SHELL",newargz);
50935c42550eSmrgEOF
50945c42550eSmrg              ;;
50955c42550eSmrg            esac
50961473d951Smrg
50975c42550eSmrg            cat >> $cwrappersource <<"EOF"
50985c42550eSmrg  return 127;
50995c42550eSmrg}
51001473d951Smrg
51015c42550eSmrgvoid *
51025c42550eSmrgxmalloc (size_t num)
51035c42550eSmrg{
51045c42550eSmrg  void * p = (void *) malloc (num);
51055c42550eSmrg  if (!p)
51065c42550eSmrg    lt_fatal ("Memory exhausted");
51071473d951Smrg
51085c42550eSmrg  return p;
51095c42550eSmrg}
51101473d951Smrg
51115c42550eSmrgchar *
51125c42550eSmrgxstrdup (const char *string)
51135c42550eSmrg{
51145c42550eSmrg  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
51155c42550eSmrg;
51165c42550eSmrg}
51171473d951Smrg
51185c42550eSmrgconst char *
51195c42550eSmrgbase_name (const char *name)
51205c42550eSmrg{
51215c42550eSmrg  const char *base;
51221473d951Smrg
51235c42550eSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51245c42550eSmrg  /* Skip over the disk name in MSDOS pathnames. */
51255c42550eSmrg  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
51265c42550eSmrg    name += 2;
51275c42550eSmrg#endif
51281473d951Smrg
51295c42550eSmrg  for (base = name; *name; name++)
51305c42550eSmrg    if (IS_DIR_SEPARATOR (*name))
51315c42550eSmrg      base = name + 1;
51325c42550eSmrg  return base;
51335c42550eSmrg}
51341473d951Smrg
51355c42550eSmrgint
51365c42550eSmrgcheck_executable(const char * path)
51375c42550eSmrg{
51385c42550eSmrg  struct stat st;
51391473d951Smrg
51405c42550eSmrg  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
51415c42550eSmrg  if ((!path) || (!*path))
51425c42550eSmrg    return 0;
51431473d951Smrg
51445c42550eSmrg  if ((stat (path, &st) >= 0) &&
51455c42550eSmrg      (
51465c42550eSmrg        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
51475c42550eSmrg#if defined (S_IXOTH)
51485c42550eSmrg       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
51495c42550eSmrg#endif
51505c42550eSmrg#if defined (S_IXGRP)
51515c42550eSmrg       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
51525c42550eSmrg#endif
51535c42550eSmrg       ((st.st_mode & S_IXUSR) == S_IXUSR))
51545c42550eSmrg      )
51555c42550eSmrg    return 1;
51565c42550eSmrg  else
51575c42550eSmrg    return 0;
51585c42550eSmrg}
51591473d951Smrg
51605c42550eSmrg/* Searches for the full path of the wrapper.  Returns
51615c42550eSmrg   newly allocated full path name if found, NULL otherwise */
51625c42550eSmrgchar *
51635c42550eSmrgfind_executable (const char* wrapper)
51645c42550eSmrg{
51655c42550eSmrg  int has_slash = 0;
51665c42550eSmrg  const char* p;
51675c42550eSmrg  const char* p_next;
51685c42550eSmrg  /* static buffer for getcwd */
51695c42550eSmrg  char tmp[LT_PATHMAX + 1];
51705c42550eSmrg  int tmp_len;
51715c42550eSmrg  char* concat_name;
51721473d951Smrg
51735c42550eSmrg  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
51741473d951Smrg
51755c42550eSmrg  if ((wrapper == NULL) || (*wrapper == '\0'))
51765c42550eSmrg    return NULL;
5177ab47cfaaSmrg
51785c42550eSmrg  /* Absolute path? */
51795c42550eSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51805c42550eSmrg  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
51815c42550eSmrg  {
51825c42550eSmrg    concat_name = xstrdup (wrapper);
51835c42550eSmrg    if (check_executable(concat_name))
51845c42550eSmrg      return concat_name;
51855c42550eSmrg    XFREE(concat_name);
51865c42550eSmrg  }
51875c42550eSmrg  else
51885c42550eSmrg  {
51895c42550eSmrg#endif
51905c42550eSmrg    if (IS_DIR_SEPARATOR (wrapper[0]))
51915c42550eSmrg    {
51925c42550eSmrg      concat_name = xstrdup (wrapper);
51935c42550eSmrg      if (check_executable(concat_name))
51945c42550eSmrg        return concat_name;
51955c42550eSmrg      XFREE(concat_name);
51965c42550eSmrg    }
51975c42550eSmrg#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51985c42550eSmrg  }
51995c42550eSmrg#endif
52005c42550eSmrg
52015c42550eSmrg  for (p = wrapper; *p; p++)
52025c42550eSmrg    if (*p == '/')
52035c42550eSmrg    {
52045c42550eSmrg      has_slash = 1;
52055c42550eSmrg      break;
52065c42550eSmrg    }
52075c42550eSmrg  if (!has_slash)
52085c42550eSmrg  {
52095c42550eSmrg    /* no slashes; search PATH */
52105c42550eSmrg    const char* path = getenv ("PATH");
52115c42550eSmrg    if (path != NULL)
52125c42550eSmrg    {
52135c42550eSmrg      for (p = path; *p; p = p_next)
52145c42550eSmrg      {
52155c42550eSmrg        const char* q;
52165c42550eSmrg        size_t p_len;
52175c42550eSmrg        for (q = p; *q; q++)
52185c42550eSmrg          if (IS_PATH_SEPARATOR(*q))
52195c42550eSmrg            break;
52205c42550eSmrg        p_len = q - p;
52215c42550eSmrg        p_next = (*q == '\0' ? q : q + 1);
52225c42550eSmrg        if (p_len == 0)
52235c42550eSmrg        {
52245c42550eSmrg          /* empty path: current directory */
52255c42550eSmrg          if (getcwd (tmp, LT_PATHMAX) == NULL)
52265c42550eSmrg            lt_fatal ("getcwd failed");
52275c42550eSmrg          tmp_len = strlen(tmp);
52285c42550eSmrg          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52295c42550eSmrg          memcpy (concat_name, tmp, tmp_len);
52305c42550eSmrg          concat_name[tmp_len] = '/';
52315c42550eSmrg          strcpy (concat_name + tmp_len + 1, wrapper);
52325c42550eSmrg        }
52335c42550eSmrg        else
52345c42550eSmrg        {
52355c42550eSmrg          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
52365c42550eSmrg          memcpy (concat_name, p, p_len);
52375c42550eSmrg          concat_name[p_len] = '/';
52385c42550eSmrg          strcpy (concat_name + p_len + 1, wrapper);
52395c42550eSmrg        }
52405c42550eSmrg        if (check_executable(concat_name))
52415c42550eSmrg          return concat_name;
52425c42550eSmrg        XFREE(concat_name);
52435c42550eSmrg      }
52445c42550eSmrg    }
52455c42550eSmrg    /* not found in PATH; assume curdir */
52465c42550eSmrg  }
52475c42550eSmrg  /* Relative path | not found in path: prepend cwd */
52485c42550eSmrg  if (getcwd (tmp, LT_PATHMAX) == NULL)
52495c42550eSmrg    lt_fatal ("getcwd failed");
52505c42550eSmrg  tmp_len = strlen(tmp);
52515c42550eSmrg  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52525c42550eSmrg  memcpy (concat_name, tmp, tmp_len);
52535c42550eSmrg  concat_name[tmp_len] = '/';
52545c42550eSmrg  strcpy (concat_name + tmp_len + 1, wrapper);
52555c42550eSmrg
52565c42550eSmrg  if (check_executable(concat_name))
52575c42550eSmrg    return concat_name;
52585c42550eSmrg  XFREE(concat_name);
52595c42550eSmrg  return NULL;
52605c42550eSmrg}
52615c42550eSmrg
52625c42550eSmrgchar *
52635c42550eSmrgstrendzap(char *str, const char *pat)
52645c42550eSmrg{
52655c42550eSmrg  size_t len, patlen;
52665c42550eSmrg
52675c42550eSmrg  assert(str != NULL);
52685c42550eSmrg  assert(pat != NULL);
52695c42550eSmrg
52705c42550eSmrg  len = strlen(str);
52715c42550eSmrg  patlen = strlen(pat);
52725c42550eSmrg
52735c42550eSmrg  if (patlen <= len)
52745c42550eSmrg  {
52755c42550eSmrg    str += len - patlen;
52765c42550eSmrg    if (strcmp(str, pat) == 0)
52775c42550eSmrg      *str = '\0';
52785c42550eSmrg  }
52795c42550eSmrg  return str;
52805c42550eSmrg}
52815c42550eSmrg
52825c42550eSmrgstatic void
52835c42550eSmrglt_error_core (int exit_status, const char * mode,
52845c42550eSmrg          const char * message, va_list ap)
52855c42550eSmrg{
52865c42550eSmrg  fprintf (stderr, "%s: %s: ", program_name, mode);
52875c42550eSmrg  vfprintf (stderr, message, ap);
52885c42550eSmrg  fprintf (stderr, ".\n");
52895c42550eSmrg
52905c42550eSmrg  if (exit_status >= 0)
52915c42550eSmrg    exit (exit_status);
52925c42550eSmrg}
52935c42550eSmrg
52945c42550eSmrgvoid
52955c42550eSmrglt_fatal (const char *message, ...)
52965c42550eSmrg{
52975c42550eSmrg  va_list ap;
52985c42550eSmrg  va_start (ap, message);
52995c42550eSmrg  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
53005c42550eSmrg  va_end (ap);
53015c42550eSmrg}
53025c42550eSmrgEOF
53035c42550eSmrg          # we should really use a build-platform specific compiler
53045c42550eSmrg          # here, but OTOH, the wrappers (shell script and this C one)
53055c42550eSmrg          # are only useful if you want to execute the "real" binary.
53065c42550eSmrg          # Since the "real" binary is built for $host, then this
53075c42550eSmrg          # wrapper might as well be built for $host, too.
53085c42550eSmrg          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
53095c42550eSmrg          ;;
53105c42550eSmrg        esac
53115c42550eSmrg        $rm $output
53125c42550eSmrg        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
53135c42550eSmrg
53145c42550eSmrg	$echo > $output "\
53155c42550eSmrg#! $SHELL
53165c42550eSmrg
53175c42550eSmrg# $output - temporary wrapper script for $objdir/$outputname
53185c42550eSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
53195c42550eSmrg#
53205c42550eSmrg# The $output program cannot be directly executed until all the libtool
53215c42550eSmrg# libraries that it depends on are installed.
53225c42550eSmrg#
53235c42550eSmrg# This wrapper script should never be moved out of the build directory.
53245c42550eSmrg# If it is, it will not operate correctly.
53255c42550eSmrg
53265c42550eSmrg# Sed substitution that helps us do robust quoting.  It backslashifies
53275c42550eSmrg# metacharacters that are still active within double-quoted strings.
53285c42550eSmrgXsed='${SED} -e 1s/^X//'
53295c42550eSmrgsed_quote_subst='$sed_quote_subst'
53305c42550eSmrg
53315c42550eSmrg# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
53325c42550eSmrgif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
53335c42550eSmrg  emulate sh
53345c42550eSmrg  NULLCMD=:
53355c42550eSmrg  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
53365c42550eSmrg  # is contrary to our usage.  Disable this feature.
53375c42550eSmrg  alias -g '\${1+\"\$@\"}'='\"\$@\"'
53385c42550eSmrg  setopt NO_GLOB_SUBST
53395c42550eSmrgelse
53405c42550eSmrg  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
53415c42550eSmrgfi
53425c42550eSmrgBIN_SH=xpg4; export BIN_SH # for Tru64
53435c42550eSmrgDUALCASE=1; export DUALCASE # for MKS sh
53445c42550eSmrg
53455c42550eSmrg# The HP-UX ksh and POSIX shell print the target directory to stdout
53465c42550eSmrg# if CDPATH is set.
53475c42550eSmrg(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
53485c42550eSmrg
53495c42550eSmrgrelink_command=\"$relink_command\"
53505c42550eSmrg
53515c42550eSmrg# This environment variable determines our operation mode.
53525c42550eSmrgif test \"\$libtool_install_magic\" = \"$magic\"; then
53535c42550eSmrg  # install mode needs the following variable:
53545c42550eSmrg  notinst_deplibs='$notinst_deplibs'
53555c42550eSmrgelse
53565c42550eSmrg  # When we are sourced in execute mode, \$file and \$echo are already set.
53575c42550eSmrg  if test \"\$libtool_execute_magic\" != \"$magic\"; then
53585c42550eSmrg    echo=\"$qecho\"
53595c42550eSmrg    file=\"\$0\"
53605c42550eSmrg    # Make sure echo works.
53615c42550eSmrg    if test \"X\$1\" = X--no-reexec; then
53625c42550eSmrg      # Discard the --no-reexec flag, and continue.
53635c42550eSmrg      shift
53645c42550eSmrg    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
53655c42550eSmrg      # Yippee, \$echo works!
53665c42550eSmrg      :
53675c42550eSmrg    else
53685c42550eSmrg      # Restart under the correct shell, and then maybe \$echo will work.
53695c42550eSmrg      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
53705c42550eSmrg    fi
53715c42550eSmrg  fi\
53725c42550eSmrg"
53735c42550eSmrg	$echo >> $output "\
5374ab47cfaaSmrg
53755c42550eSmrg  # Find the directory that this script lives in.
53765c42550eSmrg  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
53775c42550eSmrg  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5378ab47cfaaSmrg
53795c42550eSmrg  # Follow symbolic links until we get to the real thisdir.
53805c42550eSmrg  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
53815c42550eSmrg  while test -n \"\$file\"; do
53825c42550eSmrg    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5383ab47cfaaSmrg
53845c42550eSmrg    # If there was a directory component, then change thisdir.
53855c42550eSmrg    if test \"x\$destdir\" != \"x\$file\"; then
53865c42550eSmrg      case \"\$destdir\" in
53875c42550eSmrg      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
53885c42550eSmrg      *) thisdir=\"\$thisdir/\$destdir\" ;;
53895c42550eSmrg      esac
53905c42550eSmrg    fi
5391ab47cfaaSmrg
53925c42550eSmrg    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
53935c42550eSmrg    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
53945c42550eSmrg  done
5395ab47cfaaSmrg
53965c42550eSmrg  # Try to get the absolute directory name.
53975c42550eSmrg  absdir=\`cd \"\$thisdir\" && pwd\`
53985c42550eSmrg  test -n \"\$absdir\" && thisdir=\"\$absdir\"
53995c42550eSmrg"
5400ab47cfaaSmrg
54015c42550eSmrg	if test "$fast_install" = yes; then
54025c42550eSmrg	  $echo >> $output "\
54035c42550eSmrg  program=lt-'$outputname'$exeext
54045c42550eSmrg  progdir=\"\$thisdir/$objdir\"
5405ab47cfaaSmrg
54065c42550eSmrg  if test ! -f \"\$progdir/\$program\" || \\
54075c42550eSmrg     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
54085c42550eSmrg       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5409ab47cfaaSmrg
54105c42550eSmrg    file=\"\$\$-\$program\"
5411ab47cfaaSmrg
54125c42550eSmrg    if test ! -d \"\$progdir\"; then
54135c42550eSmrg      $mkdir \"\$progdir\"
54145c42550eSmrg    else
54155c42550eSmrg      $rm \"\$progdir/\$file\"
54165c42550eSmrg    fi"
5417ab47cfaaSmrg
54185c42550eSmrg	  $echo >> $output "\
5419ab47cfaaSmrg
54205c42550eSmrg    # relink executable if necessary
54215c42550eSmrg    if test -n \"\$relink_command\"; then
54225c42550eSmrg      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
54235c42550eSmrg      else
54245c42550eSmrg	$echo \"\$relink_command_output\" >&2
54255c42550eSmrg	$rm \"\$progdir/\$file\"
54265c42550eSmrg	exit $EXIT_FAILURE
54275c42550eSmrg      fi
54285c42550eSmrg    fi
5429ab47cfaaSmrg
54305c42550eSmrg    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
54315c42550eSmrg    { $rm \"\$progdir/\$program\";
54325c42550eSmrg      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
54335c42550eSmrg    $rm \"\$progdir/\$file\"
54345c42550eSmrg  fi"
54355c42550eSmrg	else
54365c42550eSmrg	  $echo >> $output "\
54375c42550eSmrg  program='$outputname'
54385c42550eSmrg  progdir=\"\$thisdir/$objdir\"
54395c42550eSmrg"
54401473d951Smrg	fi
5441ab47cfaaSmrg
54425c42550eSmrg	$echo >> $output "\
5443ab47cfaaSmrg
54445c42550eSmrg  if test -f \"\$progdir/\$program\"; then"
5445ab47cfaaSmrg
54465c42550eSmrg	# Export our shlibpath_var if we have one.
54475c42550eSmrg	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
54485c42550eSmrg	  $echo >> $output "\
54495c42550eSmrg    # Add our own library path to $shlibpath_var
54505c42550eSmrg    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5451ab47cfaaSmrg
54525c42550eSmrg    # Some systems cannot cope with colon-terminated $shlibpath_var
54535c42550eSmrg    # The second colon is a workaround for a bug in BeOS R4 sed
54545c42550eSmrg    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5455ab47cfaaSmrg
54565c42550eSmrg    export $shlibpath_var
54575c42550eSmrg"
54585c42550eSmrg	fi
5459ab47cfaaSmrg
54605c42550eSmrg	# fixup the dll searchpath if we need to.
54615c42550eSmrg	if test -n "$dllsearchpath"; then
54625c42550eSmrg	  $echo >> $output "\
54635c42550eSmrg    # Add the dll search path components to the executable PATH
54645c42550eSmrg    PATH=$dllsearchpath:\$PATH
54655c42550eSmrg"
54665c42550eSmrg	fi
5467ab47cfaaSmrg
54685c42550eSmrg	$echo >> $output "\
54695c42550eSmrg    if test \"\$libtool_execute_magic\" != \"$magic\"; then
54705c42550eSmrg      # Run the actual program with our arguments.
54715c42550eSmrg"
54725c42550eSmrg	case $host in
54735c42550eSmrg	# Backslashes separate directories on plain windows
54745c42550eSmrg	*-*-mingw | *-*-os2*)
54755c42550eSmrg	  $echo >> $output "\
54765c42550eSmrg      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
54775c42550eSmrg"
54785c42550eSmrg	  ;;
5479ab47cfaaSmrg
54805c42550eSmrg	*)
54815c42550eSmrg	  $echo >> $output "\
54825c42550eSmrg      exec \"\$progdir/\$program\" \${1+\"\$@\"}
54835c42550eSmrg"
54845c42550eSmrg	  ;;
54855c42550eSmrg	esac
54865c42550eSmrg	$echo >> $output "\
54875c42550eSmrg      \$echo \"\$0: cannot exec \$program \$*\"
54885c42550eSmrg      exit $EXIT_FAILURE
54895c42550eSmrg    fi
54905c42550eSmrg  else
54915c42550eSmrg    # The program doesn't exist.
54925c42550eSmrg    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
54935c42550eSmrg    \$echo \"This script is just a wrapper for \$program.\" 1>&2
54945c42550eSmrg    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
54955c42550eSmrg    exit $EXIT_FAILURE
54965c42550eSmrg  fi
54975c42550eSmrgfi\
54985c42550eSmrg"
54995c42550eSmrg	chmod +x $output
55005c42550eSmrg      fi
55015c42550eSmrg      exit $EXIT_SUCCESS
55025c42550eSmrg      ;;
55035c42550eSmrg    esac
55041473d951Smrg
55055c42550eSmrg    # See if we need to build an old-fashioned archive.
55065c42550eSmrg    for oldlib in $oldlibs; do
5507ab47cfaaSmrg
55085c42550eSmrg      if test "$build_libtool_libs" = convenience; then
55095c42550eSmrg	oldobjs="$libobjs_save"
55105c42550eSmrg	addlibs="$convenience"
55115c42550eSmrg	build_libtool_libs=no
55125c42550eSmrg      else
55135c42550eSmrg	if test "$build_libtool_libs" = module; then
55145c42550eSmrg	  oldobjs="$libobjs_save"
55155c42550eSmrg	  build_libtool_libs=no
55165c42550eSmrg	else
55175c42550eSmrg	  oldobjs="$old_deplibs $non_pic_objects"
55185c42550eSmrg	fi
55195c42550eSmrg	addlibs="$old_convenience"
55205c42550eSmrg      fi
5521ab47cfaaSmrg
55225c42550eSmrg      if test -n "$addlibs"; then
55235c42550eSmrg	gentop="$output_objdir/${outputname}x"
55245c42550eSmrg	generated="$generated $gentop"
5525ab47cfaaSmrg
55265c42550eSmrg	func_extract_archives $gentop $addlibs
55275c42550eSmrg	oldobjs="$oldobjs $func_extract_archives_result"
55285c42550eSmrg      fi
5529ab47cfaaSmrg
55305c42550eSmrg      # Do each command in the archive commands.
55315c42550eSmrg      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
55325c42550eSmrg       cmds=$old_archive_from_new_cmds
55335c42550eSmrg      else
55345c42550eSmrg	# POSIX demands no paths to be encoded in archives.  We have
55355c42550eSmrg	# to avoid creating archives with duplicate basenames if we
55365c42550eSmrg	# might have to extract them afterwards, e.g., when creating a
55375c42550eSmrg	# static archive out of a convenience library, or when linking
55385c42550eSmrg	# the entirety of a libtool archive into another (currently
55395c42550eSmrg	# not supported by libtool).
55405c42550eSmrg	if (for obj in $oldobjs
55415c42550eSmrg	    do
55425c42550eSmrg	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
55435c42550eSmrg	    done | sort | sort -uc >/dev/null 2>&1); then
55445c42550eSmrg	  :
55455c42550eSmrg	else
55465c42550eSmrg	  $echo "copying selected object files to avoid basename conflicts..."
5547ab47cfaaSmrg
55485c42550eSmrg	  if test -z "$gentop"; then
55495c42550eSmrg	    gentop="$output_objdir/${outputname}x"
55505c42550eSmrg	    generated="$generated $gentop"
5551ab47cfaaSmrg
55525c42550eSmrg	    $show "${rm}r $gentop"
55535c42550eSmrg	    $run ${rm}r "$gentop"
55545c42550eSmrg	    $show "$mkdir $gentop"
55555c42550eSmrg	    $run $mkdir "$gentop"
55565c42550eSmrg	    exit_status=$?
55575c42550eSmrg	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
55585c42550eSmrg	      exit $exit_status
55591473d951Smrg	    fi
55601473d951Smrg	  fi
5561ab47cfaaSmrg
55625c42550eSmrg	  save_oldobjs=$oldobjs
55635c42550eSmrg	  oldobjs=
55645c42550eSmrg	  counter=1
55655c42550eSmrg	  for obj in $save_oldobjs
55665c42550eSmrg	  do
55675c42550eSmrg	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
55685c42550eSmrg	    case " $oldobjs " in
55695c42550eSmrg	    " ") oldobjs=$obj ;;
55705c42550eSmrg	    *[\ /]"$objbase "*)
55715c42550eSmrg	      while :; do
55725c42550eSmrg		# Make sure we don't pick an alternate name that also
55735c42550eSmrg		# overlaps.
55745c42550eSmrg		newobj=lt$counter-$objbase
55755c42550eSmrg		counter=`expr $counter + 1`
55765c42550eSmrg		case " $oldobjs " in
55775c42550eSmrg		*[\ /]"$newobj "*) ;;
55785c42550eSmrg		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
55795c42550eSmrg		esac
55805c42550eSmrg	      done
55815c42550eSmrg	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
55825c42550eSmrg	      $run ln "$obj" "$gentop/$newobj" ||
55835c42550eSmrg	      $run cp "$obj" "$gentop/$newobj"
55845c42550eSmrg	      oldobjs="$oldobjs $gentop/$newobj"
55855c42550eSmrg	      ;;
55865c42550eSmrg	    *) oldobjs="$oldobjs $obj" ;;
55875c42550eSmrg	    esac
55885c42550eSmrg	  done
55895c42550eSmrg	fi
5590ab47cfaaSmrg
55915c42550eSmrg	eval cmds=\"$old_archive_cmds\"
55921473d951Smrg
55935c42550eSmrg	if len=`expr "X$cmds" : ".*"` &&
55945c42550eSmrg	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
55955c42550eSmrg	  cmds=$old_archive_cmds
55965c42550eSmrg	else
55975c42550eSmrg	  # the command line is too long to link in one step, link in parts
55985c42550eSmrg	  $echo "using piecewise archive linking..."
55995c42550eSmrg	  save_RANLIB=$RANLIB
56005c42550eSmrg	  RANLIB=:
56015c42550eSmrg	  objlist=
56025c42550eSmrg	  concat_cmds=
56035c42550eSmrg	  save_oldobjs=$oldobjs
56045c42550eSmrg
56055c42550eSmrg	  # Is there a better way of finding the last object in the list?
56065c42550eSmrg	  for obj in $save_oldobjs
56075c42550eSmrg	  do
56085c42550eSmrg	    last_oldobj=$obj
56095c42550eSmrg	  done
56105c42550eSmrg	  for obj in $save_oldobjs
56115c42550eSmrg	  do
56125c42550eSmrg	    oldobjs="$objlist $obj"
56135c42550eSmrg	    objlist="$objlist $obj"
56145c42550eSmrg	    eval test_cmds=\"$old_archive_cmds\"
56155c42550eSmrg	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
56165c42550eSmrg	       test "$len" -le "$max_cmd_len"; then
56175c42550eSmrg	      :
5618ab47cfaaSmrg	    else
56195c42550eSmrg	      # the above command should be used before it gets too long
56205c42550eSmrg	      oldobjs=$objlist
56215c42550eSmrg	      if test "$obj" = "$last_oldobj" ; then
56225c42550eSmrg	        RANLIB=$save_RANLIB
56235c42550eSmrg	      fi
56245c42550eSmrg	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
56255c42550eSmrg	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
56265c42550eSmrg	      objlist=
5627ab47cfaaSmrg	    fi
56285c42550eSmrg	  done
56295c42550eSmrg	  RANLIB=$save_RANLIB
56305c42550eSmrg	  oldobjs=$objlist
56315c42550eSmrg	  if test "X$oldobjs" = "X" ; then
56325c42550eSmrg	    eval cmds=\"\$concat_cmds\"
5633ab47cfaaSmrg	  else
56345c42550eSmrg	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5635ab47cfaaSmrg	  fi
5636ab47cfaaSmrg	fi
56375c42550eSmrg      fi
56385c42550eSmrg      save_ifs="$IFS"; IFS='~'
56395c42550eSmrg      for cmd in $cmds; do
56405c42550eSmrg        eval cmd=\"$cmd\"
56411473d951Smrg	IFS="$save_ifs"
56425c42550eSmrg	$show "$cmd"
56435c42550eSmrg	$run eval "$cmd" || exit $?
56445c42550eSmrg      done
56455c42550eSmrg      IFS="$save_ifs"
56465c42550eSmrg    done
5647ab47cfaaSmrg
56485c42550eSmrg    if test -n "$generated"; then
56495c42550eSmrg      $show "${rm}r$generated"
56505c42550eSmrg      $run ${rm}r$generated
56515c42550eSmrg    fi
5652ab47cfaaSmrg
56535c42550eSmrg    # Now create the libtool archive.
56545c42550eSmrg    case $output in
56555c42550eSmrg    *.la)
56565c42550eSmrg      old_library=
56575c42550eSmrg      test "$build_old_libs" = yes && old_library="$libname.$libext"
56585c42550eSmrg      $show "creating $output"
5659ab47cfaaSmrg
56605c42550eSmrg      # Preserve any variables that may affect compiler behavior
56615c42550eSmrg      for var in $variables_saved_for_relink; do
56625c42550eSmrg	if eval test -z \"\${$var+set}\"; then
56635c42550eSmrg	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
56645c42550eSmrg	elif eval var_value=\$$var; test -z "$var_value"; then
56655c42550eSmrg	  relink_command="$var=; export $var; $relink_command"
56665c42550eSmrg	else
56675c42550eSmrg	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
56685c42550eSmrg	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
56691473d951Smrg	fi
56705c42550eSmrg      done
56715c42550eSmrg      # Quote the link command for shipping.
56725c42550eSmrg      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
56735c42550eSmrg      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
56745c42550eSmrg      if test "$hardcode_automatic" = yes ; then
56755c42550eSmrg	relink_command=
56761473d951Smrg      fi
5677ab47cfaaSmrg
5678ab47cfaaSmrg
56795c42550eSmrg      # Only create the output if not a dry run.
56805c42550eSmrg      if test -z "$run"; then
56815c42550eSmrg	for installed in no yes; do
56825c42550eSmrg	  if test "$installed" = yes; then
56835c42550eSmrg	    if test -z "$install_libdir"; then
56845c42550eSmrg	      break
56855c42550eSmrg	    fi
56865c42550eSmrg	    output="$output_objdir/$outputname"i
56875c42550eSmrg	    # Replace all uninstalled libtool libraries with the installed ones
56885c42550eSmrg	    newdependency_libs=
56895c42550eSmrg	    for deplib in $dependency_libs; do
56905c42550eSmrg	      case $deplib in
56915c42550eSmrg	      *.la)
56925c42550eSmrg		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
56935c42550eSmrg		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
56945c42550eSmrg		if test -z "$libdir"; then
56955c42550eSmrg		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
56965c42550eSmrg		  exit $EXIT_FAILURE
56975c42550eSmrg		fi
56985c42550eSmrg		newdependency_libs="$newdependency_libs $libdir/$name"
56995c42550eSmrg		;;
57005c42550eSmrg	      *) newdependency_libs="$newdependency_libs $deplib" ;;
57015c42550eSmrg	      esac
57025c42550eSmrg	    done
57035c42550eSmrg	    dependency_libs="$newdependency_libs"
57045c42550eSmrg	    newdlfiles=
57055c42550eSmrg	    for lib in $dlfiles; do
57065c42550eSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57075c42550eSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57085c42550eSmrg	      if test -z "$libdir"; then
57095c42550eSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57105c42550eSmrg		exit $EXIT_FAILURE
57115c42550eSmrg	      fi
57125c42550eSmrg	      newdlfiles="$newdlfiles $libdir/$name"
57135c42550eSmrg	    done
57145c42550eSmrg	    dlfiles="$newdlfiles"
57155c42550eSmrg	    newdlprefiles=
57165c42550eSmrg	    for lib in $dlprefiles; do
57175c42550eSmrg	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57185c42550eSmrg	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57195c42550eSmrg	      if test -z "$libdir"; then
57205c42550eSmrg		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57215c42550eSmrg		exit $EXIT_FAILURE
57225c42550eSmrg	      fi
57235c42550eSmrg	      newdlprefiles="$newdlprefiles $libdir/$name"
57245c42550eSmrg	    done
57255c42550eSmrg	    dlprefiles="$newdlprefiles"
57265c42550eSmrg	  else
57275c42550eSmrg	    newdlfiles=
57285c42550eSmrg	    for lib in $dlfiles; do
57295c42550eSmrg	      case $lib in
57305c42550eSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57315c42550eSmrg		*) abs=`pwd`"/$lib" ;;
57325c42550eSmrg	      esac
57335c42550eSmrg	      newdlfiles="$newdlfiles $abs"
57345c42550eSmrg	    done
57355c42550eSmrg	    dlfiles="$newdlfiles"
57365c42550eSmrg	    newdlprefiles=
57375c42550eSmrg	    for lib in $dlprefiles; do
57385c42550eSmrg	      case $lib in
57395c42550eSmrg		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57405c42550eSmrg		*) abs=`pwd`"/$lib" ;;
57415c42550eSmrg	      esac
57425c42550eSmrg	      newdlprefiles="$newdlprefiles $abs"
57435c42550eSmrg	    done
57445c42550eSmrg	    dlprefiles="$newdlprefiles"
57455c42550eSmrg	  fi
57465c42550eSmrg	  $rm $output
57475c42550eSmrg	  # place dlname in correct position for cygwin
57485c42550eSmrg	  tdlname=$dlname
57495c42550eSmrg	  case $host,$output,$installed,$module,$dlname in
57505c42550eSmrg	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
57515c42550eSmrg	  esac
57525c42550eSmrg	  $echo > $output "\
57535c42550eSmrg# $outputname - a libtool library file
57545c42550eSmrg# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
57555c42550eSmrg#
57565c42550eSmrg# Please DO NOT delete this file!
57575c42550eSmrg# It is necessary for linking the library.
5758ab47cfaaSmrg
57595c42550eSmrg# The name that we can dlopen(3).
57605c42550eSmrgdlname='$tdlname'
5761ab47cfaaSmrg
57625c42550eSmrg# Names of this library.
57635c42550eSmrglibrary_names='$library_names'
5764ab47cfaaSmrg
57655c42550eSmrg# The name of the static archive.
57665c42550eSmrgold_library='$old_library'
5767ab47cfaaSmrg
57685c42550eSmrg# Libraries that this one depends upon.
57695c42550eSmrgdependency_libs='$dependency_libs'
57701473d951Smrg
57715c42550eSmrg# Version information for $libname.
57725c42550eSmrgcurrent=$current
57735c42550eSmrgage=$age
57745c42550eSmrgrevision=$revision
57751473d951Smrg
57765c42550eSmrg# Is this an already installed library?
57775c42550eSmrginstalled=$installed
57781473d951Smrg
57795c42550eSmrg# Should we warn about portability when linking against -modules?
57805c42550eSmrgshouldnotlink=$module
57811473d951Smrg
57825c42550eSmrg# Files to dlopen/dlpreopen
57835c42550eSmrgdlopen='$dlfiles'
57845c42550eSmrgdlpreopen='$dlprefiles'
57851473d951Smrg
57865c42550eSmrg# Directory that this library needs to be installed in:
57875c42550eSmrglibdir='$install_libdir'"
57885c42550eSmrg	  if test "$installed" = no && test "$need_relink" = yes; then
57895c42550eSmrg	    $echo >> $output "\
57905c42550eSmrgrelink_command=\"$relink_command\""
57915c42550eSmrg	  fi
57925c42550eSmrg	done
57931473d951Smrg      fi
57941473d951Smrg
57955c42550eSmrg      # Do a symbolic link so that the libtool archive can be found in
57965c42550eSmrg      # LD_LIBRARY_PATH before the program is installed.
57975c42550eSmrg      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
57985c42550eSmrg      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5799ab47cfaaSmrg      ;;
58005c42550eSmrg    esac
58015c42550eSmrg    exit $EXIT_SUCCESS
58025c42550eSmrg    ;;
5803ab47cfaaSmrg
58045c42550eSmrg  # libtool install mode
58055c42550eSmrg  install)
58065c42550eSmrg    modename="$modename: install"
58075c42550eSmrg
58085c42550eSmrg    # There may be an optional sh(1) argument at the beginning of
58095c42550eSmrg    # install_prog (especially on Windows NT).
58105c42550eSmrg    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
58115c42550eSmrg       # Allow the use of GNU shtool's install command.
58125c42550eSmrg       $echo "X$nonopt" | grep shtool > /dev/null; then
58135c42550eSmrg      # Aesthetically quote it.
58145c42550eSmrg      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
58155c42550eSmrg      case $arg in
58165c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58175c42550eSmrg	arg="\"$arg\""
58185c42550eSmrg	;;
58191473d951Smrg      esac
58205c42550eSmrg      install_prog="$arg "
58215c42550eSmrg      arg="$1"
58225c42550eSmrg      shift
58235c42550eSmrg    else
58245c42550eSmrg      install_prog=
58255c42550eSmrg      arg=$nonopt
58265c42550eSmrg    fi
5827ab47cfaaSmrg
58285c42550eSmrg    # The real first argument should be the name of the installation program.
58295c42550eSmrg    # Aesthetically quote it.
58305c42550eSmrg    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58315c42550eSmrg    case $arg in
58325c42550eSmrg    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58335c42550eSmrg      arg="\"$arg\""
58345c42550eSmrg      ;;
58355c42550eSmrg    esac
58365c42550eSmrg    install_prog="$install_prog$arg"
5837ab47cfaaSmrg
58385c42550eSmrg    # We need to accept at least all the BSD install flags.
58395c42550eSmrg    dest=
58405c42550eSmrg    files=
58415c42550eSmrg    opts=
58425c42550eSmrg    prev=
58435c42550eSmrg    install_type=
58445c42550eSmrg    isdir=no
58455c42550eSmrg    stripme=
58465c42550eSmrg    for arg
58475c42550eSmrg    do
58485c42550eSmrg      if test -n "$dest"; then
58495c42550eSmrg	files="$files $dest"
58505c42550eSmrg	dest=$arg
58515c42550eSmrg	continue
58525c42550eSmrg      fi
58531473d951Smrg
58545c42550eSmrg      case $arg in
58555c42550eSmrg      -d) isdir=yes ;;
58565c42550eSmrg      -f) 
58575c42550eSmrg      	case " $install_prog " in
58585c42550eSmrg	*[\\\ /]cp\ *) ;;
58595c42550eSmrg	*) prev=$arg ;;
58605c42550eSmrg	esac
58615c42550eSmrg	;;
58625c42550eSmrg      -g | -m | -o) prev=$arg ;;
58635c42550eSmrg      -s)
58645c42550eSmrg	stripme=" -s"
58655c42550eSmrg	continue
58665c42550eSmrg	;;
58675c42550eSmrg      -*)
58685c42550eSmrg	;;
58695c42550eSmrg      *)
58705c42550eSmrg	# If the previous option needed an argument, then skip it.
58715c42550eSmrg	if test -n "$prev"; then
58725c42550eSmrg	  prev=
58735c42550eSmrg	else
58745c42550eSmrg	  dest=$arg
58755c42550eSmrg	  continue
58765c42550eSmrg	fi
5877ab47cfaaSmrg	;;
58781473d951Smrg      esac
5879ab47cfaaSmrg
58805c42550eSmrg      # Aesthetically quote the argument.
58815c42550eSmrg      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58825c42550eSmrg      case $arg in
58835c42550eSmrg      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58845c42550eSmrg	arg="\"$arg\""
58851473d951Smrg	;;
58861473d951Smrg      esac
58875c42550eSmrg      install_prog="$install_prog $arg"
58885c42550eSmrg    done
5889ab47cfaaSmrg
58905c42550eSmrg    if test -z "$install_prog"; then
58915c42550eSmrg      $echo "$modename: you must specify an install program" 1>&2
58925c42550eSmrg      $echo "$help" 1>&2
58935c42550eSmrg      exit $EXIT_FAILURE
58945c42550eSmrg    fi
5895ab47cfaaSmrg
58965c42550eSmrg    if test -n "$prev"; then
58975c42550eSmrg      $echo "$modename: the \`$prev' option requires an argument" 1>&2
58985c42550eSmrg      $echo "$help" 1>&2
58995c42550eSmrg      exit $EXIT_FAILURE
59005c42550eSmrg    fi
59015c42550eSmrg
59025c42550eSmrg    if test -z "$files"; then
59035c42550eSmrg      if test -z "$dest"; then
59045c42550eSmrg	$echo "$modename: no file or destination specified" 1>&2
59055c42550eSmrg      else
59065c42550eSmrg	$echo "$modename: you must specify a destination" 1>&2
59075c42550eSmrg      fi
59085c42550eSmrg      $echo "$help" 1>&2
59095c42550eSmrg      exit $EXIT_FAILURE
59105c42550eSmrg    fi
59115c42550eSmrg
59125c42550eSmrg    # Strip any trailing slash from the destination.
59135c42550eSmrg    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
59145c42550eSmrg
59155c42550eSmrg    # Check to see that the destination is a directory.
59165c42550eSmrg    test -d "$dest" && isdir=yes
59175c42550eSmrg    if test "$isdir" = yes; then
59185c42550eSmrg      destdir="$dest"
59195c42550eSmrg      destname=
59205c42550eSmrg    else
59215c42550eSmrg      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
59225c42550eSmrg      test "X$destdir" = "X$dest" && destdir=.
59235c42550eSmrg      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
59245c42550eSmrg
59255c42550eSmrg      # Not a directory, so check to see that there is only one file specified.
59265c42550eSmrg      set dummy $files
59275c42550eSmrg      if test "$#" -gt 2; then
59285c42550eSmrg	$echo "$modename: \`$dest' is not a directory" 1>&2
59295c42550eSmrg	$echo "$help" 1>&2
59305c42550eSmrg	exit $EXIT_FAILURE
59315c42550eSmrg      fi
59325c42550eSmrg    fi
59335c42550eSmrg    case $destdir in
59345c42550eSmrg    [\\/]* | [A-Za-z]:[\\/]*) ;;
59355c42550eSmrg    *)
59365c42550eSmrg      for file in $files; do
59375c42550eSmrg	case $file in
59385c42550eSmrg	*.lo) ;;
59391473d951Smrg	*)
59405c42550eSmrg	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
59415c42550eSmrg	  $echo "$help" 1>&2
59425c42550eSmrg	  exit $EXIT_FAILURE
59431473d951Smrg	  ;;
59441473d951Smrg	esac
59451473d951Smrg      done
59465c42550eSmrg      ;;
59475c42550eSmrg    esac
5948ab47cfaaSmrg
59495c42550eSmrg    # This variable tells wrapper scripts just to set variables rather
59505c42550eSmrg    # than running their programs.
59515c42550eSmrg    libtool_install_magic="$magic"
5952ab47cfaaSmrg
59535c42550eSmrg    staticlibs=
59545c42550eSmrg    future_libdirs=
59555c42550eSmrg    current_libdirs=
59565c42550eSmrg    for file in $files; do
5957ab47cfaaSmrg
59585c42550eSmrg      # Do each installation.
59595c42550eSmrg      case $file in
59605c42550eSmrg      *.$libext)
59615c42550eSmrg	# Do the static libraries later.
59625c42550eSmrg	staticlibs="$staticlibs $file"
59635c42550eSmrg	;;
59645c42550eSmrg
59655c42550eSmrg      *.la)
59665c42550eSmrg	# Check to see that this really is a libtool archive.
59675c42550eSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
59685c42550eSmrg	else
59695c42550eSmrg	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
59705c42550eSmrg	  $echo "$help" 1>&2
59715c42550eSmrg	  exit $EXIT_FAILURE
59725c42550eSmrg	fi
59735c42550eSmrg
59745c42550eSmrg	library_names=
59755c42550eSmrg	old_library=
59765c42550eSmrg	relink_command=
59775c42550eSmrg	# If there is no directory component, then add one.
59785c42550eSmrg	case $file in
59795c42550eSmrg	*/* | *\\*) . $file ;;
59805c42550eSmrg	*) . ./$file ;;
59815c42550eSmrg	esac
59825c42550eSmrg
59835c42550eSmrg	# Add the libdir to current_libdirs if it is the destination.
59845c42550eSmrg	if test "X$destdir" = "X$libdir"; then
59855c42550eSmrg	  case "$current_libdirs " in
59861473d951Smrg	  *" $libdir "*) ;;
59875c42550eSmrg	  *) current_libdirs="$current_libdirs $libdir" ;;
59881473d951Smrg	  esac
59895c42550eSmrg	else
59905c42550eSmrg	  # Note the libdir as a future libdir.
59915c42550eSmrg	  case "$future_libdirs " in
59921473d951Smrg	  *" $libdir "*) ;;
59935c42550eSmrg	  *) future_libdirs="$future_libdirs $libdir" ;;
59941473d951Smrg	  esac
59951473d951Smrg	fi
5996ab47cfaaSmrg
59975c42550eSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
59985c42550eSmrg	test "X$dir" = "X$file/" && dir=
59995c42550eSmrg	dir="$dir$objdir"
60005c42550eSmrg
60015c42550eSmrg	if test -n "$relink_command"; then
60025c42550eSmrg	  # Determine the prefix the user has applied to our future dir.
60035c42550eSmrg	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
60045c42550eSmrg
60055c42550eSmrg	  # Don't allow the user to place us outside of our expected
60065c42550eSmrg	  # location b/c this prevents finding dependent libraries that
60075c42550eSmrg	  # are installed to the same prefix.
60085c42550eSmrg	  # At present, this check doesn't affect windows .dll's that
60095c42550eSmrg	  # are installed into $libdir/../bin (currently, that works fine)
60105c42550eSmrg	  # but it's something to keep an eye on.
60115c42550eSmrg	  if test "$inst_prefix_dir" = "$destdir"; then
60125c42550eSmrg	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
60135c42550eSmrg	    exit $EXIT_FAILURE
60145c42550eSmrg	  fi
60155c42550eSmrg
60165c42550eSmrg	  if test -n "$inst_prefix_dir"; then
60175c42550eSmrg	    # Stick the inst_prefix_dir data into the link command.
60185c42550eSmrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
60195c42550eSmrg	  else
60205c42550eSmrg	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
60215c42550eSmrg	  fi
60225c42550eSmrg
60235c42550eSmrg	  $echo "$modename: warning: relinking \`$file'" 1>&2
60245c42550eSmrg	  $show "$relink_command"
60255c42550eSmrg	  if $run eval "$relink_command"; then :
6026ab47cfaaSmrg	  else
60275c42550eSmrg	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
60285c42550eSmrg	    exit $EXIT_FAILURE
6029ab47cfaaSmrg	  fi
6030ab47cfaaSmrg	fi
6031ab47cfaaSmrg
60325c42550eSmrg	# See the names of the shared library.
60335c42550eSmrg	set dummy $library_names
60345c42550eSmrg	if test -n "$2"; then
60355c42550eSmrg	  realname="$2"
60365c42550eSmrg	  shift
60375c42550eSmrg	  shift
6038ab47cfaaSmrg
60395c42550eSmrg	  srcname="$realname"
60405c42550eSmrg	  test -n "$relink_command" && srcname="$realname"T
6041ab47cfaaSmrg
60425c42550eSmrg	  # Install the shared library and build the symlinks.
60435c42550eSmrg	  $show "$install_prog $dir/$srcname $destdir/$realname"
60445c42550eSmrg	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
60455c42550eSmrg	  if test -n "$stripme" && test -n "$striplib"; then
60465c42550eSmrg	    $show "$striplib $destdir/$realname"
60475c42550eSmrg	    $run eval "$striplib $destdir/$realname" || exit $?
60485c42550eSmrg	  fi
6049ab47cfaaSmrg
60505c42550eSmrg	  if test "$#" -gt 0; then
60515c42550eSmrg	    # Delete the old symlinks, and create new ones.
60525c42550eSmrg	    # Try `ln -sf' first, because the `ln' binary might depend on
60535c42550eSmrg	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
60545c42550eSmrg	    # so we also need to try rm && ln -s.
60555c42550eSmrg	    for linkname
60565c42550eSmrg	    do
60575c42550eSmrg	      if test "$linkname" != "$realname"; then
60585c42550eSmrg                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60595c42550eSmrg                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60605c42550eSmrg	      fi
60615c42550eSmrg	    done
60625c42550eSmrg	  fi
6063ab47cfaaSmrg
60645c42550eSmrg	  # Do each command in the postinstall commands.
60655c42550eSmrg	  lib="$destdir/$realname"
60665c42550eSmrg	  cmds=$postinstall_cmds
60675c42550eSmrg	  save_ifs="$IFS"; IFS='~'
60685c42550eSmrg	  for cmd in $cmds; do
60695c42550eSmrg	    IFS="$save_ifs"
60705c42550eSmrg	    eval cmd=\"$cmd\"
60715c42550eSmrg	    $show "$cmd"
60725c42550eSmrg	    $run eval "$cmd" || {
60735c42550eSmrg	      lt_exit=$?
60745c42550eSmrg
60755c42550eSmrg	      # Restore the uninstalled library and exit
60765c42550eSmrg	      if test "$mode" = relink; then
60775c42550eSmrg		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
60785c42550eSmrg	      fi
6079ab47cfaaSmrg
60805c42550eSmrg	      exit $lt_exit
60815c42550eSmrg	    }
60825c42550eSmrg	  done
60835c42550eSmrg	  IFS="$save_ifs"
6084ab47cfaaSmrg	fi
6085ab47cfaaSmrg
60865c42550eSmrg	# Install the pseudo-library for information purposes.
60875c42550eSmrg	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
60885c42550eSmrg	instname="$dir/$name"i
60895c42550eSmrg	$show "$install_prog $instname $destdir/$name"
60905c42550eSmrg	$run eval "$install_prog $instname $destdir/$name" || exit $?
6091ab47cfaaSmrg
60925c42550eSmrg	# Maybe install the static library, too.
60935c42550eSmrg	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
60945c42550eSmrg	;;
6095ab47cfaaSmrg
60965c42550eSmrg      *.lo)
60975c42550eSmrg	# Install (i.e. copy) a libtool object.
60985c42550eSmrg
60995c42550eSmrg	# Figure out destination file name, if it wasn't already specified.
61005c42550eSmrg	if test -n "$destname"; then
61015c42550eSmrg	  destfile="$destdir/$destname"
61025c42550eSmrg	else
61035c42550eSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61045c42550eSmrg	  destfile="$destdir/$destfile"
6105ab47cfaaSmrg	fi
61065c42550eSmrg
61075c42550eSmrg	# Deduce the name of the destination old-style object file.
61085c42550eSmrg	case $destfile in
61095c42550eSmrg	*.lo)
61105c42550eSmrg	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
61115c42550eSmrg	  ;;
61125c42550eSmrg	*.$objext)
61135c42550eSmrg	  staticdest="$destfile"
61145c42550eSmrg	  destfile=
61155c42550eSmrg	  ;;
61165c42550eSmrg	*)
61175c42550eSmrg	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
61185c42550eSmrg	  $echo "$help" 1>&2
61195c42550eSmrg	  exit $EXIT_FAILURE
61205c42550eSmrg	  ;;
61215c42550eSmrg	esac
61225c42550eSmrg
61235c42550eSmrg	# Install the libtool object if requested.
61245c42550eSmrg	if test -n "$destfile"; then
61255c42550eSmrg	  $show "$install_prog $file $destfile"
61265c42550eSmrg	  $run eval "$install_prog $file $destfile" || exit $?
6127ab47cfaaSmrg	fi
6128ab47cfaaSmrg
61295c42550eSmrg	# Install the old object if enabled.
61305c42550eSmrg	if test "$build_old_libs" = yes; then
61315c42550eSmrg	  # Deduce the name of the old-style object file.
61325c42550eSmrg	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6133ab47cfaaSmrg
61345c42550eSmrg	  $show "$install_prog $staticobj $staticdest"
61355c42550eSmrg	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
61365c42550eSmrg	fi
61375c42550eSmrg	exit $EXIT_SUCCESS
61385c42550eSmrg	;;
61391473d951Smrg
61405c42550eSmrg      *)
61415c42550eSmrg	# Figure out destination file name, if it wasn't already specified.
61425c42550eSmrg	if test -n "$destname"; then
61435c42550eSmrg	  destfile="$destdir/$destname"
6144ab47cfaaSmrg	else
61455c42550eSmrg	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61465c42550eSmrg	  destfile="$destdir/$destfile"
6147ab47cfaaSmrg	fi
6148ab47cfaaSmrg
61495c42550eSmrg	# If the file is missing, and there is a .exe on the end, strip it
61505c42550eSmrg	# because it is most likely a libtool script we actually want to
61515c42550eSmrg	# install
61525c42550eSmrg	stripped_ext=""
61535c42550eSmrg	case $file in
61545c42550eSmrg	  *.exe)
61555c42550eSmrg	    if test ! -f "$file"; then
61565c42550eSmrg	      file=`$echo $file|${SED} 's,.exe$,,'`
61575c42550eSmrg	      stripped_ext=".exe"
61585c42550eSmrg	    fi
61595c42550eSmrg	    ;;
61605c42550eSmrg	esac
6161ab47cfaaSmrg
61625c42550eSmrg	# Do a test to see if this is really a libtool program.
61635c42550eSmrg	case $host in
61645c42550eSmrg	*cygwin*|*mingw*)
61655c42550eSmrg	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
61665c42550eSmrg	    ;;
61675c42550eSmrg	*)
61685c42550eSmrg	    wrapper=$file
61695c42550eSmrg	    ;;
61705c42550eSmrg	esac
61715c42550eSmrg	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
61725c42550eSmrg	  notinst_deplibs=
61735c42550eSmrg	  relink_command=
6174ab47cfaaSmrg
61755c42550eSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
61765c42550eSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
61775c42550eSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
61785c42550eSmrg	  # `FILE.' does not work on cygwin managed mounts.
61795c42550eSmrg	  #
61805c42550eSmrg	  # If there is no directory component, then add one.
61815c42550eSmrg	  case $wrapper in
61825c42550eSmrg	  */* | *\\*) . ${wrapper} ;;
61835c42550eSmrg	  *) . ./${wrapper} ;;
61845c42550eSmrg	  esac
6185ab47cfaaSmrg
61865c42550eSmrg	  # Check the variables that should have been set.
61875c42550eSmrg	  if test -z "$notinst_deplibs"; then
61885c42550eSmrg	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
61895c42550eSmrg	    exit $EXIT_FAILURE
61905c42550eSmrg	  fi
6191ab47cfaaSmrg
61925c42550eSmrg	  finalize=yes
61935c42550eSmrg	  for lib in $notinst_deplibs; do
61945c42550eSmrg	    # Check to see that each library is installed.
61955c42550eSmrg	    libdir=
61965c42550eSmrg	    if test -f "$lib"; then
61975c42550eSmrg	      # If there is no directory component, then add one.
61985c42550eSmrg	      case $lib in
61995c42550eSmrg	      */* | *\\*) . $lib ;;
62005c42550eSmrg	      *) . ./$lib ;;
62015c42550eSmrg	      esac
62025c42550eSmrg	    fi
62035c42550eSmrg	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
62045c42550eSmrg	    if test -n "$libdir" && test ! -f "$libfile"; then
62055c42550eSmrg	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
62065c42550eSmrg	      finalize=no
62075c42550eSmrg	    fi
62085c42550eSmrg	  done
62095c42550eSmrg
62105c42550eSmrg	  relink_command=
62115c42550eSmrg	  # Note that it is not necessary on cygwin/mingw to append a dot to
62125c42550eSmrg	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
62135c42550eSmrg	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
62145c42550eSmrg	  # `FILE.' does not work on cygwin managed mounts.
62155c42550eSmrg	  #
62165c42550eSmrg	  # If there is no directory component, then add one.
62175c42550eSmrg	  case $wrapper in
62185c42550eSmrg	  */* | *\\*) . ${wrapper} ;;
62195c42550eSmrg	  *) . ./${wrapper} ;;
62205c42550eSmrg	  esac
62215c42550eSmrg
62225c42550eSmrg	  outputname=
62235c42550eSmrg	  if test "$fast_install" = no && test -n "$relink_command"; then
62245c42550eSmrg	    if test "$finalize" = yes && test -z "$run"; then
62255c42550eSmrg	      tmpdir=`func_mktempdir`
62265c42550eSmrg	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
62275c42550eSmrg	      outputname="$tmpdir/$file"
62285c42550eSmrg	      # Replace the output file specification.
62295c42550eSmrg	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
62305c42550eSmrg
62315c42550eSmrg	      $show "$relink_command"
62325c42550eSmrg	      if $run eval "$relink_command"; then :
62335c42550eSmrg	      else
62345c42550eSmrg		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
62355c42550eSmrg		${rm}r "$tmpdir"
62365c42550eSmrg		continue
62375c42550eSmrg	      fi
62385c42550eSmrg	      file="$outputname"
62395c42550eSmrg	    else
62405c42550eSmrg	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
62415c42550eSmrg	    fi
6242ab47cfaaSmrg	  else
62435c42550eSmrg	    # Install the binary that we compiled earlier.
62445c42550eSmrg	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6245ab47cfaaSmrg	  fi
62465c42550eSmrg	fi
62471473d951Smrg
62485c42550eSmrg	# remove .exe since cygwin /usr/bin/install will append another
62495c42550eSmrg	# one anyway 
62505c42550eSmrg	case $install_prog,$host in
62515c42550eSmrg	*/usr/bin/install*,*cygwin*)
62525c42550eSmrg	  case $file:$destfile in
62535c42550eSmrg	  *.exe:*.exe)
62545c42550eSmrg	    # this is ok
62555c42550eSmrg	    ;;
62565c42550eSmrg	  *.exe:*)
62575c42550eSmrg	    destfile=$destfile.exe
62585c42550eSmrg	    ;;
62595c42550eSmrg	  *:*.exe)
62605c42550eSmrg	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
62615c42550eSmrg	    ;;
62625c42550eSmrg	  esac
62635c42550eSmrg	  ;;
6264ab47cfaaSmrg	esac
62655c42550eSmrg	$show "$install_prog$stripme $file $destfile"
62665c42550eSmrg	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
62675c42550eSmrg	test -n "$outputname" && ${rm}r "$tmpdir"
62685c42550eSmrg	;;
62695c42550eSmrg      esac
62705c42550eSmrg    done
6271ab47cfaaSmrg
62725c42550eSmrg    for file in $staticlibs; do
62735c42550eSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6274ab47cfaaSmrg
62755c42550eSmrg      # Set up the ranlib parameters.
62765c42550eSmrg      oldlib="$destdir/$name"
6277ab47cfaaSmrg
62785c42550eSmrg      $show "$install_prog $file $oldlib"
62795c42550eSmrg      $run eval "$install_prog \$file \$oldlib" || exit $?
6280ab47cfaaSmrg
62815c42550eSmrg      if test -n "$stripme" && test -n "$old_striplib"; then
62825c42550eSmrg	$show "$old_striplib $oldlib"
62835c42550eSmrg	$run eval "$old_striplib $oldlib" || exit $?
6284ab47cfaaSmrg      fi
6285ab47cfaaSmrg
62865c42550eSmrg      # Do each command in the postinstall commands.
62875c42550eSmrg      cmds=$old_postinstall_cmds
62885c42550eSmrg      save_ifs="$IFS"; IFS='~'
62895c42550eSmrg      for cmd in $cmds; do
62905c42550eSmrg	IFS="$save_ifs"
62915c42550eSmrg	eval cmd=\"$cmd\"
62925c42550eSmrg	$show "$cmd"
62935c42550eSmrg	$run eval "$cmd" || exit $?
62945c42550eSmrg      done
62955c42550eSmrg      IFS="$save_ifs"
62965c42550eSmrg    done
6297ab47cfaaSmrg
62985c42550eSmrg    if test -n "$future_libdirs"; then
62995c42550eSmrg      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
63005c42550eSmrg    fi
6301ab47cfaaSmrg
63025c42550eSmrg    if test -n "$current_libdirs"; then
63035c42550eSmrg      # Maybe just do a dry run.
63045c42550eSmrg      test -n "$run" && current_libdirs=" -n$current_libdirs"
63055c42550eSmrg      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
63065c42550eSmrg    else
63075c42550eSmrg      exit $EXIT_SUCCESS
63085c42550eSmrg    fi
63095c42550eSmrg    ;;
6310ab47cfaaSmrg
63115c42550eSmrg  # libtool finish mode
63125c42550eSmrg  finish)
63135c42550eSmrg    modename="$modename: finish"
63145c42550eSmrg    libdirs="$nonopt"
63155c42550eSmrg    admincmds=
6316ab47cfaaSmrg
63175c42550eSmrg    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
63185c42550eSmrg      for dir
63195c42550eSmrg      do
63205c42550eSmrg	libdirs="$libdirs $dir"
63215c42550eSmrg      done
6322ab47cfaaSmrg
63235c42550eSmrg      for libdir in $libdirs; do
63245c42550eSmrg	if test -n "$finish_cmds"; then
63255c42550eSmrg	  # Do each command in the finish commands.
63265c42550eSmrg	  cmds=$finish_cmds
63275c42550eSmrg	  save_ifs="$IFS"; IFS='~'
63285c42550eSmrg	  for cmd in $cmds; do
63295c42550eSmrg	    IFS="$save_ifs"
63305c42550eSmrg	    eval cmd=\"$cmd\"
63315c42550eSmrg	    $show "$cmd"
63325c42550eSmrg	    $run eval "$cmd" || admincmds="$admincmds
63335c42550eSmrg       $cmd"
6334ab47cfaaSmrg	  done
63355c42550eSmrg	  IFS="$save_ifs"
6336ab47cfaaSmrg	fi
63375c42550eSmrg	if test -n "$finish_eval"; then
63385c42550eSmrg	  # Do the single finish_eval.
63395c42550eSmrg	  eval cmds=\"$finish_eval\"
63405c42550eSmrg	  $run eval "$cmds" || admincmds="$admincmds
63415c42550eSmrg       $cmds"
63421473d951Smrg	fi
63435c42550eSmrg      done
63445c42550eSmrg    fi
63455c42550eSmrg
63465c42550eSmrg    # Exit here if they wanted silent mode.
63475c42550eSmrg    test "$show" = : && exit $EXIT_SUCCESS
63485c42550eSmrg
63495c42550eSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
63505c42550eSmrg    $echo "Libraries have been installed in:"
63515c42550eSmrg    for libdir in $libdirs; do
63525c42550eSmrg      $echo "   $libdir"
6353ab47cfaaSmrg    done
63545c42550eSmrg    $echo
63555c42550eSmrg    $echo "If you ever happen to want to link against installed libraries"
63565c42550eSmrg    $echo "in a given directory, LIBDIR, you must either use libtool, and"
63575c42550eSmrg    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
63585c42550eSmrg    $echo "flag during linking and do at least one of the following:"
63595c42550eSmrg    if test -n "$shlibpath_var"; then
63605c42550eSmrg      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
63615c42550eSmrg      $echo "     during execution"
63625c42550eSmrg    fi
63635c42550eSmrg    if test -n "$runpath_var"; then
63645c42550eSmrg      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
63655c42550eSmrg      $echo "     during linking"
63665c42550eSmrg    fi
63675c42550eSmrg    if test -n "$hardcode_libdir_flag_spec"; then
63685c42550eSmrg      libdir=LIBDIR
63695c42550eSmrg      eval flag=\"$hardcode_libdir_flag_spec\"
6370ab47cfaaSmrg
63715c42550eSmrg      $echo "   - use the \`$flag' linker flag"
63725c42550eSmrg    fi
63735c42550eSmrg    if test -n "$admincmds"; then
63745c42550eSmrg      $echo "   - have your system administrator run these commands:$admincmds"
63755c42550eSmrg    fi
63765c42550eSmrg    if test -f /etc/ld.so.conf; then
63775c42550eSmrg      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
63785c42550eSmrg    fi
63795c42550eSmrg    $echo
63805c42550eSmrg    $echo "See any operating system documentation about shared libraries for"
63815c42550eSmrg    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
63825c42550eSmrg    $echo "X----------------------------------------------------------------------" | $Xsed
63835c42550eSmrg    exit $EXIT_SUCCESS
63845c42550eSmrg    ;;
6385ab47cfaaSmrg
63865c42550eSmrg  # libtool execute mode
63875c42550eSmrg  execute)
63885c42550eSmrg    modename="$modename: execute"
6389ab47cfaaSmrg
63905c42550eSmrg    # The first argument is the command name.
63915c42550eSmrg    cmd="$nonopt"
63925c42550eSmrg    if test -z "$cmd"; then
63935c42550eSmrg      $echo "$modename: you must specify a COMMAND" 1>&2
63945c42550eSmrg      $echo "$help"
63955c42550eSmrg      exit $EXIT_FAILURE
63965c42550eSmrg    fi
6397ab47cfaaSmrg
63985c42550eSmrg    # Handle -dlopen flags immediately.
63995c42550eSmrg    for file in $execute_dlfiles; do
64005c42550eSmrg      if test ! -f "$file"; then
64015c42550eSmrg	$echo "$modename: \`$file' is not a file" 1>&2
64025c42550eSmrg	$echo "$help" 1>&2
64035c42550eSmrg	exit $EXIT_FAILURE
64045c42550eSmrg      fi
64051473d951Smrg
64065c42550eSmrg      dir=
64075c42550eSmrg      case $file in
64085c42550eSmrg      *.la)
64095c42550eSmrg	# Check to see that this really is a libtool archive.
64105c42550eSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
64115c42550eSmrg	else
64125c42550eSmrg	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
64135c42550eSmrg	  $echo "$help" 1>&2
64145c42550eSmrg	  exit $EXIT_FAILURE
64155c42550eSmrg	fi
6416ab47cfaaSmrg
64175c42550eSmrg	# Read the libtool library.
64185c42550eSmrg	dlname=
64195c42550eSmrg	library_names=
6420ab47cfaaSmrg
64215c42550eSmrg	# If there is no directory component, then add one.
64225c42550eSmrg	case $file in
64235c42550eSmrg	*/* | *\\*) . $file ;;
64245c42550eSmrg	*) . ./$file ;;
64255c42550eSmrg	esac
6426ab47cfaaSmrg
64275c42550eSmrg	# Skip this library if it cannot be dlopened.
64285c42550eSmrg	if test -z "$dlname"; then
64295c42550eSmrg	  # Warn if it was a shared library.
64305c42550eSmrg	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
64315c42550eSmrg	  continue
64325c42550eSmrg	fi
6433ab47cfaaSmrg
64345c42550eSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64355c42550eSmrg	test "X$dir" = "X$file" && dir=.
6436ab47cfaaSmrg
64375c42550eSmrg	if test -f "$dir/$objdir/$dlname"; then
64385c42550eSmrg	  dir="$dir/$objdir"
64395c42550eSmrg	else
64405c42550eSmrg	  if test ! -f "$dir/$dlname"; then
64415c42550eSmrg	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
64425c42550eSmrg	    exit $EXIT_FAILURE
64435c42550eSmrg	  fi
64445c42550eSmrg	fi
64455c42550eSmrg	;;
6446ab47cfaaSmrg
64475c42550eSmrg      *.lo)
64485c42550eSmrg	# Just add the directory containing the .lo file.
64495c42550eSmrg	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64505c42550eSmrg	test "X$dir" = "X$file" && dir=.
64515c42550eSmrg	;;
6452ab47cfaaSmrg
64535c42550eSmrg      *)
64545c42550eSmrg	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
64555c42550eSmrg	continue
64565c42550eSmrg	;;
64575c42550eSmrg      esac
6458ab47cfaaSmrg
64595c42550eSmrg      # Get the absolute pathname.
64605c42550eSmrg      absdir=`cd "$dir" && pwd`
64615c42550eSmrg      test -n "$absdir" && dir="$absdir"
6462ab47cfaaSmrg
64635c42550eSmrg      # Now add the directory to shlibpath_var.
64645c42550eSmrg      if eval "test -z \"\$$shlibpath_var\""; then
64655c42550eSmrg	eval "$shlibpath_var=\"\$dir\""
64665c42550eSmrg      else
64675c42550eSmrg	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
64685c42550eSmrg      fi
64695c42550eSmrg    done
6470ab47cfaaSmrg
64715c42550eSmrg    # This variable tells wrapper scripts just to set shlibpath_var
64725c42550eSmrg    # rather than running their programs.
64735c42550eSmrg    libtool_execute_magic="$magic"
6474ab47cfaaSmrg
64755c42550eSmrg    # Check if any of the arguments is a wrapper script.
64765c42550eSmrg    args=
64775c42550eSmrg    for file
64785c42550eSmrg    do
64795c42550eSmrg      case $file in
64805c42550eSmrg      -*) ;;
64815c42550eSmrg      *)
64825c42550eSmrg	# Do a test to see if this is really a libtool program.
64835c42550eSmrg	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
64845c42550eSmrg	  # If there is no directory component, then add one.
64855c42550eSmrg	  case $file in
64865c42550eSmrg	  */* | *\\*) . $file ;;
64875c42550eSmrg	  *) . ./$file ;;
64885c42550eSmrg	  esac
6489ab47cfaaSmrg
64905c42550eSmrg	  # Transform arg to wrapped name.
64915c42550eSmrg	  file="$progdir/$program"
64925c42550eSmrg	fi
64935c42550eSmrg	;;
64945c42550eSmrg      esac
64955c42550eSmrg      # Quote arguments (to preserve shell metacharacters).
64965c42550eSmrg      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
64975c42550eSmrg      args="$args \"$file\""
64985c42550eSmrg    done
6499ab47cfaaSmrg
65005c42550eSmrg    if test -z "$run"; then
65015c42550eSmrg      if test -n "$shlibpath_var"; then
65025c42550eSmrg	# Export the shlibpath_var.
65035c42550eSmrg	eval "export $shlibpath_var"
65045c42550eSmrg      fi
65055c42550eSmrg
65065c42550eSmrg      # Restore saved environment variables
65075c42550eSmrg      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
65085c42550eSmrg      do
65095c42550eSmrg	eval "if test \"\${save_$lt_var+set}\" = set; then
65105c42550eSmrg		$lt_var=\$save_$lt_var; export $lt_var
65115c42550eSmrg	      fi"
65125c42550eSmrg      done
6513ab47cfaaSmrg
65145c42550eSmrg      # Now prepare to actually exec the command.
65155c42550eSmrg      exec_cmd="\$cmd$args"
65165c42550eSmrg    else
65175c42550eSmrg      # Display what would be done.
65185c42550eSmrg      if test -n "$shlibpath_var"; then
65195c42550eSmrg	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
65205c42550eSmrg	$echo "export $shlibpath_var"
65215c42550eSmrg      fi
65225c42550eSmrg      $echo "$cmd$args"
65235c42550eSmrg      exit $EXIT_SUCCESS
65245c42550eSmrg    fi
65255c42550eSmrg    ;;
6526ab47cfaaSmrg
65275c42550eSmrg  # libtool clean and uninstall mode
65285c42550eSmrg  clean | uninstall)
65295c42550eSmrg    modename="$modename: $mode"
65305c42550eSmrg    rm="$nonopt"
6531ab47cfaaSmrg    files=
6532ab47cfaaSmrg    rmforce=
6533ab47cfaaSmrg    exit_status=0
6534ab47cfaaSmrg
6535ab47cfaaSmrg    # This variable tells wrapper scripts just to set variables rather
6536ab47cfaaSmrg    # than running their programs.
6537ab47cfaaSmrg    libtool_install_magic="$magic"
6538ab47cfaaSmrg
6539ab47cfaaSmrg    for arg
6540ab47cfaaSmrg    do
6541ab47cfaaSmrg      case $arg in
65425c42550eSmrg      -f) rm="$rm $arg"; rmforce=yes ;;
65435c42550eSmrg      -*) rm="$rm $arg" ;;
6544ab47cfaaSmrg      *) files="$files $arg" ;;
6545ab47cfaaSmrg      esac
6546ab47cfaaSmrg    done
6547ab47cfaaSmrg
65485c42550eSmrg    if test -z "$rm"; then
65495c42550eSmrg      $echo "$modename: you must specify an RM program" 1>&2
65505c42550eSmrg      $echo "$help" 1>&2
65515c42550eSmrg      exit $EXIT_FAILURE
65525c42550eSmrg    fi
6553ab47cfaaSmrg
6554ab47cfaaSmrg    rmdirs=
6555ab47cfaaSmrg
6556ab47cfaaSmrg    origobjdir="$objdir"
6557ab47cfaaSmrg    for file in $files; do
65585c42550eSmrg      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
65595c42550eSmrg      if test "X$dir" = "X$file"; then
65605c42550eSmrg	dir=.
6561ab47cfaaSmrg	objdir="$origobjdir"
6562ab47cfaaSmrg      else
6563ab47cfaaSmrg	objdir="$dir/$origobjdir"
6564ab47cfaaSmrg      fi
65655c42550eSmrg      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6566ab47cfaaSmrg      test "$mode" = uninstall && objdir="$dir"
6567ab47cfaaSmrg
6568ab47cfaaSmrg      # Remember objdir for removal later, being careful to avoid duplicates
6569ab47cfaaSmrg      if test "$mode" = clean; then
6570ab47cfaaSmrg	case " $rmdirs " in
6571ab47cfaaSmrg	  *" $objdir "*) ;;
6572ab47cfaaSmrg	  *) rmdirs="$rmdirs $objdir" ;;
6573ab47cfaaSmrg	esac
6574ab47cfaaSmrg      fi
6575ab47cfaaSmrg
6576ab47cfaaSmrg      # Don't error if the file doesn't exist and rm -f was used.
65775c42550eSmrg      if (test -L "$file") >/dev/null 2>&1 \
65785c42550eSmrg	|| (test -h "$file") >/dev/null 2>&1 \
65795c42550eSmrg	|| test -f "$file"; then
6580ab47cfaaSmrg	:
6581ab47cfaaSmrg      elif test -d "$file"; then
6582ab47cfaaSmrg	exit_status=1
6583ab47cfaaSmrg	continue
6584ab47cfaaSmrg      elif test "$rmforce" = yes; then
6585ab47cfaaSmrg	continue
6586ab47cfaaSmrg      fi
6587ab47cfaaSmrg
6588ab47cfaaSmrg      rmfiles="$file"
6589ab47cfaaSmrg
6590ab47cfaaSmrg      case $name in
6591ab47cfaaSmrg      *.la)
6592ab47cfaaSmrg	# Possibly a libtool archive, so verify it.
65935c42550eSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
65945c42550eSmrg	  . $dir/$name
6595ab47cfaaSmrg
6596ab47cfaaSmrg	  # Delete the libtool libraries and symlinks.
6597ab47cfaaSmrg	  for n in $library_names; do
6598ab47cfaaSmrg	    rmfiles="$rmfiles $objdir/$n"
6599ab47cfaaSmrg	  done
6600ab47cfaaSmrg	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6601ab47cfaaSmrg
6602ab47cfaaSmrg	  case "$mode" in
6603ab47cfaaSmrg	  clean)
6604ab47cfaaSmrg	    case "  $library_names " in
6605ab47cfaaSmrg	    # "  " in the beginning catches empty $dlname
6606ab47cfaaSmrg	    *" $dlname "*) ;;
6607ab47cfaaSmrg	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6608ab47cfaaSmrg	    esac
66095c42550eSmrg	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6610ab47cfaaSmrg	    ;;
6611ab47cfaaSmrg	  uninstall)
6612ab47cfaaSmrg	    if test -n "$library_names"; then
6613ab47cfaaSmrg	      # Do each command in the postuninstall commands.
66145c42550eSmrg	      cmds=$postuninstall_cmds
66155c42550eSmrg	      save_ifs="$IFS"; IFS='~'
66165c42550eSmrg	      for cmd in $cmds; do
66175c42550eSmrg		IFS="$save_ifs"
66185c42550eSmrg		eval cmd=\"$cmd\"
66195c42550eSmrg		$show "$cmd"
66205c42550eSmrg		$run eval "$cmd"
66215c42550eSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
66225c42550eSmrg		  exit_status=1
66235c42550eSmrg		fi
66245c42550eSmrg	      done
66255c42550eSmrg	      IFS="$save_ifs"
6626ab47cfaaSmrg	    fi
6627ab47cfaaSmrg
6628ab47cfaaSmrg	    if test -n "$old_library"; then
6629ab47cfaaSmrg	      # Do each command in the old_postuninstall commands.
66305c42550eSmrg	      cmds=$old_postuninstall_cmds
66315c42550eSmrg	      save_ifs="$IFS"; IFS='~'
66325c42550eSmrg	      for cmd in $cmds; do
66335c42550eSmrg		IFS="$save_ifs"
66345c42550eSmrg		eval cmd=\"$cmd\"
66355c42550eSmrg		$show "$cmd"
66365c42550eSmrg		$run eval "$cmd"
66375c42550eSmrg		if test "$?" -ne 0 && test "$rmforce" != yes; then
66385c42550eSmrg		  exit_status=1
66395c42550eSmrg		fi
66405c42550eSmrg	      done
66415c42550eSmrg	      IFS="$save_ifs"
6642ab47cfaaSmrg	    fi
6643ab47cfaaSmrg	    # FIXME: should reinstall the best remaining shared library.
6644ab47cfaaSmrg	    ;;
6645ab47cfaaSmrg	  esac
6646ab47cfaaSmrg	fi
6647ab47cfaaSmrg	;;
6648ab47cfaaSmrg
6649ab47cfaaSmrg      *.lo)
6650ab47cfaaSmrg	# Possibly a libtool object, so verify it.
66515c42550eSmrg	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6652ab47cfaaSmrg
6653ab47cfaaSmrg	  # Read the .lo file
66545c42550eSmrg	  . $dir/$name
6655ab47cfaaSmrg
6656ab47cfaaSmrg	  # Add PIC object to the list of files to remove.
66575c42550eSmrg	  if test -n "$pic_object" \
66585c42550eSmrg	     && test "$pic_object" != none; then
6659ab47cfaaSmrg	    rmfiles="$rmfiles $dir/$pic_object"
6660ab47cfaaSmrg	  fi
6661ab47cfaaSmrg
6662ab47cfaaSmrg	  # Add non-PIC object to the list of files to remove.
66635c42550eSmrg	  if test -n "$non_pic_object" \
66645c42550eSmrg	     && test "$non_pic_object" != none; then
6665ab47cfaaSmrg	    rmfiles="$rmfiles $dir/$non_pic_object"
6666ab47cfaaSmrg	  fi
6667ab47cfaaSmrg	fi
6668ab47cfaaSmrg	;;
6669ab47cfaaSmrg
6670ab47cfaaSmrg      *)
6671ab47cfaaSmrg	if test "$mode" = clean ; then
6672ab47cfaaSmrg	  noexename=$name
6673ab47cfaaSmrg	  case $file in
6674ab47cfaaSmrg	  *.exe)
66755c42550eSmrg	    file=`$echo $file|${SED} 's,.exe$,,'`
66765c42550eSmrg	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6677ab47cfaaSmrg	    # $file with .exe has already been added to rmfiles,
6678ab47cfaaSmrg	    # add $file without .exe
6679ab47cfaaSmrg	    rmfiles="$rmfiles $file"
6680ab47cfaaSmrg	    ;;
6681ab47cfaaSmrg	  esac
6682ab47cfaaSmrg	  # Do a test to see if this is a libtool program.
66835c42550eSmrg	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66845c42550eSmrg	    relink_command=
66855c42550eSmrg	    . $dir/$noexename
6686ab47cfaaSmrg
6687ab47cfaaSmrg	    # note $name still contains .exe if it was in $file originally
6688ab47cfaaSmrg	    # as does the version of $file that was added into $rmfiles
6689ab47cfaaSmrg	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6690ab47cfaaSmrg	    if test "$fast_install" = yes && test -n "$relink_command"; then
6691ab47cfaaSmrg	      rmfiles="$rmfiles $objdir/lt-$name"
6692ab47cfaaSmrg	    fi
6693ab47cfaaSmrg	    if test "X$noexename" != "X$name" ; then
6694ab47cfaaSmrg	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6695ab47cfaaSmrg	    fi
6696ab47cfaaSmrg	  fi
6697ab47cfaaSmrg	fi
6698ab47cfaaSmrg	;;
6699ab47cfaaSmrg      esac
67005c42550eSmrg      $show "$rm $rmfiles"
67015c42550eSmrg      $run $rm $rmfiles || exit_status=1
6702ab47cfaaSmrg    done
6703ab47cfaaSmrg    objdir="$origobjdir"
6704ab47cfaaSmrg
6705ab47cfaaSmrg    # Try to remove the ${objdir}s in the directories where we deleted files
6706ab47cfaaSmrg    for dir in $rmdirs; do
6707ab47cfaaSmrg      if test -d "$dir"; then
67085c42550eSmrg	$show "rmdir $dir"
67095c42550eSmrg	$run rmdir $dir >/dev/null 2>&1
6710ab47cfaaSmrg      fi
6711ab47cfaaSmrg    done
6712ab47cfaaSmrg
6713ab47cfaaSmrg    exit $exit_status
67145c42550eSmrg    ;;
6715ab47cfaaSmrg
67165c42550eSmrg  "")
67175c42550eSmrg    $echo "$modename: you must specify a MODE" 1>&2
67185c42550eSmrg    $echo "$generic_help" 1>&2
67195c42550eSmrg    exit $EXIT_FAILURE
67205c42550eSmrg    ;;
67215c42550eSmrg  esac
67221473d951Smrg
67235c42550eSmrg  if test -z "$exec_cmd"; then
67245c42550eSmrg    $echo "$modename: invalid operation mode \`$mode'" 1>&2
67255c42550eSmrg    $echo "$generic_help" 1>&2
67265c42550eSmrg    exit $EXIT_FAILURE
67275c42550eSmrg  fi
67285c42550eSmrgfi # test -z "$show_help"
6729ab47cfaaSmrg
6730ab47cfaaSmrgif test -n "$exec_cmd"; then
67315c42550eSmrg  eval exec $exec_cmd
6732ab47cfaaSmrg  exit $EXIT_FAILURE
6733ab47cfaaSmrgfi
6734ab47cfaaSmrg
67355c42550eSmrg# We need to display help for each of the modes.
67365c42550eSmrgcase $mode in
67375c42550eSmrg"") $echo \
67385c42550eSmrg"Usage: $modename [OPTION]... [MODE-ARG]...
67395c42550eSmrg
67405c42550eSmrgProvide generalized library-building support services.
67415c42550eSmrg
67425c42550eSmrg    --config          show all configuration variables
67435c42550eSmrg    --debug           enable verbose shell tracing
67445c42550eSmrg-n, --dry-run         display commands without modifying any files
67455c42550eSmrg    --features        display basic configuration information and exit
67465c42550eSmrg    --finish          same as \`--mode=finish'
67475c42550eSmrg    --help            display this help message and exit
67485c42550eSmrg    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
67495c42550eSmrg    --quiet           same as \`--silent'
67505c42550eSmrg    --silent          don't print informational messages
67515c42550eSmrg    --tag=TAG         use configuration variables from tag TAG
67525c42550eSmrg    --version         print version information
67535c42550eSmrg
67545c42550eSmrgMODE must be one of the following:
67555c42550eSmrg
67565c42550eSmrg      clean           remove files from the build directory
67575c42550eSmrg      compile         compile a source file into a libtool object
67585c42550eSmrg      execute         automatically set library path, then run a program
67595c42550eSmrg      finish          complete the installation of libtool libraries
67605c42550eSmrg      install         install libraries or executables
67615c42550eSmrg      link            create a library or an executable
67625c42550eSmrg      uninstall       remove libraries from an installed directory
67635c42550eSmrg
67645c42550eSmrgMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
67655c42550eSmrga more detailed description of MODE.
67665c42550eSmrg
67675c42550eSmrgReport bugs to <bug-libtool@gnu.org>."
67685c42550eSmrg  exit $EXIT_SUCCESS
67695c42550eSmrg  ;;
67705c42550eSmrg
67715c42550eSmrgclean)
67725c42550eSmrg  $echo \
67735c42550eSmrg"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
67745c42550eSmrg
67755c42550eSmrgRemove files from the build directory.
67765c42550eSmrg
67775c42550eSmrgRM is the name of the program to use to delete files associated with each FILE
67785c42550eSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
67795c42550eSmrgto RM.
67805c42550eSmrg
67815c42550eSmrgIf FILE is a libtool library, object or program, all the files associated
67825c42550eSmrgwith it are deleted. Otherwise, only FILE itself is deleted using RM."
67835c42550eSmrg  ;;
67845c42550eSmrg
67855c42550eSmrgcompile)
67865c42550eSmrg  $echo \
67875c42550eSmrg"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
67885c42550eSmrg
67895c42550eSmrgCompile a source file into a libtool library object.
67905c42550eSmrg
67915c42550eSmrgThis mode accepts the following additional options:
67925c42550eSmrg
67935c42550eSmrg  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
67945c42550eSmrg  -prefer-pic       try to building PIC objects only
67955c42550eSmrg  -prefer-non-pic   try to building non-PIC objects only
67965c42550eSmrg  -static           always build a \`.o' file suitable for static linking
67975c42550eSmrg
67985c42550eSmrgCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
67995c42550eSmrgfrom the given SOURCEFILE.
68005c42550eSmrg
68015c42550eSmrgThe output file name is determined by removing the directory component from
68025c42550eSmrgSOURCEFILE, then substituting the C source code suffix \`.c' with the
68035c42550eSmrglibrary object suffix, \`.lo'."
68045c42550eSmrg  ;;
68055c42550eSmrg
68065c42550eSmrgexecute)
68075c42550eSmrg  $echo \
68085c42550eSmrg"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
68095c42550eSmrg
68105c42550eSmrgAutomatically set library path, then run a program.
68115c42550eSmrg
68125c42550eSmrgThis mode accepts the following additional options:
68135c42550eSmrg
68145c42550eSmrg  -dlopen FILE      add the directory containing FILE to the library path
68155c42550eSmrg
68165c42550eSmrgThis mode sets the library path environment variable according to \`-dlopen'
68175c42550eSmrgflags.
68185c42550eSmrg
68195c42550eSmrgIf any of the ARGS are libtool executable wrappers, then they are translated
68205c42550eSmrginto their corresponding uninstalled binary, and any of their required library
68215c42550eSmrgdirectories are added to the library path.
68225c42550eSmrg
68235c42550eSmrgThen, COMMAND is executed, with ARGS as arguments."
68245c42550eSmrg  ;;
68255c42550eSmrg
68265c42550eSmrgfinish)
68275c42550eSmrg  $echo \
68285c42550eSmrg"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
68295c42550eSmrg
68305c42550eSmrgComplete the installation of libtool libraries.
68315c42550eSmrg
68325c42550eSmrgEach LIBDIR is a directory that contains libtool libraries.
68335c42550eSmrg
68345c42550eSmrgThe commands that this mode executes may require superuser privileges.  Use
68355c42550eSmrgthe \`--dry-run' option if you just want to see what would be executed."
68365c42550eSmrg  ;;
68375c42550eSmrg
68385c42550eSmrginstall)
68395c42550eSmrg  $echo \
68405c42550eSmrg"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
68415c42550eSmrg
68425c42550eSmrgInstall executables or libraries.
68435c42550eSmrg
68445c42550eSmrgINSTALL-COMMAND is the installation command.  The first component should be
68455c42550eSmrgeither the \`install' or \`cp' program.
68465c42550eSmrg
68475c42550eSmrgThe rest of the components are interpreted as arguments to that command (only
68485c42550eSmrgBSD-compatible install options are recognized)."
68495c42550eSmrg  ;;
68505c42550eSmrg
68515c42550eSmrglink)
68525c42550eSmrg  $echo \
68535c42550eSmrg"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
68545c42550eSmrg
68555c42550eSmrgLink object files or libraries together to form another library, or to
68565c42550eSmrgcreate an executable program.
6857ab47cfaaSmrg
68585c42550eSmrgLINK-COMMAND is a command using the C compiler that you would use to create
68595c42550eSmrga program from several object files.
68605c42550eSmrg
68615c42550eSmrgThe following components of LINK-COMMAND are treated specially:
68625c42550eSmrg
68635c42550eSmrg  -all-static       do not do any dynamic linking at all
68645c42550eSmrg  -avoid-version    do not add a version suffix if possible
68655c42550eSmrg  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
68665c42550eSmrg  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
68675c42550eSmrg  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
68685c42550eSmrg  -export-symbols SYMFILE
68695c42550eSmrg                    try to export only the symbols listed in SYMFILE
68705c42550eSmrg  -export-symbols-regex REGEX
68715c42550eSmrg                    try to export only the symbols matching REGEX
68725c42550eSmrg  -LLIBDIR          search LIBDIR for required installed libraries
68735c42550eSmrg  -lNAME            OUTPUT-FILE requires the installed library libNAME
68745c42550eSmrg  -module           build a library that can dlopened
68755c42550eSmrg  -no-fast-install  disable the fast-install mode
68765c42550eSmrg  -no-install       link a not-installable executable
68775c42550eSmrg  -no-undefined     declare that a library does not refer to external symbols
68785c42550eSmrg  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
68795c42550eSmrg  -objectlist FILE  Use a list of object files found in FILE to specify objects
68805c42550eSmrg  -precious-files-regex REGEX
68815c42550eSmrg                    don't remove output files matching REGEX
68825c42550eSmrg  -release RELEASE  specify package release information
68835c42550eSmrg  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
68845c42550eSmrg  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
68855c42550eSmrg  -static           do not do any dynamic linking of uninstalled libtool libraries
68865c42550eSmrg  -static-libtool-libs
68875c42550eSmrg                    do not do any dynamic linking of libtool libraries
68885c42550eSmrg  -version-info CURRENT[:REVISION[:AGE]]
68895c42550eSmrg                    specify library version info [each variable defaults to 0]
68905c42550eSmrg
68915c42550eSmrgAll other options (arguments beginning with \`-') are ignored.
68925c42550eSmrg
68935c42550eSmrgEvery other argument is treated as a filename.  Files ending in \`.la' are
68945c42550eSmrgtreated as uninstalled libtool libraries, other files are standard or library
68955c42550eSmrgobject files.
68965c42550eSmrg
68975c42550eSmrgIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
68985c42550eSmrgonly library objects (\`.lo' files) may be specified, and \`-rpath' is
68995c42550eSmrgrequired, except when creating a convenience library.
69005c42550eSmrg
69015c42550eSmrgIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
69025c42550eSmrgusing \`ar' and \`ranlib', or on Windows using \`lib'.
69035c42550eSmrg
69045c42550eSmrgIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
69055c42550eSmrgis created, otherwise an executable program is created."
69065c42550eSmrg  ;;
69075c42550eSmrg
69085c42550eSmrguninstall)
69095c42550eSmrg  $echo \
69105c42550eSmrg"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
69115c42550eSmrg
69125c42550eSmrgRemove libraries from an installation directory.
69135c42550eSmrg
69145c42550eSmrgRM is the name of the program to use to delete files associated with each FILE
69155c42550eSmrg(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
69165c42550eSmrgto RM.
69175c42550eSmrg
69185c42550eSmrgIf FILE is a libtool library, all the files associated with it are deleted.
69195c42550eSmrgOtherwise, only FILE itself is deleted using RM."
69205c42550eSmrg  ;;
69215c42550eSmrg
69225c42550eSmrg*)
69235c42550eSmrg  $echo "$modename: invalid operation mode \`$mode'" 1>&2
69245c42550eSmrg  $echo "$help" 1>&2
69255c42550eSmrg  exit $EXIT_FAILURE
69265c42550eSmrg  ;;
69275c42550eSmrgesac
69285c42550eSmrg
69295c42550eSmrg$echo
69305c42550eSmrg$echo "Try \`$modename --help' for more information about other modes."
69315c42550eSmrg
69325c42550eSmrgexit $?
6933ab47cfaaSmrg
6934ab47cfaaSmrg# The TAGs below are defined such that we never get into a situation
6935ab47cfaaSmrg# in which we disable both kinds of libraries.  Given conflicting
6936ab47cfaaSmrg# choices, we go for a static library, that is the most portable,
6937ab47cfaaSmrg# since we can't tell whether shared libraries were disabled because
6938ab47cfaaSmrg# the user asked for that or because the platform doesn't support
6939ab47cfaaSmrg# them.  This is particularly important on AIX, because we don't
6940ab47cfaaSmrg# support having both static and shared libraries enabled at the same
6941ab47cfaaSmrg# time on that platform, so we default to a shared-only configuration.
6942ab47cfaaSmrg# If a disable-shared tag is given, we'll fallback to a static-only
6943ab47cfaaSmrg# configuration.  But we'll never go from static-only to shared-only.
6944ab47cfaaSmrg
6945ab47cfaaSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
69465c42550eSmrgdisable_libs=shared
6947ab47cfaaSmrg# ### END LIBTOOL TAG CONFIG: disable-shared
6948ab47cfaaSmrg
6949ab47cfaaSmrg# ### BEGIN LIBTOOL TAG CONFIG: disable-static
69505c42550eSmrgdisable_libs=static
6951ab47cfaaSmrg# ### END LIBTOOL TAG CONFIG: disable-static
6952ab47cfaaSmrg
6953ab47cfaaSmrg# Local Variables:
6954ab47cfaaSmrg# mode:shell-script
6955ab47cfaaSmrg# sh-indentation:2
6956ab47cfaaSmrg# End:
6957