15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ltmain.sh - Provide generalized library-building support services.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# NOTE: Changing this file will not affect anything until you rerun configure.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# 2007, 2008  Free Software Foundation, Inc.
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This program is free software; you can redistribute it and/or modify
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# it under the terms of the GNU General Public License as published by
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the Free Software Foundation; either version 2 of the License, or
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# (at your option) any later version.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This program is distributed in the hope that it will be useful, but
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# WITHOUT ANY WARRANTY; without even the implied warranty of
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# General Public License for more details.
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# You should have received a copy of the GNU General Public License
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# along with this program; if not, write to the Free Software
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# As a special exception to the GNU General Public License, if you
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# distribute this file as part of a program that contains a
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# configuration script generated by Autoconf, you may include it under
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the same distribution terms that you use for the rest of that program.
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)basename="s,^.*/,,g"
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# is ksh but when the shell is invoked as "sh" and the current value of
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the _XPG environment variable is not equal to 1 (one), the special
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# positional parameter $0, within a function call, is the name of the
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# function.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)progpath="$0"
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name of this program:
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)progname=`echo "$progpath" | $SED $basename`
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)modename="$progname"
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Global variables:
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXIT_SUCCESS=0
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EXIT_FAILURE=1
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PROGRAM=ltmain.sh
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PACKAGE=libtool
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)VERSION=1.5.26
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)TIMESTAMP=" (1.1220.2.492 2008/01/30 06:40:56)"
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  emulate sh
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NULLCMD=:
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # is contrary to our usage.  Disable this feature.
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  alias -g '${1+"$@"}'='"$@"'
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  setopt NO_GLOB_SUBST
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BIN_SH=xpg4; export BIN_SH # for Tru64
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DUALCASE=1; export DUALCASE # for MKS sh
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Check that we have a working $echo.
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "X$1" = X--no-reexec; then
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Discard the --no-reexec flag, and continue.
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  shift
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)elif test "X$1" = X--fallback-echo; then
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Avoid inline document here, it may be left over
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  :
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Yippee, $echo works!
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  :
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Restart under the correct shell, and then maybe $echo will work.
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "X$1" = X--fallback-echo; then
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # used as fallback echo
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  shift
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  cat <<EOF
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$*
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_SUCCESS
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)default_mode=
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)help="Try \`$progname --help' for more information."
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)magic="%%%MAGIC variable%%%"
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mkdir="mkdir"
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mv="mv -f"
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)rm="rm -f"
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Sed substitution that helps us do robust quoting.  It backslashifies
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# metacharacters that are still active within double-quoted strings.
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Xsed="${SED}"' -e 1s/^X//'
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# test EBCDIC or ASCII
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case `echo X|tr X '\101'` in
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) A) # ASCII based system
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SP2NL='tr \040 \012'
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NL2SP='tr \015\012 \040\040'
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *) # EBCDIC based system
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SP2NL='tr \100 \n'
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NL2SP='tr \r\n \100\100'
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# NLS nuisances.
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Only set LANG and LC_ALL to C if already set.
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# These must not be set unconditionally because not all systems understand
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# e.g. LANG=C (notably SCO).
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# We save the old values to restore during execute mode.
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_env=
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)do
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  eval "if test \"\${$lt_var+set}\" = set; then
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_$lt_var=\$$lt_var
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $lt_var=C
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  export $lt_var
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi"
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$lt_env"; then
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  lt_env="env $lt_env"
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make sure IFS has a sensible default
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_nl='
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)'
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)IFS=" 	$lt_nl"
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "$modename: not configured to build any kind of library" 1>&2
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_FAILURE
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Global variables.
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)mode=$default_mode
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)nonopt=
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)prev=
1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)prevopt=
1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)run=
1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)show="$echo"
1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)show_help=
1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)execute_dlfiles=
1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)duplicate_deps=no
1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)preserve_args=
1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lo2o="s/\\.lo\$/.${objext}/"
1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)o2lo="s/\\.${objext}\$/.lo/"
1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extracted_archives=
1565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extracted_serial=0
1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#####################################
1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Shell function definitions:
1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This seems to be the best place for them
1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_mktempdir [string]
1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Make a temporary directory that won't clash with other running
1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# libtool processes, and avoids race conditions if possible.  If
1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# given, STRING is the basename for that directory.
1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_mktempdir ()
1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_template="${TMPDIR-/tmp}/${1-$progname}"
1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$run" = ":"; then
1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Return a directory name, but don't create it in dry-run mode
1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_tmpdir="${my_template}-$$"
1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # If mktemp works, use that first and foremost
1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test ! -d "$my_tmpdir"; then
1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Failing that, at least try and use $RANDOM to avoid a race
1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	my_tmpdir="${my_template}-${RANDOM-0}$$"
1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_mktempdir_umask=`umask`
1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	umask 0077
1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$mkdir "$my_tmpdir"
1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	umask $save_mktempdir_umask
1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # If we're not in dry-run mode, bomb out on failure
1895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -d "$my_tmpdir" || {
1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      }
1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "X$my_tmpdir" | $Xsed
1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_win32_libid arg
2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# return the library type of file 'arg'
2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Need a lot of goo to handle *both* DLLs and import libs
2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Has to be a shell function in order to 'eat' the argument
2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# that is supplied when $file_magic_command is called.
2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_win32_libid ()
2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  win32_libid_type="unknown"
2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  win32_fileres=`file -L $1 2>/dev/null`
2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case $win32_fileres in
2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *ar\ archive\ import\ library*) # definitely import
2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    win32_libid_type="x86 archive import"
2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *ar\ archive*) # could be an import, or static
2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      win32_nmres=`eval $NM -f posix -A $1 | \
2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$SED -n -e '1,100{
2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		/ I /{
2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			s,.*,import,
2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			p
2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			q
2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			}
2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		}'`
2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $win32_nmres in
2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      import*)  win32_libid_type="x86 archive import";;
2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)        win32_libid_type="x86 archive static";;
2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *DLL*)
2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    win32_libid_type="x86 DLL"
2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *executable*) # but shell scripts are "executable" too...
2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $win32_fileres in
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *MS\ Windows\ PE\ Intel*)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      win32_libid_type="x86 DLL"
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  esac
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo $win32_libid_type
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_infer_tag arg
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Infer tagged configuration to use if any are available and
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if one wasn't chosen via the "--tag" command line option.
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Only attempt this if the compiler in the base compile
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# command doesn't match the default compiler.
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# arg is usually of the form 'gcc ...'
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_infer_tag ()
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$available_tags" && test -z "$tagname"; then
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      CC_quoted=
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for arg in $CC; do
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="\"$arg\""
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	CC_quoted="$CC_quoted $arg"
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $@ in
2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Blanks in the command may have been stripped by the calling shell,
2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # but not from the CC environment variable when configure was run.
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Blanks at the start of $base_compile will cause this to fail
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # if we don't check for them as well.
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for z in $available_tags; do
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Evaluate the configuration.
2735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
2745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    CC_quoted=
2755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for arg in $CC; do
2765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Double-quote args containing other shell metacharacters.
2775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $arg in
2785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
2795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      arg="\"$arg\""
2805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
2815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
2825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    CC_quoted="$CC_quoted $arg"
2835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
2845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$@ " in
2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # The compiler in the base compile command matches
2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # the one in the tagged configuration.
2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Assume this is the tagged configuration we want.
2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      tagname=$z
2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      break
2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If $tagname still isn't set, then no tagged configuration
2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# was found and let the user know that the "--tag" command
2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# line option must be used.
2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$tagname"; then
2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: unable to infer tagged configuration"
3005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: specify a tag with \`--tag'" 1>&2
3015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
3025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#        else
3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#          $echo "$modename: using $tagname tagged configuration"
3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
3055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
3075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
3085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_extract_an_archive dir oldlib
3125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_extract_an_archive ()
3135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
3145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    f_ex_an_ar_dir="$1"; shift
3155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    f_ex_an_ar_oldlib="$1"
3165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
3185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     :
3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# func_extract_archives gentop oldlib ...
3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)func_extract_archives ()
3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_gentop="$1"; shift
3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_oldlibs=${1+"$@"}
3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_oldobjs=""
3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_xlib=""
3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_xabs=""
3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_xdir=""
3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_status=""
3375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $show "${rm}r $my_gentop"
3395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run ${rm}r "$my_gentop"
3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $show "$mkdir $my_gentop"
3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run $mkdir "$my_gentop"
3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    my_status=$?
3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $my_status
3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for my_xlib in $my_oldlibs; do
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Extract the objects.
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $my_xlib in
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) my_xabs=`pwd`"/$my_xlib" ;;
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_xlib_u=$my_xlib
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      while :; do
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        case " $extracted_archives " in
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $my_xlib_u "*)
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  extracted_serial=`expr $extracted_serial + 1`
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) break ;;
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      extracted_archives="$extracted_archives $my_xlib_u"
3645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_xdir="$my_gentop/$my_xlib_u"
3655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "${rm}r $my_xdir"
3675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run ${rm}r "$my_xdir"
3685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$mkdir $my_xdir"
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $mkdir "$my_xdir"
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit_status=$?
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $exit_status
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $host in
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *-darwin*)
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "Extracting $my_xabs"
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Do not bother doing anything if just a dry run
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$run"; then
3795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin_orig_dir=`pwd`
3805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cd $my_xdir || exit $?
3815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin_archive=$my_xabs
3825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin_curdir=`pwd`
3835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
3845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
3855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$darwin_arches"; then 
3865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
3875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    darwin_arch=
3885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
3895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for darwin_arch in  $darwin_arches ; do
3905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
3925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
3935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
3945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cd "$darwin_curdir"
3955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
3965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done # $darwin_arches
3975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
3985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
3995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    darwin_file=
4005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    darwin_files=
4015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for darwin_file in $darwin_filelist; do
4025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
4035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      lipo -create -output "$darwin_file" $darwin_files
4045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done # $darwin_filelist
4055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ${rm}r unfat-$$
4065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cd "$darwin_orig_dir"
4075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
4085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cd "$darwin_orig_dir"
4095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 	    func_extract_an_archive "$my_xdir" "$my_xabs"
4105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi # $darwin_arches
4115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $run
4125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
4135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
4145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        func_extract_an_archive "$my_xdir" "$my_xabs"
4155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ;;
4165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
4175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
4185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
4195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    func_extract_archives_result="$my_oldobjs"
4205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
4215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# End of Shell function definitions
4225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#####################################
4235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Darwin sucks
4255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)eval std_shrext=\"$shrext_cmds\"
4265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=no
4285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Parse our command line options once, thoroughly.
4305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)while test "$#" -gt 0
4315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)do
4325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  arg="$1"
4335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  shift
4345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case $arg in
4365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
4375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *) optarg= ;;
4385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  esac
4395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # If the previous option needs an argument, assign it.
4415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test -n "$prev"; then
4425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $prev in
4435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    execute_dlfiles)
4445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      execute_dlfiles="$execute_dlfiles $arg"
4455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
4465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    tag)
4475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      tagname="$arg"
4485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      preserve_args="${preserve_args}=$arg"
4495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Check whether tagname contains only valid characters
4515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $tagname in
4525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[!-_A-Za-z0-9,/]*)
4535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$progname: invalid tag name: $tagname" 1>&2
4545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
4555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
4565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
4575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $tagname in
4595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      CC)
4605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Don't test for the "default" C tag, as we know, it's there, but
4615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# not specially marked.
4625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
4635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
4645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
4655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  taglist="$taglist $tagname"
4665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Evaluate the configuration.
4675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
4685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
4695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
4705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
4715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
4725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
4735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
4745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
4755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      eval "$prev=\$arg"
4765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
4775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
4785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=
4805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prevopt=
4815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    continue
4825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
4835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Have we seen a non-optional argument yet?
4855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case $arg in
4865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --help)
4875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    show_help=yes
4885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
4895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --version)
4915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo "\
4925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
4935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
4945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Copyright (C) 2008  Free Software Foundation, Inc.
4955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This is free software; see the source for copying conditions.  There is NO
4965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
4975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $?
4985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
4995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --config)
5015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
5025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Now print the configurations for the tags.
5035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for tagname in $taglist; do
5045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
5055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
5065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $?
5075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --debug)
5105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$progname: enabling shell trace mode"
5115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    set -x
5125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    preserve_args="$preserve_args $arg"
5135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --dry-run | -n)
5165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    run=:
5175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --features)
5205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "host: $host"
5215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$build_libtool_libs" = yes; then
5225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "enable shared libraries"
5235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
5245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "disable shared libraries"
5255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
5265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$build_old_libs" = yes; then
5275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "enable static libraries"
5285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
5295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "disable static libraries"
5305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
5315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $?
5325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --finish) mode="finish" ;;
5355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --mode) prevopt="--mode" prev=mode ;;
5375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --mode=*) mode="$optarg" ;;
5385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --preserve-dup-deps) duplicate_deps="yes" ;;
5405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --quiet | --silent)
5425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    show=:
5435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    preserve_args="$preserve_args $arg"
5445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --tag)
5475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prevopt="--tag"
5485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=tag
5495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    preserve_args="$preserve_args --tag"
5505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  --tag=*)
5525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    set tag "$optarg" ${1+"$@"}
5535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    shift
5545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=tag
5555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    preserve_args="$preserve_args --tag"
5565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -dlopen)
5595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prevopt="-dlopen"
5605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=execute_dlfiles
5615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -*)
5645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$modename: unrecognized option \`$arg'" 1>&2
5655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$help" 1>&2
5665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_FAILURE
5675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  *)
5705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    nonopt="$arg"
5715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    break
5725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
5735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  esac
5745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)done
5755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$prevopt"; then
5775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
5785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "$help" 1>&2
5795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_FAILURE
5805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
5815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case $disable_libs in
5835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)no) 
5845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
5855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shared)
5865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  build_libtool_libs=no
5875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  build_old_libs=yes
5885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
5895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static)
5905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
5915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
5925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac
5935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If this variable is set in any of the actions, the command in it
5955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# will be execed at the end.  This prevents here-documents from being
5965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# left over by shells.
5975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)exec_cmd=
5985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
5995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -z "$show_help"; then
6005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Infer the operation mode.
6025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test -z "$mode"; then
6035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
6045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
6055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $nonopt in
6065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
6075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      mode=link
6085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for arg
6095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      do
6105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
6115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-c)
6125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   mode=compile
6135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   break
6145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   ;;
6155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
6165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
6175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
6185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *db | *dbx | *strace | *truss)
6195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      mode=execute
6205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
6215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *install*|cp|mv)
6225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      mode=install
6235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
6245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *rm)
6255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      mode=uninstall
6265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
6275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
6285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # If we have no mode, but dlfiles were specified, then do execute mode.
6295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -n "$execute_dlfiles" && mode=execute
6305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Just use the default operation mode.
6325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$mode"; then
6335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$nonopt"; then
6345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
6355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
6365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
6375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
6385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
6395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
6405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
6415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
6425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Only execute mode is allowed to have -dlopen flags.
6445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test -n "$execute_dlfiles" && test "$mode" != execute; then
6455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
6465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$help" 1>&2
6475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_FAILURE
6485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
6495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Change the help message to a mode-specific one.
6515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  generic_help="$help"
6525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  help="Try \`$modename --help --mode=$mode' for more information."
6535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # These modes are in order of execution frequency so that they run quickly.
6555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case $mode in
6565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool compile mode
6575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  compile)
6585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: compile"
6595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Get the compilation command and the source file.
6605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    base_compile=
6615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
6625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    suppress_opt=yes
6635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    suppress_output=
6645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arg_mode=normal
6655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libobj=
6665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    later=
6675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for arg
6695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    do
6705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg_mode in
6715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg  )
6725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# do not "continue".  Instead, add this to base_compile
6735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	lastarg="$arg"
6745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg_mode=normal
6755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
6765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      target )
6785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libobj="$arg"
6795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg_mode=normal
6805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
6815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
6825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      normal )
6845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Accept any command-line options.
6855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
6865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-o)
6875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$libobj" ; then
6885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
6895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
6905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
6915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg_mode=target
6925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
6935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
6945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
6955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-static | -prefer-pic | -prefer-non-pic)
6965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  later="$later $arg"
6975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
6985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
6995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-no-suppress)
7015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  suppress_opt=no
7025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
7035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
7045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-Xcompiler)
7065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
7075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue      #  The current "srcfile" will either be retained or
7085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;            #  replaced later.  I would guess that would be a bug.
7095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-Wc,*)
7115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
7125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lastarg=
7135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_ifs="$IFS"; IFS=','
7145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 	  for arg in $args; do
7155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    IFS="$save_ifs"
7165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Double-quote args containing other shell metacharacters.
7185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Many Bourne shells cannot handle close brackets correctly
7195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # in scan sets, so we specify it separately.
7205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $arg in
7215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      arg="\"$arg\""
7235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
7245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
7255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    lastarg="$lastarg $arg"
7265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
7275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
7285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
7295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add the arguments to base_compile.
7315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  base_compile="$base_compile $lastarg"
7325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
7335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
7345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	* )
7365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Accept the current argument as the source file.
7375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # The previous "srcfile" becomes the current argument.
7385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  #
7395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lastarg="$srcfile"
7405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  srcfile="$arg"
7415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
7425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac  #  case $arg
7435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
7445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac    #  case $arg_mode
7455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Aesthetically quote the previous argument.
7475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
7485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $lastarg in
7505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Double-quote args containing other shell metacharacters.
7515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Many Bourne shells cannot handle close brackets correctly
7525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # in scan sets, and some SunOS ksh mistreat backslash-escaping
7535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # in scan sets (worked around with variable expansion),
7545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
7555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # at all, so we specify them separately.
7565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
7575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	lastarg="\"$lastarg\""
7585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
7595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
7605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base_compile="$base_compile $lastarg"
7625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done # for arg
7635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $arg_mode in
7655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arg)
7665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify an argument for -Xcompile"
7675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
7685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
7695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    target)
7705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify a target with \`-o'" 1>&2
7715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
7725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
7735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
7745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Get the name of the library object.
7755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
7765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
7775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
7785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
7795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Recognize several different file suffixes.
7805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # If the user specifies -o file.o, it is replaced with file.lo
7815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    xform='[cCFSifmso]'
7825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $libobj in
7835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.ada) xform=ada ;;
7845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.adb) xform=adb ;;
7855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.ads) xform=ads ;;
7865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.asm) xform=asm ;;
7875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.c++) xform=c++ ;;
7885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.cc) xform=cc ;;
7895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.ii) xform=ii ;;
7905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.class) xform=class ;;
7915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.cpp) xform=cpp ;;
7925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.cxx) xform=cxx ;;
7935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.[fF][09]?) xform=[fF][09]. ;;
7945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.for) xform=for ;;
7955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.java) xform=java ;;
7965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.obj) xform=obj ;;
7975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.sx) xform=sx ;;
7985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
7995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
8015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $libobj in
8035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
8045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
8055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
8065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
8075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
8085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
8095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    func_infer_tag $base_compile
8115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for arg in $later; do
8135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
8145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -static)
8155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	build_old_libs=yes
8165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
8175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
8185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -prefer-pic)
8205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	pic_mode=yes
8215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
8225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
8235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -prefer-non-pic)
8255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	pic_mode=no
8265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
8275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
8285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
8295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
8305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
8325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $qlibobj in
8335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
8345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	qlibobj="\"$qlibobj\"" ;;
8355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
8365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test "X$libobj" != "X$qlibobj" \
8375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
8385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
8395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
8405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
8415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "X$xdir" = "X$obj"; then
8425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      xdir=
8435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
8445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      xdir=$xdir/
8455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
8465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lobj=${xdir}$objdir/$objname
8475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$base_compile"; then
8495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify a compilation command" 1>&2
8505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
8515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
8525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
8535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Delete any leftover library objects.
8555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$build_old_libs" = yes; then
8565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      removelist="$obj $lobj $libobj ${libobj}T"
8575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
8585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      removelist="$lobj $libobj ${libobj}T"
8595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
8605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run $rm $removelist
8625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # On Cygwin there's no "real" PIC flag so we must build both object types
8655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $host_os in
8665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    cygwin* | mingw* | pw32* | os2*)
8675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pic_mode=default
8685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
8695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
8705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
8715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # non-PIC code in shared libraries is not supported
8725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pic_mode=default
8735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
8745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Calculate the filename of the output object if compiler does
8765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # not support -o with -c
8775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$compiler_c_o" = no; then
8785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
8795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      lockfile="$output_obj.lock"
8805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      removelist="$removelist $output_obj $lockfile"
8815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
8825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
8835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      output_obj=
8845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      need_locks=no
8855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      lockfile=
8865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
8875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
8885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Lock this critical section if it is needed
8895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # We use this script file to make the link, it avoids creating a new file
8905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$need_locks" = yes; then
8915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
8925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "Waiting for $lockfile to be removed"
8935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	sleep 2
8945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
8955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    elif test "$need_locks" = warn; then
8965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -f "$lockfile"; then
8975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "\
8985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile exists and contains:
8995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null`
9005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same
9025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because
9035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together.  If you
9045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better
9055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better
9065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler."
9075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $rm $removelist
9095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
9105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$srcfile" > "$lockfile"
9125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
9135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$fix_srcfile_path"; then
9155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      eval srcfile=\"$fix_srcfile_path\"
9165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
9175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
9185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $qsrcfile in
9195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
9205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      qsrcfile="\"$qsrcfile\"" ;;
9215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
9225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run $rm "$libobj" "${libobj}T"
9245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Create a libtool object file (analogous to a ".la" file),
9265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # but don't create it if we're doing a dry run.
9275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test -z "$run" && cat > ${libobj}T <<EOF
9285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $libobj - a libtool object file
9295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
9305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
9315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Please DO NOT delete this file!
9325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# It is necessary for linking the library.
9335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the PIC object.
9355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
9365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Only build a PIC object if we are building libtool libraries.
9385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$build_libtool_libs" = yes; then
9395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Without this assignment, base_compile gets emptied.
9405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fbsd_hideous_sh_bug=$base_compile
9415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$pic_mode" != no; then
9435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$base_compile $qsrcfile $pic_flag"
9445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
9455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Don't build PIC code
9465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$base_compile $qsrcfile"
9475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test ! -d "${xdir}$objdir"; then
9505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$mkdir ${xdir}$objdir"
9515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $mkdir ${xdir}$objdir
9525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit_status=$?
9535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
9545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $exit_status
9555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
9565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$output_obj"; then
9595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Place PIC objects in $objdir
9605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$command -o $lobj"
9615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm "$lobj" "$output_obj"
9645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$command"
9665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if $run eval $lt_env "$command"; then :
9675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
9685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test -n "$output_obj" && $run $rm $removelist
9695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
9705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$need_locks" = warn &&
9735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
9745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "\
9755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile contains:
9765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null`
9775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)but it should contain:
9795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$srcfile
9805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same
9825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because
9835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together.  If you
9845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better
9855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better
9865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler."
9875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $rm $removelist
9895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
9905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
9915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
9925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Just move the object if needed, then go on to compile the next one
9935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
9945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$mv $output_obj $lobj"
9955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if $run $mv $output_obj $lobj; then :
9965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
9975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  error=$?
9985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run $rm $removelist
9995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $error
10005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
10015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Append the name of the PIC object to the libtool object file.
10045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -z "$run" && cat >> ${libobj}T <<EOF
10055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)pic_object='$objdir/$objname'
10065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
10085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Allow error messages only from the first compilation.
10105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$suppress_opt" = yes; then
10115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        suppress_output=' >/dev/null 2>&1'
10125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
10145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # No PIC object so indicate it doesn't exist in the libtool
10155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # object file.
10165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -z "$run" && cat >> ${libobj}T <<EOF
10175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)pic_object=none
10185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
10205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
10215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Only build a position-dependent object if we build old libraries.
10235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$build_old_libs" = yes; then
10245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$pic_mode" != yes; then
10255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Don't build PIC code
10265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$base_compile $qsrcfile"
10275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
10285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$base_compile $qsrcfile $pic_flag"
10295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$compiler_c_o" = yes; then
10315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	command="$command -o $obj"
10325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Suppress compiler output if we already did a PIC compilation.
10355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      command="$command$suppress_output"
10365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm "$obj" "$output_obj"
10375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$command"
10385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if $run eval $lt_env "$command"; then :
10395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
10405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $rm $removelist
10415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
10425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$need_locks" = warn &&
10455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
10465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "\
10475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*** ERROR, $lockfile contains:
10485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)`cat $lockfile 2>/dev/null`
10495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)but it should contain:
10515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$srcfile
10525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This indicates that another process is trying to use the same
10545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)temporary object file, and libtool could not work around it because
10555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)your compiler does not support \`-c' and \`-o' together.  If you
10565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)repeat this compilation, it may succeed, by chance, but you had better
10575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)avoid parallel builds (make -j) in this platform, or get a better
10585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compiler."
10595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $rm $removelist
10615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
10625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Just move the object if needed
10655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
10665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$mv $output_obj $obj"
10675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if $run $mv $output_obj $obj; then :
10685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
10695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  error=$?
10705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run $rm $removelist
10715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $error
10725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
10735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
10745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Append the name of the non-PIC object the libtool object file.
10765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Only append if the libtool object file exists.
10775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -z "$run" && cat >> ${libobj}T <<EOF
10785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the non-PIC object.
10795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)non_pic_object='$objname'
10805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
10825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
10835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Append the name of the non-PIC object the libtool object file.
10845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Only append if the libtool object file exists.
10855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -z "$run" && cat >> ${libobj}T <<EOF
10865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Name of the non-PIC object.
10875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)non_pic_object=none
10885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
10905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
10915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $run $mv "${libobj}T" "${libobj}"
10935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Unlock the critical section if it was locked
10955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$need_locks" != no; then
10965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm "$lockfile"
10975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
10985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
10995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_SUCCESS
11005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
11015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool link mode
11035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  link | relink)
11045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: link"
11055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $host in
11065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
11075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # It is impossible to link a dll without this setting, and
11085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # we shouldn't force the makefile maintainer to figure out
11095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # which system we are compiling for in order to pass an extra
11105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # flag for every libtool invocation.
11115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # allow_undefined=no
11125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # FIXME: Unfortunately, there are problems with the above when trying
11145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # to make a dll which has undefined symbols, in which case not
11155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # even a static library is built.  For now, we need to specify
11165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -no-undefined on the libtool link line when we can be certain
11175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # that all symbols are satisfied, otherwise we get a static library.
11185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      allow_undefined=yes
11195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
11205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
11215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      allow_undefined=yes
11225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
11235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
11245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libtool_args="$nonopt"
11255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    base_compile="$nonopt $@"
11265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    compile_command="$nonopt"
11275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    finalize_command="$nonopt"
11285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    compile_rpath=
11305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    finalize_rpath=
11315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    compile_shlibpath=
11325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    finalize_shlibpath=
11335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    convenience=
11345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    old_convenience=
11355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    deplibs=
11365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    old_deplibs=
11375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    compiler_flags=
11385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    linker_flags=
11395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dllsearchpath=
11405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lib_search_path=`pwd`
11415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    inst_prefix_dir=
11425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    avoid_version=no
11445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dlfiles=
11455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dlprefiles=
11465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dlself=no
11475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    export_dynamic=no
11485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    export_symbols=
11495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    export_symbols_regex=
11505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    generated=
11515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libobjs=
11525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ltlibs=
11535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    module=no
11545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    no_install=no
11555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    objs=
11565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    non_pic_objects=
11575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    notinst_path= # paths that contain not-installed libtool libraries
11585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    precious_files_regex=
11595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prefer_static_libs=no
11605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    preload=no
11615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=
11625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prevarg=
11635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    release=
11645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    rpath=
11655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    xrpath=
11665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    perm_rpath=
11675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    temp_rpath=
11685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    thread_safe=no
11695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    vinfo=
11705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    vinfo_number=no
11715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    single_module="${wl}-single_module"
11725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    func_infer_tag $base_compile
11745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
11755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # We need to know -static, to get the right output filenames.
11765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for arg
11775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    do
11785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
11795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -all-static | -static | -static-libtool-libs)
11805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
11815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-all-static)
11825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
11835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
11845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
11855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$link_static_flag"; then
11865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlopen_self=$dlopen_self_static
11875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
11885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prefer_static_libs=yes
11895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
11905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-static)
11915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlopen_self=$dlopen_self_static
11935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
11945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prefer_static_libs=built
11955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
11965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-static-libtool-libs)
11975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
11985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlopen_self=$dlopen_self_static
11995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
12005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prefer_static_libs=yes
12015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
12035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	build_libtool_libs=no
12045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	build_old_libs=yes
12055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	break
12065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
12075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
12085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
12095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # See if our shared archives depend on static archives.
12115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
12125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Go through the arguments, transforming them on the way.
12145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    while test "$#" -gt 0; do
12155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg="$1"
12165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      shift
12175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
12185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
12195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
12205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
12215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *) qarg=$arg ;;
12225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
12235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      libtool_args="$libtool_args $qarg"
12245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # If the previous option needs an argument, assign it.
12265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$prev"; then
12275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $prev in
12285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	output)
12295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command @OUTPUT@"
12305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command @OUTPUT@"
12315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
12335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
12345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $prev in
12355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlfiles|dlprefiles)
12365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$preload" = no; then
12375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Add the symbol object into the linking commands.
12385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compile_command="$compile_command @SYMFILE@"
12395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    finalize_command="$finalize_command @SYMFILE@"
12405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    preload=yes
12415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
12425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $arg in
12435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.la | *.lo) ;;  # We handle these cases below.
12445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  force)
12455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$dlself" = no; then
12465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlself=needless
12475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      export_dynamic=yes
12485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
12495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    prev=
12505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
12515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
12525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  self)
12535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$prev" = dlprefiles; then
12545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlself=yes
12555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
12565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlself=yes
12575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
12585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlself=needless
12595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      export_dynamic=yes
12605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
12615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    prev=
12625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
12635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
12645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
12655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$prev" = dlfiles; then
12665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlfiles="$dlfiles $arg"
12675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
12685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlprefiles="$dlprefiles $arg"
12695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
12705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    prev=
12715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
12725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
12735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
12745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	expsyms)
12765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  export_symbols="$arg"
12775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test ! -f "$arg"; then
12785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: symbol file \`$arg' does not exist"
12795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
12805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
12815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
12825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
12835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	expsyms_regex)
12855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  export_symbols_regex="$arg"
12865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
12875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
12885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	inst_prefix)
12905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  inst_prefix_dir="$arg"
12915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
12925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
12935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	precious_regex)
12955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  precious_files_regex="$arg"
12965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
12975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
12985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
12995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	release)
13005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  release="-$arg"
13015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
13025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
13035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
13045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	objectlist)
13055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -f "$arg"; then
13065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    save_arg=$arg
13075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    moreargs=
13085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for fil in `cat $save_arg`
13095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    do
13105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#	      moreargs="$moreargs $fil"
13115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      arg=$fil
13125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # A libtool-controlled object.
13135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Check to see that this really is a libtool object.
13155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
13165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		pic_object=
13175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		non_pic_object=
13185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Read the .lo file
13205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# If there is no directory component, then add one.
13215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $arg in
13225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*/* | *\\*) . $arg ;;
13235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) . ./$arg ;;
13245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
13255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$pic_object" || \
13275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   test -z "$non_pic_object" ||
13285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   test "$pic_object" = none && \
13295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   test "$non_pic_object" = none; then
13305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
13315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  exit $EXIT_FAILURE
13325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
13335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Extract subdirectory from the argument.
13355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "X$xdir" = "X$arg"; then
13375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  xdir=
13385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
13395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  xdir="$xdir/"
13405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
13415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "$pic_object" != none; then
13435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Prepend the subdirectory the object is found in.
13445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  pic_object="$xdir$pic_object"
13455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "$prev" = dlfiles; then
13475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
13485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      dlfiles="$dlfiles $pic_object"
13495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      prev=
13505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      continue
13515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    else
13525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # If libtool objects are unsupported, then we need to preload.
13535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      prev=dlprefiles
13545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
13555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
13565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # CHECK ME:  I think I busted this.  -Ossama
13585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "$prev" = dlprefiles; then
13595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    # Preload the old-style object.
13605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    dlprefiles="$dlprefiles $pic_object"
13615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    prev=
13625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
13635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # A PIC object.
13655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  libobjs="$libobjs $pic_object"
13665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  arg="$pic_object"
13675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
13685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Non-PIC object.
13705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "$non_pic_object" != none; then
13715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Prepend the subdirectory the object is found in.
13725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_object="$xdir$non_pic_object"
13735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # A standard non-PIC object
13755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_objects="$non_pic_objects $non_pic_object"
13765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test -z "$pic_object" || test "$pic_object" = none ; then
13775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    arg="$non_pic_object"
13785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
13795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
13805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # If the PIC object exists, use it instead.
13815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # $xdir was prepended to $pic_object above.
13825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_object="$pic_object"
13835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_objects="$non_pic_objects $non_pic_object"
13845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
13855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
13865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Only an error if not doing a dry-run.
13875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$run"; then
13885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
13895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  exit $EXIT_FAILURE
13905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
13915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Dry-run case.
13925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
13935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Extract subdirectory from the argument.
13945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
13955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "X$xdir" = "X$arg"; then
13965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xdir=
13975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  else
13985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    xdir="$xdir/"
13995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
14005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
14025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
14035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  libobjs="$libobjs $pic_object"
14045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  non_pic_objects="$non_pic_objects $non_pic_object"
14055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
14065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
14075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
14085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
14095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: link input file \`$save_arg' does not exist"
14105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
14115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
14125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg=$save_arg
14135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	rpath | xrpath)
14175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # We need an absolute path.
14185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $arg in
14195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  [\\/]* | [A-Za-z]:[\\/]*) ;;
14205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
14215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: only absolute run-paths are allowed" 1>&2
14225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
14235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
14245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
14255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$prev" = rpath; then
14265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$rpath " in
14275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $arg "*) ;;
14285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) rpath="$rpath $arg" ;;
14295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
14305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
14315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$xrpath " in
14325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $arg "*) ;;
14335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) xrpath="$xrpath $arg" ;;
14345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
14355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
14365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xcompiler)
14405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compiler_flags="$compiler_flags $qarg"
14415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $qarg"
14435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $qarg"
14445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xlinker)
14475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linker_flags="$linker_flags $qarg"
14485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compiler_flags="$compiler_flags $wl$qarg"
14495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $wl$qarg"
14515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $wl$qarg"
14525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	xcclinker)
14555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linker_flags="$linker_flags $qarg"
14565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compiler_flags="$compiler_flags $qarg"
14575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $qarg"
14595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $qarg"
14605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	shrext)
14635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  	  shrext_cmds="$arg"
14645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	darwin_framework|darwin_framework_skip)
14685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
14695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $arg"
14705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $arg"
14715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
14755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval "$prev=\"\$arg\""
14765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
14775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
14785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
14795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
14805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi # test -n "$prev"
14815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      prevarg="$arg"
14835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
14855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -all-static)
14865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$link_static_flag"; then
14875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $link_static_flag"
14885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $link_static_flag"
14895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
14905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
14915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
14925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -allow-undefined)
14945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# FIXME: remove this flag sometime in the future.
14955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
14965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
14975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
14985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
14995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -avoid-version)
15005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	avoid_version=yes
15015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -dlopen)
15055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=dlfiles
15065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -dlpreopen)
15105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=dlprefiles
15115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -export-dynamic)
15155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	export_dynamic=yes
15165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -export-symbols | -export-symbols-regex)
15205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
15215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: more than one -exported-symbols argument is not allowed"
15225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
15235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
15245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "X$arg" = "X-export-symbols"; then
15255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=expsyms
15265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
15275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=expsyms_regex
15285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
15295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -framework|-arch|-isysroot)
15335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $CC " in
15345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
15355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		prev=darwin_framework_skip ;;
15365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) compiler_flags="$compiler_flags $arg"
15375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     prev=darwin_framework ;;
15385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
15395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command="$compile_command $arg"
15405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command="$finalize_command $arg"
15415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -inst-prefix-dir)
15455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=inst_prefix
15465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
15505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # so, if we see these flags be careful not to treat them like -L
15515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -L[A-Z][A-Z]*:*)
15525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $with_gcc/$host in
15535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	no/*-*-irix* | /*-*-irix*)
15545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_command="$compile_command $arg"
15555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_command="$finalize_command $arg"
15565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
15575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
15585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -L*)
15625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
15635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We need an absolute path.
15645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $dir in
15655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	[\\/]* | [A-Za-z]:[\\/]*) ;;
15665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
15675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  absdir=`cd "$dir" && pwd`
15685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$absdir"; then
15695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
15705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    absdir="$dir"
15715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    notinst_path="$notinst_path $dir"
15725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
15735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dir="$absdir"
15745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
15755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
15765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case "$deplibs " in
15775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" -L$dir "*) ;;
15785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
15795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$deplibs -L$dir"
15805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lib_search_path="$lib_search_path $dir"
15815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
15825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
15835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
15845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
15855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
15865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case :$dllsearchpath: in
15875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *":$dir:"*) ;;
15885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) dllsearchpath="$dllsearchpath:$dir";;
15895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
15905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case :$dllsearchpath: in
15915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *":$testbindir:"*) ;;
15925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) dllsearchpath="$dllsearchpath:$testbindir";;
15935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
15945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
15955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
15965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
15975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
15985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
15995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -l*)
16005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
16015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $host in
16025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
16035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # These systems don't actually have a C or math library (as such)
16045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
16055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-os2*)
16075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # These systems don't actually have a C library (as such)
16085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test "X$arg" = "X-lc" && continue
16095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Do not include libc due to us having libc/libc_r.
16125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test "X$arg" = "X-lc" && continue
16135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-rhapsody* | *-*-darwin1.[012])
16155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Rhapsody C and math libraries are in the System framework
16165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$deplibs -framework System"
16175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
16185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-sco3.2v5* | *-*-sco5v6*)
16205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Causes problems with __ctype
16215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test "X$arg" = "X-lc" && continue
16225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
16245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Compiler inserts libc in the correct place for threads to work
16255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test "X$arg" = "X-lc" && continue
16265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
16275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
16285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test "X$arg" = "X-lc_r"; then
16295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 case $host in
16305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
16315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   # Do not include libc_r directly, use -pthread flag.
16325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   continue
16335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   ;;
16345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 esac
16355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
16365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs="$deplibs $arg"
16375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Tru64 UNIX uses -model [arg] to determine the layout of C++
16415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # classes, name mangling, and exception handling.
16425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -model)
16435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command="$compile_command $arg"
16445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compiler_flags="$compiler_flags $arg"
16455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command="$finalize_command $arg"
16465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=xcompiler
16475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
16515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compiler_flags="$compiler_flags $arg"
16525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command="$compile_command $arg"
16535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command="$finalize_command $arg"
16545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -multi_module)
16585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	single_module="${wl}-multi_module"
16595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -module)
16635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	module=yes
16645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
16685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -r[0-9][0-9]* specifies the processor on the SGI compiler
16695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
16705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # +DA*, +DD* enable 64-bit mode on the HP compiler
16715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -q* pass through compiler args for the IBM compiler
16725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -m* pass through architecture-specific compiler args for GCC
16735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -m*, -t[45]*, -txscale* pass through architecture-specific
16745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # compiler args for GCC
16755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
16765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -F/path gives path to uninstalled frameworks, gcc on darwin
16775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # @file GCC response files
16785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
16795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
16805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Unknown arguments in both finalize_command and compile_command need
16825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# to be aesthetically quoted because they are evaled later.
16835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
16845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
16855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
16865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="\"$arg\""
16875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
16885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
16895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        compile_command="$compile_command $arg"
16905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        finalize_command="$finalize_command $arg"
16915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        compiler_flags="$compiler_flags $arg"
16925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        continue
16935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ;;
16945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
16955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -shrext)
16965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=shrext
16975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
16985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
16995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -no-fast-install)
17015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fast_install=no
17025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -no-install)
17065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
17075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin*)
17085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # The PATH hackery in wrapper scripts is required on Windows
17095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # and Darwin in order for the loader to find any dlls it needs.
17105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
17115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
17125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fast_install=no
17135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
17145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) no_install=yes ;;
17155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
17165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -no-undefined)
17205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	allow_undefined=no
17215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -objectlist)
17255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=objectlist
17265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -o) prev=output ;;
17305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -precious-files-regex)
17325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=precious_regex
17335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -release)
17375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=release
17385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -rpath)
17425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=rpath
17435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -R)
17475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=xrpath
17485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -R*)
17525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
17535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We need an absolute path.
17545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $dir in
17555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	[\\/]* | [A-Za-z]:[\\/]*) ;;
17565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
17575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: only absolute run-paths are allowed" 1>&2
17585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
17595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
17605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
17615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case "$xrpath " in
17625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $dir "*) ;;
17635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) xrpath="$xrpath $dir" ;;
17645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
17655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -static | -static-libtool-libs)
17695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# The effects of -static are defined in a previous loop.
17705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We used to do the same as -all-static on platforms that
17715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# didn't have a PIC flag, but the assumption that the effects
17725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# would be equivalent was wrong.  It would break on at least
17735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Digital Unix and AIX.
17745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -thread-safe)
17785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	thread_safe=yes
17795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -version-info)
17835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=vinfo
17845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -version-number)
17875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=vinfo
17885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	vinfo_number=yes
17895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
17905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
17915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
17925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -Wc,*)
17935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
17945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=
17955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_ifs="$IFS"; IFS=','
17965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for flag in $args; do
17975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
17985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $flag in
17995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    flag="\"$flag\""
18015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
18025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
18035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="$arg $wl$flag"
18045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compiler_flags="$compiler_flags $flag"
18055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
18065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
18075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -Wl,*)
18115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
18125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=
18135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_ifs="$IFS"; IFS=','
18145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for flag in $args; do
18155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
18165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $flag in
18175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    flag="\"$flag\""
18195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
18205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
18215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="$arg $wl$flag"
18225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compiler_flags="$compiler_flags $wl$flag"
18235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linker_flags="$linker_flags $flag"
18245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
18255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
18265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
18275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -Xcompiler)
18305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=xcompiler
18315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
18325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -Xlinker)
18355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=xlinker
18365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
18375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -XCClinker)
18405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	prev=xcclinker
18415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
18425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Some other compiler flag.
18455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -* | +*)
18465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Unknown arguments in both finalize_command and compile_command need
18475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# to be aesthetically quoted because they are evaled later.
18485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
18495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
18505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
18515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="\"$arg\""
18525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
18535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
18545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.$objext)
18575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# A standard object.
18585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	objs="$objs $arg"
18595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
18605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.lo)
18625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# A libtool-controlled object.
18635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check to see that this really is a libtool object.
18655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
18665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  pic_object=
18675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  non_pic_object=
18685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Read the .lo file
18705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # If there is no directory component, then add one.
18715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $arg in
18725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  */* | *\\*) . $arg ;;
18735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) . ./$arg ;;
18745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
18755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$pic_object" || \
18775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test -z "$non_pic_object" ||
18785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$pic_object" = none && \
18795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$non_pic_object" = none; then
18805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
18815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
18825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
18835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Extract subdirectory from the argument.
18855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
18865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "X$xdir" = "X$arg"; then
18875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    xdir=
18885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 	  else
18895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    xdir="$xdir/"
18905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
18915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$pic_object" != none; then
18935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Prepend the subdirectory the object is found in.
18945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    pic_object="$xdir$pic_object"
18955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
18965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$prev" = dlfiles; then
18975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
18985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dlfiles="$dlfiles $pic_object"
18995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		prev=
19005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		continue
19015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
19025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# If libtool objects are unsupported, then we need to preload.
19035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		prev=dlprefiles
19045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
19055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
19065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # CHECK ME:  I think I busted this.  -Ossama
19085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$prev" = dlprefiles; then
19095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Preload the old-style object.
19105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      dlprefiles="$dlprefiles $pic_object"
19115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      prev=
19125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
19135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # A PIC object.
19155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libobjs="$libobjs $pic_object"
19165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    arg="$pic_object"
19175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
19185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Non-PIC object.
19205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$non_pic_object" != none; then
19215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Prepend the subdirectory the object is found in.
19225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_object="$xdir$non_pic_object"
19235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # A standard non-PIC object
19255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_objects="$non_pic_objects $non_pic_object"
19265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$pic_object" || test "$pic_object" = none ; then
19275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      arg="$non_pic_object"
19285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
19295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
19305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If the PIC object exists, use it instead.
19315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # $xdir was prepended to $pic_object above.
19325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_object="$pic_object"
19335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_objects="$non_pic_objects $non_pic_object"
19345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
19355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
19365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Only an error if not doing a dry-run.
19375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$run"; then
19385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
19395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
19405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
19415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Dry-run case.
19425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Extract subdirectory from the argument.
19445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
19455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$xdir" = "X$arg"; then
19465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      xdir=
19475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
19485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      xdir="$xdir/"
19495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
19505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
19525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
19535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libobjs="$libobjs $pic_object"
19545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    non_pic_objects="$non_pic_objects $non_pic_object"
19555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
19565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
19575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
19585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.$libext)
19605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# An archive.
19615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs="$deplibs $arg"
19625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	old_deplibs="$old_deplibs $arg"
19635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
19645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
19655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.la)
19675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# A libtool-controlled library.
19685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$prev" = dlfiles; then
19705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This library was specified with -dlopen.
19715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dlfiles="$dlfiles $arg"
19725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
19735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test "$prev" = dlprefiles; then
19745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # The library was specified with -dlpreopen.
19755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dlprefiles="$dlprefiles $arg"
19765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
19775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
19785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$deplibs $arg"
19795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
19805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
19815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
19825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Some other compiler argument.
19845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
19855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Unknown arguments in both finalize_command and compile_command need
19865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# to be aesthetically quoted because they are evaled later.
19875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
19885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $arg in
19895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
19905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  arg="\"$arg\""
19915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
19925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
19935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
19945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac # arg
19955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
19965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now actually substitute the argument into the commands.
19975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$arg"; then
19985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command="$compile_command $arg"
19995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command="$finalize_command $arg"
20005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
20015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done # argument parsing loop
20025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$prev"; then
20045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
20055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
20065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
20075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
20105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      eval arg=\"$export_dynamic_flag_spec\"
20115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile_command="$compile_command $arg"
20125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      finalize_command="$finalize_command $arg"
20135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    oldlibs=
20165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # calculate the name of the file, without its directory
20175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
20185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libobjs_save="$libobjs"
20195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$shlibpath_var"; then
20215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # get the directories listed in $shlibpath_var
20225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
20235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
20245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      shlib_search_path=
20255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
20275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
20285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
20305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "X$output_objdir" = "X$output"; then
20315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      output_objdir="$objdir"
20325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
20335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      output_objdir="$output_objdir/$objdir"
20345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Create the object directory.
20365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test ! -d "$output_objdir"; then
20375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$mkdir $output_objdir"
20385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $mkdir $output_objdir
20395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit_status=$?
20405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
20415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $exit_status
20425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
20435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Determine the type of output
20465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $output in
20475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    "")
20485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify an output file" 1>&2
20495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
20505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
20515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
20525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.$libext) linkmode=oldlib ;;
20535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.lo | *.$objext) linkmode=obj ;;
20545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.la) linkmode=lib ;;
20555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *) linkmode=prog ;; # Anything else should be a program.
20565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
20575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $host in
20595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *cygwin* | *mingw* | *pw32*)
20605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # don't eliminate duplications in $postdeps and $predeps
20615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      duplicate_compiler_generated_deps=yes
20625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
20635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
20645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      duplicate_compiler_generated_deps=$duplicate_deps
20655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
20665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
20675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    specialdeplibs=
20685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libs=
20705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Find all interdependent deplibs by searching for libraries
20715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # that are linked more than once (e.g. -la -lb -la)
20725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for deplib in $deplibs; do
20735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "X$duplicate_deps" = "Xyes" ; then
20745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case "$libs " in
20755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
20765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
20775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
20785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      libs="$libs $deplib"
20795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
20805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$linkmode" = lib; then
20825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      libs="$predeps $libs $compiler_lib_search_path $postdeps"
20835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Compute libraries that are listed more than once in $predeps
20855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # $postdeps and mark them as special (i.e., whose duplicates are
20865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # not to be eliminated).
20875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pre_post_deps=
20885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
20895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for pre_post_dep in $predeps $postdeps; do
20905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$pre_post_deps " in
20915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
20925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
20935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  pre_post_deps="$pre_post_deps $pre_post_dep"
20945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
20955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
20965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      pre_post_deps=
20975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
20985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
20995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    deplibs=
21005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    newdependency_libs=
21015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    newlib_search_path=
21025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    need_relink=no # whether we're linking any uninstalled libtool libraries
21035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    notinst_deplibs= # not-installed libtool libraries
21045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $linkmode in
21055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lib)
21065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	passes="conv link"
21075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for file in $dlfiles $dlprefiles; do
21085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $file in
21095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.la) ;;
21105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
21115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
21125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
21135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
21145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
21155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
21165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
21175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prog)
21185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_deplibs=
21195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_deplibs=
21205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	alldeplibs=no
21215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	newdlfiles=
21225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	newdlprefiles=
21235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	passes="conv scan dlopen dlpreopen link"
21245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
21255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)  passes="conv"
21265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
21275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
21285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for pass in $passes; do
21295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$linkmode,$pass" = "lib,link" ||
21305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 test "$linkmode,$pass" = "prog,scan"; then
21315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libs="$deplibs"
21325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs=
21335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
21345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$linkmode" = prog; then
21355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $pass in
21365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlopen) libs="$dlfiles" ;;
21375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlpreopen) libs="$dlprefiles" ;;
21385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
21395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
21405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
21415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$pass" = dlopen; then
21425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Collect dlpreopened libraries
21435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_deplibs="$deplibs"
21445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs=
21455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
21465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for deplib in $libs; do
21475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	lib=
21485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	found=no
21495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $deplib in
21505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
21515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode,$pass" = "prog,link"; then
21525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compile_deplibs="$deplib $compile_deplibs"
21535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    finalize_deplibs="$deplib $finalize_deplibs"
21545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
21555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compiler_flags="$compiler_flags $deplib"
21565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
21575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
21585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
21595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-l*)
21605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" != lib && test "$linkmode" != prog; then
21615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
21625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
21635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
21645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
21655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" = lib; then
21665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
21675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
21685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
21695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
21705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for searchdir in $searchdirs; do
21715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for search_ext in .la $std_shrext .so .a; do
21725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Search the libtool library
21735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      lib="$searchdir/lib${name}${search_ext}"
21745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -f "$lib"; then
21755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "$search_ext" = ".la"; then
21765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  found=yes
21775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
21785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  found=no
21795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
21805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		break 2
21815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
21825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
21835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
21845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$found" != yes; then
21855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # deplib doesn't seem to be a libtool library
21865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$linkmode,$pass" = "prog,link"; then
21875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      compile_deplibs="$deplib $compile_deplibs"
21885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      finalize_deplibs="$deplib $finalize_deplibs"
21895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
21905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
21915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
21925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
21935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
21945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else # deplib is a libtool library
21955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
21965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # We need to do some special things here, and not later.
21975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
21985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case " $predeps $postdeps " in
21995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $deplib "*)
22005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if (${SED} -e '2q' $lib |
22015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
22025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  library_names=
22035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  old_library=
22045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  case $lib in
22055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  */* | *\\*) . $lib ;;
22065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *) . ./$lib ;;
22075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  esac
22085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  for l in $old_library $library_names; do
22095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ll="$l"
22105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  done
22115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "X$ll" = "X$old_library" ; then # only static version available
22125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    found=no
22135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
22145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    test "X$ladir" = "X$lib" && ladir="."
22155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    lib=$ladir/$old_library
22165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if test "$linkmode,$pass" = "prog,link"; then
22175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      compile_deplibs="$deplib $compile_deplibs"
22185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      finalize_deplibs="$deplib $finalize_deplibs"
22195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    else
22205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      deplibs="$deplib $deplibs"
22215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
22225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
22235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    continue
22245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
22255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
22265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        ;;
22275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) ;;
22285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
22295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
22305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
22315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;; # -l
22325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-L*)
22335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $linkmode in
22345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lib)
22355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$deplib $deplibs"
22365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test "$pass" = conv && continue
22375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdependency_libs="$deplib $newdependency_libs"
22385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
22405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prog)
22415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$pass" = conv; then
22425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
22435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      continue
22445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
22455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$pass" = scan; then
22465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
22475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
22485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      compile_deplibs="$deplib $compile_deplibs"
22495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      finalize_deplibs="$deplib $finalize_deplibs"
22505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
22515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
22525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
22535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
22545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
22555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
22565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac # linkmode
22575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
22585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;; # -L
22595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-R*)
22605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$pass" = link; then
22615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
22625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Make sure the xrpath contains only unique directories.
22635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$xrpath " in
22645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $dir "*) ;;
22655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) xrpath="$xrpath $dir" ;;
22665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
22675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
22685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$deplib $deplibs"
22695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
22705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
22715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.la) lib="$deplib" ;;
22725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.$libext)
22735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$pass" = conv; then
22745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$deplib $deplibs"
22755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
22765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
22775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $linkmode in
22785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lib)
22795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    valid_a_lib=no
22805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $deplibs_check_method in
22815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      match_pattern*)
22825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		set dummy $deplibs_check_method
22835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
22845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if eval $echo \"$deplib\" 2>/dev/null \
22855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    | $SED 10q \
22865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    | $EGREP "$match_pattern_regex" > /dev/null; then
22875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  valid_a_lib=yes
22885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
22895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
22905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      pass_all)
22915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		valid_a_lib=yes
22925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
22935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            esac
22945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$valid_a_lib" != yes; then
22955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo
22965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: Trying to link with static lib archive $deplib."
22975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** I have the capability to make that library automatically link in when"
22985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** you link to this library.  But I can only do this if you have a"
22995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** shared version of the library, which you do not appear to have"
23005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** because the file extensions .$libext of this argument makes me believe"
23015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** that it is just a static archive that I should not used here."
23025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
23035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo
23045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: Linking the shared library $output against the"
23055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** static library $deplib is not portable!"
23065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
23075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
23085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
23095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
23105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prog)
23115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$pass" != link; then
23125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
23135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
23145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      compile_deplibs="$deplib $compile_deplibs"
23155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      finalize_deplibs="$deplib $finalize_deplibs"
23165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
23175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
23185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
23195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac # linkmode
23205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;; # *.$libext
23215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.lo | *.$objext)
23225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$pass" = conv; then
23235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$deplib $deplibs"
23245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  elif test "$linkmode" = prog; then
23255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
23265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # If there is no dlopen support or we're linking statically,
23275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # we need to preload.
23285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlprefiles="$newdlprefiles $deplib"
23295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      compile_deplibs="$deplib $compile_deplibs"
23305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      finalize_deplibs="$deplib $finalize_deplibs"
23315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
23325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlfiles="$newdlfiles $deplib"
23335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
23345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
23355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
23365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
23375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	%DEPLIBS%)
23385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  alldeplibs=yes
23395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
23405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
23415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac # case $deplib
23425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$found" = yes || test -f "$lib"; then :
23435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
23445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
23455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
23465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
23475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check to see that this really is a libtool archive.
23495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
23505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
23515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
23525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
23535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
23545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
23565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test "X$ladir" = "X$lib" && ladir="."
23575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlname=
23595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlopen=
23605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlpreopen=
23615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libdir=
23625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	library_names=
23635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	old_library=
23645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If the library was installed with an old release of libtool,
23655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# it will not redefine variables installed, or shouldnotlink
23665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	installed=yes
23675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	shouldnotlink=no
23685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	avoidtemprpath=
23695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Read the .la file
23725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $lib in
23735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/* | *\\*) . $lib ;;
23745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) . ./$lib ;;
23755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
23765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$linkmode,$pass" = "lib,link" ||
23785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   test "$linkmode,$pass" = "prog,scan" ||
23795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
23805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
23815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
23825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
23835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
23845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$pass" = conv; then
23855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Only check for convenience libraries
23865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$lib $deplibs"
23875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$libdir"; then
23885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$old_library"; then
23895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
23905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      exit $EXIT_FAILURE
23915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
23925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # It is a libtool convenience library, so add in its objects.
23935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    convenience="$convenience $ladir/$objdir/$old_library"
23945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
23955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    tmp_libs=
23965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for deplib in $dependency_libs; do
23975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
23985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              if test "X$duplicate_deps" = "Xyes" ; then
23995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        case "$tmp_libs " in
24005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
24015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        esac
24025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              fi
24035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      tmp_libs="$tmp_libs $deplib"
24045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
24055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
24065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
24075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
24085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
24105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $pass = conv
24115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Get the name of the library we link against.
24145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	linklib=
24155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for l in $old_library $library_names; do
24165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linklib="$l"
24175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
24185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$linklib"; then
24195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
24205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
24215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
24225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# This library was specified with -dlopen.
24245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$pass" = dlopen; then
24255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$libdir"; then
24265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
24275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
24285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$dlname" ||
24305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$dlopen_support" != yes ||
24315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$build_libtool_libs" = no; then
24325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If there is no dlname, no dlopen support or we're linking
24335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # statically, we need to preload.  We also need to preload any
24345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # dependent libraries so libltdl's deplib preloader doesn't
24355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # bomb out in the load deplibs phase.
24365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlprefiles="$dlprefiles $lib $dependency_libs"
24375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
24385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlfiles="$newdlfiles $lib"
24395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
24415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $pass = dlopen
24425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We need an absolute path.
24445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $ladir in
24455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
24465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
24475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  abs_ladir=`cd "$ladir" && pwd`
24485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$abs_ladir"; then
24495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
24505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
24515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    abs_ladir="$ladir"
24525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
24545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
24555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
24565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Find the relevant object directory and library name.
24585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "X$installed" = Xyes; then
24595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
24615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir="$ladir"
24625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    absdir="$abs_ladir"
24635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libdir="$abs_ladir"
24645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
24655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir="$libdir"
24665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    absdir="$libdir"
24675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
24695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
24705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
24715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir="$ladir"
24725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    absdir="$abs_ladir"
24735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Remove this search path later
24745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    notinst_path="$notinst_path $abs_ladir"
24755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
24765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir="$ladir/$objdir"
24775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    absdir="$abs_ladir/$objdir"
24785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Remove this search path later
24795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    notinst_path="$notinst_path $abs_ladir"
24805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $installed = yes
24825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
24835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
24845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# This library was specified with -dlpreopen.
24855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$pass" = dlpreopen; then
24865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$libdir"; then
24875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
24885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
24895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
24905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Prefer using a static library (so that no silly _DYNAMIC symbols
24915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # are required to link).
24925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$old_library"; then
24935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlprefiles="$newdlprefiles $dir/$old_library"
24945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Otherwise, use the dlname, so that lt_dlopen finds it.
24955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  elif test -n "$dlname"; then
24965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlprefiles="$newdlprefiles $dir/$dlname"
24975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
24985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlprefiles="$newdlprefiles $dir/$linklib"
24995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
25005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $pass = dlpreopen
25015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$libdir"; then
25035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Link the convenience library
25045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" = lib; then
25055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$dir/$old_library $deplibs"
25065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  elif test "$linkmode,$pass" = "prog,link"; then
25075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compile_deplibs="$dir/$old_library $compile_deplibs"
25085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
25095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
25105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$lib $deplibs" # used for prog,scan pass
25115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
25125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
25135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
25145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$linkmode" = prog && test "$pass" != link; then
25175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newlib_search_path="$newlib_search_path $ladir"
25185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$lib $deplibs"
25195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linkalldeplibs=no
25215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
25225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$build_libtool_libs" = no; then
25235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    linkalldeplibs=yes
25245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
25255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tmp_libs=
25275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for deplib in $dependency_libs; do
25285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $deplib in
25295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
25305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
25315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Need to link against all dependency_libs?
25325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$linkalldeplibs" = yes; then
25335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplib $deplibs"
25345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
25355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Need to hardcode shared library paths
25365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # or/and link against static libraries
25375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdependency_libs="$deplib $newdependency_libs"
25385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
25395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$duplicate_deps" = "Xyes" ; then
25405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$tmp_libs " in
25415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
25425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
25435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
25445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    tmp_libs="$tmp_libs $deplib"
25455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done # for deplib
25465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
25475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # $linkmode = prog...
25485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$linkmode,$pass" = "prog,link"; then
25505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$library_names" &&
25515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     { { test "$prefer_static_libs" = no ||
25525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test "$prefer_static_libs,$installed" = "built,yes"; } ||
25535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       test -z "$old_library"; }; then
25545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # We need to hardcode the library path
25555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
25565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Make sure the rpath contains only unique directories.
25575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$temp_rpath " in
25585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $dir "*) ;;
25595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $absdir "*) ;;
25605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) temp_rpath="$temp_rpath $absdir" ;;
25615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
25625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
25635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Hardcode the library path.
25655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Skip directories that are in the system default run-time
25665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # search path.
25675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case " $sys_lib_dlsearch_path " in
25685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $absdir "*) ;;
25695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)
25705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$compile_rpath " in
25715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $absdir "*) ;;
25725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) compile_rpath="$compile_rpath $absdir"
25735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
25745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
25755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
25765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case " $sys_lib_dlsearch_path " in
25775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $libdir "*) ;;
25785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)
25795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$finalize_rpath " in
25805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $libdir "*) ;;
25815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) finalize_rpath="$finalize_rpath $libdir"
25825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
25835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
25845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
25855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi # $linkmode,$pass = prog,link...
25865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$alldeplibs" = yes &&
25885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     { test "$deplibs_check_method" = pass_all ||
25895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       { test "$build_libtool_libs" = yes &&
25905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test -n "$library_names"; }; }; then
25915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # We only need to search for static libraries
25925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    continue
25935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
25945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
25955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
25965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link_static=no # Whether the deplib will be linked statically
25975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	use_static_libs=$prefer_static_libs
25985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$use_static_libs" = built && test "$installed" = yes ; then
25995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  use_static_libs=no
26005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
26015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$library_names" &&
26025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
26035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$installed" = no; then
26045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    notinst_deplibs="$notinst_deplibs $lib"
26055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    need_relink=yes
26065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
26075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This is a shared library
26085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Warn about portability, can't link against -module's on
26105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # some systems (darwin)
26115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
26125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo
26135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$linkmode" = prog; then
26145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: Linking the executable $output against the loadable module"
26155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
26165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: Linking the shared library $output against the loadable module"
26175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
26185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** $linklib is not portable!"
26195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
26205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" = lib &&
26215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$hardcode_into_libs" = yes; then
26225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Hardcode the library path.
26235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Skip directories that are in the system default run-time
26245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # search path.
26255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case " $sys_lib_dlsearch_path " in
26265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $absdir "*) ;;
26275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)
26285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$compile_rpath " in
26295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $absdir "*) ;;
26305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) compile_rpath="$compile_rpath $absdir"
26315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
26325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
26335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
26345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case " $sys_lib_dlsearch_path " in
26355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $libdir "*) ;;
26365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)
26375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$finalize_rpath " in
26385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $libdir "*) ;;
26395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) finalize_rpath="$finalize_rpath $libdir"
26405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
26415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
26425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
26435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
26445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$old_archive_from_expsyms_cmds"; then
26465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # figure out the soname
26475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    set dummy $library_names
26485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    realname="$2"
26495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    shift; shift
26505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libname=`eval \\$echo \"$libname_spec\"`
26515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # use dlname if we got it. it's perfectly good, no?
26525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$dlname"; then
26535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      soname="$dlname"
26545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test -n "$soname_spec"; then
26555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # bleh windows
26565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $host in
26575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *cygwin* | mingw*)
26585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		major=`expr $current - $age`
26595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		versuffix="-$major"
26605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
26615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
26625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval soname=\"$soname_spec\"
26635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
26645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      soname="$realname"
26655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
26665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Make a new name for the extract_expsyms_cmds to use
26685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    soroot="$soname"
26695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
26705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
26715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If the library has no export list, then create one now
26735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -f "$output_objdir/$soname-def"; then :
26745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
26755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "extracting exported symbol list from \`$soname'"
26765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      save_ifs="$IFS"; IFS='~'
26775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$extract_expsyms_cmds
26785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      for cmd in $cmds; do
26795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		IFS="$save_ifs"
26805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval cmd=\"$cmd\"
26815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$show "$cmd"
26825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval "$cmd" || exit $?
26835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      done
26845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      IFS="$save_ifs"
26855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
26865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
26875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Create $newlib
26885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -f "$output_objdir/$newlib"; then :; else
26895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "generating import library for \`$soname'"
26905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      save_ifs="$IFS"; IFS='~'
26915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$old_archive_from_expsyms_cmds
26925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      for cmd in $cmds; do
26935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		IFS="$save_ifs"
26945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval cmd=\"$cmd\"
26955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$show "$cmd"
26965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval "$cmd" || exit $?
26975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      done
26985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      IFS="$save_ifs"
26995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
27005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # make sure the library variables are pointing to the new library
27015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dir=$output_objdir
27025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    linklib=$newlib
27035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi # test -n "$old_archive_from_expsyms_cmds"
27045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" = prog || test "$mode" != relink; then
27065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add_shlibpath=
27075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add_dir=
27085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add=
27095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    lib_linked=yes
27105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $hardcode_action in
27115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    immediate | unsupported)
27125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$hardcode_direct" = no; then
27135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="$dir/$linklib"
27145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $host in
27155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
27165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
27175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
27185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    *-*-unixware7*) add_dir="-L$dir" ;;
27195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *-*-darwin* )
27205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    # if the lib is a module then we can not link against
27215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    # it, someone is ignoring the new warnings I added
27225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if /usr/bin/file -L $add 2> /dev/null |
27235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                      $EGREP ": [^:]* bundle" >/dev/null ; then
27245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "** Warning, lib $linklib is a module, not a shared library"
27255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      if test -z "$old_library" ; then
27265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        $echo
27275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        $echo "** And there doesn't seem to be a static archive available"
27285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        $echo "** The link will probably fail, sorry"
27295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      else
27305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        add="$dir/$old_library"
27315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      fi
27325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
27335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
27345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      elif test "$hardcode_minus_L" = no; then
27355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $host in
27365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*-*-sunos*) add_shlibpath="$dir" ;;
27375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
27385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add_dir="-L$dir"
27395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="-l$name"
27405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      elif test "$hardcode_shlibpath_var" = no; then
27415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add_shlibpath="$dir"
27425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="-l$name"
27435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
27445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		lib_linked=no
27455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
27465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
27475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink)
27485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$hardcode_direct" = yes; then
27495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="$dir/$linklib"
27505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      elif test "$hardcode_minus_L" = yes; then
27515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add_dir="-L$dir"
27525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Try looking first in the location we're being installed to.
27535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -n "$inst_prefix_dir"; then
27545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  case $libdir in
27555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    [\\/]*)
27565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
27575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      ;;
27585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  esac
27595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
27605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="-l$name"
27615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      elif test "$hardcode_shlibpath_var" = yes; then
27625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add_shlibpath="$dir"
27635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		add="-l$name"
27645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
27655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		lib_linked=no
27665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
27675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
27685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) lib_linked=no ;;
27695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
27705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$lib_linked" != yes; then
27725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "$modename: configuration error: unsupported hardcode properties"
27735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      exit $EXIT_FAILURE
27745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
27755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$add_shlibpath"; then
27775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case :$compile_shlibpath: in
27785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *":$add_shlibpath:"*) ;;
27795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
27805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
27815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
27825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$linkmode" = prog; then
27835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
27845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
27855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
27865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
27875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add" && deplibs="$add $deplibs"
27885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$hardcode_direct" != yes && \
27895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test "$hardcode_minus_L" != yes && \
27905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test "$hardcode_shlibpath_var" = yes; then
27915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case :$finalize_shlibpath: in
27925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*":$libdir:"*) ;;
27935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
27945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
27955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
27965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
27975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
27985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
27995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$linkmode" = prog || test "$mode" = relink; then
28005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add_shlibpath=
28015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add_dir=
28025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    add=
28035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Finalize command for both is simple: just hardcode it.
28045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$hardcode_direct" = yes; then
28055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add="$libdir/$linklib"
28065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test "$hardcode_minus_L" = yes; then
28075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add_dir="-L$libdir"
28085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add="-l$name"
28095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test "$hardcode_shlibpath_var" = yes; then
28105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case :$finalize_shlibpath: in
28115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *":$libdir:"*) ;;
28125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
28135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
28145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add="-l$name"
28155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test "$hardcode_automatic" = yes; then
28165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$inst_prefix_dir" &&
28175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
28185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        add="$inst_prefix_dir$libdir/$linklib"
28195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
28205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        add="$libdir/$linklib"
28215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
28225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
28235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # We cannot seem to hardcode it, guess we'll fake it.
28245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add_dir="-L$libdir"
28255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Try looking first in the location we're being installed to.
28265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$inst_prefix_dir"; then
28275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $libdir in
28285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  [\\/]*)
28295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
28305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ;;
28315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
28325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
28335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      add="-l$name"
28345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
28355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$linkmode" = prog; then
28375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
28385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
28395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
28405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
28415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -n "$add" && deplibs="$add $deplibs"
28425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
28435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
28445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test "$linkmode" = prog; then
28455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Here we assume that one of hardcode_direct or hardcode_minus_L
28465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # is not unsupported.  This is valid on all known static and
28475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # shared platforms.
28485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$hardcode_direct" != unsupported; then
28495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test -n "$old_library" && linklib="$old_library"
28505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compile_deplibs="$dir/$linklib $compile_deplibs"
28515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
28525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
28535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    compile_deplibs="-l$name -L$dir $compile_deplibs"
28545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
28555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
28565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test "$build_libtool_libs" = yes; then
28575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Not a shared library
28585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$deplibs_check_method" != pass_all; then
28595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # We're trying link a shared library against a static one
28605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # but the system doesn't support it.
28615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Just print a warning and add the library to dependency_libs so
28635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # that the program can be linked against the static library.
28645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo
28655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** Warning: This system can not link to static lib archive $lib."
28665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** I have the capability to make that library automatically link in when"
28675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** you link to this library.  But I can only do this if you have a"
28685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** shared version of the library, which you do not appear to have."
28695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$module" = yes; then
28705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** But as you try to build a module library, libtool will still create "
28715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** a static module, that should work as long as the dlopening application"
28725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
28735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -z "$global_symbol_pipe"; then
28745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo
28755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** However, this would only work if libtool was able to extract symbol"
28765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
28775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** not find such a program.  So, this module is probably useless."
28785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
28795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
28805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$build_old_libs" = no; then
28815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_libtool_libs=module
28825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_old_libs=yes
28835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
28845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_libtool_libs=no
28855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
28865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
28875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
28885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$dir/$old_library $deplibs"
28895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    link_static=yes
28905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
28915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # link shared/static library?
28925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
28935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$linkmode" = lib; then
28945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$dependency_libs" &&
28955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     { test "$hardcode_into_libs" != yes ||
28965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       test "$build_old_libs" = yes ||
28975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       test "$link_static" = yes; }; then
28985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Extract -R from dependency_libs
28995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    temp_deplibs=
29005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for libdir in $dependency_libs; do
29015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $libdir in
29025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
29035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   case " $xrpath " in
29045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   *" $temp_xrpath "*) ;;
29055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   *) xrpath="$xrpath $temp_xrpath";;
29065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   esac;;
29075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) temp_deplibs="$temp_deplibs $libdir";;
29085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
29095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
29105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dependency_libs="$temp_deplibs"
29115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
29125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newlib_search_path="$newlib_search_path $absdir"
29145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Link against this library
29155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
29165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # ... and its dependency_libs
29175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tmp_libs=
29185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for deplib in $dependency_libs; do
29195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdependency_libs="$deplib $newdependency_libs"
29205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$duplicate_deps" = "Xyes" ; then
29215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$tmp_libs " in
29225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
29235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
29245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
29255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    tmp_libs="$tmp_libs $deplib"
29265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
29275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
29285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$link_all_deplibs" != no; then
29295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Add the search paths of all dependency libraries
29305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for deplib in $dependency_libs; do
29315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $deplib in
29325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      -L*) path="$deplib" ;;
29335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *.la)
29345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
29355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		test "X$dir" = "X$deplib" && dir="."
29365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# We need an absolute path.
29375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $dir in
29385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
29395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*)
29405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  absdir=`cd "$dir" && pwd`
29415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test -z "$absdir"; then
29425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
29435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    absdir="$dir"
29445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
29455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
29465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
29475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if grep "^installed=no" $deplib > /dev/null; then
29485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  path="$absdir/$objdir"
29495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
29505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test -z "$libdir"; then
29525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
29535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    exit $EXIT_FAILURE
29545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
29555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "$absdir" != "$libdir"; then
29565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
29575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
29585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  path="$absdir"
29595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
29605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		depdepl=
29615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $host in
29625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*-*-darwin*)
29635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # we do not want to link against static libs,
29645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # but need to link against shared
29655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
29665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
29675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test -n "$deplibrary_names" ; then
29685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    for tmp in $deplibrary_names ; do
29695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      depdepl=$tmp
29705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    done
29715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if test -f "$deplibdir/$depdepl" ; then
29725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      depdepl="$deplibdir/$depdepl"
29735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      	    elif test -f "$path/$depdepl" ; then
29745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      depdepl="$path/$depdepl"
29755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    else
29765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # Can't find it, oh well...
29775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      depdepl=
29785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
29795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    # do not add paths which are already there
29805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    case " $newlib_search_path " in
29815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    *" $path "*) ;;
29825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    *) newlib_search_path="$newlib_search_path $path";;
29835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    esac
29845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
29855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  path=""
29865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
29875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*)
29885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  path="-L$path"
29895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
29905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
29915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
29925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      -l*)
29935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case $host in
29945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*-*-darwin*)
29955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Again, we only want to link against shared libraries
29965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
29975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  for tmp in $newlib_search_path ; do
29985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
29995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      eval depdepl="$tmp/lib$tmp_libs.dylib"
30005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      break
30015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
30025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  done
30035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  path=""
30045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
30055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) continue ;;
30065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
30075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
30085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) continue ;;
30095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
30105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case " $deplibs " in
30115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $path "*) ;;
30125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) deplibs="$path $deplibs" ;;
30135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
30145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case " $deplibs " in
30155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $depdepl "*) ;;
30165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) deplibs="$depdepl $deplibs" ;;
30175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
30185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
30195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi # link_all_deplibs != no
30205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi # linkmode = lib
30215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done # for deplib in $libs
30225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dependency_libs="$newdependency_libs"
30235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$pass" = dlpreopen; then
30245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Link the dlpreopened libraries before other libraries
30255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for deplib in $save_deplibs; do
30265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  deplibs="$deplib $deplibs"
30275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
30285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
30295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$pass" != dlopen; then
30305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$pass" != conv; then
30315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Make sure lib_search_path contains only unique directories.
30325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lib_search_path=
30335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for dir in $newlib_search_path; do
30345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$lib_search_path " in
30355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $dir "*) ;;
30365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) lib_search_path="$lib_search_path $dir" ;;
30375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
30385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
30395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newlib_search_path=
30405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
30415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
30425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$linkmode,$pass" != "prog,link"; then
30435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  vars="deplibs"
30445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
30455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  vars="compile_deplibs finalize_deplibs"
30465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
30475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for var in $vars dependency_libs; do
30485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add libraries to $var in reverse order
30495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval tmp_libs=\"\$$var\"
30505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  new_libs=
30515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for deplib in $tmp_libs; do
30525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # FIXME: Pedantically, this is the right thing to do, so
30535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    #        that some nasty dependency loop isn't accidentally
30545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    #        broken:
30555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    #new_libs="$deplib $new_libs"
30565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Pragmatically, this seems to cause very few problems in
30575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # practice:
30585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $deplib in
30595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    -L*) new_libs="$deplib $new_libs" ;;
30605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    -R*) ;;
30615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)
30625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # And here is the reason: when a library appears more
30635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # than once as an explicit dependence of a library, or
30645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # is implicitly linked in more than once by the
30655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # compiler, it is considered special, and multiple
30665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # occurrences thereof are not removed.  Compare this
30675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # with having the same library being listed as a
30685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # dependency of multiple other libraries: in this case,
30695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # we know (pedantically, we assume) the library does not
30705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # need to be listed more than once, so we keep only the
30715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # last copy.  This is not always right, but it is rare
30725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # enough that we require users that really mean to play
30735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # such unportable linking tricks to link the library
30745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # using -Wl,-lname, so that libtool does not consider it
30755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # for duplicate removal.
30765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case " $specialdeplibs " in
30775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
30785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *)
30795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case " $new_libs " in
30805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*" $deplib "*) ;;
30815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) new_libs="$deplib $new_libs" ;;
30825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
30835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
30845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
30855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
30865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
30875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
30885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tmp_libs=
30895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for deplib in $new_libs; do
30905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $deplib in
30915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    -L*)
30925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case " $tmp_libs " in
30935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $deplib "*) ;;
30945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) tmp_libs="$tmp_libs $deplib" ;;
30955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
30965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
30975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) tmp_libs="$tmp_libs $deplib" ;;
30985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
30995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
31005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval $var=\"$tmp_libs\"
31015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done # for var
31025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Last step: remove runtime libs from dependency_libs
31045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # (they stay in deplibs)
31055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      tmp_libs=
31065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for i in $dependency_libs ; do
31075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $predeps $postdeps $compiler_lib_search_path " in
31085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $i "*)
31095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  i=""
31105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
31115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
31125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$i" ; then
31135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tmp_libs="$tmp_libs $i"
31145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
31155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
31165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dependency_libs=$tmp_libs
31175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done # for pass
31185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$linkmode" = prog; then
31195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlfiles="$newdlfiles"
31205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlprefiles="$newdlprefiles"
31215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
31225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $linkmode in
31245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    oldlib)
31255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case " $deplibs" in
31265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *\ -l* | *\ -L*)
31275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
31285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
31295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
31315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
31325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$rpath"; then
31355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
31365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$xrpath"; then
31395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
31405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$vinfo"; then
31435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
31445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$release"; then
31475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
31485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
31515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
31525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now set the variables for building old libraries.
31555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      build_libtool_libs=no
31565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      oldlibs="$output"
31575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      objs="$objs$old_deplibs"
31585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
31595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lib)
31615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Make sure we only generate libraries of the form `libNAME.la'.
31625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $outputname in
31635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      lib*)
31645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
31655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval shared_ext=\"$shrext_cmds\"
31665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval libname=\"$libname_spec\"
31675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
31685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
31695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$module" = no; then
31705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
31715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
31725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
31735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
31745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$need_lib_prefix" != no; then
31755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add the "lib" prefix for modules if required
31765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval shared_ext=\"$shrext_cmds\"
31785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval libname=\"$libname_spec\"
31795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
31805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
31815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
31825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
31835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
31845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$objs"; then
31865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$deplibs_check_method" != pass_all; then
31875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
31885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
31895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
31905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo
31915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
31925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "*** objects $objs is not portable!"
31935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  libobjs="$libobjs $objs"
31945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
31955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
31965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
31975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$dlself" != no; then
31985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
31995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
32005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      set dummy $rpath
32025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$#" -gt 2; then
32035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
32045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
32055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      install_libdir="$2"
32065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      oldlibs=
32085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$rpath"; then
32095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$build_libtool_libs" = yes; then
32105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Building a libtool convenience library.
32115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Some compilers have problems with a `.al' extension so
32125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # convenience libraries should have the same extension an
32135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # archive normally would.
32145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
32155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  build_libtool_libs=convenience
32165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  build_old_libs=yes
32175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
32185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$vinfo"; then
32205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
32215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
32225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$release"; then
32245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
32255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
32265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
32275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Parse the version information argument.
32295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_ifs="$IFS"; IFS=':'
32305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	set dummy $vinfo 0 0 0
32315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
32325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$8"; then
32345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
32355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
32365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
32375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
32385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# convert absolute version numbers to libtool ages
32405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# this retains compatibility with .la files and attempts
32415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# to make the code below a bit more comprehensible
32425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $vinfo_number in
32445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	yes)
32455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  number_major="$2"
32465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  number_minor="$3"
32475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  number_revision="$4"
32485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  #
32495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # There are really only two kinds -- those that
32505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # use the current revision as the major version
32515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # and those that subtract age and use age as
32525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # a minor version.  But, then there is irix
32535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # which has an extra 1 added just for fun
32545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  #
32555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $version_type in
32565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin|linux|osf|windows|none)
32575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    current=`expr $number_major + $number_minor`
32585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    age="$number_minor"
32595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    revision="$number_revision"
32605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
32615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  freebsd-aout|freebsd-elf|sunos)
32625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    current="$number_major"
32635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    revision="$number_minor"
32645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    age="0"
32655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
32665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  irix|nonstopux)
32675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    current=`expr $number_major + $number_minor`
32685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    age="$number_minor"
32695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    revision="$number_minor"
32705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    lt_irix_increment=no
32715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
32725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
32735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
32745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	no)
32755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  current="$2"
32765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  revision="$3"
32775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  age="$4"
32785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
32795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
32805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check that each of the things are valid numbers.
32825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $current in
32835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	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]) ;;
32845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
32855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
32865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
32885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
32895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
32905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
32915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $revision in
32925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	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]) ;;
32935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
32945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
32955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
32965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
32975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
32985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
32995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $age in
33015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	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]) ;;
33025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
33035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
33045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
33065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
33085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$age" -gt "$current"; then
33105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
33115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
33125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
33135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
33145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Calculate the version variables.
33165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	major=
33175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	versuffix=
33185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	verstring=
33195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $version_type in
33205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	none) ;;
33215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	darwin)
33235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Like Linux, but with the current version available in
33245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # verstring for coding it into the library header
33255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=.`expr $current - $age`
33265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix="$major.$age.$revision"
33275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Darwin ld doesn't like 0 for these options...
33285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  minor_current=`expr $current + 1`
33295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
33305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
33315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	freebsd-aout)
33345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=".$current"
33355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix=".$current.$revision";
33365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	freebsd-elf)
33395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=".$current"
33405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix=".$current";
33415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	irix | nonstopux)
33445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "X$lt_irix_increment" = "Xno"; then
33455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    major=`expr $current - $age`
33465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
33475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    major=`expr $current - $age + 1`
33485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
33495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $version_type in
33505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    nonstopux) verstring_prefix=nonstopux ;;
33515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *)         verstring_prefix=sgi ;;
33525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
33535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  verstring="$verstring_prefix$major.$revision"
33545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add in all the interfaces that we are compatible with.
33565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  loop=$revision
33575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  while test "$loop" -ne 0; do
33585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    iface=`expr $revision - $loop`
33595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    loop=`expr $loop - 1`
33605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    verstring="$verstring_prefix$major.$iface:$verstring"
33615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
33625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Before this point, $major must not contain `.'.
33645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=.$major
33655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix="$major.$revision"
33665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	linux)
33695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=.`expr $current - $age`
33705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix="$major.$age.$revision"
33715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	osf)
33745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=.`expr $current - $age`
33755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix=".$current.$age.$revision"
33765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  verstring="$current.$age.$revision"
33775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add in all the interfaces that we are compatible with.
33795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  loop=$age
33805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  while test "$loop" -ne 0; do
33815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    iface=`expr $current - $loop`
33825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    loop=`expr $loop - 1`
33835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    verstring="$verstring:${iface}.0"
33845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
33855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Make executables depend on our current version.
33875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  verstring="$verstring:${current}.0"
33885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	sunos)
33915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=".$current"
33925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix=".$current.$revision"
33935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
33945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
33955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	windows)
33965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Use '-' rather than '.', since we only want one
33975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # extension on DOS 8.3 filesystems.
33985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=`expr $current - $age`
33995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix="-$major"
34005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
34015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
34035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
34045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
34055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
34065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
34075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
34085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Clear the version info if we defaulted, and they specified a release.
34105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$vinfo" && test -n "$release"; then
34115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=
34125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $version_type in
34135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  darwin)
34145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # we can't check for "0.0" in archive_cmds due to quoting
34155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # problems, so we reset it completely
34165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    verstring=
34175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
34185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
34195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    verstring="0.0"
34205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
34215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
34225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$need_version" = no; then
34235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    versuffix=
34245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
34255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    versuffix=".0.0"
34265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
34275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
34285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Remove version info from name if versioning should be avoided
34305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$avoid_version" = yes && test "$need_version" = no; then
34315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  major=
34325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  versuffix=
34335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  verstring=""
34345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
34355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check to see if the archive will have undefined symbols.
34375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$allow_undefined" = yes; then
34385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$allow_undefined_flag" = unsupported; then
34395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
34405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    build_libtool_libs=no
34415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    build_old_libs=yes
34425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
34435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
34445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Don't allow undefined symbols.
34455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  allow_undefined_flag="$no_undefined_flag"
34465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
34475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
34485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$mode" != relink; then
34505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Remove our outputs, but don't remove object files since they
34515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# may have been created when compiling PIC objects.
34525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	removelist=
34535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	tempremovelist=`$echo "$output_objdir/*"`
34545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for p in $tempremovelist; do
34555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $p in
34565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *.$objext)
34575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       ;;
34585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
34595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       if test "X$precious_files_regex" != "X"; then
34605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
34615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	         then
34625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		   continue
34635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 fi
34645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       fi
34655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       removelist="$removelist $p"
34665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       ;;
34675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) ;;
34685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
34695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
34705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$removelist"; then
34715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "${rm}r $removelist"
34725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run ${rm}r $removelist
34735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
34745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
34755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now set the variables for building old libraries.
34775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
34785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	oldlibs="$oldlibs $output_objdir/$libname.$libext"
34795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Transform .lo files to .o files.
34815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
34825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
34835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Eliminate all temporary directories.
34855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      #for path in $notinst_path; do
34865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      #	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
34875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      #	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
34885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      #	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
34895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      #done
34905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
34915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$xrpath"; then
34925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If the user specified any rpath flags, then add them.
34935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	temp_xrpath=
34945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for libdir in $xrpath; do
34955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  temp_xrpath="$temp_xrpath -R$libdir"
34965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$finalize_rpath " in
34975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
34985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) finalize_rpath="$finalize_rpath $libdir" ;;
34995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
35005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
35015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
35025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dependency_libs="$temp_xrpath $dependency_libs"
35035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
35045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
35055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Make sure dlfiles contains only unique files that won't be dlpreopened
35075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      old_dlfiles="$dlfiles"
35085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlfiles=
35095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for lib in $old_dlfiles; do
35105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $dlprefiles $dlfiles " in
35115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $lib "*) ;;
35125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) dlfiles="$dlfiles $lib" ;;
35135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
35145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
35155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Make sure dlprefiles contains only unique files
35175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      old_dlprefiles="$dlprefiles"
35185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlprefiles=
35195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for lib in $old_dlprefiles; do
35205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case "$dlprefiles " in
35215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" $lib "*) ;;
35225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) dlprefiles="$dlprefiles $lib" ;;
35235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
35245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
35255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$build_libtool_libs" = yes; then
35275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$rpath"; then
35285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $host in
35295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
35305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # these systems don't actually have a c library (as such)!
35315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-rhapsody* | *-*-darwin1.[012])
35335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Rhapsody C library is in the System framework
35345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    deplibs="$deplibs -framework System"
35355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-netbsd*)
35375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Don't link with libc until the a.out ld.so is fixed.
35385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
35405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Do not include libc due to us having libc/libc_r.
35415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-sco3.2v5* | *-*-sco5v6*)
35435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Causes problems with __ctype
35445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
35465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Compiler inserts libc in the correct place for threads to work
35475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 	  *)
35495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Add libc to deplibs on all other systems if necessary.
35505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$build_libtool_need_lc" = "yes"; then
35515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      deplibs="$deplibs -lc"
35525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
35535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
35545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
35555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
35565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
35575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Transform deplibs into only deplibs that can be linked in shared.
35585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	name_save=$name
35595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libname_save=$libname
35605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	release_save=$release
35615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	versuffix_save=$versuffix
35625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	major_save=$major
35635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# I'm not sure if I'm treating the release correctly.  I think
35645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# release should show up in the -l (ie -lgmp5) so we don't want to
35655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# add it in twice.  Is that correct?
35665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	release=""
35675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	versuffix=""
35685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	major=""
35695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	newdeplibs=
35705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	droppeddeps=no
35715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $deplibs_check_method in
35725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	pass_all)
35735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Don't check for shared/static.  Everything works.
35745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This might be a little naive.  We might want to check
35755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # whether the library exists or not.  But this is on
35765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # osf3 & osf4 and I'm not really sure... Just
35775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # implementing what was already the behavior.
35785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newdeplibs=$deplibs
35795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
35805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test_compile)
35815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This code stresses the "libraries are programs" paradigm to its
35825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # limits. Maybe even breaks it.  We compile a program, linking it
35835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # against the deplibs as a proxy for the library.  Then we can check
35845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # whether they linked in statically or dynamically with ldd.
35855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $rm conftest.c
35865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cat > conftest.c <<EOF
35875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  int main() { return 0; }
35885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
35895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $rm conftest
35905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
35915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ldd_output=`ldd conftest`
35925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for i in $deplibs; do
35935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      name=`expr $i : '-l\(.*\)'`
35945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # If $name is empty we are operating on a -L argument.
35955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              if test "$name" != "" && test "$name" != "0"; then
35965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
35975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  case " $predeps $postdeps " in
35985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *" $i "*)
35995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    newdeplibs="$newdeplibs $i"
36005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    i=""
36015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ;;
36025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  esac
36035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        fi
36045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -n "$i" ; then
36055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  libname=`eval \\$echo \"$libname_spec\"`
36065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
36075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  set dummy $deplib_matches
36085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  deplib_match=$2
36095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    newdeplibs="$newdeplibs $i"
36115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  else
36125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    droppeddeps=yes
36135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo
36145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** Warning: dynamic linker does not accept needed library $i."
36155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** I have the capability to make that library automatically link in when"
36165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** you link to this library.  But I can only do this if you have a"
36175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** shared version of the library, which I believe you do not have"
36185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** because a test_compile did reveal that the linker did not use it for"
36195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
36205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
36215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
36225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
36235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		newdeplibs="$newdeplibs $i"
36245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
36255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
36265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
36275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Error occurred in the first compile.  Let's try to salvage
36285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # the situation: Compile a separate program for each library.
36295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for i in $deplibs; do
36305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      name=`expr $i : '-l\(.*\)'`
36315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # If $name is empty we are operating on a -L argument.
36325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              if test "$name" != "" && test "$name" != "0"; then
36335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$rm conftest
36345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
36355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ldd_output=`ldd conftest`
36365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    case " $predeps $postdeps " in
36385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    *" $i "*)
36395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      newdeplibs="$newdeplibs $i"
36405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      i=""
36415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      ;;
36425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    esac
36435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
36445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  if test -n "$i" ; then
36455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    libname=`eval \\$echo \"$libname_spec\"`
36465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
36475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    set dummy $deplib_matches
36485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    deplib_match=$2
36495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
36505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      newdeplibs="$newdeplibs $i"
36515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    else
36525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      droppeddeps=yes
36535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo
36545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** Warning: dynamic linker does not accept needed library $i."
36555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** I have the capability to make that library automatically link in when"
36565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** you link to this library.  But I can only do this if you have a"
36575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** shared version of the library, which you do not appear to have"
36585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** because a test_compile did reveal that the linker did not use this one"
36595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
36605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
36615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  fi
36625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
36635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  droppeddeps=yes
36645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo
36655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
36665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** make it link in!  You will probably need to install it or some"
36675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** library that it depends on before this library will be fully"
36685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** functional.  Installing it before continuing would be even better."
36695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
36705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
36715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		newdeplibs="$newdeplibs $i"
36725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
36735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
36745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
36755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
36765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	file_magic*)
36775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  set dummy $deplibs_check_method
36785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
36795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for a_deplib in $deplibs; do
36805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    name=`expr $a_deplib : '-l\(.*\)'`
36815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If $name is empty we are operating on a -L argument.
36825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            if test "$name" != "" && test  "$name" != "0"; then
36835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
36845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case " $predeps $postdeps " in
36855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*" $a_deplib "*)
36865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  newdeplibs="$newdeplibs $a_deplib"
36875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  a_deplib=""
36885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
36895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
36905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
36915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$a_deplib" ; then
36925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		libname=`eval \\$echo \"$libname_spec\"`
36935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
36945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
36955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  for potent_lib in $potential_libs; do
36965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # Follow soft links.
36975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      if ls -lLd "$potent_lib" 2>/dev/null \
36985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 | grep " -> " >/dev/null; then
36995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			continue
37005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      fi
37015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # The statement above tries to avoid entering an
37025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # endless loop below, in case of cyclic links.
37035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # We might still enter an endless loop, since a link
37045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # loop can be closed while we follow links,
37055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      # but so what?
37065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      potlib="$potent_lib"
37075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      while test -h "$potlib" 2>/dev/null; do
37085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
37095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			case $potliblink in
37105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
37115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
37125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			esac
37135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      done
37145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
37155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 | ${SED} 10q \
37165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			 | $EGREP "$file_magic_regex" > /dev/null; then
37175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			newdeplibs="$newdeplibs $a_deplib"
37185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			a_deplib=""
37195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			break 2
37205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      fi
37215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  done
37225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		done
37235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
37245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$a_deplib" ; then
37255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		droppeddeps=yes
37265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo
37275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** I have the capability to make that library automatically link in when"
37295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** you link to this library.  But I can only do this if you have a"
37305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** shared version of the library, which you do not appear to have"
37315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** because I did check the linker path looking for a file starting"
37325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$potlib" ; then
37335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
37345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
37355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** with $libname and none of the candidates passed a file format test"
37365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** using a file magic. Last file checked: $potlib"
37375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
37385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
37395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
37405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Add a -L argument.
37415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdeplibs="$newdeplibs $a_deplib"
37425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
37435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done # Gone through all deplibs.
37445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
37455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	match_pattern*)
37465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  set dummy $deplibs_check_method
37475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
37485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for a_deplib in $deplibs; do
37495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    name=`expr $a_deplib : '-l\(.*\)'`
37505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # If $name is empty we are operating on a -L argument.
37515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$name" && test "$name" != "0"; then
37525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
37535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case " $predeps $postdeps " in
37545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*" $a_deplib "*)
37555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  newdeplibs="$newdeplibs $a_deplib"
37565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  a_deplib=""
37575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  ;;
37585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
37595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
37605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$a_deplib" ; then
37615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		libname=`eval \\$echo \"$libname_spec\"`
37625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
37635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
37645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  for potent_lib in $potential_libs; do
37655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    potlib="$potent_lib" # see symlink-check above in file_magic test
37665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    if eval $echo \"$potent_lib\" 2>/dev/null \
37675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        | ${SED} 10q \
37685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		        | $EGREP "$match_pattern_regex" > /dev/null; then
37695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      newdeplibs="$newdeplibs $a_deplib"
37705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      a_deplib=""
37715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		      break 2
37725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    fi
37735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  done
37745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		done
37755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
37765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$a_deplib" ; then
37775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		droppeddeps=yes
37785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo
37795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** Warning: linker path does not have real file for library $a_deplib."
37805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** I have the capability to make that library automatically link in when"
37815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** you link to this library.  But I can only do this if you have a"
37825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** shared version of the library, which you do not appear to have"
37835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "*** because I did check the linker path looking for a file starting"
37845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$potlib" ; then
37855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
37865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
37875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** with $libname and none of the candidates passed a file format test"
37885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "*** using a regex pattern. Last file checked: $potlib"
37895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
37905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
37915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
37925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Add a -L argument.
37935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdeplibs="$newdeplibs $a_deplib"
37945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
37955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done # Gone through all deplibs.
37965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
37975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	none | unknown | *)
37985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newdeplibs=""
37995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
38005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    -e 's/ -[LR][^ ]*//g'`
38015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
38025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for i in $predeps $postdeps ; do
38035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # can't use Xsed below, because $i might contain '/'
38045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
38055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
38065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
38075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
38085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    | grep . >/dev/null; then
38095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo
38105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$deplibs_check_method" = "Xnone"; then
38115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
38125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
38135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Warning: inter-library dependencies are not known to be supported."
38145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
38155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** All declared inter-library dependencies are being dropped."
38165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    droppeddeps=yes
38175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
38185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
38195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
38205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	versuffix=$versuffix_save
38215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	major=$major_save
38225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	release=$release_save
38235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libname=$libname_save
38245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	name=$name_save
38255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
38275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*-*-rhapsody* | *-*-darwin1.[012])
38285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # On Rhapsody replace the C library is the System framework
38295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
38305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
38315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
38325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$droppeddeps" = yes; then
38345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$module" = yes; then
38355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo
38365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
38375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
38385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** a static module, that should work as long as the dlopening"
38395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** application is linked with the -dlopen flag."
38405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$global_symbol_pipe"; then
38415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo
38425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** However, this would only work if libtool was able to extract symbol"
38435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
38445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** not find such a program.  So, this module is probably useless."
38455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
38465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
38475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$build_old_libs" = no; then
38485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      oldlibs="$output_objdir/$libname.$libext"
38495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      build_libtool_libs=module
38505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      build_old_libs=yes
38515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
38525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      build_libtool_libs=no
38535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
38545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
38555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** The inter-library dependencies that have been dropped here will be"
38565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** automatically added whenever a program is linked with this library"
38575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "*** or is declared to -dlopen it."
38585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$allow_undefined" = no; then
38605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo
38615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** Since this library must not contain undefined symbols,"
38625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** because either the platform does not support them or"
38635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** it was explicitly requested with -no-undefined,"
38645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "*** libtool will only create a static version of it."
38655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$build_old_libs" = no; then
38665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		oldlibs="$output_objdir/$libname.$libext"
38675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_libtool_libs=module
38685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_old_libs=yes
38695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
38705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		build_libtool_libs=no
38715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
38725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
38735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
38745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
38755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Done checking deplibs!
38765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs=$newdeplibs
38775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
38785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # move library search paths that coincide with paths to not yet
38815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # installed libraries to the beginning of the library search list
38825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      new_libs=
38835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for path in $notinst_path; do
38845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $new_libs " in
38855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" -L$path/$objdir "*) ;;
38865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
38875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case " $deplibs " in
38885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" -L$path/$objdir "*)
38895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    new_libs="$new_libs -L$path/$objdir" ;;
38905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
38915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
38925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
38935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
38945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for deplib in $deplibs; do
38955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $deplib in
38965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-L*)
38975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case " $new_libs " in
38985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $deplib "*) ;;
38995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) new_libs="$new_libs $deplib" ;;
39005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
39015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
39025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) new_libs="$new_libs $deplib" ;;
39035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
39045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
39055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      deplibs="$new_libs"
39065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # All the library-specific variables (install_libdir is set above).
39095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      library_names=
39105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      old_library=
39115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlname=
39125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Test again, we may have decided not to build it any more
39145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$build_libtool_libs" = yes; then
39155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$hardcode_into_libs" = yes; then
39165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Hardcode the library paths
39175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  hardcode_libdirs=
39185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dep_rpath=
39195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  rpath="$finalize_rpath"
39205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test "$mode" != relink && rpath="$compile_rpath$rpath"
39215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for libdir in $rpath; do
39225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$hardcode_libdir_flag_spec"; then
39235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -n "$hardcode_libdir_separator"; then
39245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$hardcode_libdirs"; then
39255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  hardcode_libdirs="$libdir"
39265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
39275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  # Just accumulate the unique libdirs.
39285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
39295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
39305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ;;
39315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  *)
39325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
39335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		    ;;
39345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  esac
39355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
39365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
39375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval flag=\"$hardcode_libdir_flag_spec\"
39385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		dep_rpath="$dep_rpath $flag"
39395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
39405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    elif test -n "$runpath_var"; then
39415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case "$perm_rpath " in
39425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *" $libdir "*) ;;
39435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) perm_rpath="$perm_rpath $libdir" ;;
39445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
39455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
39465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
39475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Substitute the hardcoded libdirs into the rpath.
39485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$hardcode_libdir_separator" &&
39495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test -n "$hardcode_libdirs"; then
39505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libdir="$hardcode_libdirs"
39515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$hardcode_libdir_flag_spec_ld"; then
39525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $archive_cmds in
39535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *\$LD*) eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ;;
39545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *)      eval dep_rpath=\"$hardcode_libdir_flag_spec\" ;;
39555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
39565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
39575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
39585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
39595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
39605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
39615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # We should set the runpath_var.
39625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath=
39635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for dir in $perm_rpath; do
39645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      rpath="$rpath$dir:"
39655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
39665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
39675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
39685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
39695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
39705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	shlibpath="$finalize_shlibpath"
39725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
39735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$shlibpath"; then
39745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
39755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
39765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Get the real and link names of the library.
39785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval shared_ext=\"$shrext_cmds\"
39795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval library_names=\"$library_names_spec\"
39805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	set dummy $library_names
39815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	realname="$2"
39825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	shift; shift
39835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$soname_spec"; then
39855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval soname=\"$soname_spec\"
39865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
39875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  soname="$realname"
39885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
39895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$dlname"; then
39905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dlname=$soname
39915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
39925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
39935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	lib="$output_objdir/$realname"
39945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	linknames=
39955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for link
39965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	do
39975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linknames="$linknames $link"
39985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
39995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Use standard objects if they are pic
40015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
40025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Prepare the list of exported symbols
40045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$export_symbols"; then
40055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
40065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "generating symbol list for \`$libname.la'"
40075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    export_symbols="$output_objdir/$libname.exp"
40085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run $rm $export_symbols
40095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cmds=$export_symbols_cmds
40105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    save_ifs="$IFS"; IFS='~'
40115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for cmd in $cmds; do
40125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      IFS="$save_ifs"
40135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval cmd=\"$cmd\"
40145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if len=`expr "X$cmd" : ".*"` &&
40155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        $show "$cmd"
40175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        $run eval "$cmd" || exit $?
40185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        skipped_export=false
40195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
40205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        # The command line is too long to execute in one step.
40215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        $show "using reloadable object file for export list..."
40225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        skipped_export=:
40235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Break out early, otherwise skipped_export may be
40245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# set to false by a later but shorter cmd.
40255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		break
40265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
40275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
40285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    IFS="$save_ifs"
40295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$export_symbols_regex"; then
40305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
40315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
40325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
40335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
40345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
40355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
40365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$export_symbols" && test -n "$include_expsyms"; then
40395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
40405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	tmp_deplibs=
40435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for test_deplib in $deplibs; do
40445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case " $convenience " in
40455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*" $test_deplib "*) ;;
40465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*)
40475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			tmp_deplibs="$tmp_deplibs $test_deplib"
40485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)			;;
40495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
40505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
40515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	deplibs="$tmp_deplibs"
40525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$convenience"; then
40545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$whole_archive_flag_spec"; then
40555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    save_libobjs=$libobjs
40565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
40575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
40585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    gentop="$output_objdir/${outputname}x"
40595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    generated="$generated $gentop"
40605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    func_extract_archives $gentop $convenience
40625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libobjs="$libobjs $func_extract_archives_result"
40635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
40645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	
40665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
40675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval flag=\"$thread_safe_flag_spec\"
40685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  linker_flags="$linker_flags $flag"
40695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Make a backup of the uninstalled library when relinking
40725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$mode" = relink; then
40735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
40745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Do each of the archive commands.
40775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$module" = yes && test -n "$module_cmds" ; then
40785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
40795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval test_cmds=\"$module_expsym_cmds\"
40805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cmds=$module_expsym_cmds
40815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
40825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval test_cmds=\"$module_cmds\"
40835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cmds=$module_cmds
40845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
40855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
40865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
40875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval test_cmds=\"$archive_expsym_cmds\"
40885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cmds=$archive_expsym_cmds
40895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
40905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval test_cmds=\"$archive_cmds\"
40915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cmds=$archive_cmds
40925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
40935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
40945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
40955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "X$skipped_export" != "X:" &&
40965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
40975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
40985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  :
40995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
41005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # The command line is too long to link in one step, link piecewise.
41015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "creating reloadable object files..."
41025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Save the value of $output and $libobjs because we want to
41045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # use them later.  If we have whole_archive_flag_spec, we
41055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # want to use save_libobjs as it was before
41065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # whole_archive_flag_spec was expanded, because we can't
41075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # assume the linker understands whole_archive_flag_spec.
41085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This may have to be revisited, in case too many
41095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # convenience libraries get linked in and end up exceeding
41105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # the spec.
41115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
41125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    save_libobjs=$libobjs
41135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
41145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_output=$output
41155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
41165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Clear the reloadable object creation command queue and
41185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # initialize k to one.
41195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test_cmds=
41205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  concat_cmds=
41215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  objlist=
41225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  delfiles=
41235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  last_robj=
41245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  k=1
41255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  output=$output_objdir/$output_la-${k}.$objext
41265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Loop over the list of objects to be linked.
41275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for obj in $save_libobjs
41285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  do
41295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
41305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$objlist" = X ||
41315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
41325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		 test "$len" -le "$max_cmd_len"; }; then
41335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      objlist="$objlist $obj"
41345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
41355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # The command $test_cmds is almost too long, add a
41365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # command to the queue.
41375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$k" -eq 1 ; then
41385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# The first file doesn't have a previous command to add.
41395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
41405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
41415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# All subsequent reloadable object files will link in
41425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# the last one created.
41435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
41445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
41455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      last_robj=$output_objdir/$output_la-${k}.$objext
41465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      k=`expr $k + 1`
41475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      output=$output_objdir/$output_la-${k}.$objext
41485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      objlist=$obj
41495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      len=1
41505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
41515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
41525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Handle the remaining objects by creating one last
41535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # reloadable object file.  All subsequent reloadable object
41545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # files will link in the last one created.
41555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
41565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
41575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if ${skipped_export-false}; then
41595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "generating symbol list for \`$libname.la'"
41605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    export_symbols="$output_objdir/$libname.exp"
41615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run $rm $export_symbols
41625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libobjs=$output
41635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Append the command to create the export file.
41645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
41655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          fi
41665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Set up a command to remove the reloadable object files
41685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # after they are used.
41695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  i=0
41705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  while test "$i" -lt "$k"
41715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  do
41725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    i=`expr $i + 1`
41735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
41745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
41755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "creating a temporary reloadable object file: $output"
41775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Loop through the commands generated above and execute them.
41795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_ifs="$IFS"; IFS='~'
41805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for cmd in $concat_cmds; do
41815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    IFS="$save_ifs"
41825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$cmd"
41835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval "$cmd" || exit $?
41845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
41855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
41865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  libobjs=$output
41885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Restore the value of output.
41895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  output=$save_output
41905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
41925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
41935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
41945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Expand the library linking commands again to reset the
41955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # value of $libobjs for piecewise linking.
41965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
41975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Do each of the archive commands.
41985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$module" = yes && test -n "$module_cmds" ; then
41995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
42005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$module_expsym_cmds
42015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
42025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$module_cmds
42035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
42045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
42055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
42065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cmds=$archive_expsym_cmds
42075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
42085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cmds=$archive_cmds
42095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
42105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
42115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Append the command to remove the reloadable object files
42135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # to the just-reset $cmds.
42145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval cmds=\"\$cmds~\$rm $delfiles\"
42155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
42165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_ifs="$IFS"; IFS='~'
42175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for cmd in $cmds; do
42185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
42195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval cmd=\"$cmd\"
42205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$cmd"
42215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$cmd" || {
42225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    lt_exit=$?
42235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Restore the uninstalled library and exit
42255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$mode" = relink; then
42265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
42275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
42285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $lt_exit
42305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  }
42315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
42325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
42335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Restore the uninstalled library and exit
42355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$mode" = relink; then
42365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
42375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$convenience"; then
42395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$whole_archive_flag_spec"; then
42405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "${rm}r $gentop"
42415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run ${rm}r "$gentop"
42425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
42435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
42445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_SUCCESS
42465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
42475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Create links to the real library.
42495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for linkname in $linknames; do
42505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$realname" != "$linkname"; then
42515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
42525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
42535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
42545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
42555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If -module or -export-dynamic was specified, set the dlname.
42575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$module" = yes || test "$export_dynamic" = yes; then
42585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # On all known operating systems, these are identical.
42595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dlname="$soname"
42605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
42615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
42635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    obj)
42655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case " $deplibs" in
42665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *\ -l* | *\ -L*)
42675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
42685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
42695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
42715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
42725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$rpath"; then
42755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
42765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$xrpath"; then
42795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
42805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$vinfo"; then
42835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
42845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$release"; then
42875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
42885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
42895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
42905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $output in
42915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.lo)
42925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$objs$old_deplibs"; then
42935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
42945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
42955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
42965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libobj="$output"
42975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
42985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
42995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
43005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libobj=
43015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	obj="$output"
43025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
43035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
43045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Delete the old objects.
43065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm $obj $libobj
43075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Objects from convenience libraries.  This assumes
43095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # single-version convenience libraries.  Whenever we create
43105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # different ones for PIC/non-PIC, this we'll have to duplicate
43115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # the extraction.
43125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      reload_conv_objs=
43135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      gentop=
43145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # reload_cmds runs $LD directly, so let us get rid of
43155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # -Wl from whole_archive_flag_spec and hope we can get by with
43165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # turning comma into space..
43175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      wl=
43185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$convenience"; then
43205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$whole_archive_flag_spec"; then
43215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
43225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
43235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
43245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  gentop="$output_objdir/${obj}x"
43255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  generated="$generated $gentop"
43265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  func_extract_archives $gentop $convenience
43285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  reload_conv_objs="$reload_objs $func_extract_archives_result"
43295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
43305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Create the old-style object.
43335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      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
43345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      output="$obj"
43365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      cmds=$reload_cmds
43375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      save_ifs="$IFS"; IFS='~'
43385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for cmd in $cmds; do
43395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
43405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval cmd=\"$cmd\"
43415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$cmd"
43425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$cmd" || exit $?
43435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
43445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IFS="$save_ifs"
43455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Exit if we aren't doing a library object file.
43475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$libobj"; then
43485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$gentop"; then
43495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "${rm}r $gentop"
43505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run ${rm}r $gentop
43515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
43525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_SUCCESS
43545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$build_libtool_libs" != yes; then
43575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$gentop"; then
43585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "${rm}r $gentop"
43595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run ${rm}r $gentop
43605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
43615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Create an invalid libtool object if no PIC, so that we don't
43635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# accidentally link it into a program.
43645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# $show "echo timestamp > $libobj"
43655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# $run eval "echo timestamp > $libobj" || exit $?
43665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_SUCCESS
43675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$pic_flag" || test "$pic_mode" != default; then
43705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Only do commands if we really have different PIC objects.
43715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	reload_objs="$libobjs $reload_conv_objs"
43725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	output="$libobj"
43735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	cmds=$reload_cmds
43745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	save_ifs="$IFS"; IFS='~'
43755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for cmd in $cmds; do
43765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
43775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval cmd=\"$cmd\"
43785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$cmd"
43795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$cmd" || exit $?
43805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
43815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
43825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$gentop"; then
43855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "${rm}r $gentop"
43865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run ${rm}r $gentop
43875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_SUCCESS
43905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
43915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
43925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prog)
43935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $host in
43945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
43955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
43965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$vinfo"; then
43975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
43985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
43995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$release"; then
44015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
44025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
44035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$preload" = yes; then
44055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
44065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	   test "$dlopen_self_static" = unknown; then
44075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
44085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
44095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
44105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $host in
44125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *-*-rhapsody* | *-*-darwin1.[012])
44135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# On Rhapsody replace the C library is the System framework
44145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
44165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
44175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
44185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $host in
44205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *darwin*)
44215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        # Don't allow lazy linking, it breaks C++ global constructors
44225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        if test "$tagname" = CXX ; then
44235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        compile_command="$compile_command ${wl}-bind_at_load"
44245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        finalize_command="$finalize_command ${wl}-bind_at_load"
44255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        fi
44265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        ;;
44275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
44285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # move library search paths that coincide with paths to not yet
44315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # installed libraries to the beginning of the library search list
44325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      new_libs=
44335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for path in $notinst_path; do
44345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $new_libs " in
44355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*" -L$path/$objdir "*) ;;
44365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
44375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case " $compile_deplibs " in
44385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" -L$path/$objdir "*)
44395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    new_libs="$new_libs -L$path/$objdir" ;;
44405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
44415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
44425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
44435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
44445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for deplib in $compile_deplibs; do
44455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $deplib in
44465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	-L*)
44475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case " $new_libs " in
44485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $deplib "*) ;;
44495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) new_libs="$new_libs $deplib" ;;
44505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
44515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
44525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) new_libs="$new_libs $deplib" ;;
44535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
44545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
44555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile_deplibs="$new_libs"
44565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile_command="$compile_command $compile_deplibs"
44595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      finalize_command="$finalize_command $finalize_deplibs"
44605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$rpath$xrpath"; then
44625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If the user specified any rpath flags, then add them.
44635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for libdir in $rpath $xrpath; do
44645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # This is the magic to use -rpath.
44655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$finalize_rpath " in
44665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
44675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) finalize_rpath="$finalize_rpath $libdir" ;;
44685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
44695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
44705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
44715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
44725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now hardcode the library paths
44735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      rpath=
44745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      hardcode_libdirs=
44755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for libdir in $compile_rpath $finalize_rpath; do
44765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$hardcode_libdir_flag_spec"; then
44775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$hardcode_libdir_separator"; then
44785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$hardcode_libdirs"; then
44795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      hardcode_libdirs="$libdir"
44805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
44815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Just accumulate the unique libdirs.
44825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
44835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
44845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
44855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *)
44865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
44875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
44885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
44895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
44905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
44915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval flag=\"$hardcode_libdir_flag_spec\"
44925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath $flag"
44935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
44945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test -n "$runpath_var"; then
44955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$perm_rpath " in
44965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
44975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) perm_rpath="$perm_rpath $libdir" ;;
44985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
44995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
45005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
45015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
45025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
45035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case :$dllsearchpath: in
45045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *":$libdir:"*) ;;
45055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) dllsearchpath="$dllsearchpath:$libdir";;
45065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
45075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case :$dllsearchpath: in
45085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *":$testbindir:"*) ;;
45095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) dllsearchpath="$dllsearchpath:$testbindir";;
45105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
45115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
45125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
45135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
45145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Substitute the hardcoded libdirs into the rpath.
45155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$hardcode_libdir_separator" &&
45165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 test -n "$hardcode_libdirs"; then
45175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libdir="$hardcode_libdirs"
45185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval rpath=\" $hardcode_libdir_flag_spec\"
45195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
45205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile_rpath="$rpath"
45215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      rpath=
45235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      hardcode_libdirs=
45245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for libdir in $finalize_rpath; do
45255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$hardcode_libdir_flag_spec"; then
45265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$hardcode_libdir_separator"; then
45275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$hardcode_libdirs"; then
45285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      hardcode_libdirs="$libdir"
45295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
45305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Just accumulate the unique libdirs.
45315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
45325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
45335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
45345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *)
45355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
45365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
45375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
45385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
45395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
45405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval flag=\"$hardcode_libdir_flag_spec\"
45415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath $flag"
45425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
45435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif test -n "$runpath_var"; then
45445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$finalize_perm_rpath " in
45455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
45465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
45475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
45485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
45495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
45505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Substitute the hardcoded libdirs into the rpath.
45515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$hardcode_libdir_separator" &&
45525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	 test -n "$hardcode_libdirs"; then
45535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libdir="$hardcode_libdirs"
45545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval rpath=\" $hardcode_libdir_flag_spec\"
45555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
45565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      finalize_rpath="$rpath"
45575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$libobjs" && test "$build_old_libs" = yes; then
45595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Transform all the library objects into standard objects.
45605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
45625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
45635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dlsyms=
45655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
45665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$NM" && test -n "$global_symbol_pipe"; then
45675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dlsyms="${outputname}S.c"
45685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
45695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
45705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
45715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
45725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$dlsyms"; then
45745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $dlsyms in
45755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	"") ;;
45765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.c)
45775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Discover the nlist of each of the dlfiles.
45785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  nlist="$output_objdir/${outputname}.nm"
45795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$rm $nlist ${nlist}S ${nlist}T"
45815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
45825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Parse the name list into a source file.
45845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "creating $output_objdir/$dlsyms"
45855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
45875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
45885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
45895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
45915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern \"C\" {
45925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
45935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Prevent the only kind of declaration conflicts we can make. */
45955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define lt_preloaded_symbols some_other_symbol
45965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
45975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* External symbol declarations for the compiler. */\
45985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
45995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$dlself" = yes; then
46015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "generating symbol list for \`$output'"
46025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
46045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Add our own program objects to the symbol list.
46065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
46075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for arg in $progfiles; do
46085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "extracting global C symbols from \`$arg'"
46095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
46115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$exclude_expsyms"; then
46135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
46145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$mv "$nlist"T "$nlist"'
46155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$export_symbols_regex"; then
46185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
46195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval '$mv "$nlist"T "$nlist"'
46205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Prepare the list of exported symbols
46235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$export_symbols"; then
46245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      export_symbols="$output_objdir/$outputname.exp"
46255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run $rm $export_symbols
46265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
46275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              case $host in
46285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              *cygwin* | *mingw* )
46295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
46315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                ;;
46325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              esac
46335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
46345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
46355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
46365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run eval 'mv "$nlist"T "$nlist"'
46375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              case $host in
46385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              *cygwin* | *mingw* )
46395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
46405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
46415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                ;;
46425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              esac
46435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
46455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for arg in $dlprefiles; do
46475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "extracting global C symbols from \`$arg'"
46485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
46495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval '$echo ": $name " >> "$nlist"'
46505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
46515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
46525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$run"; then
46545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Make sure we have at least an empty file.
46555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    test -f "$nlist" || : > "$nlist"
46565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$exclude_expsyms"; then
46585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
46595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $mv "$nlist"T "$nlist"
46605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Try sorting and uniquifying the output.
46635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if grep -v "^: " < "$nlist" |
46645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if sort -k 3 </dev/null >/dev/null 2>&1; then
46655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  sort -k 3
46665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		else
46675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  sort +2
46685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi |
46695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		uniq > "$nlist"S; then
46705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      :
46715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
46725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      grep -v "^: " < "$nlist" > "$nlist"S
46735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -f "$nlist"S; then
46765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
46775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
46785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
46795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
46805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo >> "$output_objdir/$dlsyms" "\
46825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef lt_preloaded_symbols
46845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (__STDC__) && __STDC__
46865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define lt_ptr void *
46875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
46885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define lt_ptr char *
46895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define const
46905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
46915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* The mapping between symbol names and symbols. */
46935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
46945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
46955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case $host in
46965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *cygwin* | *mingw* )
46975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> "$output_objdir/$dlsyms" "\
46985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* DATA imports from DLLs on WIN32 can't be const, because
46995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   runtime relocations are performed -- see ld's documentation
47005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   on pseudo-relocs */
47015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct {
47025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
47035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
47045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    * )
47055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> "$output_objdir/$dlsyms" "\
47065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const struct {
47075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
47085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
47095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
47105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> "$output_objdir/$dlsyms" "\
47135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const char *name;
47145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  lt_ptr address;
47155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
47165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_preloaded_symbols[] =
47175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){\
47185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
47195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
47215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo >> "$output_objdir/$dlsyms" "\
47235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {0, (lt_ptr) 0}
47245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
47255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* This works around a problem in FreeBSD linker */
47275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef FREEBSD_WORKAROUND
47285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static const void *lt_preloaded_setup() {
47295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return lt_preloaded_symbols;
47305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
47315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
47325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
47345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
47355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif\
47365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
47375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
47385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  pic_flag_for_symtable=
47405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $host in
47415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # compiling the symbol table file with pic_flag works around
47425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # a FreeBSD bug that causes programs to crash when -lm is
47435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # linked before any other PIC object.  But we must not use
47445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # pic_flag when linking with -static.  The problem exists in
47455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
47465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
47475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$compile_command " in
47485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" -static "*) ;;
47495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
47505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac;;
47515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *-*-hpux*)
47525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "$compile_command " in
47535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" -static "*) ;;
47545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) pic_flag_for_symtable=" $pic_flag";;
47555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
47565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
47575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Now compile the dynamic symbol file.
47595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
47605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
47615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Clean up the generated files.
47635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
47645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
47655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Transform the symbol file into the correct name.
47675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          case $host in
47685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          *cygwin* | *mingw* )
47695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            if test -f "$output_objdir/${outputname}.def" ; then
47705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
47725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            else
47735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)             fi
47765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            ;;
47775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          * )
47785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
47805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            ;;
47815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          esac
47825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
47835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
47845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
47855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
47865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
47875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
47885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
47895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We keep going just in case the user didn't refer to
47905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
47915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# really was required.
47925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Nullify the symbol file.
47945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
47955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
47965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
47975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
47985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
47995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Replace the output file specification.
48005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
48015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link_command="$compile_command$compile_rpath"
48025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We have no uninstalled library dependencies, so finalize right now.
48045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$link_command"
48055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$link_command"
48065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit_status=$?
48075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Delete the generated files.
48095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$dlsyms"; then
48105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$rm $output_objdir/${outputname}S.${objext}"
48115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run $rm "$output_objdir/${outputname}S.${objext}"
48125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
48135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $exit_status
48155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$shlibpath_var"; then
48185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We should set the shlibpath_var
48195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	rpath=
48205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for dir in $temp_rpath; do
48215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $dir in
48225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  [\\/]* | [A-Za-z]:[\\/]*)
48235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Absolute path.
48245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath$dir:"
48255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
48265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *)
48275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Relative path: add a thisdir entry.
48285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath\$thisdir/$dir:"
48295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
48305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
48315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
48325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	temp_rpath="$rpath"
48335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$compile_shlibpath$finalize_shlibpath"; then
48365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
48375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$finalize_shlibpath"; then
48395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
48405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile_var=
48435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      finalize_var=
48445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$runpath_var"; then
48455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$perm_rpath"; then
48465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # We should set the runpath_var.
48475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  rpath=
48485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for dir in $perm_rpath; do
48495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath$dir:"
48505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
48515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
48525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
48535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$finalize_perm_rpath"; then
48545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # We should set the runpath_var.
48555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  rpath=
48565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for dir in $finalize_perm_rpath; do
48575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rpath="$rpath$dir:"
48585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
48595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
48605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
48615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$no_install" = yes; then
48645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# We don't need to create a wrapper script.
48655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link_command="$compile_var$compile_command$compile_rpath"
48665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Replace the output file specification.
48675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
48685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Delete the old output file.
48695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run $rm $output
48705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Link the executable and exit
48715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$link_command"
48725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$link_command" || exit $?
48735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_SUCCESS
48745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$hardcode_action" = relink; then
48775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Fast installation is not supported
48785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	link_command="$compile_var$compile_command$compile_rpath"
48795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	relink_command="$finalize_var$finalize_command$finalize_rpath"
48805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
48825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: \`$output' will be relinked during installation" 1>&2
48835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
48845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$fast_install" != no; then
48855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  link_command="$finalize_var$compile_command$finalize_rpath"
48865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$fast_install" = yes; then
48875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
48885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
48895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # fast_install is set to needless
48905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command=
48915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
48925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
48935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  link_command="$compile_var$compile_command$compile_rpath"
48945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command="$finalize_var$finalize_command$finalize_rpath"
48955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
48965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
48975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
48985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Replace the output file specification.
48995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
49005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Delete the old output files.
49025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
49035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$link_command"
49055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run eval "$link_command" || exit $?
49065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now create the wrapper script.
49085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "creating $output"
49095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Quote the relink command for shipping.
49115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$relink_command"; then
49125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Preserve any variables that may affect compiler behavior
49135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for var in $variables_saved_for_relink; do
49145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if eval test -z \"\${$var+set}\"; then
49155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
49165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  elif eval var_value=\$$var; test -z "$var_value"; then
49175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command="$var=; export $var; $relink_command"
49185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
49195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
49205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
49215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
49225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
49235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	relink_command="(cd `pwd`; $relink_command)"
49245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
49255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
49265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Quote $echo for shipping.
49285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
49295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $progpath in
49305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
49315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
49325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
49335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
49345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
49355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
49365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
49375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Only actually do things if our run command is non-null.
49395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$run"; then
49405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# win32 will think the script is a binary if it has
49415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# a .exe suffix, so we strip it off here.
49425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $output in
49435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
49445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
49455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# test for cygwin because mv fails w/o .exe extensions
49465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
49475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *cygwin*)
49485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exeext=.exe
49495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
49505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) exeext= ;;
49515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
49525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
49535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *cygwin* | *mingw* )
49545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            output_name=`basename $output`
49555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            output_path=`dirname $output`
49565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            cwrappersource="$output_path/$objdir/lt-$output_name.c"
49575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            cwrapper="$output_path/$output_name.exe"
49585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            $rm $cwrappersource $cwrapper
49595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
49605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cat > $cwrappersource <<EOF
49625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
49645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
49655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   The $output program cannot be directly executed until all the libtool
49675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   libraries that it depends on are installed.
49685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   This wrapper executable should never be moved out of the build directory.
49705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   If it is, it will not operate correctly.
49715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   Currently, it simply execs the wrapper *script* "/bin/sh $output",
49735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   but could eventually absorb all of the scripts functionality and
49745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   exec $objdir/$outputname directly.
49755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*/
49765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
49775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    cat >> $cwrappersource<<"EOF"
49785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdio.h>
49795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdlib.h>
49805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <unistd.h>
49815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <malloc.h>
49825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stdarg.h>
49835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <assert.h>
49845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string.h>
49855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <ctype.h>
49865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <sys/stat.h>
49875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(PATH_MAX)
49895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX PATH_MAX
49905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(MAXPATHLEN)
49915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX MAXPATHLEN
49925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
49935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define LT_PATHMAX 1024
49945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
49955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
49965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DIR_SEPARATOR
49975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DIR_SEPARATOR '/'
49985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define PATH_SEPARATOR ':'
49995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
50005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
50025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  defined (__OS2__)
50035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define HAVE_DOS_BASED_FILE_SYSTEM
50045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef DIR_SEPARATOR_2
50055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  define DIR_SEPARATOR_2 '\\'
50065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif
50075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ifndef PATH_SEPARATOR_2
50085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  define PATH_SEPARATOR_2 ';'
50095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# endif
50105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
50115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef DIR_SEPARATOR_2
50135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
50145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* DIR_SEPARATOR_2 */
50155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_DIR_SEPARATOR(ch) \
50165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
50175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* DIR_SEPARATOR_2 */
50185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PATH_SEPARATOR_2
50205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
50215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else /* PATH_SEPARATOR_2 */
50225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
50235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PATH_SEPARATOR_2 */
50245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
50265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define XFREE(stale) do { \
50275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (stale) { free ((void *) stale); stale = 0; } \
50285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} while (0)
50295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* -DDEBUG is fairly common in CFLAGS.  */
50315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef DEBUG
50325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined DEBUGWRAPPER
50335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
50345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
50355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# define DEBUG(format, ...)
50365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
50375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char *program_name = NULL;
50395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void * xmalloc (size_t num);
50415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * xstrdup (const char *string);
50425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char * base_name (const char *name);
50435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * find_executable(const char *wrapper);
50445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int    check_executable(const char *path);
50455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char * strendzap(char *str, const char *pat);
50465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void lt_fatal (const char *message, ...);
50475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int
50495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)main (int argc, char *argv[])
50505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
50515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char **newargz;
50525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int i;
50535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  program_name = (char *) xstrdup (base_name (argv[0]));
50555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DEBUG("(main) argv[0]      : %s\n",argv[0]);
50565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DEBUG("(main) program_name : %s\n",program_name);
50575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  newargz = XMALLOC(char *, argc+2);
50585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
50595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            cat >> $cwrappersource <<EOF
50615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  newargz[0] = (char *) xstrdup("$SHELL");
50625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
50635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            cat >> $cwrappersource <<"EOF"
50655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  newargz[1] = find_executable(argv[0]);
50665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (newargz[1] == NULL)
50675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lt_fatal("Couldn't find %s", argv[0]);
50685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DEBUG("(main) found exe at : %s\n",newargz[1]);
50695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* we know the script has the same name, without the .exe */
50705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* so make sure newargz[1] doesn't end in .exe */
50715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  strendzap(newargz[1],".exe");
50725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (i = 1; i < argc; i++)
50735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    newargz[i+1] = xstrdup(argv[i]);
50745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  newargz[argc+1] = NULL;
50755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (i=0; i<argc+1; i++)
50775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
50785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
50795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;
50805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
50815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
50835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            case $host_os in
50855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              mingw*)
50865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                cat >> $cwrappersource <<EOF
50875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  execv("$SHELL",(char const **)newargz);
50885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
50895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              ;;
50905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              *)
50915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                cat >> $cwrappersource <<EOF
50925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  execv("$SHELL",newargz);
50935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
50945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)              ;;
50955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            esac
50965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
50975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            cat >> $cwrappersource <<"EOF"
50985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return 127;
50995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
51005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void *
51025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xmalloc (size_t num)
51035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
51045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void * p = (void *) malloc (num);
51055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!p)
51065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lt_fatal ("Memory exhausted");
51075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return p;
51095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
51105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char *
51125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)xstrdup (const char *string)
51135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
51145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
51155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles);
51165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
51175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)const char *
51195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)base_name (const char *name)
51205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
51215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const char *base;
51225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Skip over the disk name in MSDOS pathnames. */
51255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
51265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    name += 2;
51275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
51285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (base = name; *name; name++)
51305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (IS_DIR_SEPARATOR (*name))
51315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      base = name + 1;
51325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return base;
51335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
51345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int
51365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)check_executable(const char * path)
51375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
51385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  struct stat st;
51395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
51415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if ((!path) || (!*path))
51425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return 0;
51435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if ((stat (path, &st) >= 0) &&
51455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      (
51465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
51475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (S_IXOTH)
51485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
51495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
51505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (S_IXGRP)
51515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
51525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
51535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       ((st.st_mode & S_IXUSR) == S_IXUSR))
51545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      )
51555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return 1;
51565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
51575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return 0;
51585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
51595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Searches for the full path of the wrapper.  Returns
51615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)   newly allocated full path name if found, NULL otherwise */
51625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char *
51635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)find_executable (const char* wrapper)
51645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
51655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int has_slash = 0;
51665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const char* p;
51675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  const char* p_next;
51685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* static buffer for getcwd */
51695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char tmp[LT_PATHMAX + 1];
51705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  int tmp_len;
51715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  char* concat_name;
51725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
51745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if ((wrapper == NULL) || (*wrapper == '\0'))
51765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return NULL;
51775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
51785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Absolute path? */
51795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
51815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
51825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    concat_name = xstrdup (wrapper);
51835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (check_executable(concat_name))
51845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return concat_name;
51855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    XFREE(concat_name);
51865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
51875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
51885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
51895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
51905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (IS_DIR_SEPARATOR (wrapper[0]))
51915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
51925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      concat_name = xstrdup (wrapper);
51935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if (check_executable(concat_name))
51945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        return concat_name;
51955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      XFREE(concat_name);
51965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
51975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
51985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
51995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
52005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  for (p = wrapper; *p; p++)
52025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (*p == '/')
52035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
52045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      has_slash = 1;
52055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      break;
52065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
52075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!has_slash)
52085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
52095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* no slashes; search PATH */
52105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const char* path = getenv ("PATH");
52115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (path != NULL)
52125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    {
52135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for (p = path; *p; p = p_next)
52145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      {
52155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        const char* q;
52165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        size_t p_len;
52175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        for (q = p; *q; q++)
52185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          if (IS_PATH_SEPARATOR(*q))
52195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            break;
52205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        p_len = q - p;
52215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        p_next = (*q == '\0' ? q : q + 1);
52225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        if (p_len == 0)
52235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
52245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          /* empty path: current directory */
52255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          if (getcwd (tmp, LT_PATHMAX) == NULL)
52265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)            lt_fatal ("getcwd failed");
52275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          tmp_len = strlen(tmp);
52285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          memcpy (concat_name, tmp, tmp_len);
52305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          concat_name[tmp_len] = '/';
52315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          strcpy (concat_name + tmp_len + 1, wrapper);
52325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }
52335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        else
52345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        {
52355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
52365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          memcpy (concat_name, p, p_len);
52375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          concat_name[p_len] = '/';
52385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          strcpy (concat_name + p_len + 1, wrapper);
52395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        }
52405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        if (check_executable(concat_name))
52415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          return concat_name;
52425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        XFREE(concat_name);
52435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      }
52445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
52455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    /* not found in PATH; assume curdir */
52465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
52475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  /* Relative path | not found in path: prepend cwd */
52485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (getcwd (tmp, LT_PATHMAX) == NULL)
52495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    lt_fatal ("getcwd failed");
52505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  tmp_len = strlen(tmp);
52515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
52525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  memcpy (concat_name, tmp, tmp_len);
52535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  concat_name[tmp_len] = '/';
52545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  strcpy (concat_name + tmp_len + 1, wrapper);
52555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (check_executable(concat_name))
52575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return concat_name;
52585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  XFREE(concat_name);
52595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return NULL;
52605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
52615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)char *
52635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)strendzap(char *str, const char *pat)
52645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
52655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  size_t len, patlen;
52665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  assert(str != NULL);
52685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  assert(pat != NULL);
52695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  len = strlen(str);
52715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  patlen = strlen(pat);
52725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (patlen <= len)
52745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  {
52755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    str += len - patlen;
52765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if (strcmp(str, pat) == 0)
52775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *str = '\0';
52785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
52795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  return str;
52805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
52815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)static void
52835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_error_core (int exit_status, const char * mode,
52845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          const char * message, va_list ap)
52855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
52865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fprintf (stderr, "%s: %s: ", program_name, mode);
52875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  vfprintf (stderr, message, ap);
52885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fprintf (stderr, ".\n");
52895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (exit_status >= 0)
52915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit (exit_status);
52925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
52935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
52945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void
52955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)lt_fatal (const char *message, ...)
52965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
52975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  va_list ap;
52985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  va_start (ap, message);
52995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
53005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  va_end (ap);
53015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
53025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)EOF
53035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # we should really use a build-platform specific compiler
53045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # here, but OTOH, the wrappers (shell script and this C one)
53055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # are only useful if you want to execute the "real" binary.
53065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # Since the "real" binary is built for $host, then this
53075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          # wrapper might as well be built for $host, too.
53085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
53095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)          ;;
53105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        esac
53115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        $rm $output
53125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
53135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo > $output "\
53155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#! $SHELL
53165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $output - temporary wrapper script for $objdir/$outputname
53185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
53195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
53205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The $output program cannot be directly executed until all the libtool
53215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# libraries that it depends on are installed.
53225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
53235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This wrapper script should never be moved out of the build directory.
53245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If it is, it will not operate correctly.
53255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Sed substitution that helps us do robust quoting.  It backslashifies
53275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# metacharacters that are still active within double-quoted strings.
53285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Xsed='${SED} -e 1s/^X//'
53295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)sed_quote_subst='$sed_quote_subst'
53305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
53325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
53335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  emulate sh
53345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  NULLCMD=:
53355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
53365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # is contrary to our usage.  Disable this feature.
53375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  alias -g '\${1+\"\$@\"}'='\"\$@\"'
53385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  setopt NO_GLOB_SUBST
53395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
53405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
53415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
53425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BIN_SH=xpg4; export BIN_SH # for Tru64
53435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)DUALCASE=1; export DUALCASE # for MKS sh
53445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The HP-UX ksh and POSIX shell print the target directory to stdout
53465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# if CDPATH is set.
53475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
53485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)relink_command=\"$relink_command\"
53505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# This environment variable determines our operation mode.
53525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test \"\$libtool_install_magic\" = \"$magic\"; then
53535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # install mode needs the following variable:
53545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  notinst_deplibs='$notinst_deplibs'
53555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)else
53565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # When we are sourced in execute mode, \$file and \$echo are already set.
53575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test \"\$libtool_execute_magic\" != \"$magic\"; then
53585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    echo=\"$qecho\"
53595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    file=\"\$0\"
53605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Make sure echo works.
53615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test \"X\$1\" = X--no-reexec; then
53625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Discard the --no-reexec flag, and continue.
53635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      shift
53645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
53655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Yippee, \$echo works!
53665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      :
53675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
53685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Restart under the correct shell, and then maybe \$echo will work.
53695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
53705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
53715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi\
53725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
53735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo >> $output "\
53745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Find the directory that this script lives in.
53765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
53775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
53785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Follow symbolic links until we get to the real thisdir.
53805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
53815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  while test -n \"\$file\"; do
53825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
53835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # If there was a directory component, then change thisdir.
53855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test \"x\$destdir\" != \"x\$file\"; then
53865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case \"\$destdir\" in
53875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
53885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *) thisdir=\"\$thisdir/\$destdir\" ;;
53895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
53905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
53915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
53935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
53945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  done
53955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
53965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # Try to get the absolute directory name.
53975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  absdir=\`cd \"\$thisdir\" && pwd\`
53985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  test -n \"\$absdir\" && thisdir=\"\$absdir\"
53995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$fast_install" = yes; then
54025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  program=lt-'$outputname'$exeext
54045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  progdir=\"\$thisdir/$objdir\"
54055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test ! -f \"\$progdir/\$program\" || \\
54075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
54085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
54095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    file=\"\$\$-\$program\"
54115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test ! -d \"\$progdir\"; then
54135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $mkdir \"\$progdir\"
54145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
54155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $rm \"\$progdir/\$file\"
54165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi"
54175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # relink executable if necessary
54215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n \"\$relink_command\"; then
54225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
54235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
54245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo \"\$relink_command_output\" >&2
54255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$rm \"\$progdir/\$file\"
54265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
54275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
54285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
54295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
54315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    { $rm \"\$progdir/\$program\";
54325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
54335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $rm \"\$progdir/\$file\"
54345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi"
54355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
54365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  program='$outputname'
54385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  progdir=\"\$thisdir/$objdir\"
54395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
54415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo >> $output "\
54435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test -f \"\$progdir/\$program\"; then"
54455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Export our shlibpath_var if we have one.
54475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
54485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Add our own library path to $shlibpath_var
54505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
54515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Some systems cannot cope with colon-terminated $shlibpath_var
54535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # The second colon is a workaround for a bug in BeOS R4 sed
54545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
54555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    export $shlibpath_var
54575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
54595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# fixup the dll searchpath if we need to.
54615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$dllsearchpath"; then
54625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Add the dll search path components to the executable PATH
54645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    PATH=$dllsearchpath:\$PATH
54655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
54675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo >> $output "\
54695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test \"\$libtool_execute_magic\" != \"$magic\"; then
54705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Run the actual program with our arguments.
54715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
54735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Backslashes separate directories on plain windows
54745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*-*-mingw | *-*-os2*)
54755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
54775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
54795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
54805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
54815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo >> $output "\
54825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exec \"\$progdir/\$program\" \${1+\"\$@\"}
54835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
54855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
54865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo >> $output "\
54875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      \$echo \"\$0: cannot exec \$program \$*\"
54885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
54895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
54905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  else
54915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # The program doesn't exist.
54925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
54935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    \$echo \"This script is just a wrapper for \$program.\" 1>&2
54945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
54955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_FAILURE
54965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
54975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi\
54985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"
54995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	chmod +x $output
55005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
55015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_SUCCESS
55025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
55035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
55045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # See if we need to build an old-fashioned archive.
55065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for oldlib in $oldlibs; do
55075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$build_libtool_libs" = convenience; then
55095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	oldobjs="$libobjs_save"
55105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	addlibs="$convenience"
55115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	build_libtool_libs=no
55125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
55135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$build_libtool_libs" = module; then
55145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  oldobjs="$libobjs_save"
55155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  build_libtool_libs=no
55165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
55175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  oldobjs="$old_deplibs $non_pic_objects"
55185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
55195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	addlibs="$old_convenience"
55205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
55215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$addlibs"; then
55235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	gentop="$output_objdir/${outputname}x"
55245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	generated="$generated $gentop"
55255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	func_extract_archives $gentop $addlibs
55275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	oldobjs="$oldobjs $func_extract_archives_result"
55285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
55295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Do each command in the archive commands.
55315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
55325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       cmds=$old_archive_from_new_cmds
55335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
55345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# POSIX demands no paths to be encoded in archives.  We have
55355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# to avoid creating archives with duplicate basenames if we
55365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# might have to extract them afterwards, e.g., when creating a
55375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# static archive out of a convenience library, or when linking
55385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# the entirety of a libtool archive into another (currently
55395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# not supported by libtool).
55405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (for obj in $oldobjs
55415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    do
55425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
55435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done | sort | sort -uc >/dev/null 2>&1); then
55445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  :
55455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
55465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "copying selected object files to avoid basename conflicts..."
55475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$gentop"; then
55495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    gentop="$output_objdir/${outputname}x"
55505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    generated="$generated $gentop"
55515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "${rm}r $gentop"
55535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run ${rm}r "$gentop"
55545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$mkdir $gentop"
55555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run $mkdir "$gentop"
55565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit_status=$?
55575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
55585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      exit $exit_status
55595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
55605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
55615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_oldobjs=$oldobjs
55635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  oldobjs=
55645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  counter=1
55655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for obj in $save_oldobjs
55665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  do
55675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
55685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case " $oldobjs " in
55695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    " ") oldobjs=$obj ;;
55705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *[\ /]"$objbase "*)
55715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      while :; do
55725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# Make sure we don't pick an alternate name that also
55735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		# overlaps.
55745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		newobj=lt$counter-$objbase
55755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		counter=`expr $counter + 1`
55765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		case " $oldobjs " in
55775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*[\ /]"$newobj "*) ;;
55785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
55795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		esac
55805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      done
55815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
55825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run ln "$obj" "$gentop/$newobj" ||
55835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $run cp "$obj" "$gentop/$newobj"
55845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      oldobjs="$oldobjs $gentop/$newobj"
55855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      ;;
55865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) oldobjs="$oldobjs $obj" ;;
55875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
55885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
55895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
55905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval cmds=\"$old_archive_cmds\"
55925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if len=`expr "X$cmds" : ".*"` &&
55945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
55955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cmds=$old_archive_cmds
55965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
55975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # the command line is too long to link in one step, link in parts
55985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "using piecewise archive linking..."
55995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_RANLIB=$RANLIB
56005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  RANLIB=:
56015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  objlist=
56025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  concat_cmds=
56035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_oldobjs=$oldobjs
56045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Is there a better way of finding the last object in the list?
56065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for obj in $save_oldobjs
56075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  do
56085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    last_oldobj=$obj
56095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
56105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for obj in $save_oldobjs
56115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  do
56125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    oldobjs="$objlist $obj"
56135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    objlist="$objlist $obj"
56145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval test_cmds=\"$old_archive_cmds\"
56155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
56165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	       test "$len" -le "$max_cmd_len"; then
56175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      :
56185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
56195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # the above command should be used before it gets too long
56205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      oldobjs=$objlist
56215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$obj" = "$last_oldobj" ; then
56225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	        RANLIB=$save_RANLIB
56235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
56245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
56255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
56265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      objlist=
56275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
56285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
56295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  RANLIB=$save_RANLIB
56305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  oldobjs=$objlist
56315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "X$oldobjs" = "X" ; then
56325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval cmds=\"\$concat_cmds\"
56335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
56345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
56355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
56365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
56375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
56385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      save_ifs="$IFS"; IFS='~'
56395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for cmd in $cmds; do
56405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        eval cmd=\"$cmd\"
56415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
56425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$cmd"
56435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$cmd" || exit $?
56445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
56455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IFS="$save_ifs"
56465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
56475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$generated"; then
56495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "${rm}r$generated"
56505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run ${rm}r$generated
56515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
56525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Now create the libtool archive.
56545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $output in
56555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *.la)
56565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      old_library=
56575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test "$build_old_libs" = yes && old_library="$libname.$libext"
56585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "creating $output"
56595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Preserve any variables that may affect compiler behavior
56615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for var in $variables_saved_for_relink; do
56625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if eval test -z \"\${$var+set}\"; then
56635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
56645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	elif eval var_value=\$$var; test -z "$var_value"; then
56655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command="$var=; export $var; $relink_command"
56665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
56675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
56685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
56695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
56705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
56715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Quote the link command for shipping.
56725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
56735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
56745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$hardcode_automatic" = yes ; then
56755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	relink_command=
56765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
56775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
56795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Only create the output if not a dry run.
56805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$run"; then
56815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	for installed in no yes; do
56825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$installed" = yes; then
56835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -z "$install_libdir"; then
56845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      break
56855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
56865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    output="$output_objdir/$outputname"i
56875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Replace all uninstalled libtool libraries with the installed ones
56885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdependency_libs=
56895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for deplib in $dependency_libs; do
56905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $deplib in
56915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *.la)
56925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
56935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
56945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test -z "$libdir"; then
56955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
56965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  exit $EXIT_FAILURE
56975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
56985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		newdependency_libs="$newdependency_libs $libdir/$name"
56995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		;;
57005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) newdependency_libs="$newdependency_libs $deplib" ;;
57015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
57025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
57035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dependency_libs="$newdependency_libs"
57045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlfiles=
57055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for lib in $dlfiles; do
57065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -z "$libdir"; then
57095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		exit $EXIT_FAILURE
57115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
57125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlfiles="$newdlfiles $libdir/$name"
57135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
57145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlfiles="$newdlfiles"
57155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlprefiles=
57165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for lib in $dlprefiles; do
57175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
57185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
57195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test -z "$libdir"; then
57205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
57215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		exit $EXIT_FAILURE
57225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
57235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlprefiles="$newdlprefiles $libdir/$name"
57245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
57255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlprefiles="$newdlprefiles"
57265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
57275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlfiles=
57285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for lib in $dlfiles; do
57295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $lib in
57305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) abs=`pwd`"/$lib" ;;
57325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
57335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlfiles="$newdlfiles $abs"
57345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
57355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlfiles="$newdlfiles"
57365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    newdlprefiles=
57375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for lib in $dlprefiles; do
57385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $lib in
57395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
57405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		*) abs=`pwd`"/$lib" ;;
57415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
57425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      newdlprefiles="$newdlprefiles $abs"
57435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
57445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    dlprefiles="$newdlprefiles"
57455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
57465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $rm $output
57475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # place dlname in correct position for cygwin
57485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  tdlname=$dlname
57495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $host,$output,$installed,$module,$dlname in
57505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
57515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
57525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo > $output "\
57535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# $outputname - a libtool library file
57545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
57555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#
57565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Please DO NOT delete this file!
57575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# It is necessary for linking the library.
57585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name that we can dlopen(3).
57605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlname='$tdlname'
57615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Names of this library.
57635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)library_names='$library_names'
57645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The name of the static archive.
57665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)old_library='$old_library'
57675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Libraries that this one depends upon.
57695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dependency_libs='$dependency_libs'
57705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Version information for $libname.
57725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)current=$current
57735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)age=$age
57745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)revision=$revision
57755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Is this an already installed library?
57775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)installed=$installed
57785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Should we warn about portability when linking against -modules?
57805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)shouldnotlink=$module
57815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Files to dlopen/dlpreopen
57835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlopen='$dlfiles'
57845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)dlpreopen='$dlprefiles'
57855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Directory that this library needs to be installed in:
57875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)libdir='$install_libdir'"
57885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$installed" = no && test "$need_relink" = yes; then
57895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo >> $output "\
57905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)relink_command=\"$relink_command\""
57915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
57925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	done
57935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
57945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
57955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Do a symbolic link so that the libtool archive can be found in
57965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # LD_LIBRARY_PATH before the program is installed.
57975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
57985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
57995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
58005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
58015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_SUCCESS
58025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
58035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool install mode
58055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  install)
58065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: install"
58075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # There may be an optional sh(1) argument at the beginning of
58095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # install_prog (especially on Windows NT).
58105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
58115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       # Allow the use of GNU shtool's install command.
58125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       $echo "X$nonopt" | grep shtool > /dev/null; then
58135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Aesthetically quote it.
58145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
58155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
58165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg="\"$arg\""
58185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
58205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      install_prog="$arg "
58215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg="$1"
58225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      shift
58235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
58245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      install_prog=
58255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg=$nonopt
58265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
58275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # The real first argument should be the name of the installation program.
58295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Aesthetically quote it.
58305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $arg in
58325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg="\"$arg\""
58345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
58355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
58365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    install_prog="$install_prog$arg"
58375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # We need to accept at least all the BSD install flags.
58395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dest=
58405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    files=
58415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    opts=
58425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    prev=
58435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    install_type=
58445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    isdir=no
58455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    stripme=
58465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for arg
58475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    do
58485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$dest"; then
58495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	files="$files $dest"
58505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dest=$arg
58515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
58525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
58535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
58555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -d) isdir=yes ;;
58565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -f) 
58575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      	case " $install_prog " in
58585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*[\\\ /]cp\ *) ;;
58595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) prev=$arg ;;
58605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
58615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -g | -m | -o) prev=$arg ;;
58635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -s)
58645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	stripme=" -s"
58655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
58665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -*)
58685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
58705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If the previous option needed an argument, then skip it.
58715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$prev"; then
58725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  prev=
58735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
58745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dest=$arg
58755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
58765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
58775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
58795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Aesthetically quote the argument.
58815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
58825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
58835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
58845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	arg="\"$arg\""
58855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
58865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
58875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      install_prog="$install_prog $arg"
58885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
58895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$install_prog"; then
58915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify an install program" 1>&2
58925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
58935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
58945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
58955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
58965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$prev"; then
58975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: the \`$prev' option requires an argument" 1>&2
58985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
58995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
59005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
59015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$files"; then
59035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -z "$dest"; then
59045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: no file or destination specified" 1>&2
59055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
59065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: you must specify a destination" 1>&2
59075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
59085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
59095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
59105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
59115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Strip any trailing slash from the destination.
59135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
59145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Check to see that the destination is a directory.
59165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test -d "$dest" && isdir=yes
59175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test "$isdir" = yes; then
59185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      destdir="$dest"
59195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      destname=
59205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
59215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
59225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test "X$destdir" = "X$dest" && destdir=.
59235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
59245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Not a directory, so check to see that there is only one file specified.
59265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      set dummy $files
59275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$#" -gt 2; then
59285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: \`$dest' is not a directory" 1>&2
59295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$help" 1>&2
59305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
59315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
59325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
59335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case $destdir in
59345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    [\\/]* | [A-Za-z]:[\\/]*) ;;
59355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    *)
59365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for file in $files; do
59375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $file in
59385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.lo) ;;
59395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
59405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
59415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
59425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
59435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
59445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
59455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
59465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      ;;
59475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    esac
59485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # This variable tells wrapper scripts just to set variables rather
59505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # than running their programs.
59515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libtool_install_magic="$magic"
59525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    staticlibs=
59545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    future_libdirs=
59555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    current_libdirs=
59565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for file in $files; do
59575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Do each installation.
59595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $file in
59605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.$libext)
59615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Do the static libraries later.
59625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	staticlibs="$staticlibs $file"
59635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
59645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.la)
59665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check to see that this really is a libtool archive.
59675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
59685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
59695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
59705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
59715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
59725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
59735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	library_names=
59755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	old_library=
59765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	relink_command=
59775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If there is no directory component, then add one.
59785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $file in
59795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/* | *\\*) . $file ;;
59805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) . ./$file ;;
59815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
59825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Add the libdir to current_libdirs if it is the destination.
59845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "X$destdir" = "X$libdir"; then
59855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$current_libdirs " in
59865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
59875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) current_libdirs="$current_libdirs $libdir" ;;
59885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
59895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
59905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Note the libdir as a future libdir.
59915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$future_libdirs " in
59925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $libdir "*) ;;
59935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) future_libdirs="$future_libdirs $libdir" ;;
59945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
59955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
59965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
59975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
59985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test "X$dir" = "X$file/" && dir=
59995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir="$dir$objdir"
60005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$relink_command"; then
60025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Determine the prefix the user has applied to our future dir.
60035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
60045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Don't allow the user to place us outside of our expected
60065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # location b/c this prevents finding dependent libraries that
60075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # are installed to the same prefix.
60085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # At present, this check doesn't affect windows .dll's that
60095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # are installed into $libdir/../bin (currently, that works fine)
60105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # but it's something to keep an eye on.
60115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$inst_prefix_dir" = "$destdir"; then
60125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
60135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
60145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
60155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$inst_prefix_dir"; then
60175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Stick the inst_prefix_dir data into the link command.
60185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
60195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
60205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
60215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
60225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: warning: relinking \`$file'" 1>&2
60245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$relink_command"
60255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if $run eval "$relink_command"; then :
60265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
60275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
60285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
60295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
60305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
60315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# See the names of the shared library.
60335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	set dummy $library_names
60345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$2"; then
60355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  realname="$2"
60365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  shift
60375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  shift
60385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  srcname="$realname"
60405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$relink_command" && srcname="$realname"T
60415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Install the shared library and build the symlinks.
60435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$install_prog $dir/$srcname $destdir/$realname"
60445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
60455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$stripme" && test -n "$striplib"; then
60465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$striplib $destdir/$realname"
60475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval "$striplib $destdir/$realname" || exit $?
60485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
60495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$#" -gt 0; then
60515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Delete the old symlinks, and create new ones.
60525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Try `ln -sf' first, because the `ln' binary might depend on
60535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
60545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # so we also need to try rm && ln -s.
60555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    for linkname
60565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    do
60575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$linkname" != "$realname"; then
60585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
60605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
60615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    done
60625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
60635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Do each command in the postinstall commands.
60655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  lib="$destdir/$realname"
60665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cmds=$postinstall_cmds
60675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_ifs="$IFS"; IFS='~'
60685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for cmd in $cmds; do
60695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    IFS="$save_ifs"
60705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval cmd=\"$cmd\"
60715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$cmd"
60725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval "$cmd" || {
60735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      lt_exit=$?
60745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Restore the uninstalled library and exit
60765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if test "$mode" = relink; then
60775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
60785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
60795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      exit $lt_exit
60815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    }
60825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
60835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
60845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
60855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Install the pseudo-library for information purposes.
60875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
60885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	instname="$dir/$name"i
60895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$install_prog $instname $destdir/$name"
60905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$install_prog $instname $destdir/$name" || exit $?
60915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Maybe install the static library, too.
60935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
60945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
60955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.lo)
60975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Install (i.e. copy) a libtool object.
60985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
60995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Figure out destination file name, if it wasn't already specified.
61005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$destname"; then
61015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile="$destdir/$destname"
61025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
61035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile="$destdir/$destfile"
61055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
61065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Deduce the name of the destination old-style object file.
61085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $destfile in
61095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.lo)
61105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
61115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
61125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*.$objext)
61135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  staticdest="$destfile"
61145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile=
61155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
61165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
61175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
61185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
61195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
61205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
61215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
61225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Install the libtool object if requested.
61245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$destfile"; then
61255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$install_prog $file $destfile"
61265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$install_prog $file $destfile" || exit $?
61275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
61285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Install the old object if enabled.
61305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$build_old_libs" = yes; then
61315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Deduce the name of the old-style object file.
61325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
61335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $show "$install_prog $staticobj $staticdest"
61355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
61365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
61375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_SUCCESS
61385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
61395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
61415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Figure out destination file name, if it wasn't already specified.
61425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$destname"; then
61435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile="$destdir/$destname"
61445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
61455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
61465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  destfile="$destdir/$destfile"
61475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
61485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If the file is missing, and there is a .exe on the end, strip it
61505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# because it is most likely a libtool script we actually want to
61515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# install
61525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	stripped_ext=""
61535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $file in
61545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.exe)
61555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test ! -f "$file"; then
61565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      file=`$echo $file|${SED} 's,.exe$,,'`
61575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      stripped_ext=".exe"
61585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
61595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
61605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
61615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Do a test to see if this is really a libtool program.
61635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $host in
61645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*cygwin*|*mingw*)
61655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
61665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
61675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*)
61685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    wrapper=$file
61695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
61705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
61715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
61725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  notinst_deplibs=
61735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command=
61745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Note that it is not necessary on cygwin/mingw to append a dot to
61765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
61775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
61785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # `FILE.' does not work on cygwin managed mounts.
61795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  #
61805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # If there is no directory component, then add one.
61815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $wrapper in
61825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  */* | *\\*) . ${wrapper} ;;
61835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) . ./${wrapper} ;;
61845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
61855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Check the variables that should have been set.
61875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -z "$notinst_deplibs"; then
61885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
61895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
61905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
61915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
61925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  finalize=yes
61935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for lib in $notinst_deplibs; do
61945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Check to see that each library is installed.
61955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libdir=
61965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -f "$lib"; then
61975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # If there is no directory component, then add one.
61985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      case $lib in
61995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      */* | *\\*) . $lib ;;
62005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      *) . ./$lib ;;
62015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      esac
62025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
62035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
62045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$libdir" && test ! -f "$libfile"; then
62055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
62065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      finalize=no
62075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
62085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
62095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  relink_command=
62115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Note that it is not necessary on cygwin/mingw to append a dot to
62125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
62135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
62145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # `FILE.' does not work on cygwin managed mounts.
62155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  #
62165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # If there is no directory component, then add one.
62175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $wrapper in
62185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  */* | *\\*) . ${wrapper} ;;
62195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) . ./${wrapper} ;;
62205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
62215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  outputname=
62235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test "$fast_install" = no && test -n "$relink_command"; then
62245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$finalize" = yes && test -z "$run"; then
62255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      tmpdir=`func_mktempdir`
62265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
62275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      outputname="$tmpdir/$file"
62285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Replace the output file specification.
62295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
62305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $show "$relink_command"
62325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      if $run eval "$relink_command"; then :
62335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      else
62345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
62355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		${rm}r "$tmpdir"
62365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		continue
62375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi
62385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      file="$outputname"
62395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    else
62405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
62415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
62425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  else
62435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # Install the binary that we compiled earlier.
62445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
62455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
62465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
62475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# remove .exe since cygwin /usr/bin/install will append another
62495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# one anyway 
62505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $install_prog,$host in
62515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/usr/bin/install*,*cygwin*)
62525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $file:$destfile in
62535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.exe:*.exe)
62545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # this is ok
62555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
62565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.exe:*)
62575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    destfile=$destfile.exe
62585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
62595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *:*.exe)
62605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
62615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
62625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
62635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  ;;
62645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
62655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$install_prog$stripme $file $destfile"
62665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
62675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test -n "$outputname" && ${rm}r "$tmpdir"
62685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
62695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
62705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
62715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for file in $staticlibs; do
62735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
62745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Set up the ranlib parameters.
62765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      oldlib="$destdir/$name"
62775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$install_prog $file $oldlib"
62795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run eval "$install_prog \$file \$oldlib" || exit $?
62805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$stripme" && test -n "$old_striplib"; then
62825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$old_striplib $oldlib"
62835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$old_striplib $oldlib" || exit $?
62845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
62855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Do each command in the postinstall commands.
62875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      cmds=$old_postinstall_cmds
62885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      save_ifs="$IFS"; IFS='~'
62895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for cmd in $cmds; do
62905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	IFS="$save_ifs"
62915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval cmd=\"$cmd\"
62925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "$cmd"
62935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run eval "$cmd" || exit $?
62945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
62955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      IFS="$save_ifs"
62965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
62975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
62985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$future_libdirs"; then
62995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
63005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$current_libdirs"; then
63035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Maybe just do a dry run.
63045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -n "$run" && current_libdirs=" -n$current_libdirs"
63055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
63065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
63075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_SUCCESS
63085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
63105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool finish mode
63125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  finish)
63135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: finish"
63145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libdirs="$nonopt"
63155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    admincmds=
63165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
63185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for dir
63195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      do
63205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	libdirs="$libdirs $dir"
63215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
63225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for libdir in $libdirs; do
63245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$finish_cmds"; then
63255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Do each command in the finish commands.
63265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  cmds=$finish_cmds
63275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  save_ifs="$IFS"; IFS='~'
63285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for cmd in $cmds; do
63295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    IFS="$save_ifs"
63305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    eval cmd=\"$cmd\"
63315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $show "$cmd"
63325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $run eval "$cmd" || admincmds="$admincmds
63335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       $cmd"
63345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
63355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  IFS="$save_ifs"
63365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
63375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -n "$finish_eval"; then
63385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Do the single finish_eval.
63395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  eval cmds=\"$finish_eval\"
63405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $run eval "$cmds" || admincmds="$admincmds
63415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)       $cmds"
63425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
63435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
63445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Exit here if they wanted silent mode.
63475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    test "$show" = : && exit $EXIT_SUCCESS
63485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "X----------------------------------------------------------------------" | $Xsed
63505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "Libraries have been installed in:"
63515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for libdir in $libdirs; do
63525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   $libdir"
63535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
63545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo
63555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "If you ever happen to want to link against installed libraries"
63565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "in a given directory, LIBDIR, you must either use libtool, and"
63575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
63585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "flag during linking and do at least one of the following:"
63595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$shlibpath_var"; then
63605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
63615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "     during execution"
63625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$runpath_var"; then
63645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
63655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "     during linking"
63665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$hardcode_libdir_flag_spec"; then
63685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      libdir=LIBDIR
63695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      eval flag=\"$hardcode_libdir_flag_spec\"
63705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   - use the \`$flag' linker flag"
63725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -n "$admincmds"; then
63745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   - have your system administrator run these commands:$admincmds"
63755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -f /etc/ld.so.conf; then
63775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
63785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo
63805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "See any operating system documentation about shared libraries for"
63815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
63825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "X----------------------------------------------------------------------" | $Xsed
63835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_SUCCESS
63845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
63855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool execute mode
63875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  execute)
63885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: execute"
63895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # The first argument is the command name.
63915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    cmd="$nonopt"
63925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$cmd"; then
63935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify a COMMAND" 1>&2
63945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help"
63955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
63965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
63975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
63985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Handle -dlopen flags immediately.
63995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for file in $execute_dlfiles; do
64005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test ! -f "$file"; then
64015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: \`$file' is not a file" 1>&2
64025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$help" 1>&2
64035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit $EXIT_FAILURE
64045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
64055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dir=
64075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $file in
64085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.la)
64095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Check to see that this really is a libtool archive.
64105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
64115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
64125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
64135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  $echo "$help" 1>&2
64145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  exit $EXIT_FAILURE
64155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
64165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Read the libtool library.
64185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dlname=
64195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	library_names=
64205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# If there is no directory component, then add one.
64225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case $file in
64235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*/* | *\\*) . $file ;;
64245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	*) . ./$file ;;
64255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
64265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Skip this library if it cannot be dlopened.
64285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -z "$dlname"; then
64295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Warn if it was a shared library.
64305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
64315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  continue
64325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
64335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test "X$dir" = "X$file" && dir=.
64365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test -f "$dir/$objdir/$dlname"; then
64385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  dir="$dir/$objdir"
64395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	else
64405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test ! -f "$dir/$dlname"; then
64415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
64425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    exit $EXIT_FAILURE
64435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
64445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
64455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
64465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.lo)
64485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Just add the directory containing the .lo file.
64495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
64505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	test "X$dir" = "X$file" && dir=.
64515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
64525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
64545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
64555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
64565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
64575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
64585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Get the absolute pathname.
64605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      absdir=`cd "$dir" && pwd`
64615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test -n "$absdir" && dir="$absdir"
64625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now add the directory to shlibpath_var.
64645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if eval "test -z \"\$$shlibpath_var\""; then
64655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval "$shlibpath_var=\"\$dir\""
64665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
64675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
64685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
64695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
64705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # This variable tells wrapper scripts just to set shlibpath_var
64725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # rather than running their programs.
64735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libtool_execute_magic="$magic"
64745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Check if any of the arguments is a wrapper script.
64765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    args=
64775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for file
64785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    do
64795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $file in
64805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -*) ;;
64815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
64825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Do a test to see if this is really a libtool program.
64835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
64845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # If there is no directory component, then add one.
64855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $file in
64865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  */* | *\\*) . $file ;;
64875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) . ./$file ;;
64885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
64895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
64905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Transform arg to wrapped name.
64915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  file="$progdir/$program"
64925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
64935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
64945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
64955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Quote arguments (to preserve shell metacharacters).
64965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
64975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      args="$args \"$file\""
64985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
64995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$run"; then
65015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$shlibpath_var"; then
65025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Export the shlibpath_var.
65035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval "export $shlibpath_var"
65045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
65055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Restore saved environment variables
65075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
65085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      do
65095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval "if test \"\${save_$lt_var+set}\" = set; then
65105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$lt_var=\$save_$lt_var; export $lt_var
65115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      fi"
65125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      done
65135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Now prepare to actually exec the command.
65155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exec_cmd="\$cmd$args"
65165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    else
65175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Display what would be done.
65185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -n "$shlibpath_var"; then
65195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
65205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$echo "export $shlibpath_var"
65215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
65225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$cmd$args"
65235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_SUCCESS
65245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
65255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
65265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  # libtool clean and uninstall mode
65285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  clean | uninstall)
65295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    modename="$modename: $mode"
65305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    rm="$nonopt"
65315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    files=
65325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    rmforce=
65335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit_status=0
65345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # This variable tells wrapper scripts just to set variables rather
65365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # than running their programs.
65375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    libtool_install_magic="$magic"
65385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for arg
65405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    do
65415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $arg in
65425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -f) rm="$rm $arg"; rmforce=yes ;;
65435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      -*) rm="$rm $arg" ;;
65445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *) files="$files $arg" ;;
65455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
65465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
65475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    if test -z "$rm"; then
65495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$modename: you must specify an RM program" 1>&2
65505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $echo "$help" 1>&2
65515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      exit $EXIT_FAILURE
65525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    fi
65535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    rmdirs=
65555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    origobjdir="$objdir"
65575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for file in $files; do
65585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
65595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "X$dir" = "X$file"; then
65605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	dir=.
65615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	objdir="$origobjdir"
65625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      else
65635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	objdir="$dir/$origobjdir"
65645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
65655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
65665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      test "$mode" = uninstall && objdir="$dir"
65675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Remember objdir for removal later, being careful to avoid duplicates
65695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test "$mode" = clean; then
65705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	case " $rmdirs " in
65715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *" $objdir "*) ;;
65725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *) rmdirs="$rmdirs $objdir" ;;
65735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	esac
65745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
65755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      # Don't error if the file doesn't exist and rm -f was used.
65775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if (test -L "$file") >/dev/null 2>&1 \
65785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	|| (test -h "$file") >/dev/null 2>&1 \
65795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	|| test -f "$file"; then
65805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	:
65815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      elif test -d "$file"; then
65825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	exit_status=1
65835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
65845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      elif test "$rmforce" = yes; then
65855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	continue
65865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
65875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      rmfiles="$file"
65895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      case $name in
65915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.la)
65925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Possibly a libtool archive, so verify it.
65935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
65945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  . $dir/$name
65955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Delete the libtool libraries and symlinks.
65975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  for n in $library_names; do
65985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rmfiles="$rmfiles $objdir/$n"
65995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  done
66005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
66015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case "$mode" in
66035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  clean)
66045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    case "  $library_names " in
66055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # "  " in the beginning catches empty $dlname
66065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *" $dlname "*) ;;
66075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
66085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    esac
66095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
66105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
66115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  uninstall)
66125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$library_names"; then
66135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Do each command in the postuninstall commands.
66145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$postuninstall_cmds
66155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      save_ifs="$IFS"; IFS='~'
66165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      for cmd in $cmds; do
66175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		IFS="$save_ifs"
66185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval cmd=\"$cmd\"
66195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$show "$cmd"
66205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval "$cmd"
66215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "$?" -ne 0 && test "$rmforce" != yes; then
66225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  exit_status=1
66235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
66245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      done
66255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      IFS="$save_ifs"
66265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
66275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test -n "$old_library"; then
66295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      # Do each command in the old_postuninstall commands.
66305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      cmds=$old_postuninstall_cmds
66315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      save_ifs="$IFS"; IFS='~'
66325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      for cmd in $cmds; do
66335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		IFS="$save_ifs"
66345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		eval cmd=\"$cmd\"
66355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$show "$cmd"
66365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		$run eval "$cmd"
66375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		if test "$?" -ne 0 && test "$rmforce" != yes; then
66385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		  exit_status=1
66395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		fi
66405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      done
66415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      IFS="$save_ifs"
66425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
66435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # FIXME: should reinstall the best remaining shared library.
66445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
66455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
66465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
66475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
66485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *.lo)
66505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	# Possibly a libtool object, so verify it.
66515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Read the .lo file
66545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  . $dir/$name
66555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add PIC object to the list of files to remove.
66575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$pic_object" \
66585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     && test "$pic_object" != none; then
66595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rmfiles="$rmfiles $dir/$pic_object"
66605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
66615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Add non-PIC object to the list of files to remove.
66635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if test -n "$non_pic_object" \
66645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	     && test "$non_pic_object" != none; then
66655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rmfiles="$rmfiles $dir/$non_pic_object"
66665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
66675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
66685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
66695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      *)
66715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	if test "$mode" = clean ; then
66725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  noexename=$name
66735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  case $file in
66745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  *.exe)
66755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    file=`$echo $file|${SED} 's,.exe$,,'`
66765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    noexename=`$echo $name|${SED} 's,.exe$,,'`
66775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # $file with .exe has already been added to rmfiles,
66785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # add $file without .exe
66795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rmfiles="$rmfiles $file"
66805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    ;;
66815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  esac
66825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  # Do a test to see if this is a libtool program.
66835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
66845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    relink_command=
66855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    . $dir/$noexename
66865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
66875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # note $name still contains .exe if it was in $file originally
66885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    # as does the version of $file that was added into $rmfiles
66895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
66905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "$fast_install" = yes && test -n "$relink_command"; then
66915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      rmfiles="$rmfiles $objdir/lt-$name"
66925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
66935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    if test "X$noexename" != "X$name" ; then
66945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
66955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	    fi
66965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	  fi
66975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	fi
66985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	;;
66995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      esac
67005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $show "$rm $rmfiles"
67015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      $run $rm $rmfiles || exit_status=1
67025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
67035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    objdir="$origobjdir"
67045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    # Try to remove the ${objdir}s in the directories where we deleted files
67065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for dir in $rmdirs; do
67075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      if test -d "$dir"; then
67085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$show "rmdir $dir"
67095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)	$run rmdir $dir >/dev/null 2>&1
67105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      fi
67115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    done
67125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $exit_status
67145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
67155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  "")
67175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$modename: you must specify a MODE" 1>&2
67185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$generic_help" 1>&2
67195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_FAILURE
67205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ;;
67215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  esac
67225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if test -z "$exec_cmd"; then
67245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$modename: invalid operation mode \`$mode'" 1>&2
67255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    $echo "$generic_help" 1>&2
67265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    exit $EXIT_FAILURE
67275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  fi
67285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi # test -z "$show_help"
67295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if test -n "$exec_cmd"; then
67315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  eval exec $exec_cmd
67325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_FAILURE
67335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)fi
67345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# We need to display help for each of the modes.
67365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)case $mode in
67375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"") $echo \
67385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... [MODE-ARG]...
67395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Provide generalized library-building support services.
67415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --config          show all configuration variables
67435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --debug           enable verbose shell tracing
67445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)-n, --dry-run         display commands without modifying any files
67455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --features        display basic configuration information and exit
67465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --finish          same as \`--mode=finish'
67475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --help            display this help message and exit
67485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
67495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --quiet           same as \`--silent'
67505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --silent          don't print informational messages
67515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --tag=TAG         use configuration variables from tag TAG
67525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    --version         print version information
67535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MODE must be one of the following:
67555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      clean           remove files from the build directory
67575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      compile         compile a source file into a libtool object
67585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      execute         automatically set library path, then run a program
67595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      finish          complete the installation of libtool libraries
67605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      install         install libraries or executables
67615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      link            create a library or an executable
67625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      uninstall       remove libraries from an installed directory
67635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
67655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)a more detailed description of MODE.
67665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Report bugs to <bug-libtool@gnu.org>."
67685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_SUCCESS
67695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
67705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)clean)
67725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
67735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
67745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Remove files from the build directory.
67765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RM is the name of the program to use to delete files associated with each FILE
67785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
67795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)to RM.
67805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If FILE is a libtool library, object or program, all the files associated
67825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)with it are deleted. Otherwise, only FILE itself is deleted using RM."
67835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
67845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)compile)
67865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
67875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
67885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Compile a source file into a libtool library object.
67905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode accepts the following additional options:
67925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
67945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -prefer-pic       try to building PIC objects only
67955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -prefer-non-pic   try to building non-PIC objects only
67965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -static           always build a \`.o' file suitable for static linking
67975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
67985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)COMPILE-COMMAND is a command to be used in creating a \`standard' object file
67995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from the given SOURCEFILE.
68005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The output file name is determined by removing the directory component from
68025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)SOURCEFILE, then substituting the C source code suffix \`.c' with the
68035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)library object suffix, \`.lo'."
68045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
68055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)execute)
68075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
68085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
68095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Automatically set library path, then run a program.
68115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode accepts the following additional options:
68135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -dlopen FILE      add the directory containing FILE to the library path
68155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)This mode sets the library path environment variable according to \`-dlopen'
68175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)flags.
68185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If any of the ARGS are libtool executable wrappers, then they are translated
68205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)into their corresponding uninstalled binary, and any of their required library
68215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)directories are added to the library path.
68225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Then, COMMAND is executed, with ARGS as arguments."
68245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
68255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)finish)
68275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
68285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
68295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Complete the installation of libtool libraries.
68315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Each LIBDIR is a directory that contains libtool libraries.
68335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The commands that this mode executes may require superuser privileges.  Use
68355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)the \`--dry-run' option if you just want to see what would be executed."
68365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
68375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)install)
68395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
68405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
68415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Install executables or libraries.
68435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)INSTALL-COMMAND is the installation command.  The first component should be
68455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)either the \`install' or \`cp' program.
68465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The rest of the components are interpreted as arguments to that command (only
68485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)BSD-compatible install options are recognized)."
68495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
68505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)link)
68525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
68535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
68545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Link object files or libraries together to form another library, or to
68565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)create an executable program.
68575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)LINK-COMMAND is a command using the C compiler that you would use to create
68595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)a program from several object files.
68605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)The following components of LINK-COMMAND are treated specially:
68625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -all-static       do not do any dynamic linking at all
68645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -avoid-version    do not add a version suffix if possible
68655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
68665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
68675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
68685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -export-symbols SYMFILE
68695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    try to export only the symbols listed in SYMFILE
68705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -export-symbols-regex REGEX
68715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    try to export only the symbols matching REGEX
68725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -LLIBDIR          search LIBDIR for required installed libraries
68735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -lNAME            OUTPUT-FILE requires the installed library libNAME
68745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -module           build a library that can dlopened
68755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -no-fast-install  disable the fast-install mode
68765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -no-install       link a not-installable executable
68775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -no-undefined     declare that a library does not refer to external symbols
68785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
68795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -objectlist FILE  Use a list of object files found in FILE to specify objects
68805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -precious-files-regex REGEX
68815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    don't remove output files matching REGEX
68825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -release RELEASE  specify package release information
68835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
68845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
68855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -static           do not do any dynamic linking of uninstalled libtool libraries
68865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -static-libtool-libs
68875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    do not do any dynamic linking of libtool libraries
68885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  -version-info CURRENT[:REVISION[:AGE]]
68895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                    specify library version info [each variable defaults to 0]
68905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)All other options (arguments beginning with \`-') are ignored.
68925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Every other argument is treated as a filename.  Files ending in \`.la' are
68945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)treated as uninstalled libtool libraries, other files are standard or library
68955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)object files.
68965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
68975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
68985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)only library objects (\`.lo' files) may be specified, and \`-rpath' is
68995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)required, except when creating a convenience library.
69005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
69025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)using \`ar' and \`ranlib', or on Windows using \`lib'.
69035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
69055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)is created, otherwise an executable program is created."
69065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
69075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)uninstall)
69095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo \
69105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
69115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Remove libraries from an installation directory.
69135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)RM is the name of the program to use to delete files associated with each FILE
69155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
69165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)to RM.
69175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)If FILE is a libtool library, all the files associated with it are deleted.
69195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)Otherwise, only FILE itself is deleted using RM."
69205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
69215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*)
69235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "$modename: invalid operation mode \`$mode'" 1>&2
69245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  $echo "$help" 1>&2
69255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  exit $EXIT_FAILURE
69265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ;;
69275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)esac
69285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$echo
69305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)$echo "Try \`$modename --help' for more information about other modes."
69315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)exit $?
69335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# The TAGs below are defined such that we never get into a situation
69355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# in which we disable both kinds of libraries.  Given conflicting
69365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# choices, we go for a static library, that is the most portable,
69375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# since we can't tell whether shared libraries were disabled because
69385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# the user asked for that or because the platform doesn't support
69395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# them.  This is particularly important on AIX, because we don't
69405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# support having both static and shared libraries enabled at the same
69415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# time on that platform, so we default to a shared-only configuration.
69425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# If a disable-shared tag is given, we'll fallback to a static-only
69435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# configuration.  But we'll never go from static-only to shared-only.
69445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
69465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=shared
69475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### END LIBTOOL TAG CONFIG: disable-shared
69485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### BEGIN LIBTOOL TAG CONFIG: disable-static
69505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)disable_libs=static
69515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# ### END LIBTOOL TAG CONFIG: disable-static
69525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
69535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Local Variables:
69545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# mode:shell-script
69555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# sh-indentation:2
69565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# End:
6957