1b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ltmain.sh - Provide generalized library-building support services.
2b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# NOTE: Changing this file will not affect anything until you rerun configure.
3b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
4b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
5b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Free Software Foundation, Inc.
6b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
7b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
8b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# This program is free software; you can redistribute it and/or modify
9b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# it under the terms of the GNU General Public License as published by
10b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# the Free Software Foundation; either version 2 of the License, or
11b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# (at your option) any later version.
12b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
13b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# This program is distributed in the hope that it will be useful, but
14b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# WITHOUT ANY WARRANTY; without even the implied warranty of
15b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# General Public License for more details.
17b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
18b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# You should have received a copy of the GNU General Public License
19b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# along with this program; if not, write to the Free Software
20b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
22b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# As a special exception to the GNU General Public License, if you
23b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# distribute this file as part of a program that contains a
24b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# configuration script generated by Autoconf, you may include it under
25b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# the same distribution terms that you use for the rest of that program.
26b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
27b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectbasename="s,^.*/,,g"
28b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
29b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
30b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# is ksh but when the shell is invoked as "sh" and the current value of
31b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# the _XPG environment variable is not equal to 1 (one), the special
32b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# positional parameter $0, within a function call, is the name of the
33b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# function.
34b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectprogpath="$0"
35b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
36b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The name of this program:
37b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectprogname=`echo "$progpath" | $SED $basename`
38b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmodename="$progname"
39b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
40b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Global variables:
41b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEXIT_SUCCESS=0
42b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEXIT_FAILURE=1
43b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
44b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectPROGRAM=ltmain.sh
45b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectPACKAGE=libtool
46b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectVERSION=1.5.22
47b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectTIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
48b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
49b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# See if we are running on zsh, and set the options which allow our
50b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# commands through without removal of \ escapes.
51b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test -n "${ZSH_VERSION+set}" ; then
52b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  setopt NO_GLOB_SUBST
53b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
54b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
55b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Check that we have a working $echo.
56b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test "X$1" = X--no-reexec; then
57b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Discard the --no-reexec flag, and continue.
58b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  shift
59b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectelif test "X$1" = X--fallback-echo; then
60b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Avoid inline document here, it may be left over
61b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  :
62b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectelif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
63b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Yippee, $echo works!
64b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  :
65b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectelse
66b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Restart under the correct shell, and then maybe $echo will work.
67b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
68b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
69b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
70b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test "X$1" = X--fallback-echo; then
71b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # used as fallback echo
72b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  shift
73b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  cat <<EOF
74b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project$*
75b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
76b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_SUCCESS
77b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
78b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
79b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdefault_mode=
80b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecthelp="Try \`$progname --help' for more information."
81b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmagic="%%%MAGIC variable%%%"
82b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmkdir="mkdir"
83b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmv="mv -f"
84b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrm="rm -f"
85b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
86b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Sed substitution that helps us do robust quoting.  It backslashifies
87b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# metacharacters that are still active within double-quoted strings.
88b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectXsed="${SED}"' -e 1s/^X//'
89b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectsed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
90b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# test EBCDIC or ASCII
91b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcase `echo X|tr X '\101'` in
92b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project A) # ASCII based system
93b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
94b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  SP2NL='tr \040 \012'
95b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  NL2SP='tr \015\012 \040\040'
96b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
97b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project *) # EBCDIC based system
98b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  SP2NL='tr \100 \n'
99b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  NL2SP='tr \r\n \100\100'
100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectesac
102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# NLS nuisances.
104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Only set LANG and LC_ALL to C if already set.
105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# These must not be set unconditionally because not all systems understand
106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# e.g. LANG=C (notably SCO).
107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# We save the old values to restore during execute mode.
108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test "${LC_ALL+set}" = set; then
109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test "${LANG+set}" = set; then
112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  save_LANG="$LANG"; LANG=C; export LANG
113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Make sure IFS has a sensible default
116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlt_nl='
117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project'
118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIFS=" 	$lt_nl"
119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "$modename: not configured to build any kind of library" 1>&2
122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_FAILURE
124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Global variables.
127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmode=$default_mode
128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectnonopt=
129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectprev=
130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectprevopt=
131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrun=
132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectshow="$echo"
133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectshow_help=
134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectexecute_dlfiles=
135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectduplicate_deps=no
136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectpreserve_args=
137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlo2o="s/\\.lo\$/.${objext}/"
138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecto2lo="s/\\.${objext}\$/.lo/"
139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#####################################
141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Shell function definitions:
142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# This seems to be the best place for them
143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# func_mktempdir [string]
145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Make a temporary directory that won't clash with other running
146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# libtool processes, and avoids race conditions if possible.  If
147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# given, STRING is the basename for that directory.
148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfunc_mktempdir ()
149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_template="${TMPDIR-/tmp}/${1-$progname}"
151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$run" = ":"; then
153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Return a directory name, but don't create it in dry-run mode
154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      my_tmpdir="${my_template}-$$"
155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # If mktemp works, use that first and foremost
158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test ! -d "$my_tmpdir"; then
161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Failing that, at least try and use $RANDOM to avoid a race
162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	my_tmpdir="${my_template}-${RANDOM-0}$$"
163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_mktempdir_umask=`umask`
165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	umask 0077
166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$mkdir "$my_tmpdir"
167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	umask $save_mktempdir_umask
168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # If we're not in dry-run mode, bomb out on failure
171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -d "$my_tmpdir" || {
172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2
173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      }
175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "X$my_tmpdir" | $Xsed
178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# func_win32_libid arg
182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# return the library type of file 'arg'
183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Need a lot of goo to handle *both* DLLs and import libs
185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Has to be a shell function in order to 'eat' the argument
186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# that is supplied when $file_magic_command is called.
187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfunc_win32_libid ()
188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  win32_libid_type="unknown"
190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  win32_fileres=`file -L $1 2>/dev/null`
191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  case $win32_fileres in
192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *ar\ archive\ import\ library*) # definitely import
193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    win32_libid_type="x86 archive import"
194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *ar\ archive*) # could be an import, or static
196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      win32_nmres=`eval $NM -f posix -A $1 | \
199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'`
200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $win32_nmres in
201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      import*)  win32_libid_type="x86 archive import";;
202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)        win32_libid_type="x86 archive static";;
203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *DLL*)
207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    win32_libid_type="x86 DLL"
208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *executable*) # but shell scripts are "executable" too...
210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $win32_fileres in
211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *MS\ Windows\ PE\ Intel*)
212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      win32_libid_type="x86 DLL"
213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  esac
217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo $win32_libid_type
218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# func_infer_tag arg
222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Infer tagged configuration to use if any are available and
223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# if one wasn't chosen via the "--tag" command line option.
224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Only attempt this if the compiler in the base compile
225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# command doesn't match the default compiler.
226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# arg is usually of the form 'gcc ...'
227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfunc_infer_tag ()
228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$available_tags" && test -z "$tagname"; then
230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      CC_quoted=
231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for arg in $CC; do
232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="\"$arg\""
235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	CC_quoted="$CC_quoted $arg"
238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $@ in
240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Blanks in the command may have been stripped by the calling shell,
241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # but not from the CC environment variable when configure was run.
242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Blanks at the start of $base_compile will cause this to fail
244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # if we don't check for them as well.
245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for z in $available_tags; do
247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Evaluate the configuration.
249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    CC_quoted=
251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for arg in $CC; do
252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Double-quote args containing other shell metacharacters.
253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $arg in
254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      arg="\"$arg\""
256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    CC_quoted="$CC_quoted $arg"
259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$@ " in
261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # The compiler in the base compile command matches
263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # the one in the tagged configuration.
264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Assume this is the tagged configuration we want.
265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      tagname=$z
266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      break
267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If $tagname still isn't set, then no tagged configuration
272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# was found and let the user know that the "--tag" command
273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# line option must be used.
274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$tagname"; then
275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: unable to infer tagged configuration"
276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: specify a tag with \`--tag'" 1>&2
277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#        else
279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#          $echo "$modename: using $tagname tagged configuration"
280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# func_extract_an_archive dir oldlib
288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfunc_extract_an_archive ()
289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    f_ex_an_ar_dir="$1"; shift
291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    f_ex_an_ar_oldlib="$1"
292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project     :
297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# func_extract_archives gentop oldlib ...
304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfunc_extract_archives ()
305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_gentop="$1"; shift
307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_oldlibs=${1+"$@"}
308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_oldobjs=""
309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_xlib=""
310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_xabs=""
311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_xdir=""
312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_status=""
313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $show "${rm}r $my_gentop"
315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run ${rm}r "$my_gentop"
316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $show "$mkdir $my_gentop"
317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run $mkdir "$my_gentop"
318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    my_status=$?
319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $my_status
321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for my_xlib in $my_oldlibs; do
324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Extract the objects.
325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $my_xlib in
326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) my_xabs=`pwd`"/$my_xlib" ;;
328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      my_xdir="$my_gentop/$my_xlib"
331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "${rm}r $my_xdir"
333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run ${rm}r "$my_xdir"
334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$mkdir $my_xdir"
335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $mkdir "$my_xdir"
336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit_status=$?
337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then
338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $exit_status
339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $host in
341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *-darwin*)
342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "Extracting $my_xabs"
343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Do not bother doing anything if just a dry run
344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$run"; then
345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin_orig_dir=`pwd`
346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cd $my_xdir || exit $?
347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin_archive=$my_xabs
348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin_curdir=`pwd`
349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$darwin_arches"; then 
352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    darwin_arch=
354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$darwin_base_archive has multiple architectures $darwin_arches"
355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for darwin_arch in  $darwin_arches ; do
356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cd "$darwin_curdir"
361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done # $darwin_arches
363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ## Okay now we have a bunch of thin objects, gotta fatten them up :)
364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    darwin_file=
366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    darwin_files=
367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for darwin_file in $darwin_filelist; do
368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      lipo -create -output "$darwin_file" $darwin_files
370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done # $darwin_filelist
371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ${rm}r unfat-$$
372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cd "$darwin_orig_dir"
373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cd "$darwin_orig_dir"
375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project 	    func_extract_an_archive "$my_xdir" "$my_xabs"
376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi # $darwin_arches
377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $run
378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        func_extract_an_archive "$my_xdir" "$my_xabs"
381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        ;;
382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    func_extract_archives_result="$my_oldobjs"
386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# End of Shell function definitions
388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#####################################
389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Darwin sucks
391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecteval std_shrext=\"$shrext_cmds\"
392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdisable_libs=no
394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Parse our command line options once, thoroughly.
396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectwhile test "$#" -gt 0
397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdo
398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  arg="$1"
399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  shift
400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  case $arg in
402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *) optarg= ;;
404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  esac
405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # If the previous option needs an argument, assign it.
407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test -n "$prev"; then
408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $prev in
409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    execute_dlfiles)
410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      execute_dlfiles="$execute_dlfiles $arg"
411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    tag)
413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      tagname="$arg"
414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      preserve_args="${preserve_args}=$arg"
415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Check whether tagname contains only valid characters
417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $tagname in
418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[!-_A-Za-z0-9,/]*)
419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$progname: invalid tag name: $tagname" 1>&2
420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $tagname in
425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      CC)
426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Don't test for the "default" C tag, as we know, it's there, but
427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# not specially marked.
428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  taglist="$taglist $tagname"
432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Evaluate the configuration.
433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      eval "$prev=\$arg"
442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=
446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prevopt=
447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    continue
448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi
449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Have we seen a non-optional argument yet?
451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  case $arg in
452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --help)
453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    show_help=yes
454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --version)
457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo
459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "Copyright (C) 2005  Free Software Foundation, Inc."
460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "This is free software; see the source for copying conditions.  There is NO"
461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $?
463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --config)
466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Now print the configurations for the tags.
468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for tagname in $taglist; do
469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $?
472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --debug)
475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$progname: enabling shell trace mode"
476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    set -x
477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    preserve_args="$preserve_args $arg"
478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --dry-run | -n)
481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    run=:
482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --features)
485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "host: $host"
486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$build_libtool_libs" = yes; then
487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "enable shared libraries"
488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "disable shared libraries"
490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$build_old_libs" = yes; then
492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "enable static libraries"
493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "disable static libraries"
495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $?
497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --finish) mode="finish" ;;
500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --mode) prevopt="--mode" prev=mode ;;
502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --mode=*) mode="$optarg" ;;
503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --preserve-dup-deps) duplicate_deps="yes" ;;
505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --quiet | --silent)
507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    show=:
508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    preserve_args="$preserve_args $arg"
509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --tag)
512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prevopt="--tag"
513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=tag
514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    preserve_args="$preserve_args --tag"
515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  --tag=*)
517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    set tag "$optarg" ${1+"$@"}
518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    shift
519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=tag
520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    preserve_args="$preserve_args --tag"
521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -dlopen)
524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prevopt="-dlopen"
525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=execute_dlfiles
526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -*)
529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$modename: unrecognized option \`$arg'" 1>&2
530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$help" 1>&2
531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_FAILURE
532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  *)
535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    nonopt="$arg"
536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    break
537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  esac
539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdone
540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test -n "$prevopt"; then
542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "$help" 1>&2
544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_FAILURE
545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcase $disable_libs in
548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectno) 
549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectshared)
551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  build_libtool_libs=no
552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  build_old_libs=yes
553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectstatic)
555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectesac
558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# If this variable is set in any of the actions, the command in it
560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# will be execed at the end.  This prevents here-documents from being
561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# left over by shells.
562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectexec_cmd=
563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test -z "$show_help"; then
565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Infer the operation mode.
567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test -z "$mode"; then
568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $nonopt in
571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      mode=link
573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for arg
574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      do
575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-c)
577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   mode=compile
578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   break
579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   ;;
580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *db | *dbx | *strace | *truss)
584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      mode=execute
585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *install*|cp|mv)
587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      mode=install
588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *rm)
590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      mode=uninstall
591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # If we have no mode, but dlfiles were specified, then do execute mode.
594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -n "$execute_dlfiles" && mode=execute
595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Just use the default operation mode.
597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$mode"; then
598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$nonopt"; then
599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi
607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Only execute mode is allowed to have -dlopen flags.
609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test -n "$execute_dlfiles" && test "$mode" != execute; then
610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$help" 1>&2
612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_FAILURE
613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi
614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Change the help message to a mode-specific one.
616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  generic_help="$help"
617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  help="Try \`$modename --help --mode=$mode' for more information."
618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # These modes are in order of execution frequency so that they run quickly.
620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  case $mode in
621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool compile mode
622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  compile)
623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: compile"
624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Get the compilation command and the source file.
625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    base_compile=
626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    suppress_opt=yes
628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    suppress_output=
629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    arg_mode=normal
630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libobj=
631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    later=
632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for arg
634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    do
635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg_mode in
636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg  )
637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# do not "continue".  Instead, add this to base_compile
638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	lastarg="$arg"
639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg_mode=normal
640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      target )
643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libobj="$arg"
644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg_mode=normal
645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      normal )
649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Accept any command-line options.
650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-o)
652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$libobj" ; then
653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg_mode=target
657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-static | -prefer-pic | -prefer-non-pic)
661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  later="$later $arg"
662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-no-suppress)
666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  suppress_opt=no
667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-Xcompiler)
671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue      #  The current "srcfile" will either be retained or
673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;            #  replaced later.  I would guess that would be a bug.
674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-Wc,*)
676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lastarg=
678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_ifs="$IFS"; IFS=','
679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project 	  for arg in $args; do
680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    IFS="$save_ifs"
681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Double-quote args containing other shell metacharacters.
683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Many Bourne shells cannot handle close brackets correctly
684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # in scan sets, so we specify it separately.
685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $arg in
686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      arg="\"$arg\""
688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    lastarg="$lastarg $arg"
691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add the arguments to base_compile.
696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  base_compile="$base_compile $lastarg"
697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	* )
701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Accept the current argument as the source file.
702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # The previous "srcfile" becomes the current argument.
703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  #
704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lastarg="$srcfile"
705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  srcfile="$arg"
706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac  #  case $arg
708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac    #  case $arg_mode
710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Aesthetically quote the previous argument.
712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $lastarg in
715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Double-quote args containing other shell metacharacters.
716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Many Bourne shells cannot handle close brackets correctly
717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # in scan sets, and some SunOS ksh mistreat backslash-escaping
718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # in scan sets (worked around with variable expansion),
719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # and furthermore cannot handle '|' '&' '(' ')' in scan sets 
720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # at all, so we specify them separately.
721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	lastarg="\"$lastarg\""
723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      base_compile="$base_compile $lastarg"
727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done # for arg
728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $arg_mode in
730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    arg)
731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify an argument for -Xcompile"
732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    target)
735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify a target with \`-o'" 1>&2
736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Get the name of the library object.
740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Recognize several different file suffixes.
745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # If the user specifies -o file.o, it is replaced with file.lo
746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    xform='[cCFSifmso]'
747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $libobj in
748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.ada) xform=ada ;;
749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.adb) xform=adb ;;
750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.ads) xform=ads ;;
751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.asm) xform=asm ;;
752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.c++) xform=c++ ;;
753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.cc) xform=cc ;;
754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.ii) xform=ii ;;
755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.class) xform=class ;;
756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.cpp) xform=cpp ;;
757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.cxx) xform=cxx ;;
758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.f90) xform=f90 ;;
759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.for) xform=for ;;
760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.java) xform=java ;;
761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $libobj in
766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    func_infer_tag $base_compile
774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for arg in $later; do
776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -static)
778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	build_old_libs=yes
779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -prefer-pic)
783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	pic_mode=yes
784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -prefer-non-pic)
788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	pic_mode=no
789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $qlibobj in
796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	qlibobj="\"$qlibobj\"" ;;
798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    test "X$libobj" != "X$qlibobj" \
800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	&& $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' 	&()|`$[]' \
801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	&& $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "X$xdir" = "X$obj"; then
805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      xdir=
806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      xdir=$xdir/
808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lobj=${xdir}$objdir/$objname
810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$base_compile"; then
812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify a compilation command" 1>&2
813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Delete any leftover library objects.
818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$build_old_libs" = yes; then
819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      removelist="$obj $lobj $libobj ${libobj}T"
820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      removelist="$lobj $libobj ${libobj}T"
822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run $rm $removelist
825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # On Cygwin there's no "real" PIC flag so we must build both object types
828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $host_os in
829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    cygwin* | mingw* | pw32* | os2*)
830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      pic_mode=default
831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # non-PIC code in shared libraries is not supported
835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      pic_mode=default
836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Calculate the filename of the output object if compiler does
839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # not support -o with -c
840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$compiler_c_o" = no; then
841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      lockfile="$output_obj.lock"
843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      removelist="$removelist $output_obj $lockfile"
844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      output_obj=
847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      need_locks=no
848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      lockfile=
849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Lock this critical section if it is needed
852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # We use this script file to make the link, it avoids creating a new file
853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$need_locks" = yes; then
854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      until $run ln "$progpath" "$lockfile" 2>/dev/null; do
855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "Waiting for $lockfile to be removed"
856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	sleep 2
857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    elif test "$need_locks" = warn; then
859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -f "$lockfile"; then
860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "\
861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project*** ERROR, $lockfile exists and contains:
862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project`cat $lockfile 2>/dev/null`
863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis indicates that another process is trying to use the same
865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecttemporary object file, and libtool could not work around it because
866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcompiler."
870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $rm $removelist
872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$srcfile" > "$lockfile"
875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$fix_srcfile_path"; then
878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      eval srcfile=\"$fix_srcfile_path\"
879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $qsrcfile in
882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      qsrcfile="\"$qsrcfile\"" ;;
884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run $rm "$libobj" "${libobj}T"
887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Create a libtool object file (analogous to a ".la" file),
889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # but don't create it if we're doing a dry run.
890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    test -z "$run" && cat > ${libobj}T <<EOF
891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# $libobj - a libtool object file
892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Please DO NOT delete this file!
895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# It is necessary for linking the library.
896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Name of the PIC object.
898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Only build a PIC object if we are building libtool libraries.
901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$build_libtool_libs" = yes; then
902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Without this assignment, base_compile gets emptied.
903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fbsd_hideous_sh_bug=$base_compile
904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$pic_mode" != no; then
906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$base_compile $qsrcfile $pic_flag"
907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Don't build PIC code
909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$base_compile $qsrcfile"
910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test ! -d "${xdir}$objdir"; then
913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$mkdir ${xdir}$objdir"
914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $mkdir ${xdir}$objdir
915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit_status=$?
916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then
917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $exit_status
918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$output_obj"; then
922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Place PIC objects in $objdir
923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$command -o $lobj"
924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm "$lobj" "$output_obj"
927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$command"
929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if $run eval "$command"; then :
930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test -n "$output_obj" && $run $rm $removelist
932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$need_locks" = warn &&
936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "\
938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project*** ERROR, $lockfile contains:
939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project`cat $lockfile 2>/dev/null`
940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectbut it should contain:
942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project$srcfile
943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis indicates that another process is trying to use the same
945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecttemporary object file, and libtool could not work around it because
946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcompiler."
950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $rm $removelist
952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Just move the object if needed, then go on to compile the next one
956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$mv $output_obj $lobj"
958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if $run $mv $output_obj $lobj; then :
959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  error=$?
961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run $rm $removelist
962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $error
963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Append the name of the PIC object to the libtool object file.
967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -z "$run" && cat >> ${libobj}T <<EOF
968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectpic_object='$objdir/$objname'
969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Allow error messages only from the first compilation.
973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$suppress_opt" = yes; then
974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        suppress_output=' >/dev/null 2>&1'
975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # No PIC object so indicate it doesn't exist in the libtool
978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # object file.
979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -z "$run" && cat >> ${libobj}T <<EOF
980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectpic_object=none
981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Only build a position-dependent object if we build old libraries.
986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$build_old_libs" = yes; then
987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$pic_mode" != yes; then
988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Don't build PIC code
989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$base_compile $qsrcfile"
990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$base_compile $qsrcfile $pic_flag"
992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$compiler_c_o" = yes; then
994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	command="$command -o $obj"
995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Suppress compiler output if we already did a PIC compilation.
998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      command="$command$suppress_output"
999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm "$obj" "$output_obj"
1000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$command"
1001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if $run eval "$command"; then :
1002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
1003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $rm $removelist
1004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
1005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
1006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$need_locks" = warn &&
1008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
1009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "\
1010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project*** ERROR, $lockfile contains:
1011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project`cat $lockfile 2>/dev/null`
1012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectbut it should contain:
1014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project$srcfile
1015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis indicates that another process is trying to use the same
1017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecttemporary object file, and libtool could not work around it because
1018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
1019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
1020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
1021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcompiler."
1022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $rm $removelist
1024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
1025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
1026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Just move the object if needed
1028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
1029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$mv $output_obj $obj"
1030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if $run $mv $output_obj $obj; then :
1031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
1032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  error=$?
1033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run $rm $removelist
1034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $error
1035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
1037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Append the name of the non-PIC object the libtool object file.
1039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Only append if the libtool object file exists.
1040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -z "$run" && cat >> ${libobj}T <<EOF
1041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Name of the non-PIC object.
1042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectnon_pic_object='$objname'
1043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
1045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
1046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Append the name of the non-PIC object the libtool object file.
1047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Only append if the libtool object file exists.
1048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -z "$run" && cat >> ${libobj}T <<EOF
1049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Name of the non-PIC object.
1050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectnon_pic_object=none
1051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
1053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $run $mv "${libobj}T" "${libobj}"
1056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Unlock the critical section if it was locked
1058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$need_locks" != no; then
1059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm "$lockfile"
1060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_SUCCESS
1063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
1064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool link mode
1066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  link | relink)
1067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: link"
1068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $host in
1069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # It is impossible to link a dll without this setting, and
1071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # we shouldn't force the makefile maintainer to figure out
1072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # which system we are compiling for in order to pass an extra
1073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # flag for every libtool invocation.
1074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # allow_undefined=no
1075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # FIXME: Unfortunately, there are problems with the above when trying
1077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # to make a dll which has undefined symbols, in which case not
1078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # even a static library is built.  For now, we need to specify
1079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -no-undefined on the libtool link line when we can be certain
1080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # that all symbols are satisfied, otherwise we get a static library.
1081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      allow_undefined=yes
1082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
1083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
1084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      allow_undefined=yes
1085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
1086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
1087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libtool_args="$nonopt"
1088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    base_compile="$nonopt $@"
1089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    compile_command="$nonopt"
1090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    finalize_command="$nonopt"
1091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    compile_rpath=
1093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    finalize_rpath=
1094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    compile_shlibpath=
1095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    finalize_shlibpath=
1096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    convenience=
1097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    old_convenience=
1098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    deplibs=
1099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    old_deplibs=
1100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    compiler_flags=
1101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    linker_flags=
1102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dllsearchpath=
1103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lib_search_path=`pwd`
1104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    inst_prefix_dir=
1105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    avoid_version=no
1107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dlfiles=
1108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dlprefiles=
1109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dlself=no
1110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    export_dynamic=no
1111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    export_symbols=
1112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    export_symbols_regex=
1113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    generated=
1114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libobjs=
1115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ltlibs=
1116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    module=no
1117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    no_install=no
1118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    objs=
1119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    non_pic_objects=
1120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    notinst_path= # paths that contain not-installed libtool libraries
1121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    precious_files_regex=
1122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prefer_static_libs=no
1123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    preload=no
1124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=
1125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prevarg=
1126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    release=
1127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    rpath=
1128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    xrpath=
1129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    perm_rpath=
1130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    temp_rpath=
1131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    thread_safe=no
1132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    vinfo=
1133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    vinfo_number=no
1134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    func_infer_tag $base_compile
1136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # We need to know -static, to get the right output filenames.
1138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for arg
1139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    do
1140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
1141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -all-static | -static)
1142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$arg" = "X-all-static"; then
1143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
1144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
1145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$link_static_flag"; then
1147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlopen_self=$dlopen_self_static
1148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prefer_static_libs=yes
1150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
1151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
1152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlopen_self=$dlopen_self_static
1153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prefer_static_libs=built
1155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	build_libtool_libs=no
1157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	build_old_libs=yes
1158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	break
1159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
1161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
1162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # See if our shared archives depend on static archives.
1164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
1165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Go through the arguments, transforming them on the way.
1167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    while test "$#" -gt 0; do
1168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg="$1"
1169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      shift
1170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
1171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
1173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *) qarg=$arg ;;
1175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
1176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      libtool_args="$libtool_args $qarg"
1177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # If the previous option needs an argument, assign it.
1179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$prev"; then
1180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $prev in
1181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	output)
1182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command @OUTPUT@"
1183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command @OUTPUT@"
1184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $prev in
1188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlfiles|dlprefiles)
1189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$preload" = no; then
1190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Add the symbol object into the linking commands.
1191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compile_command="$compile_command @SYMFILE@"
1192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    finalize_command="$finalize_command @SYMFILE@"
1193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    preload=yes
1194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $arg in
1196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.la | *.lo) ;;  # We handle these cases below.
1197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  force)
1198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$dlself" = no; then
1199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlself=needless
1200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      export_dynamic=yes
1201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    prev=
1203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
1204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  self)
1206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$prev" = dlprefiles; then
1207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlself=yes
1208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
1209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlself=yes
1210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
1211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlself=needless
1212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      export_dynamic=yes
1213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    prev=
1215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
1216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
1218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$prev" = dlfiles; then
1219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlfiles="$dlfiles $arg"
1220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
1221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlprefiles="$dlprefiles $arg"
1222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    prev=
1224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
1225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	expsyms)
1229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  export_symbols="$arg"
1230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test ! -f "$arg"; then
1231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: symbol file \`$arg' does not exist"
1232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
1233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	expsyms_regex)
1238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  export_symbols_regex="$arg"
1239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	inst_prefix)
1243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  inst_prefix_dir="$arg"
1244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	precious_regex)
1248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  precious_files_regex="$arg"
1249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	release)
1253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  release="-$arg"
1254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	objectlist)
1258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -f "$arg"; then
1259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    save_arg=$arg
1260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    moreargs=
1261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for fil in `cat $save_arg`
1262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    do
1263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#	      moreargs="$moreargs $fil"
1264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      arg=$fil
1265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # A libtool-controlled object.
1266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Check to see that this really is a libtool object.
1268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		pic_object=
1270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		non_pic_object=
1271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Read the .lo file
1273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# If there is no directory component, then add one.
1274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $arg in
1275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*/* | *\\*) . $arg ;;
1276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) . ./$arg ;;
1277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
1278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$pic_object" || \
1280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   test -z "$non_pic_object" ||
1281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   test "$pic_object" = none && \
1282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   test "$non_pic_object" = none; then
1283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  exit $EXIT_FAILURE
1285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
1286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Extract subdirectory from the argument.
1288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "X$xdir" = "X$arg"; then
1290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  xdir=
1291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
1292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  xdir="$xdir/"
1293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
1294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$pic_object" != none; then
1296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Prepend the subdirectory the object is found in.
1297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  pic_object="$xdir$pic_object"
1298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "$prev" = dlfiles; then
1300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      dlfiles="$dlfiles $pic_object"
1302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      prev=
1303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      continue
1304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    else
1305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # If libtool objects are unsupported, then we need to preload.
1306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      prev=dlprefiles
1307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
1308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
1309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # CHECK ME:  I think I busted this.  -Ossama
1311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "$prev" = dlprefiles; then
1312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    # Preload the old-style object.
1313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    dlprefiles="$dlprefiles $pic_object"
1314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    prev=
1315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
1316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # A PIC object.
1318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  libobjs="$libobjs $pic_object"
1319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  arg="$pic_object"
1320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
1321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Non-PIC object.
1323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$non_pic_object" != none; then
1324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Prepend the subdirectory the object is found in.
1325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_object="$xdir$non_pic_object"
1326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # A standard non-PIC object
1328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_objects="$non_pic_objects $non_pic_object"
1329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test -z "$pic_object" || test "$pic_object" = none ; then
1330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    arg="$non_pic_object"
1331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
1332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
1333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # If the PIC object exists, use it instead.
1334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # $xdir was prepended to $pic_object above.
1335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_object="$pic_object"
1336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_objects="$non_pic_objects $non_pic_object"
1337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
1338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
1339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Only an error if not doing a dry-run.
1340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$run"; then
1341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  exit $EXIT_FAILURE
1343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
1344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Dry-run case.
1345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Extract subdirectory from the argument.
1347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "X$xdir" = "X$arg"; then
1349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    xdir=
1350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  else
1351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    xdir="$xdir/"
1352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
1353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  libobjs="$libobjs $pic_object"
1357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  non_pic_objects="$non_pic_objects $non_pic_object"
1358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
1359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
1360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
1361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
1362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: link input file \`$save_arg' does not exist"
1363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
1364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg=$save_arg
1366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	rpath | xrpath)
1370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # We need an absolute path.
1371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $arg in
1372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  [\\/]* | [A-Za-z]:[\\/]*) ;;
1373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
1374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: only absolute run-paths are allowed" 1>&2
1375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
1376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$prev" = rpath; then
1379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$rpath " in
1380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $arg "*) ;;
1381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) rpath="$rpath $arg" ;;
1382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
1383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
1384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$xrpath " in
1385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $arg "*) ;;
1386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) xrpath="$xrpath $arg" ;;
1387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
1388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	xcompiler)
1393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compiler_flags="$compiler_flags $qarg"
1394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $qarg"
1396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $qarg"
1397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	xlinker)
1400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linker_flags="$linker_flags $qarg"
1401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compiler_flags="$compiler_flags $wl$qarg"
1402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $wl$qarg"
1404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $wl$qarg"
1405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	xcclinker)
1408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linker_flags="$linker_flags $qarg"
1409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compiler_flags="$compiler_flags $qarg"
1410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $qarg"
1412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $qarg"
1413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	shrext)
1416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  	  shrext_cmds="$arg"
1417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	darwin_framework|darwin_framework_skip)
1421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg"
1422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $arg"
1423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $arg"
1424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
1428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval "$prev=\"\$arg\""
1429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
1431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi # test -n "$prev"
1434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      prevarg="$arg"
1436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
1438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -all-static)
1439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$link_static_flag"; then
1440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $link_static_flag"
1441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $link_static_flag"
1442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -allow-undefined)
1447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# FIXME: remove this flag sometime in the future.
1448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
1449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -avoid-version)
1453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	avoid_version=yes
1454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -dlopen)
1458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=dlfiles
1459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -dlpreopen)
1463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=dlprefiles
1464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -export-dynamic)
1468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	export_dynamic=yes
1469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -export-symbols | -export-symbols-regex)
1473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
1474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: more than one -exported-symbols argument is not allowed"
1475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
1476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$arg" = "X-export-symbols"; then
1478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=expsyms
1479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
1480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=expsyms_regex
1481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -framework|-arch|-isysroot)
1486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $CC " in
1487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" ${arg} ${1} "* | *" ${arg}	${1} "*) 
1488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		prev=darwin_framework_skip ;;
1489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) compiler_flags="$compiler_flags $arg"
1490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     prev=darwin_framework ;;
1491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command="$compile_command $arg"
1493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command="$finalize_command $arg"
1494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -inst-prefix-dir)
1498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=inst_prefix
1499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
1503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # so, if we see these flags be careful not to treat them like -L
1504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -L[A-Z][A-Z]*:*)
1505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $with_gcc/$host in
1506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	no/*-*-irix* | /*-*-irix*)
1507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_command="$compile_command $arg"
1508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_command="$finalize_command $arg"
1509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -L*)
1515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
1516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We need an absolute path.
1517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $dir in
1518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) ;;
1519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
1520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  absdir=`cd "$dir" && pwd`
1521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$absdir"; then
1522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
1523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    absdir="$dir"
1524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    notinst_path="$notinst_path $dir"
1525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dir="$absdir"
1527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case "$deplibs " in
1530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" -L$dir "*) ;;
1531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
1532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$deplibs -L$dir"
1533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lib_search_path="$lib_search_path $dir"
1534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
1537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'`
1539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case :$dllsearchpath: in
1540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *":$dir:"*) ;;
1541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$dir";;
1542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case :$dllsearchpath: in
1544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *":$testbindir:"*) ;;
1545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$testbindir";;
1546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -l*)
1553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
1554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $host in
1555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
1556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # These systems don't actually have a C or math library (as such)
1557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
1558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-os2*)
1560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # These systems don't actually have a C library (as such)
1561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
1562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Do not include libc due to us having libc/libc_r.
1565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
1566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-rhapsody* | *-*-darwin1.[012])
1568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Rhapsody C and math libraries are in the System framework
1569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$deplibs -framework System"
1570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
1571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-sco3.2v5* | *-*-sco5v6*)
1573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Causes problems with __ctype
1574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
1575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
1577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Compiler inserts libc in the correct place for threads to work
1578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
1579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test "X$arg" = "X-lc_r"; then
1582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 case $host in
1583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
1584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   # Do not include libc_r directly, use -pthread flag.
1585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   continue
1586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   ;;
1587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 esac
1588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs="$deplibs $arg"
1590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Tru64 UNIX uses -model [arg] to determine the layout of C++
1594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # classes, name mangling, and exception handling.
1595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -model)
1596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command="$compile_command $arg"
1597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compiler_flags="$compiler_flags $arg"
1598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command="$finalize_command $arg"
1599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=xcompiler
1600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project     -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
1604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compiler_flags="$compiler_flags $arg"
1605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command="$compile_command $arg"
1606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command="$finalize_command $arg"
1607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -module)
1611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	module=yes
1612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
1616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -r[0-9][0-9]* specifies the processor on the SGI compiler
1617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
1618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # +DA*, +DD* enable 64-bit mode on the HP compiler
1619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -q* pass through compiler args for the IBM compiler
1620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -m* pass through architecture-specific compiler args for GCC
1621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -m*, -t[45]*, -txscale* pass through architecture-specific
1622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # compiler args for GCC
1623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -pg pass through profiling flag for GCC
1624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # @file GCC response files
1625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \
1626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -t[45]*|-txscale*|@*)
1627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Unknown arguments in both finalize_command and compile_command need
1629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# to be aesthetically quoted because they are evaled later.
1630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
1632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="\"$arg\""
1634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        compile_command="$compile_command $arg"
1637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        finalize_command="$finalize_command $arg"
1638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        compiler_flags="$compiler_flags $arg"
1639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        continue
1640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        ;;
1641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -shrext)
1643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=shrext
1644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -no-fast-install)
1648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fast_install=no
1649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -no-install)
1653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
1654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
1655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # The PATH hackery in wrapper scripts is required on Windows
1656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # in order for the loader to find any dlls it needs.
1657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
1658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
1659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fast_install=no
1660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) no_install=yes ;;
1662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -no-undefined)
1667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	allow_undefined=no
1668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -objectlist)
1672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=objectlist
1673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -o) prev=output ;;
1677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -precious-files-regex)
1679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=precious_regex
1680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -release)
1684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=release
1685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -rpath)
1689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=rpath
1690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -R)
1694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=xrpath
1695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -R*)
1699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
1700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We need an absolute path.
1701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $dir in
1702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) ;;
1703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
1704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: only absolute run-paths are allowed" 1>&2
1705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
1706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case "$xrpath " in
1709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" $dir "*) ;;
1710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) xrpath="$xrpath $dir" ;;
1711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -static)
1716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# The effects of -static are defined in a previous loop.
1717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We used to do the same as -all-static on platforms that
1718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# didn't have a PIC flag, but the assumption that the effects
1719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# would be equivalent was wrong.  It would break on at least
1720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Digital Unix and AIX.
1721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -thread-safe)
1725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	thread_safe=yes
1726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -version-info)
1730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=vinfo
1731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -version-number)
1734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=vinfo
1735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	vinfo_number=yes
1736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -Wc,*)
1740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
1741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=
1742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_ifs="$IFS"; IFS=','
1743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for flag in $args; do
1744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
1745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $flag in
1746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    flag="\"$flag\""
1748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="$arg $wl$flag"
1751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compiler_flags="$compiler_flags $flag"
1752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
1753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
1754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -Wl,*)
1758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
1759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=
1760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_ifs="$IFS"; IFS=','
1761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for flag in $args; do
1762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
1763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $flag in
1764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    flag="\"$flag\""
1766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
1767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="$arg $wl$flag"
1769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compiler_flags="$compiler_flags $wl$flag"
1770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linker_flags="$linker_flags $flag"
1771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
1772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
1773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
1774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -Xcompiler)
1777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=xcompiler
1778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -Xlinker)
1782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=xlinker
1783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -XCClinker)
1787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	prev=xcclinker
1788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Some other compiler flag.
1792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -* | +*)
1793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Unknown arguments in both finalize_command and compile_command need
1794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# to be aesthetically quoted because they are evaled later.
1795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
1797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="\"$arg\""
1799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.$objext)
1804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# A standard object.
1805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	objs="$objs $arg"
1806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.lo)
1809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# A libtool-controlled object.
1810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check to see that this really is a libtool object.
1812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
1813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  pic_object=
1814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  non_pic_object=
1815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Read the .lo file
1817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # If there is no directory component, then add one.
1818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $arg in
1819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  */* | *\\*) . $arg ;;
1820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) . ./$arg ;;
1821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
1822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$pic_object" || \
1824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test -z "$non_pic_object" ||
1825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$pic_object" = none && \
1826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$non_pic_object" = none; then
1827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
1828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
1829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Extract subdirectory from the argument.
1832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "X$xdir" = "X$arg"; then
1834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    xdir=
1835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project 	  else
1836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    xdir="$xdir/"
1837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$pic_object" != none; then
1840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Prepend the subdirectory the object is found in.
1841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    pic_object="$xdir$pic_object"
1842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$prev" = dlfiles; then
1844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
1845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		dlfiles="$dlfiles $pic_object"
1846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		prev=
1847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		continue
1848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
1849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# If libtool objects are unsupported, then we need to preload.
1850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		prev=dlprefiles
1851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
1852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # CHECK ME:  I think I busted this.  -Ossama
1855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$prev" = dlprefiles; then
1856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Preload the old-style object.
1857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      dlprefiles="$dlprefiles $pic_object"
1858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      prev=
1859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # A PIC object.
1862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libobjs="$libobjs $pic_object"
1863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    arg="$pic_object"
1864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Non-PIC object.
1867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$non_pic_object" != none; then
1868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Prepend the subdirectory the object is found in.
1869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_object="$xdir$non_pic_object"
1870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # A standard non-PIC object
1872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_objects="$non_pic_objects $non_pic_object"
1873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$pic_object" || test "$pic_object" = none ; then
1874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      arg="$non_pic_object"
1875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
1877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If the PIC object exists, use it instead.
1878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # $xdir was prepended to $pic_object above.
1879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_object="$pic_object"
1880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_objects="$non_pic_objects $non_pic_object"
1881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
1883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Only an error if not doing a dry-run.
1884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$run"; then
1885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
1886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
1887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
1888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Dry-run case.
1889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Extract subdirectory from the argument.
1891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
1892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$xdir" = "X$arg"; then
1893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      xdir=
1894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
1895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      xdir="$xdir/"
1896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
1897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
1899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
1900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libobjs="$libobjs $pic_object"
1901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    non_pic_objects="$non_pic_objects $non_pic_object"
1902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
1903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.$libext)
1907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# An archive.
1908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs="$deplibs $arg"
1909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	old_deplibs="$old_deplibs $arg"
1910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.la)
1914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# A libtool-controlled library.
1915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$prev" = dlfiles; then
1917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This library was specified with -dlopen.
1918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dlfiles="$dlfiles $arg"
1919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test "$prev" = dlprefiles; then
1921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # The library was specified with -dlpreopen.
1922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dlprefiles="$dlprefiles $arg"
1923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
1924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
1925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$deplibs $arg"
1926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
1927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
1928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Some other compiler argument.
1931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
1932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Unknown arguments in both finalize_command and compile_command need
1933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# to be aesthetically quoted because they are evaled later.
1934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
1935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $arg in
1936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
1937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  arg="\"$arg\""
1938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
1939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
1940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
1941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac # arg
1942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now actually substitute the argument into the commands.
1944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$arg"; then
1945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command="$compile_command $arg"
1946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command="$finalize_command $arg"
1947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
1948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done # argument parsing loop
1949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$prev"; then
1951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
1952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
1953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
1954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
1957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      eval arg=\"$export_dynamic_flag_spec\"
1958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile_command="$compile_command $arg"
1959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      finalize_command="$finalize_command $arg"
1960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    oldlibs=
1963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # calculate the name of the file, without its directory
1964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
1965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libobjs_save="$libobjs"
1966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$shlibpath_var"; then
1968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # get the directories listed in $shlibpath_var
1969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
1970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
1971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      shlib_search_path=
1972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
1974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
1975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
1977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "X$output_objdir" = "X$output"; then
1978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      output_objdir="$objdir"
1979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
1980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      output_objdir="$output_objdir/$objdir"
1981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Create the object directory.
1983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test ! -d "$output_objdir"; then
1984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$mkdir $output_objdir"
1985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $mkdir $output_objdir
1986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit_status=$?
1987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then
1988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $exit_status
1989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
1990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
1991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
1992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Determine the type of output
1993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $output in
1994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    "")
1995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify an output file" 1>&2
1996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
1997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
1998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
1999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.$libext) linkmode=oldlib ;;
2000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.lo | *.$objext) linkmode=obj ;;
2001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.la) linkmode=lib ;;
2002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *) linkmode=prog ;; # Anything else should be a program.
2003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
2004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $host in
2006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *cygwin* | *mingw* | *pw32*)
2007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # don't eliminate duplications in $postdeps and $predeps
2008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      duplicate_compiler_generated_deps=yes
2009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
2010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
2011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      duplicate_compiler_generated_deps=$duplicate_deps
2012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
2013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
2014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    specialdeplibs=
2015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libs=
2017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Find all interdependent deplibs by searching for libraries
2018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # that are linked more than once (e.g. -la -lb -la)
2019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for deplib in $deplibs; do
2020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "X$duplicate_deps" = "Xyes" ; then
2021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case "$libs " in
2022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
2024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      libs="$libs $deplib"
2026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
2027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$linkmode" = lib; then
2029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      libs="$predeps $libs $compiler_lib_search_path $postdeps"
2030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Compute libraries that are listed more than once in $predeps
2032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # $postdeps and mark them as special (i.e., whose duplicates are
2033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # not to be eliminated).
2034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      pre_post_deps=
2035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
2036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for pre_post_dep in $predeps $postdeps; do
2037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$pre_post_deps " in
2038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
2039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
2040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  pre_post_deps="$pre_post_deps $pre_post_dep"
2041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
2042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      pre_post_deps=
2044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
2045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    deplibs=
2047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    newdependency_libs=
2048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    newlib_search_path=
2049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    need_relink=no # whether we're linking any uninstalled libtool libraries
2050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    notinst_deplibs= # not-installed libtool libraries
2051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $linkmode in
2052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lib)
2053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	passes="conv link"
2054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for file in $dlfiles $dlprefiles; do
2055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $file in
2056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.la) ;;
2057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
2058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
2059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
2060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
2062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
2063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
2064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prog)
2065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_deplibs=
2066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_deplibs=
2067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	alldeplibs=no
2068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	newdlfiles=
2069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	newdlprefiles=
2070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	passes="conv scan dlopen dlpreopen link"
2071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
2072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)  passes="conv"
2073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
2074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
2075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for pass in $passes; do
2076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$linkmode,$pass" = "lib,link" ||
2077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 test "$linkmode,$pass" = "prog,scan"; then
2078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libs="$deplibs"
2079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs=
2080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$linkmode" = prog; then
2082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $pass in
2083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlopen) libs="$dlfiles" ;;
2084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlpreopen) libs="$dlprefiles" ;;
2085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
2086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
2087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$pass" = dlopen; then
2089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Collect dlpreopened libraries
2090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_deplibs="$deplibs"
2091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs=
2092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for deplib in $libs; do
2094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	lib=
2095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	found=no
2096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $deplib in
2097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
2098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode,$pass" = "prog,link"; then
2099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compile_deplibs="$deplib $compile_deplibs"
2100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    finalize_deplibs="$deplib $finalize_deplibs"
2101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compiler_flags="$compiler_flags $deplib"
2103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
2106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-l*)
2107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode" != lib && test "$linkmode" != prog; then
2108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
2109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
2112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
2113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for search_ext in .la $std_shrext .so .a; do
2114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Search the libtool library
2115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      lib="$searchdir/lib${name}${search_ext}"
2116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -f "$lib"; then
2117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$search_ext" = ".la"; then
2118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  found=yes
2119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
2120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  found=no
2121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
2122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		break 2
2123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
2125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
2126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$found" != yes; then
2127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # deplib doesn't seem to be a libtool library
2128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$linkmode,$pass" = "prog,link"; then
2129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
2130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
2131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else # deplib is a libtool library
2137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
2138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # We need to do some special things here, and not later.
2139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
2140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case " $predeps $postdeps " in
2141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $deplib "*)
2142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if (${SED} -e '2q' $lib |
2143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
2144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  library_names=
2145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  old_library=
2146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  case $lib in
2147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  */* | *\\*) . $lib ;;
2148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *) . ./$lib ;;
2149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  esac
2150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  for l in $old_library $library_names; do
2151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ll="$l"
2152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  done
2153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "X$ll" = "X$old_library" ; then # only static version available
2154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    found=no
2155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    test "X$ladir" = "X$lib" && ladir="."
2157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    lib=$ladir/$old_library
2158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if test "$linkmode,$pass" = "prog,link"; then
2159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      compile_deplibs="$deplib $compile_deplibs"
2160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      finalize_deplibs="$deplib $finalize_deplibs"
2161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    else
2162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      deplibs="$deplib $deplibs"
2163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
2164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
2165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    continue
2166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
2167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
2168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        ;;
2169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) ;;
2170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;; # -l
2174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-L*)
2175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $linkmode in
2176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lib)
2177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$deplib $deplibs"
2178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test "$pass" = conv && continue
2179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdependency_libs="$deplib $newdependency_libs"
2180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prog)
2183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$pass" = conv; then
2184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      continue
2186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$pass" = scan; then
2188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
2191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
2192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
2194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
2196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
2197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac # linkmode
2199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;; # -L
2201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-R*)
2202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$pass" = link; then
2203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
2204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Make sure the xrpath contains only unique directories.
2205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$xrpath " in
2206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $dir "*) ;;
2207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) xrpath="$xrpath $dir" ;;
2208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$deplib $deplibs"
2211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
2213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.la) lib="$deplib" ;;
2214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.$libext)
2215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$pass" = conv; then
2216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$deplib $deplibs"
2217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $linkmode in
2220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lib)
2221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    valid_a_lib=no
2222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $deplibs_check_method in
2223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      match_pattern*)
2224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		set dummy $deplibs_check_method
2225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
2226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if eval $echo \"$deplib\" 2>/dev/null \
2227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    | $SED 10q \
2228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    | $EGREP "$match_pattern_regex" > /dev/null; then
2229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  valid_a_lib=yes
2230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
2231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
2232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      pass_all)
2233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		valid_a_lib=yes
2234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
2235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            esac
2236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$valid_a_lib" != yes; then
2237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo
2238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: Trying to link with static lib archive $deplib."
2239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** I have the capability to make that library automatically link in when"
2240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** you link to this library.  But I can only do this if you have a"
2241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** shared version of the library, which you do not appear to have"
2242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** because the file extensions .$libext of this argument makes me believe"
2243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** that it is just a static archive that I should not used here."
2244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo
2246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: Linking the shared library $output against the"
2247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** static library $deplib is not portable!"
2248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prog)
2253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$pass" != link; then
2254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
2257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
2258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
2261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac # linkmode
2262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;; # *.$libext
2263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.lo | *.$objext)
2264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$pass" = conv; then
2265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$deplib $deplibs"
2266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  elif test "$linkmode" = prog; then
2267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
2268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # If there is no dlopen support or we're linking statically,
2269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # we need to preload.
2270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlprefiles="$newdlprefiles $deplib"
2271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
2272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
2273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlfiles="$newdlfiles $deplib"
2275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
2279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	%DEPLIBS%)
2280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  alldeplibs=yes
2281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
2283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac # case $deplib
2284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$found" = yes || test -f "$lib"; then :
2285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
2286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2
2287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
2288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check to see that this really is a libtool archive.
2291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
2292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
2293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
2294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
2295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
2298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test "X$ladir" = "X$lib" && ladir="."
2299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlname=
2301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlopen=
2302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlpreopen=
2303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libdir=
2304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	library_names=
2305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	old_library=
2306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If the library was installed with an old release of libtool,
2307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# it will not redefine variables installed, or shouldnotlink
2308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	installed=yes
2309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	shouldnotlink=no
2310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	avoidtemprpath=
2311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Read the .la file
2314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $lib in
2315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*/* | *\\*) . $lib ;;
2316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) . ./$lib ;;
2317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
2318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$linkmode,$pass" = "lib,link" ||
2320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   test "$linkmode,$pass" = "prog,scan" ||
2321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
2322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
2323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
2324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$pass" = conv; then
2327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Only check for convenience libraries
2328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$lib $deplibs"
2329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$libdir"; then
2330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$old_library"; then
2331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      exit $EXIT_FAILURE
2333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # It is a libtool convenience library, so add in its objects.
2335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    convenience="$convenience $ladir/$objdir/$old_library"
2336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
2337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    tmp_libs=
2338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for deplib in $dependency_libs; do
2339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              if test "X$duplicate_deps" = "Xyes" ; then
2341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        case "$tmp_libs " in
2342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        esac
2344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              fi
2345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      tmp_libs="$tmp_libs $deplib"
2346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
2347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
2348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
2349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
2350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $pass = conv
2353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Get the name of the library we link against.
2356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	linklib=
2357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for l in $old_library $library_names; do
2358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linklib="$l"
2359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
2360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$linklib"; then
2361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
2362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
2363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# This library was specified with -dlopen.
2366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$pass" = dlopen; then
2367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$libdir"; then
2368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
2369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
2370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$dlname" ||
2372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$dlopen_support" != yes ||
2373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$build_libtool_libs" = no; then
2374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If there is no dlname, no dlopen support or we're linking
2375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # statically, we need to preload.  We also need to preload any
2376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # dependent libraries so libltdl's deplib preloader doesn't
2377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # bomb out in the load deplibs phase.
2378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlprefiles="$dlprefiles $lib $dependency_libs"
2379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlfiles="$newdlfiles $lib"
2381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $pass = dlopen
2384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We need an absolute path.
2386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $ladir in
2387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
2388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
2389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  abs_ladir=`cd "$ladir" && pwd`
2390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$abs_ladir"; then
2391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
2392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
2393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    abs_ladir="$ladir"
2394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
2396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
2397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
2398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Find the relevant object directory and library name.
2400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$installed" = Xyes; then
2401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
2403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir="$ladir"
2404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    absdir="$abs_ladir"
2405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libdir="$abs_ladir"
2406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir="$libdir"
2408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    absdir="$libdir"
2409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
2411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
2412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
2413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir="$ladir"
2414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    absdir="$abs_ladir"
2415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Remove this search path later
2416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    notinst_path="$notinst_path $abs_ladir"
2417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir="$ladir/$objdir"
2419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    absdir="$abs_ladir/$objdir"
2420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Remove this search path later
2421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    notinst_path="$notinst_path $abs_ladir"
2422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $installed = yes
2424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
2425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# This library was specified with -dlpreopen.
2427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$pass" = dlpreopen; then
2428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$libdir"; then
2429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
2430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
2431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Prefer using a static library (so that no silly _DYNAMIC symbols
2433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # are required to link).
2434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$old_library"; then
2435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$old_library"
2436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Otherwise, use the dlname, so that lt_dlopen finds it.
2437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  elif test -n "$dlname"; then
2438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$dlname"
2439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$linklib"
2441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $pass = dlpreopen
2443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$libdir"; then
2445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Link the convenience library
2446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode" = lib; then
2447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$dir/$old_library $deplibs"
2448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  elif test "$linkmode,$pass" = "prog,link"; then
2449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compile_deplibs="$dir/$old_library $compile_deplibs"
2450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
2451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$lib $deplibs" # used for prog,scan pass
2453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$linkmode" = prog && test "$pass" != link; then
2459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newlib_search_path="$newlib_search_path $ladir"
2460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$lib $deplibs"
2461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linkalldeplibs=no
2463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
2464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$build_libtool_libs" = no; then
2465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    linkalldeplibs=yes
2466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tmp_libs=
2469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for deplib in $dependency_libs; do
2470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $deplib in
2471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
2472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Need to link against all dependency_libs?
2474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$linkalldeplibs" = yes; then
2475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplib $deplibs"
2476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Need to hardcode shared library paths
2478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # or/and link against static libraries
2479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdependency_libs="$deplib $newdependency_libs"
2480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$duplicate_deps" = "Xyes" ; then
2482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$tmp_libs " in
2483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    tmp_libs="$tmp_libs $deplib"
2487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done # for deplib
2488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
2489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # $linkmode = prog...
2490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$linkmode,$pass" = "prog,link"; then
2492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$library_names" &&
2493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
2494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # We need to hardcode the library path
2495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
2496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Make sure the rpath contains only unique directories.
2497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$temp_rpath " in
2498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $dir "*) ;;
2499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $absdir "*) ;;
2500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) temp_rpath="$temp_rpath $absdir" ;;
2501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Hardcode the library path.
2505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Skip directories that are in the system default run-time
2506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # search path.
2507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
2508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $absdir "*) ;;
2509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)
2510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$compile_rpath " in
2511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $absdir "*) ;;
2512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) compile_rpath="$compile_rpath $absdir"
2513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
2517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $libdir "*) ;;
2518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)
2519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$finalize_rpath " in
2520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $libdir "*) ;;
2521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) finalize_rpath="$finalize_rpath $libdir"
2522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi # $linkmode,$pass = prog,link...
2526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$alldeplibs" = yes &&
2528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     { test "$deplibs_check_method" = pass_all ||
2529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       { test "$build_libtool_libs" = yes &&
2530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 test -n "$library_names"; }; }; then
2531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # We only need to search for static libraries
2532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    continue
2533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link_static=no # Whether the deplib will be linked statically
2537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	use_static_libs=$prefer_static_libs
2538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$use_static_libs" = built && test "$installed" = yes ; then
2539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  use_static_libs=no
2540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$library_names" &&
2542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
2543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$installed" = no; then
2544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    notinst_deplibs="$notinst_deplibs $lib"
2545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    need_relink=yes
2546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This is a shared library
2548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Warn about portability, can't link against -module's on
2550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # some systems (darwin)
2551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$shouldnotlink" = yes && test "$pass" = link ; then
2552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo
2553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$linkmode" = prog; then
2554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: Linking the executable $output against the loadable module"
2555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: Linking the shared library $output against the loadable module"
2557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** $linklib is not portable!"
2559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode" = lib &&
2561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$hardcode_into_libs" = yes; then
2562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Hardcode the library path.
2563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Skip directories that are in the system default run-time
2564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # search path.
2565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
2566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $absdir "*) ;;
2567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)
2568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$compile_rpath " in
2569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $absdir "*) ;;
2570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) compile_rpath="$compile_rpath $absdir"
2571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
2575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $libdir "*) ;;
2576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)
2577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$finalize_rpath " in
2578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $libdir "*) ;;
2579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) finalize_rpath="$finalize_rpath $libdir"
2580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$old_archive_from_expsyms_cmds"; then
2586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # figure out the soname
2587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    set dummy $library_names
2588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    realname="$2"
2589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    shift; shift
2590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libname=`eval \\$echo \"$libname_spec\"`
2591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # use dlname if we got it. it's perfectly good, no?
2592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$dlname"; then
2593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      soname="$dlname"
2594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test -n "$soname_spec"; then
2595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # bleh windows
2596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $host in
2597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *cygwin* | mingw*)
2598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		major=`expr $current - $age`
2599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		versuffix="-$major"
2600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
2601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval soname=\"$soname_spec\"
2603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      soname="$realname"
2605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Make a new name for the extract_expsyms_cmds to use
2608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    soroot="$soname"
2609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
2610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
2611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If the library has no export list, then create one now
2613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -f "$output_objdir/$soname-def"; then :
2614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "extracting exported symbol list from \`$soname'"
2616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      save_ifs="$IFS"; IFS='~'
2617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$extract_expsyms_cmds
2618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      for cmd in $cmds; do
2619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		IFS="$save_ifs"
2620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval cmd=\"$cmd\"
2621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$show "$cmd"
2622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval "$cmd" || exit $?
2623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      done
2624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      IFS="$save_ifs"
2625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Create $newlib
2628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -f "$output_objdir/$newlib"; then :; else
2629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "generating import library for \`$soname'"
2630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      save_ifs="$IFS"; IFS='~'
2631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$old_archive_from_expsyms_cmds
2632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      for cmd in $cmds; do
2633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		IFS="$save_ifs"
2634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval cmd=\"$cmd\"
2635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$show "$cmd"
2636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval "$cmd" || exit $?
2637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      done
2638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      IFS="$save_ifs"
2639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # make sure the library variables are pointing to the new library
2641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dir=$output_objdir
2642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    linklib=$newlib
2643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi # test -n "$old_archive_from_expsyms_cmds"
2644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode" = prog || test "$mode" != relink; then
2646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add_shlibpath=
2647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add_dir=
2648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add=
2649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    lib_linked=yes
2650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $hardcode_action in
2651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    immediate | unsupported)
2652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$hardcode_direct" = no; then
2653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="$dir/$linklib"
2654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $host in
2655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
2656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
2657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
2658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    *-*-unixware7*) add_dir="-L$dir" ;;
2659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *-*-darwin* )
2660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    # if the lib is a module then we can not link against
2661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    # it, someone is ignoring the new warnings I added
2662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if /usr/bin/file -L $add 2> /dev/null |
2663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                      $EGREP ": [^:]* bundle" >/dev/null ; then
2664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "** Warning, lib $linklib is a module, not a shared library"
2665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      if test -z "$old_library" ; then
2666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        $echo
2667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        $echo "** And there doesn't seem to be a static archive available"
2668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        $echo "** The link will probably fail, sorry"
2669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      else
2670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        add="$dir/$old_library"
2671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      fi
2672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
2673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      elif test "$hardcode_minus_L" = no; then
2675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $host in
2676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*-*-sunos*) add_shlibpath="$dir" ;;
2677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add_dir="-L$dir"
2679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="-l$name"
2680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      elif test "$hardcode_shlibpath_var" = no; then
2681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add_shlibpath="$dir"
2682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="-l$name"
2683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
2684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		lib_linked=no
2685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink)
2688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$hardcode_direct" = yes; then
2689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="$dir/$linklib"
2690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      elif test "$hardcode_minus_L" = yes; then
2691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add_dir="-L$dir"
2692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Try looking first in the location we're being installed to.
2693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -n "$inst_prefix_dir"; then
2694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  case $libdir in
2695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    [\\/]*)
2696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
2697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      ;;
2698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  esac
2699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
2700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="-l$name"
2701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      elif test "$hardcode_shlibpath_var" = yes; then
2702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add_shlibpath="$dir"
2703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		add="-l$name"
2704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
2705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		lib_linked=no
2706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
2708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) lib_linked=no ;;
2709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$lib_linked" != yes; then
2712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "$modename: configuration error: unsupported hardcode properties"
2713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      exit $EXIT_FAILURE
2714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$add_shlibpath"; then
2717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case :$compile_shlibpath: in
2718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *":$add_shlibpath:"*) ;;
2719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
2720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$linkmode" = prog; then
2723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
2724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
2725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add" && deplibs="$add $deplibs"
2728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$hardcode_direct" != yes && \
2729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 test "$hardcode_minus_L" != yes && \
2730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 test "$hardcode_shlibpath_var" = yes; then
2731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case :$finalize_shlibpath: in
2732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*":$libdir:"*) ;;
2733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$linkmode" = prog || test "$mode" = relink; then
2740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add_shlibpath=
2741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add_dir=
2742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    add=
2743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Finalize command for both is simple: just hardcode it.
2744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$hardcode_direct" = yes; then
2745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add="$libdir/$linklib"
2746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test "$hardcode_minus_L" = yes; then
2747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add_dir="-L$libdir"
2748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add="-l$name"
2749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test "$hardcode_shlibpath_var" = yes; then
2750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case :$finalize_shlibpath: in
2751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *":$libdir:"*) ;;
2752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
2753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add="-l$name"
2755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test "$hardcode_automatic" = yes; then
2756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$inst_prefix_dir" &&
2757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
2758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        add="$inst_prefix_dir$libdir/$linklib"
2759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
2760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        add="$libdir/$linklib"
2761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # We cannot seem to hardcode it, guess we'll fake it.
2764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add_dir="-L$libdir"
2765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Try looking first in the location we're being installed to.
2766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$inst_prefix_dir"; then
2767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $libdir in
2768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  [\\/]*)
2769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
2770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ;;
2771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      add="-l$name"
2774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$linkmode" = prog; then
2777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
2778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
2779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
2780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
2781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -n "$add" && deplibs="$add $deplibs"
2782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test "$linkmode" = prog; then
2785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Here we assume that one of hardcode_direct or hardcode_minus_L
2786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # is not unsupported.  This is valid on all known static and
2787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # shared platforms.
2788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$hardcode_direct" != unsupported; then
2789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test -n "$old_library" && linklib="$old_library"
2790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compile_deplibs="$dir/$linklib $compile_deplibs"
2791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
2792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    compile_deplibs="-l$name -L$dir $compile_deplibs"
2794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
2795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test "$build_libtool_libs" = yes; then
2797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Not a shared library
2798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$deplibs_check_method" != pass_all; then
2799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # We're trying link a shared library against a static one
2800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # but the system doesn't support it.
2801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Just print a warning and add the library to dependency_libs so
2803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # that the program can be linked against the static library.
2804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo
2805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** Warning: This system can not link to static lib archive $lib."
2806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** I have the capability to make that library automatically link in when"
2807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** you link to this library.  But I can only do this if you have a"
2808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** shared version of the library, which you do not appear to have."
2809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$module" = yes; then
2810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** But as you try to build a module library, libtool will still create "
2811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** a static module, that should work as long as the dlopening application"
2812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
2813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -z "$global_symbol_pipe"; then
2814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo
2815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** However, this would only work if libtool was able to extract symbol"
2816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
2817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** not find such a program.  So, this module is probably useless."
2818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
2819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$build_old_libs" = no; then
2821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_libtool_libs=module
2822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_old_libs=yes
2823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
2824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_libtool_libs=no
2825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
2826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
2828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$dir/$old_library $deplibs"
2829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    link_static=yes
2830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # link shared/static library?
2832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$linkmode" = lib; then
2834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$dependency_libs" &&
2835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     { test "$hardcode_into_libs" != yes ||
2836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       test "$build_old_libs" = yes ||
2837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       test "$link_static" = yes; }; then
2838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Extract -R from dependency_libs
2839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    temp_deplibs=
2840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for libdir in $dependency_libs; do
2841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $libdir in
2842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
2843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   case " $xrpath " in
2844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   *" $temp_xrpath "*) ;;
2845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   *) xrpath="$xrpath $temp_xrpath";;
2846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   esac;;
2847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) temp_deplibs="$temp_deplibs $libdir";;
2848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
2850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dependency_libs="$temp_deplibs"
2851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
2852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newlib_search_path="$newlib_search_path $absdir"
2854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Link against this library
2855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
2856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # ... and its dependency_libs
2857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tmp_libs=
2858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for deplib in $dependency_libs; do
2859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdependency_libs="$deplib $newdependency_libs"
2860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$duplicate_deps" = "Xyes" ; then
2861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$tmp_libs " in
2862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
2863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
2865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    tmp_libs="$tmp_libs $deplib"
2866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
2867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$link_all_deplibs" != no; then
2869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Add the search paths of all dependency libraries
2870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for deplib in $dependency_libs; do
2871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $deplib in
2872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      -L*) path="$deplib" ;;
2873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *.la)
2874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
2875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		test "X$dir" = "X$deplib" && dir="."
2876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# We need an absolute path.
2877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $dir in
2878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
2879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*)
2880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  absdir=`cd "$dir" && pwd`
2881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test -z "$absdir"; then
2882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
2883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    absdir="$dir"
2884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
2885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
2886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if grep "^installed=no" $deplib > /dev/null; then
2888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  path="$absdir/$objdir"
2889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
2890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
2891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test -z "$libdir"; then
2892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
2893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    exit $EXIT_FAILURE
2894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
2895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "$absdir" != "$libdir"; then
2896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
2897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
2898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  path="$absdir"
2899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
2900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		depdepl=
2901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $host in
2902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*-*-darwin*)
2903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # we do not want to link against static libs,
2904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # but need to link against shared
2905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
2906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test -n "$deplibrary_names" ; then
2907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    for tmp in $deplibrary_names ; do
2908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      depdepl=$tmp
2909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    done
2910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if test -f "$path/$depdepl" ; then
2911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      depdepl="$path/$depdepl"
2912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
2913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    # do not add paths which are already there
2914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    case " $newlib_search_path " in
2915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    *" $path "*) ;;
2916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    *) newlib_search_path="$newlib_search_path $path";;
2917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    esac
2918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
2919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  path=""
2920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
2921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*)
2922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  path="-L$path"
2923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
2924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
2926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      -l*)
2927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case $host in
2928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*-*-darwin*)
2929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Again, we only want to link against shared libraries
2930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
2931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  for tmp in $newlib_search_path ; do
2932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if test -f "$tmp/lib$tmp_libs.dylib" ; then
2933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      eval depdepl="$tmp/lib$tmp_libs.dylib"
2934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      break
2935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
2936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  done
2937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  path=""
2938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
2939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) continue ;;
2940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
2941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
2942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) continue ;;
2943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case " $deplibs " in
2945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $path "*) ;;
2946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) deplibs="$path $deplibs" ;;
2947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case " $deplibs " in
2949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $depdepl "*) ;;
2950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) deplibs="$depdepl $deplibs" ;;
2951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
2952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
2953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi # link_all_deplibs != no
2954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi # linkmode = lib
2955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done # for deplib in $libs
2956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dependency_libs="$newdependency_libs"
2957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$pass" = dlpreopen; then
2958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Link the dlpreopened libraries before other libraries
2959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for deplib in $save_deplibs; do
2960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  deplibs="$deplib $deplibs"
2961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
2962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
2963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$pass" != dlopen; then
2964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$pass" != conv; then
2965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Make sure lib_search_path contains only unique directories.
2966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lib_search_path=
2967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for dir in $newlib_search_path; do
2968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$lib_search_path " in
2969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $dir "*) ;;
2970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) lib_search_path="$lib_search_path $dir" ;;
2971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
2972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
2973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newlib_search_path=
2974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
2976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$linkmode,$pass" != "prog,link"; then
2977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  vars="deplibs"
2978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
2979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  vars="compile_deplibs finalize_deplibs"
2980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
2981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for var in $vars dependency_libs; do
2982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add libraries to $var in reverse order
2983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval tmp_libs=\"\$$var\"
2984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  new_libs=
2985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for deplib in $tmp_libs; do
2986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # FIXME: Pedantically, this is the right thing to do, so
2987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    #        that some nasty dependency loop isn't accidentally
2988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    #        broken:
2989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    #new_libs="$deplib $new_libs"
2990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Pragmatically, this seems to cause very few problems in
2991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # practice:
2992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $deplib in
2993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    -L*) new_libs="$deplib $new_libs" ;;
2994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    -R*) ;;
2995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)
2996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # And here is the reason: when a library appears more
2997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # than once as an explicit dependence of a library, or
2998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # is implicitly linked in more than once by the
2999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # compiler, it is considered special, and multiple
3000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # occurrences thereof are not removed.  Compare this
3001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # with having the same library being listed as a
3002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # dependency of multiple other libraries: in this case,
3003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # we know (pedantically, we assume) the library does not
3004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # need to be listed more than once, so we keep only the
3005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # last copy.  This is not always right, but it is rare
3006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # enough that we require users that really mean to play
3007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # such unportable linking tricks to link the library
3008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # using -Wl,-lname, so that libtool does not consider it
3009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # for duplicate removal.
3010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case " $specialdeplibs " in
3011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
3012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *)
3013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case " $new_libs " in
3014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*" $deplib "*) ;;
3015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) new_libs="$deplib $new_libs" ;;
3016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
3017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
3018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
3019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
3020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
3021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
3022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tmp_libs=
3023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for deplib in $new_libs; do
3024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $deplib in
3025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    -L*)
3026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case " $tmp_libs " in
3027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $deplib "*) ;;
3028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) tmp_libs="$tmp_libs $deplib" ;;
3029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
3030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
3031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) tmp_libs="$tmp_libs $deplib" ;;
3032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
3033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
3034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval $var=\"$tmp_libs\"
3035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done # for var
3036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Last step: remove runtime libs from dependency_libs
3038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # (they stay in deplibs)
3039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      tmp_libs=
3040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for i in $dependency_libs ; do
3041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $predeps $postdeps $compiler_lib_search_path " in
3042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" $i "*)
3043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  i=""
3044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$i" ; then
3047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tmp_libs="$tmp_libs $i"
3048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dependency_libs=$tmp_libs
3051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done # for pass
3052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$linkmode" = prog; then
3053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlfiles="$newdlfiles"
3054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlprefiles="$newdlprefiles"
3055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
3056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $linkmode in
3058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    oldlib)
3059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$deplibs"; then
3060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
3061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
3064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
3065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$rpath"; then
3068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
3069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$xrpath"; then
3072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
3073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$vinfo"; then
3076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
3077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$release"; then
3080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
3081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
3084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
3085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now set the variables for building old libraries.
3088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      build_libtool_libs=no
3089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      oldlibs="$output"
3090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      objs="$objs$old_deplibs"
3091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
3092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lib)
3094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Make sure we only generate libraries of the form `libNAME.la'.
3095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $outputname in
3096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      lib*)
3097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
3098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval shared_ext=\"$shrext_cmds\"
3099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval libname=\"$libname_spec\"
3100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
3101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
3102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$module" = no; then
3103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
3104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
3105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$need_lib_prefix" != no; then
3108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add the "lib" prefix for modules if required
3109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval shared_ext=\"$shrext_cmds\"
3111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval libname=\"$libname_spec\"
3112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
3113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
3114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
3116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
3117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$objs"; then
3119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$deplibs_check_method" != pass_all; then
3120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
3121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
3123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo
3124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
3125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "*** objects $objs is not portable!"
3126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  libobjs="$libobjs $objs"
3127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$dlself" != no; then
3131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
3132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      set dummy $rpath
3135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$#" -gt 2; then
3136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
3137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      install_libdir="$2"
3139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      oldlibs=
3141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$rpath"; then
3142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$build_libtool_libs" = yes; then
3143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Building a libtool convenience library.
3144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Some compilers have problems with a `.al' extension so
3145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # convenience libraries should have the same extension an
3146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # archive normally would.
3147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
3148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  build_libtool_libs=convenience
3149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  build_old_libs=yes
3150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$vinfo"; then
3153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
3154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$release"; then
3157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
3158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
3160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Parse the version information argument.
3162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_ifs="$IFS"; IFS=':'
3163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	set dummy $vinfo 0 0 0
3164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
3165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$8"; then
3167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
3168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
3169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# convert absolute version numbers to libtool ages
3173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# this retains compatibility with .la files and attempts
3174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# to make the code below a bit more comprehensible
3175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $vinfo_number in
3177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	yes)
3178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  number_major="$2"
3179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  number_minor="$3"
3180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  number_revision="$4"
3181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  #
3182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # There are really only two kinds -- those that
3183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # use the current revision as the major version
3184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # and those that subtract age and use age as
3185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # a minor version.  But, then there is irix
3186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # which has an extra 1 added just for fun
3187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  #
3188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $version_type in
3189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin|linux|osf|windows)
3190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    current=`expr $number_major + $number_minor`
3191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    age="$number_minor"
3192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    revision="$number_revision"
3193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  freebsd-aout|freebsd-elf|sunos)
3195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    current="$number_major"
3196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    revision="$number_minor"
3197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    age="0"
3198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  irix|nonstopux)
3200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    current=`expr $number_major + $number_minor - 1`
3201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    age="$number_minor"
3202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    revision="$number_minor"
3203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	no)
3207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  current="$2"
3208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  revision="$3"
3209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  age="$4"
3210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check that each of the things are valid numbers.
3214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $current in
3215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	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]) ;;
3216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
3217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
3218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $revision in
3224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	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]) ;;
3225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
3226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
3227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $age in
3233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	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]) ;;
3234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
3235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
3236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$age" -gt "$current"; then
3242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
3243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
3244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Calculate the version variables.
3248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	major=
3249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	versuffix=
3250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	verstring=
3251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $version_type in
3252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	none) ;;
3253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	darwin)
3255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Like Linux, but with the current version available in
3256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # verstring for coding it into the library header
3257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=.`expr $current - $age`
3258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix="$major.$age.$revision"
3259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Darwin ld doesn't like 0 for these options...
3260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  minor_current=`expr $current + 1`
3261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
3262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	freebsd-aout)
3265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=".$current"
3266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix=".$current.$revision";
3267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	freebsd-elf)
3270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=".$current"
3271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix=".$current";
3272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	irix | nonstopux)
3275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=`expr $current - $age + 1`
3276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $version_type in
3278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    nonstopux) verstring_prefix=nonstopux ;;
3279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *)         verstring_prefix=sgi ;;
3280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  verstring="$verstring_prefix$major.$revision"
3282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add in all the interfaces that we are compatible with.
3284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  loop=$revision
3285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  while test "$loop" -ne 0; do
3286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    iface=`expr $revision - $loop`
3287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    loop=`expr $loop - 1`
3288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    verstring="$verstring_prefix$major.$iface:$verstring"
3289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
3290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Before this point, $major must not contain `.'.
3292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=.$major
3293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix="$major.$revision"
3294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	linux)
3297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=.`expr $current - $age`
3298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix="$major.$age.$revision"
3299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	osf)
3302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=.`expr $current - $age`
3303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix=".$current.$age.$revision"
3304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  verstring="$current.$age.$revision"
3305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add in all the interfaces that we are compatible with.
3307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  loop=$age
3308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  while test "$loop" -ne 0; do
3309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    iface=`expr $current - $loop`
3310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    loop=`expr $loop - 1`
3311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    verstring="$verstring:${iface}.0"
3312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
3313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Make executables depend on our current version.
3315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  verstring="$verstring:${current}.0"
3316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	sunos)
3319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=".$current"
3320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix=".$current.$revision"
3321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	windows)
3324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Use '-' rather than '.', since we only want one
3325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # extension on DOS 8.3 filesystems.
3326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=`expr $current - $age`
3327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix="-$major"
3328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
3331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
3332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
3333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
3334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Clear the version info if we defaulted, and they specified a release.
3338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$vinfo" && test -n "$release"; then
3339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=
3340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $version_type in
3341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  darwin)
3342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # we can't check for "0.0" in archive_cmds due to quoting
3343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # problems, so we reset it completely
3344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    verstring=
3345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
3347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    verstring="0.0"
3348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$need_version" = no; then
3351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    versuffix=
3352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
3353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    versuffix=".0.0"
3354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Remove version info from name if versioning should be avoided
3358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$avoid_version" = yes && test "$need_version" = no; then
3359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  major=
3360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  versuffix=
3361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  verstring=""
3362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check to see if the archive will have undefined symbols.
3365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$allow_undefined" = yes; then
3366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$allow_undefined_flag" = unsupported; then
3367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
3368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    build_libtool_libs=no
3369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    build_old_libs=yes
3370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
3372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Don't allow undefined symbols.
3373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  allow_undefined_flag="$no_undefined_flag"
3374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$mode" != relink; then
3378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Remove our outputs, but don't remove object files since they
3379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# may have been created when compiling PIC objects.
3380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	removelist=
3381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	tempremovelist=`$echo "$output_objdir/*"`
3382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for p in $tempremovelist; do
3383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $p in
3384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *.$objext)
3385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       ;;
3386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
3387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       if test "X$precious_files_regex" != "X"; then
3388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	         if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
3389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	         then
3390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		   continue
3391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 fi
3392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       fi
3393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       removelist="$removelist $p"
3394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       ;;
3395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) ;;
3396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
3398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$removelist"; then
3399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "${rm}r $removelist"
3400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run ${rm}r $removelist
3401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now set the variables for building old libraries.
3405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
3406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	oldlibs="$oldlibs $output_objdir/$libname.$libext"
3407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Transform .lo files to .o files.
3409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
3410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Eliminate all temporary directories.
3413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for path in $notinst_path; do
3414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
3415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
3416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
3417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$xrpath"; then
3420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If the user specified any rpath flags, then add them.
3421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	temp_xrpath=
3422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for libdir in $xrpath; do
3423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  temp_xrpath="$temp_xrpath -R$libdir"
3424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$finalize_rpath " in
3425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
3426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) finalize_rpath="$finalize_rpath $libdir" ;;
3427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
3429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
3430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dependency_libs="$temp_xrpath $dependency_libs"
3431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Make sure dlfiles contains only unique files that won't be dlpreopened
3435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      old_dlfiles="$dlfiles"
3436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlfiles=
3437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for lib in $old_dlfiles; do
3438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $dlprefiles $dlfiles " in
3439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" $lib "*) ;;
3440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) dlfiles="$dlfiles $lib" ;;
3441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Make sure dlprefiles contains only unique files
3445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      old_dlprefiles="$dlprefiles"
3446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlprefiles=
3447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for lib in $old_dlprefiles; do
3448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case "$dlprefiles " in
3449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" $lib "*) ;;
3450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) dlprefiles="$dlprefiles $lib" ;;
3451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$build_libtool_libs" = yes; then
3455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$rpath"; then
3456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $host in
3457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
3458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # these systems don't actually have a c library (as such)!
3459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-rhapsody* | *-*-darwin1.[012])
3461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Rhapsody C library is in the System framework
3462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    deplibs="$deplibs -framework System"
3463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-netbsd*)
3465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Don't link with libc until the a.out ld.so is fixed.
3466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
3468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Do not include libc due to us having libc/libc_r.
3469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-sco3.2v5* | *-*-sco5v6*)
3471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Causes problems with __ctype
3472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
3474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Compiler inserts libc in the correct place for threads to work
3475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project 	  *)
3477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Add libc to deplibs on all other systems if necessary.
3478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$build_libtool_need_lc" = "yes"; then
3479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      deplibs="$deplibs -lc"
3480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
3482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Transform deplibs into only deplibs that can be linked in shared.
3486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	name_save=$name
3487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libname_save=$libname
3488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	release_save=$release
3489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	versuffix_save=$versuffix
3490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	major_save=$major
3491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# I'm not sure if I'm treating the release correctly.  I think
3492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# release should show up in the -l (ie -lgmp5) so we don't want to
3493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# add it in twice.  Is that correct?
3494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	release=""
3495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	versuffix=""
3496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	major=""
3497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	newdeplibs=
3498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	droppeddeps=no
3499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $deplibs_check_method in
3500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	pass_all)
3501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Don't check for shared/static.  Everything works.
3502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This might be a little naive.  We might want to check
3503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # whether the library exists or not.  But this is on
3504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # osf3 & osf4 and I'm not really sure... Just
3505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # implementing what was already the behavior.
3506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newdeplibs=$deplibs
3507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test_compile)
3509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This code stresses the "libraries are programs" paradigm to its
3510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # limits. Maybe even breaks it.  We compile a program, linking it
3511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # against the deplibs as a proxy for the library.  Then we can check
3512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # whether they linked in statically or dynamically with ldd.
3513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $rm conftest.c
3514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cat > conftest.c <<EOF
3515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  int main() { return 0; }
3516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
3517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $rm conftest
3518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
3519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$?" -eq 0 ; then
3520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ldd_output=`ldd conftest`
3521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for i in $deplibs; do
3522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      name=`expr $i : '-l\(.*\)'`
3523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # If $name is empty we are operating on a -L argument.
3524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              if test "$name" != "" && test "$name" -ne "0"; then
3525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  case " $predeps $postdeps " in
3527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *" $i "*)
3528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    newdeplibs="$newdeplibs $i"
3529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    i=""
3530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ;;
3531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  esac
3532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        fi
3533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -n "$i" ; then
3534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  libname=`eval \\$echo \"$libname_spec\"`
3535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
3536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  set dummy $deplib_matches
3537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  deplib_match=$2
3538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    newdeplibs="$newdeplibs $i"
3540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  else
3541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    droppeddeps=yes
3542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo
3543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** Warning: dynamic linker does not accept needed library $i."
3544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** I have the capability to make that library automatically link in when"
3545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** you link to this library.  But I can only do this if you have a"
3546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** shared version of the library, which I believe you do not have"
3547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** because a test_compile did reveal that the linker did not use it for"
3548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
3549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
3550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
3551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
3552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		newdeplibs="$newdeplibs $i"
3553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
3555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
3556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Error occurred in the first compile.  Let's try to salvage
3557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # the situation: Compile a separate program for each library.
3558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for i in $deplibs; do
3559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      name=`expr $i : '-l\(.*\)'`
3560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # If $name is empty we are operating on a -L argument.
3561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              if test "$name" != "" && test "$name" != "0"; then
3562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$rm conftest
3563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$LTCC $LTCFLAGS -o conftest conftest.c $i
3564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Did it work?
3565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$?" -eq 0 ; then
3566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ldd_output=`ldd conftest`
3567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    case " $predeps $postdeps " in
3569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    *" $i "*)
3570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      newdeplibs="$newdeplibs $i"
3571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      i=""
3572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      ;;
3573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    esac
3574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
3575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  if test -n "$i" ; then
3576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    libname=`eval \\$echo \"$libname_spec\"`
3577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
3578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    set dummy $deplib_matches
3579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    deplib_match=$2
3580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
3581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      newdeplibs="$newdeplibs $i"
3582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    else
3583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      droppeddeps=yes
3584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo
3585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** Warning: dynamic linker does not accept needed library $i."
3586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** I have the capability to make that library automatically link in when"
3587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** you link to this library.  But I can only do this if you have a"
3588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** shared version of the library, which you do not appear to have"
3589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** because a test_compile did reveal that the linker did not use this one"
3590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
3591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
3592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  fi
3593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
3594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  droppeddeps=yes
3595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo
3596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
3597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "***  make it link in!  You will probably need to install it or some"
3598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** library that it depends on before this library will be fully"
3599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** functional.  Installing it before continuing would be even better."
3600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
3601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
3602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		newdeplibs="$newdeplibs $i"
3603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
3605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	file_magic*)
3608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  set dummy $deplibs_check_method
3609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for a_deplib in $deplibs; do
3611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    name=`expr $a_deplib : '-l\(.*\)'`
3612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If $name is empty we are operating on a -L argument.
3613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            if test "$name" != "" && test  "$name" != "0"; then
3614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case " $predeps $postdeps " in
3616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*" $a_deplib "*)
3617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  newdeplibs="$newdeplibs $a_deplib"
3618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  a_deplib=""
3619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
3620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
3621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$a_deplib" ; then
3623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		libname=`eval \\$echo \"$libname_spec\"`
3624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  for potent_lib in $potential_libs; do
3627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # Follow soft links.
3628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      if ls -lLd "$potent_lib" 2>/dev/null \
3629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			 | grep " -> " >/dev/null; then
3630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			continue
3631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      fi
3632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # The statement above tries to avoid entering an
3633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # endless loop below, in case of cyclic links.
3634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # We might still enter an endless loop, since a link
3635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # loop can be closed while we follow links,
3636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      # but so what?
3637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      potlib="$potent_lib"
3638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      while test -h "$potlib" 2>/dev/null; do
3639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
3640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			case $potliblink in
3641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
3642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
3643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			esac
3644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      done
3645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
3646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			 | ${SED} 10q \
3647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			 | $EGREP "$file_magic_regex" > /dev/null; then
3648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			newdeplibs="$newdeplibs $a_deplib"
3649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			a_deplib=""
3650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			break 2
3651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      fi
3652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  done
3653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		done
3654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$a_deplib" ; then
3656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		droppeddeps=yes
3657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo
3658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** I have the capability to make that library automatically link in when"
3660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** you link to this library.  But I can only do this if you have a"
3661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** shared version of the library, which you do not appear to have"
3662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** because I did check the linker path looking for a file starting"
3663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$potlib" ; then
3664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
3665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
3666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** with $libname and none of the candidates passed a file format test"
3667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** using a file magic. Last file checked: $potlib"
3668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
3669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
3671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Add a -L argument.
3672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdeplibs="$newdeplibs $a_deplib"
3673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done # Gone through all deplibs.
3675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	match_pattern*)
3677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  set dummy $deplibs_check_method
3678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
3679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for a_deplib in $deplibs; do
3680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    name=`expr $a_deplib : '-l\(.*\)'`
3681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # If $name is empty we are operating on a -L argument.
3682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$name" && test "$name" != "0"; then
3683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case " $predeps $postdeps " in
3685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*" $a_deplib "*)
3686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  newdeplibs="$newdeplibs $a_deplib"
3687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  a_deplib=""
3688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  ;;
3689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
3690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$a_deplib" ; then
3692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		libname=`eval \\$echo \"$libname_spec\"`
3693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
3694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
3695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  for potent_lib in $potential_libs; do
3696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    potlib="$potent_lib" # see symlink-check above in file_magic test
3697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    if eval $echo \"$potent_lib\" 2>/dev/null \
3698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        | ${SED} 10q \
3699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		        | $EGREP "$match_pattern_regex" > /dev/null; then
3700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      newdeplibs="$newdeplibs $a_deplib"
3701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      a_deplib=""
3702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		      break 2
3703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    fi
3704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  done
3705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		done
3706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$a_deplib" ; then
3708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		droppeddeps=yes
3709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo
3710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** Warning: linker path does not have real file for library $a_deplib."
3711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** I have the capability to make that library automatically link in when"
3712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** you link to this library.  But I can only do this if you have a"
3713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** shared version of the library, which you do not appear to have"
3714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "*** because I did check the linker path looking for a file starting"
3715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$potlib" ; then
3716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
3717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
3718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** with $libname and none of the candidates passed a file format test"
3719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "*** using a regex pattern. Last file checked: $potlib"
3720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
3721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
3723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Add a -L argument.
3724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdeplibs="$newdeplibs $a_deplib"
3725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done # Gone through all deplibs.
3727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	none | unknown | *)
3729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newdeplibs=""
3730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
3731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    -e 's/ -[LR][^ ]*//g'`
3732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
3733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for i in $predeps $postdeps ; do
3734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # can't use Xsed below, because $i might contain '/'
3735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
3736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
3737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
3739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    | grep . >/dev/null; then
3740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo
3741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$deplibs_check_method" = "Xnone"; then
3742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
3743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
3744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Warning: inter-library dependencies are not known to be supported."
3745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** All declared inter-library dependencies are being dropped."
3747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    droppeddeps=yes
3748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	versuffix=$versuffix_save
3752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	major=$major_save
3753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	release=$release_save
3754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libname=$libname_save
3755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	name=$name_save
3756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
3758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*-*-rhapsody* | *-*-darwin1.[012])
3759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # On Rhapsody replace the C library is the System framework
3760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
3761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$droppeddeps" = yes; then
3765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$module" = yes; then
3766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo
3767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
3768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
3769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** a static module, that should work as long as the dlopening"
3770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** application is linked with the -dlopen flag."
3771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$global_symbol_pipe"; then
3772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo
3773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** However, this would only work if libtool was able to extract symbol"
3774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
3775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** not find such a program.  So, this module is probably useless."
3776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
3777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$build_old_libs" = no; then
3779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      oldlibs="$output_objdir/$libname.$libext"
3780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      build_libtool_libs=module
3781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      build_old_libs=yes
3782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
3783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      build_libtool_libs=no
3784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
3786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** The inter-library dependencies that have been dropped here will be"
3787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** automatically added whenever a program is linked with this library"
3788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "*** or is declared to -dlopen it."
3789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$allow_undefined" = no; then
3791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo
3792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** Since this library must not contain undefined symbols,"
3793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** because either the platform does not support them or"
3794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** it was explicitly requested with -no-undefined,"
3795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "*** libtool will only create a static version of it."
3796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$build_old_libs" = no; then
3797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		oldlibs="$output_objdir/$libname.$libext"
3798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_libtool_libs=module
3799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_old_libs=yes
3800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
3801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		build_libtool_libs=no
3802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Done checking deplibs!
3807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs=$newdeplibs
3808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
3809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # move library search paths that coincide with paths to not yet
3812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # installed libraries to the beginning of the library search list
3813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      new_libs=
3814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for path in $notinst_path; do
3815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $new_libs " in
3816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" -L$path/$objdir "*) ;;
3817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
3818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case " $deplibs " in
3819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" -L$path/$objdir "*)
3820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    new_libs="$new_libs -L$path/$objdir" ;;
3821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for deplib in $deplibs; do
3826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $deplib in
3827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-L*)
3828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case " $new_libs " in
3829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $deplib "*) ;;
3830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) new_libs="$new_libs $deplib" ;;
3831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
3832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
3833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) new_libs="$new_libs $deplib" ;;
3834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
3835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
3836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      deplibs="$new_libs"
3837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # All the library-specific variables (install_libdir is set above).
3840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      library_names=
3841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      old_library=
3842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlname=
3843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Test again, we may have decided not to build it any more
3845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$build_libtool_libs" = yes; then
3846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$hardcode_into_libs" = yes; then
3847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Hardcode the library paths
3848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  hardcode_libdirs=
3849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dep_rpath=
3850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  rpath="$finalize_rpath"
3851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test "$mode" != relink && rpath="$compile_rpath$rpath"
3852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for libdir in $rpath; do
3853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$hardcode_libdir_flag_spec"; then
3854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -n "$hardcode_libdir_separator"; then
3855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$hardcode_libdirs"; then
3856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  hardcode_libdirs="$libdir"
3857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
3858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  # Just accumulate the unique libdirs.
3859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
3860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
3861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ;;
3862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  *)
3863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
3864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    ;;
3865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  esac
3866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
3867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
3868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval flag=\"$hardcode_libdir_flag_spec\"
3869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		dep_rpath="$dep_rpath $flag"
3870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    elif test -n "$runpath_var"; then
3872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case "$perm_rpath " in
3873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *" $libdir "*) ;;
3874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) perm_rpath="$perm_rpath $libdir" ;;
3875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
3876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
3878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Substitute the hardcoded libdirs into the rpath.
3879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$hardcode_libdir_separator" &&
3880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test -n "$hardcode_libdirs"; then
3881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libdir="$hardcode_libdirs"
3882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$hardcode_libdir_flag_spec_ld"; then
3883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
3884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
3885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
3886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
3889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # We should set the runpath_var.
3890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath=
3891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for dir in $perm_rpath; do
3892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      rpath="$rpath$dir:"
3893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
3894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
3895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
3897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	shlibpath="$finalize_shlibpath"
3900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
3901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$shlibpath"; then
3902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
3903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Get the real and link names of the library.
3906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval shared_ext=\"$shrext_cmds\"
3907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval library_names=\"$library_names_spec\"
3908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	set dummy $library_names
3909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	realname="$2"
3910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	shift; shift
3911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$soname_spec"; then
3913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval soname=\"$soname_spec\"
3914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
3915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  soname="$realname"
3916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$dlname"; then
3918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dlname=$soname
3919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	lib="$output_objdir/$realname"
3922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	linknames=
3923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for link
3924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	do
3925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linknames="$linknames $link"
3926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
3927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Use standard objects if they are pic
3929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
3930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Prepare the list of exported symbols
3932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$export_symbols"; then
3933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
3934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "generating symbol list for \`$libname.la'"
3935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    export_symbols="$output_objdir/$libname.exp"
3936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run $rm $export_symbols
3937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cmds=$export_symbols_cmds
3938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    save_ifs="$IFS"; IFS='~'
3939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for cmd in $cmds; do
3940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      IFS="$save_ifs"
3941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval cmd=\"$cmd\"
3942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if len=`expr "X$cmd" : ".*"` &&
3943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
3944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        $show "$cmd"
3945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        $run eval "$cmd" || exit $?
3946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        skipped_export=false
3947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
3948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        # The command line is too long to execute in one step.
3949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        $show "using reloadable object file for export list..."
3950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        skipped_export=:
3951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Break out early, otherwise skipped_export may be
3952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# set to false by a later but shorter cmd.
3953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		break
3954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
3955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
3956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    IFS="$save_ifs"
3957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$export_symbols_regex"; then
3958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
3959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
3960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
3961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
3962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
3963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$export_symbols" && test -n "$include_expsyms"; then
3967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
3968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	tmp_deplibs=
3971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for test_deplib in $deplibs; do
3972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case " $convenience " in
3973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*" $test_deplib "*) ;;
3974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*)
3975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			tmp_deplibs="$tmp_deplibs $test_deplib"
3976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project			;;
3977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
3978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
3979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	deplibs="$tmp_deplibs"
3980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$convenience"; then
3982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$whole_archive_flag_spec"; then
3983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    save_libobjs=$libobjs
3984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
3985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
3986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    gentop="$output_objdir/${outputname}x"
3987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    generated="$generated $gentop"
3988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    func_extract_archives $gentop $convenience
3990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libobjs="$libobjs $func_extract_archives_result"
3991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
3992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	
3994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
3995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval flag=\"$thread_safe_flag_spec\"
3996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  linker_flags="$linker_flags $flag"
3997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
3998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
3999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Make a backup of the uninstalled library when relinking
4000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$mode" = relink; then
4001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
4002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Do each of the archive commands.
4005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$module" = yes && test -n "$module_cmds" ; then
4006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval test_cmds=\"$module_expsym_cmds\"
4008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cmds=$module_expsym_cmds
4009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval test_cmds=\"$module_cmds\"
4011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cmds=$module_cmds
4012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval test_cmds=\"$archive_expsym_cmds\"
4016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cmds=$archive_expsym_cmds
4017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval test_cmds=\"$archive_cmds\"
4019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cmds=$archive_cmds
4020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$skipped_export" != "X:" &&
4024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
4026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  :
4027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # The command line is too long to link in one step, link piecewise.
4029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "creating reloadable object files..."
4030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Save the value of $output and $libobjs because we want to
4032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # use them later.  If we have whole_archive_flag_spec, we
4033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # want to use save_libobjs as it was before
4034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # whole_archive_flag_spec was expanded, because we can't
4035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # assume the linker understands whole_archive_flag_spec.
4036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This may have to be revisited, in case too many
4037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # convenience libraries get linked in and end up exceeding
4038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # the spec.
4039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
4040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    save_libobjs=$libobjs
4041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_output=$output
4043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  output_la=`$echo "X$output" | $Xsed -e "$basename"`
4044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Clear the reloadable object creation command queue and
4046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # initialize k to one.
4047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test_cmds=
4048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  concat_cmds=
4049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  objlist=
4050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  delfiles=
4051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  last_robj=
4052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  k=1
4053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  output=$output_objdir/$output_la-${k}.$objext
4054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Loop over the list of objects to be linked.
4055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for obj in $save_libobjs
4056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  do
4057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
4058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$objlist" = X ||
4059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
4060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		 test "$len" -le "$max_cmd_len"; }; then
4061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      objlist="$objlist $obj"
4062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # The command $test_cmds is almost too long, add a
4064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # command to the queue.
4065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$k" -eq 1 ; then
4066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# The first file doesn't have a previous command to add.
4067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
4068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
4069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# All subsequent reloadable object files will link in
4070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# the last one created.
4071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
4072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
4073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      last_robj=$output_objdir/$output_la-${k}.$objext
4074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      k=`expr $k + 1`
4075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      output=$output_objdir/$output_la-${k}.$objext
4076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      objlist=$obj
4077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      len=1
4078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Handle the remaining objects by creating one last
4081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # reloadable object file.  All subsequent reloadable object
4082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # files will link in the last one created.
4083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
4084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
4085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if ${skipped_export-false}; then
4087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "generating symbol list for \`$libname.la'"
4088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    export_symbols="$output_objdir/$libname.exp"
4089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run $rm $export_symbols
4090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libobjs=$output
4091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Append the command to create the export file.
4092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
4093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          fi
4094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Set up a command to remove the reloadable object files
4096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # after they are used.
4097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  i=0
4098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  while test "$i" -lt "$k"
4099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  do
4100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    i=`expr $i + 1`
4101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
4102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "creating a temporary reloadable object file: $output"
4105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Loop through the commands generated above and execute them.
4107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_ifs="$IFS"; IFS='~'
4108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for cmd in $concat_cmds; do
4109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    IFS="$save_ifs"
4110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$cmd"
4111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval "$cmd" || exit $?
4112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
4114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  libobjs=$output
4116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Restore the value of output.
4117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  output=$save_output
4118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
4120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
4121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Expand the library linking commands again to reset the
4123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # value of $libobjs for piecewise linking.
4124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Do each of the archive commands.
4126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$module" = yes && test -n "$module_cmds" ; then
4127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
4128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$module_expsym_cmds
4129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$module_cmds
4131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
4134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cmds=$archive_expsym_cmds
4135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cmds=$archive_cmds
4137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Append the command to remove the reloadable object files
4141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # to the just-reset $cmds.
4142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval cmds=\"\$cmds~\$rm $delfiles\"
4143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_ifs="$IFS"; IFS='~'
4145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for cmd in $cmds; do
4146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
4147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval cmd=\"$cmd\"
4148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$cmd"
4149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$cmd" || {
4150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    lt_exit=$?
4151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Restore the uninstalled library and exit
4153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$mode" = relink; then
4154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
4155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $lt_exit
4158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  }
4159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
4161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Restore the uninstalled library and exit
4163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$mode" = relink; then
4164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
4165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$convenience"; then
4167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$whole_archive_flag_spec"; then
4168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "${rm}r $gentop"
4169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run ${rm}r "$gentop"
4170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_SUCCESS
4174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Create links to the real library.
4177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for linkname in $linknames; do
4178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$realname" != "$linkname"; then
4179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
4180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
4181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If -module or -export-dynamic was specified, set the dlname.
4185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$module" = yes || test "$export_dynamic" = yes; then
4186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # On all known operating systems, these are identical.
4187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dlname="$soname"
4188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
4191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    obj)
4193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$deplibs"; then
4194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
4195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
4199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$rpath"; then
4202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
4203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$xrpath"; then
4206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
4207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$vinfo"; then
4210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
4211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$release"; then
4214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
4215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $output in
4218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.lo)
4219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$objs$old_deplibs"; then
4220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
4221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
4222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libobj="$output"
4224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
4225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
4226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
4227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libobj=
4228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	obj="$output"
4229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
4230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
4231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Delete the old objects.
4233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm $obj $libobj
4234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Objects from convenience libraries.  This assumes
4236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # single-version convenience libraries.  Whenever we create
4237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # different ones for PIC/non-PIC, this we'll have to duplicate
4238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # the extraction.
4239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      reload_conv_objs=
4240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      gentop=
4241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # reload_cmds runs $LD directly, so let us get rid of
4242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # -Wl from whole_archive_flag_spec
4243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      wl=
4244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$convenience"; then
4246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$whole_archive_flag_spec"; then
4247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
4248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  gentop="$output_objdir/${obj}x"
4250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  generated="$generated $gentop"
4251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  func_extract_archives $gentop $convenience
4253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  reload_conv_objs="$reload_objs $func_extract_archives_result"
4254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Create the old-style object.
4258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      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
4259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      output="$obj"
4261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      cmds=$reload_cmds
4262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      save_ifs="$IFS"; IFS='~'
4263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for cmd in $cmds; do
4264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
4265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval cmd=\"$cmd\"
4266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$cmd"
4267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$cmd" || exit $?
4268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
4269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      IFS="$save_ifs"
4270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Exit if we aren't doing a library object file.
4272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$libobj"; then
4273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$gentop"; then
4274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "${rm}r $gentop"
4275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run ${rm}r $gentop
4276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_SUCCESS
4279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$build_libtool_libs" != yes; then
4282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$gentop"; then
4283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "${rm}r $gentop"
4284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run ${rm}r $gentop
4285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Create an invalid libtool object if no PIC, so that we don't
4288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# accidentally link it into a program.
4289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# $show "echo timestamp > $libobj"
4290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# $run eval "echo timestamp > $libobj" || exit $?
4291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_SUCCESS
4292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$pic_flag" || test "$pic_mode" != default; then
4295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Only do commands if we really have different PIC objects.
4296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	reload_objs="$libobjs $reload_conv_objs"
4297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	output="$libobj"
4298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	cmds=$reload_cmds
4299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	save_ifs="$IFS"; IFS='~'
4300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for cmd in $cmds; do
4301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
4302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval cmd=\"$cmd\"
4303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$cmd"
4304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$cmd" || exit $?
4305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
4307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$gentop"; then
4310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "${rm}r $gentop"
4311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run ${rm}r $gentop
4312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_SUCCESS
4315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
4316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prog)
4318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $host in
4319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
4320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
4321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$vinfo"; then
4322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
4323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$release"; then
4326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
4327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$preload" = yes; then
4330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
4331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	   test "$dlopen_self_static" = unknown; then
4332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
4333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $host in
4337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *-*-rhapsody* | *-*-darwin1.[012])
4338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# On Rhapsody replace the C library is the System framework
4339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
4341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
4342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
4343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $host in
4345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *darwin*)
4346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        # Don't allow lazy linking, it breaks C++ global constructors
4347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        if test "$tagname" = CXX ; then
4348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        compile_command="$compile_command ${wl}-bind_at_load"
4349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        finalize_command="$finalize_command ${wl}-bind_at_load"
4350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        fi
4351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        ;;
4352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
4353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # move library search paths that coincide with paths to not yet
4356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # installed libraries to the beginning of the library search list
4357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      new_libs=
4358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for path in $notinst_path; do
4359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $new_libs " in
4360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*" -L$path/$objdir "*) ;;
4361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
4362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case " $compile_deplibs " in
4363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" -L$path/$objdir "*)
4364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    new_libs="$new_libs -L$path/$objdir" ;;
4365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
4367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
4369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for deplib in $compile_deplibs; do
4370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $deplib in
4371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	-L*)
4372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case " $new_libs " in
4373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $deplib "*) ;;
4374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) new_libs="$new_libs $deplib" ;;
4375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
4377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) new_libs="$new_libs $deplib" ;;
4378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
4380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile_deplibs="$new_libs"
4381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile_command="$compile_command $compile_deplibs"
4384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      finalize_command="$finalize_command $finalize_deplibs"
4385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$rpath$xrpath"; then
4387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If the user specified any rpath flags, then add them.
4388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for libdir in $rpath $xrpath; do
4389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # This is the magic to use -rpath.
4390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$finalize_rpath " in
4391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
4392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) finalize_rpath="$finalize_rpath $libdir" ;;
4393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now hardcode the library paths
4398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      rpath=
4399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      hardcode_libdirs=
4400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for libdir in $compile_rpath $finalize_rpath; do
4401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$hardcode_libdir_flag_spec"; then
4402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$hardcode_libdir_separator"; then
4403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$hardcode_libdirs"; then
4404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      hardcode_libdirs="$libdir"
4405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Just accumulate the unique libdirs.
4407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
4410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *)
4411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
4413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
4414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval flag=\"$hardcode_libdir_flag_spec\"
4417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath $flag"
4418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test -n "$runpath_var"; then
4420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$perm_rpath " in
4421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
4422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) perm_rpath="$perm_rpath $libdir" ;;
4423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
4426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
4427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'`
4428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case :$dllsearchpath: in
4429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *":$libdir:"*) ;;
4430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$libdir";;
4431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case :$dllsearchpath: in
4433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *":$testbindir:"*) ;;
4434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
4437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
4439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Substitute the hardcoded libdirs into the rpath.
4440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$hardcode_libdir_separator" &&
4441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 test -n "$hardcode_libdirs"; then
4442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libdir="$hardcode_libdirs"
4443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval rpath=\" $hardcode_libdir_flag_spec\"
4444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile_rpath="$rpath"
4446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      rpath=
4448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      hardcode_libdirs=
4449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for libdir in $finalize_rpath; do
4450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$hardcode_libdir_flag_spec"; then
4451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$hardcode_libdir_separator"; then
4452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$hardcode_libdirs"; then
4453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      hardcode_libdirs="$libdir"
4454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Just accumulate the unique libdirs.
4456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
4457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
4458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
4459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *)
4460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
4461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
4462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
4463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval flag=\"$hardcode_libdir_flag_spec\"
4466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath $flag"
4467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif test -n "$runpath_var"; then
4469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$finalize_perm_rpath " in
4470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
4471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
4472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
4475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Substitute the hardcoded libdirs into the rpath.
4476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$hardcode_libdir_separator" &&
4477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	 test -n "$hardcode_libdirs"; then
4478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libdir="$hardcode_libdirs"
4479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval rpath=\" $hardcode_libdir_flag_spec\"
4480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      finalize_rpath="$rpath"
4482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$libobjs" && test "$build_old_libs" = yes; then
4484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Transform all the library objects into standard objects.
4485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dlsyms=
4490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
4491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$NM" && test -n "$global_symbol_pipe"; then
4492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dlsyms="${outputname}S.c"
4493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
4495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$dlsyms"; then
4499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $dlsyms in
4500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	"") ;;
4501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.c)
4502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Discover the nlist of each of the dlfiles.
4503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  nlist="$output_objdir/${outputname}.nm"
4504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$rm $nlist ${nlist}S ${nlist}T"
4506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
4507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Parse the name list into a source file.
4509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "creating $output_objdir/$dlsyms"
4510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
4512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
4513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
4514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifdef __cplusplus
4516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectextern \"C\" {
4517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* Prevent the only kind of declaration conflicts we can make. */
4520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#define lt_preloaded_symbols some_other_symbol
4521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* External symbol declarations for the compiler. */\
4523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$dlself" = yes; then
4526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "generating symbol list for \`$output'"
4527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
4529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Add our own program objects to the symbol list.
4531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
4532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for arg in $progfiles; do
4533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "extracting global C symbols from \`$arg'"
4534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
4536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$exclude_expsyms"; then
4538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
4539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$mv "$nlist"T "$nlist"'
4540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$export_symbols_regex"; then
4543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
4544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval '$mv "$nlist"T "$nlist"'
4545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Prepare the list of exported symbols
4548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$export_symbols"; then
4549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      export_symbols="$output_objdir/$outputname.exp"
4550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run $rm $export_symbols
4551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
4552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              case $host in
4553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              *cygwin* | *mingw* )
4554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
4556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                ;;
4557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              esac
4558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
4560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
4561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run eval 'mv "$nlist"T "$nlist"'
4562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              case $host in
4563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              *cygwin* | *mingw* )
4564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
4565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
4566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                ;;
4567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              esac
4568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for arg in $dlprefiles; do
4572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "extracting global C symbols from \`$arg'"
4573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
4574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval '$echo ": $name " >> "$nlist"'
4575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
4576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$run"; then
4579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Make sure we have at least an empty file.
4580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    test -f "$nlist" || : > "$nlist"
4581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$exclude_expsyms"; then
4583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
4584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $mv "$nlist"T "$nlist"
4585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Try sorting and uniquifying the output.
4588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if grep -v "^: " < "$nlist" |
4589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if sort -k 3 </dev/null >/dev/null 2>&1; then
4590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  sort -k 3
4591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		else
4592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  sort +2
4593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi |
4594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		uniq > "$nlist"S; then
4595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      :
4596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      grep -v "^: " < "$nlist" > "$nlist"S
4598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -f "$nlist"S; then
4601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
4602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
4603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
4604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
4605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo >> "$output_objdir/$dlsyms" "\
4607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#undef lt_preloaded_symbols
4609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (__STDC__) && __STDC__
4611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define lt_ptr void *
4612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#else
4613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define lt_ptr char *
4614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define const
4615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* The mapping between symbol names and symbols. */
4618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case $host in
4621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *cygwin* | *mingw* )
4622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> "$output_objdir/$dlsyms" "\
4623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* DATA imports from DLLs on WIN32 can't be const, because
4624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   runtime relocations are performed -- see ld's documentation
4625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   on pseudo-relocs */
4626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectstruct {
4627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
4629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    * )
4630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> "$output_objdir/$dlsyms" "\
4631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectconst struct {
4632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
4634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
4635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> "$output_objdir/$dlsyms" "\
4638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  const char *name;
4639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  lt_ptr address;
4640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
4641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlt_preloaded_symbols[] =
4642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{\
4643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
4646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo >> "$output_objdir/$dlsyms" "\
4648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {0, (lt_ptr) 0}
4649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project};
4650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* This works around a problem in FreeBSD linker */
4652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifdef FREEBSD_WORKAROUND
4653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectstatic const void *lt_preloaded_setup() {
4654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return lt_preloaded_symbols;
4655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
4656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifdef __cplusplus
4659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
4660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif\
4661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
4662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  pic_flag_for_symtable=
4665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $host in
4666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # compiling the symbol table file with pic_flag works around
4667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # a FreeBSD bug that causes programs to crash when -lm is
4668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # linked before any other PIC object.  But we must not use
4669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # pic_flag when linking with -static.  The problem exists in
4670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
4671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
4672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$compile_command " in
4673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" -static "*) ;;
4674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
4675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac;;
4676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *-*-hpux*)
4677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "$compile_command " in
4678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" -static "*) ;;
4679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) pic_flag_for_symtable=" $pic_flag";;
4680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
4681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Now compile the dynamic symbol file.
4684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
4685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval '(cd $output_objdir && $LTCC  $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
4686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Clean up the generated files.
4688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
4689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
4690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Transform the symbol file into the correct name.
4692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          case $host in
4693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          *cygwin* | *mingw* )
4694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            if test -f "$output_objdir/${outputname}.def" ; then
4695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
4697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            else
4698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project             fi
4701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            ;;
4702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          * )
4703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
4705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            ;;
4706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          esac
4707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
4708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
4709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
4710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
4711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
4712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
4714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We keep going just in case the user didn't refer to
4715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
4716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# really was required.
4717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Nullify the symbol file.
4719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
4720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
4721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
4724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Replace the output file specification.
4725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link_command="$compile_command$compile_rpath"
4727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We have no uninstalled library dependencies, so finalize right now.
4729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$link_command"
4730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$link_command"
4731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit_status=$?
4732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Delete the generated files.
4734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$dlsyms"; then
4735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$rm $output_objdir/${outputname}S.${objext}"
4736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run $rm "$output_objdir/${outputname}S.${objext}"
4737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $exit_status
4740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$shlibpath_var"; then
4743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We should set the shlibpath_var
4744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	rpath=
4745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for dir in $temp_rpath; do
4746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $dir in
4747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  [\\/]* | [A-Za-z]:[\\/]*)
4748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Absolute path.
4749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath$dir:"
4750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
4751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *)
4752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Relative path: add a thisdir entry.
4753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath\$thisdir/$dir:"
4754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
4755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
4756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	temp_rpath="$rpath"
4758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$compile_shlibpath$finalize_shlibpath"; then
4761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
4762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$finalize_shlibpath"; then
4764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
4765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile_var=
4768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      finalize_var=
4769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$runpath_var"; then
4770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$perm_rpath"; then
4771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # We should set the runpath_var.
4772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  rpath=
4773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for dir in $perm_rpath; do
4774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath$dir:"
4775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
4777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$finalize_perm_rpath"; then
4779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # We should set the runpath_var.
4780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  rpath=
4781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for dir in $finalize_perm_rpath; do
4782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rpath="$rpath$dir:"
4783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
4784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
4785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$no_install" = yes; then
4789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# We don't need to create a wrapper script.
4790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link_command="$compile_var$compile_command$compile_rpath"
4791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Replace the output file specification.
4792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
4793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Delete the old output file.
4794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run $rm $output
4795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Link the executable and exit
4796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$link_command"
4797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$link_command" || exit $?
4798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_SUCCESS
4799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$hardcode_action" = relink; then
4802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Fast installation is not supported
4803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	link_command="$compile_var$compile_command$compile_rpath"
4804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	relink_command="$finalize_var$finalize_command$finalize_rpath"
4805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
4807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: \`$output' will be relinked during installation" 1>&2
4808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
4809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$fast_install" != no; then
4810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  link_command="$finalize_var$compile_command$finalize_rpath"
4811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$fast_install" = yes; then
4812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
4813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # fast_install is set to needless
4815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command=
4816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
4818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  link_command="$compile_var$compile_command$compile_rpath"
4819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command="$finalize_var$finalize_command$finalize_rpath"
4820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
4821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Replace the output file specification.
4824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
4825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Delete the old output files.
4827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
4828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$link_command"
4830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run eval "$link_command" || exit $?
4831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now create the wrapper script.
4833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "creating $output"
4834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Quote the relink command for shipping.
4836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$relink_command"; then
4837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Preserve any variables that may affect compiler behavior
4838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for var in $variables_saved_for_relink; do
4839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if eval test -z \"\${$var+set}\"; then
4840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
4841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  elif eval var_value=\$$var; test -z "$var_value"; then
4842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command="$var=; export $var; $relink_command"
4843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
4844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
4845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
4846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
4847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
4848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	relink_command="(cd `pwd`; $relink_command)"
4849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
4850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Quote $echo for shipping.
4853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
4854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $progpath in
4855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
4856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
4857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
4859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
4860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
4861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
4862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Only actually do things if our run command is non-null.
4864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$run"; then
4865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# win32 will think the script is a binary if it has
4866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# a .exe suffix, so we strip it off here.
4867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $output in
4868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
4869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# test for cygwin because mv fails w/o .exe extensions
4871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
4872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *cygwin*)
4873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exeext=.exe
4874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
4875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) exeext= ;;
4876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
4877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
4878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *cygwin* | *mingw* )
4879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            output_name=`basename $output`
4880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            output_path=`dirname $output`
4881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            cwrappersource="$output_path/$objdir/lt-$output_name.c"
4882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            cwrapper="$output_path/$output_name.exe"
4883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            $rm $cwrappersource $cwrapper
4884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
4885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cat > $cwrappersource <<EOF
4887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
4889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
4890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   The $output program cannot be directly executed until all the libtool
4892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   libraries that it depends on are installed.
4893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   This wrapper executable should never be moved out of the build directory.
4895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   If it is, it will not operate correctly.
4896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   Currently, it simply execs the wrapper *script* "/bin/sh $output",
4898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   but could eventually absorb all of the scripts functionality and
4899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   exec $objdir/$outputname directly.
4900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project*/
4901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
4902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    cat >> $cwrappersource<<"EOF"
4903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <stdio.h>
4904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <stdlib.h>
4905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <unistd.h>
4906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <malloc.h>
4907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <stdarg.h>
4908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <assert.h>
4909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <string.h>
4910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <ctype.h>
4911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#include <sys/stat.h>
4912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined(PATH_MAX)
4914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define LT_PATHMAX PATH_MAX
4915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#elif defined(MAXPATHLEN)
4916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define LT_PATHMAX MAXPATHLEN
4917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#else
4918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define LT_PATHMAX 1024
4919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifndef DIR_SEPARATOR
4922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define DIR_SEPARATOR '/'
4923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define PATH_SEPARATOR ':'
4924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
4927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  defined (__OS2__)
4928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define HAVE_DOS_BASED_FILE_SYSTEM
4929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ifndef DIR_SEPARATOR_2
4930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#  define DIR_SEPARATOR_2 '\\'
4931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# endif
4932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ifndef PATH_SEPARATOR_2
4933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#  define PATH_SEPARATOR_2 ';'
4934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# endif
4935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifndef DIR_SEPARATOR_2
4938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
4939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#else /* DIR_SEPARATOR_2 */
4940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define IS_DIR_SEPARATOR(ch) \
4941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
4942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif /* DIR_SEPARATOR_2 */
4943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#ifndef PATH_SEPARATOR_2
4945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
4946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#else /* PATH_SEPARATOR_2 */
4947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
4948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif /* PATH_SEPARATOR_2 */
4949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
4951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#define XFREE(stale) do { \
4952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (stale) { free ((void *) stale); stale = 0; } \
4953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project} while (0)
4954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* -DDEBUG is fairly common in CFLAGS.  */
4956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#undef DEBUG
4957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined DEBUGWRAPPER
4958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__)
4959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#else
4960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# define DEBUG(format, ...)
4961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
4962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectconst char *program_name = NULL;
4964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectvoid * xmalloc (size_t num);
4966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar * xstrdup (const char *string);
4967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectconst char * base_name (const char *name);
4968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar * find_executable(const char *wrapper);
4969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectint    check_executable(const char *path);
4970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar * strendzap(char *str, const char *pat);
4971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectvoid lt_fatal (const char *message, ...);
4972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectint
4974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectmain (int argc, char *argv[])
4975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
4976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  char **newargz;
4977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  int i;
4978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  program_name = (char *) xstrdup (base_name (argv[0]));
4980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  DEBUG("(main) argv[0]      : %s\n",argv[0]);
4981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  DEBUG("(main) program_name : %s\n",program_name);
4982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  newargz = XMALLOC(char *, argc+2);
4983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
4984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            cat >> $cwrappersource <<EOF
4986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  newargz[0] = (char *) xstrdup("$SHELL");
4987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
4988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
4989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            cat >> $cwrappersource <<"EOF"
4990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  newargz[1] = find_executable(argv[0]);
4991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (newargz[1] == NULL)
4992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lt_fatal("Couldn't find %s", argv[0]);
4993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  DEBUG("(main) found exe at : %s\n",newargz[1]);
4994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* we know the script has the same name, without the .exe */
4995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* so make sure newargz[1] doesn't end in .exe */
4996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  strendzap(newargz[1],".exe");
4997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  for (i = 1; i < argc; i++)
4998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    newargz[i+1] = xstrdup(argv[i]);
4999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  newargz[argc+1] = NULL;
5000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  for (i=0; i<argc+1; i++)
5002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {
5003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    DEBUG("(main) newargz[%d]   : %s\n",i,newargz[i]);
5004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;
5005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  }
5006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
5008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            case $host_os in
5010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              mingw*)
5011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                cat >> $cwrappersource <<EOF
5012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  execv("$SHELL",(char const **)newargz);
5013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
5014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              ;;
5015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              *)
5016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                cat >> $cwrappersource <<EOF
5017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  execv("$SHELL",newargz);
5018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
5019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project              ;;
5020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            esac
5021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            cat >> $cwrappersource <<"EOF"
5023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return 127;
5024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectvoid *
5027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectxmalloc (size_t num)
5028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  void * p = (void *) malloc (num);
5030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (!p)
5031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lt_fatal ("Memory exhausted");
5032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return p;
5034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar *
5037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectxstrdup (const char *string)
5038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
5040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project;
5041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectconst char *
5044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectbase_name (const char *name)
5045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  const char *base;
5047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* Skip over the disk name in MSDOS pathnames. */
5050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (isalpha ((unsigned char)name[0]) && name[1] == ':')
5051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    name += 2;
5052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
5053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  for (base = name; *name; name++)
5055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (IS_DIR_SEPARATOR (*name))
5056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      base = name + 1;
5057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return base;
5058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectint
5061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcheck_executable(const char * path)
5062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  struct stat st;
5064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  DEBUG("(check_executable)  : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!");
5066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if ((!path) || (!*path))
5067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    return 0;
5068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if ((stat (path, &st) >= 0) &&
5070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      (
5071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */
5072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (S_IXOTH)
5073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       ((st.st_mode & S_IXOTH) == S_IXOTH) ||
5074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
5075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (S_IXGRP)
5076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       ((st.st_mode & S_IXGRP) == S_IXGRP) ||
5077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
5078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       ((st.st_mode & S_IXUSR) == S_IXUSR))
5079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      )
5080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    return 1;
5081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  else
5082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    return 0;
5083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project/* Searches for the full path of the wrapper.  Returns
5086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project   newly allocated full path name if found, NULL otherwise */
5087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar *
5088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfind_executable (const char* wrapper)
5089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  int has_slash = 0;
5091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  const char* p;
5092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  const char* p_next;
5093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* static buffer for getcwd */
5094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  char tmp[LT_PATHMAX + 1];
5095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  int tmp_len;
5096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  char* concat_name;
5097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  DEBUG("(find_executable)  : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!");
5099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if ((wrapper == NULL) || (*wrapper == '\0'))
5101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    return NULL;
5102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* Absolute path? */
5104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':')
5106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {
5107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    concat_name = xstrdup (wrapper);
5108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (check_executable(concat_name))
5109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      return concat_name;
5110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    XFREE(concat_name);
5111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  }
5112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  else
5113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {
5114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
5115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (IS_DIR_SEPARATOR (wrapper[0]))
5116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    {
5117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      concat_name = xstrdup (wrapper);
5118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if (check_executable(concat_name))
5119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        return concat_name;
5120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      XFREE(concat_name);
5121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    }
5122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
5123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  }
5124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#endif
5125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  for (p = wrapper; *p; p++)
5127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (*p == '/')
5128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    {
5129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      has_slash = 1;
5130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      break;
5131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    }
5132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (!has_slash)
5133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {
5134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    /* no slashes; search PATH */
5135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    const char* path = getenv ("PATH");
5136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (path != NULL)
5137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    {
5138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for (p = path; *p; p = p_next)
5139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      {
5140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        const char* q;
5141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        size_t p_len;
5142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        for (q = p; *q; q++)
5143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          if (IS_PATH_SEPARATOR(*q))
5144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            break;
5145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        p_len = q - p;
5146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        p_next = (*q == '\0' ? q : q + 1);
5147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        if (p_len == 0)
5148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        {
5149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          /* empty path: current directory */
5150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          if (getcwd (tmp, LT_PATHMAX) == NULL)
5151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project            lt_fatal ("getcwd failed");
5152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          tmp_len = strlen(tmp);
5153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          memcpy (concat_name, tmp, tmp_len);
5155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          concat_name[tmp_len] = '/';
5156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          strcpy (concat_name + tmp_len + 1, wrapper);
5157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        }
5158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        else
5159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        {
5160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1);
5161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          memcpy (concat_name, p, p_len);
5162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          concat_name[p_len] = '/';
5163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          strcpy (concat_name + p_len + 1, wrapper);
5164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        }
5165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        if (check_executable(concat_name))
5166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          return concat_name;
5167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        XFREE(concat_name);
5168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      }
5169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    }
5170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    /* not found in PATH; assume curdir */
5171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  }
5172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  /* Relative path | not found in path: prepend cwd */
5173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (getcwd (tmp, LT_PATHMAX) == NULL)
5174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    lt_fatal ("getcwd failed");
5175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  tmp_len = strlen(tmp);
5176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1);
5177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  memcpy (concat_name, tmp, tmp_len);
5178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  concat_name[tmp_len] = '/';
5179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  strcpy (concat_name + tmp_len + 1, wrapper);
5180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (check_executable(concat_name))
5182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    return concat_name;
5183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  XFREE(concat_name);
5184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return NULL;
5185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectchar *
5188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectstrendzap(char *str, const char *pat)
5189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  size_t len, patlen;
5191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  assert(str != NULL);
5193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  assert(pat != NULL);
5194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  len = strlen(str);
5196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  patlen = strlen(pat);
5197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (patlen <= len)
5199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  {
5200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    str += len - patlen;
5201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if (strcmp(str, pat) == 0)
5202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *str = '\0';
5203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  }
5204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  return str;
5205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectstatic void
5208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlt_error_core (int exit_status, const char * mode,
5209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          const char * message, va_list ap)
5210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fprintf (stderr, "%s: %s: ", program_name, mode);
5212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  vfprintf (stderr, message, ap);
5213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fprintf (stderr, ".\n");
5214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if (exit_status >= 0)
5216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit (exit_status);
5217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectvoid
5220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlt_fatal (const char *message, ...)
5221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project{
5222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  va_list ap;
5223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  va_start (ap, message);
5224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
5225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  va_end (ap);
5226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project}
5227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEOF
5228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          # we should really use a build-platform specific compiler
5229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          # here, but OTOH, the wrappers (shell script and this C one)
5230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          # are only useful if you want to execute the "real" binary.
5231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          # Since the "real" binary is built for $host, then this
5232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          # wrapper might as well be built for $host, too.
5233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource
5234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project          ;;
5235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        esac
5236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        $rm $output
5237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
5238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo > $output "\
5240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#! $SHELL
5241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# $output - temporary wrapper script for $objdir/$outputname
5243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
5245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The $output program cannot be directly executed until all the libtool
5246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# libraries that it depends on are installed.
5247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
5248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# This wrapper script should never be moved out of the build directory.
5249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# If it is, it will not operate correctly.
5250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Sed substitution that helps us do robust quoting.  It backslashifies
5252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# metacharacters that are still active within double-quoted strings.
5253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectXsed='${SED} -e 1s/^X//'
5254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectsed_quote_subst='$sed_quote_subst'
5255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The HP-UX ksh and POSIX shell print the target directory to stdout
5257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# if CDPATH is set.
5258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
5259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrelink_command=\"$relink_command\"
5261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# This environment variable determines our operation mode.
5263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test \"\$libtool_install_magic\" = \"$magic\"; then
5264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # install mode needs the following variable:
5265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  notinst_deplibs='$notinst_deplibs'
5266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectelse
5267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # When we are sourced in execute mode, \$file and \$echo are already set.
5268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test \"\$libtool_execute_magic\" != \"$magic\"; then
5269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    echo=\"$qecho\"
5270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    file=\"\$0\"
5271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Make sure echo works.
5272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test \"X\$1\" = X--no-reexec; then
5273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Discard the --no-reexec flag, and continue.
5274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      shift
5275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
5276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Yippee, \$echo works!
5277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      :
5278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
5279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Restart under the correct shell, and then maybe \$echo will work.
5280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
5281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi\
5283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo >> $output "\
5285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Find the directory that this script lives in.
5287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
5288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
5289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Follow symbolic links until we get to the real thisdir.
5291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
5292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  while test -n \"\$file\"; do
5293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
5294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # If there was a directory component, then change thisdir.
5296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test \"x\$destdir\" != \"x\$file\"; then
5297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case \"\$destdir\" in
5298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
5299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *) thisdir=\"\$thisdir/\$destdir\" ;;
5300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
5301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
5304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
5305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  done
5306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # Try to get the absolute directory name.
5308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  absdir=\`cd \"\$thisdir\" && pwd\`
5309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  test -n \"\$absdir\" && thisdir=\"\$absdir\"
5310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$fast_install" = yes; then
5313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  program=lt-'$outputname'$exeext
5315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  progdir=\"\$thisdir/$objdir\"
5316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test ! -f \"\$progdir/\$program\" || \\
5318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
5319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
5320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    file=\"\$\$-\$program\"
5322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test ! -d \"\$progdir\"; then
5324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $mkdir \"\$progdir\"
5325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
5326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $rm \"\$progdir/\$file\"
5327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi"
5328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # relink executable if necessary
5332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n \"\$relink_command\"; then
5333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
5334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
5335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo \"\$relink_command_output\" >&2
5336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$rm \"\$progdir/\$file\"
5337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
5338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
5342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    { $rm \"\$progdir/\$program\";
5343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
5344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $rm \"\$progdir/\$file\"
5345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi"
5346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  program='$outputname'
5349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  progdir=\"\$thisdir/$objdir\"
5350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo >> $output "\
5354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test -f \"\$progdir/\$program\"; then"
5356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Export our shlibpath_var if we have one.
5358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
5359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Add our own library path to $shlibpath_var
5361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
5362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Some systems cannot cope with colon-terminated $shlibpath_var
5364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # The second colon is a workaround for a bug in BeOS R4 sed
5365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
5366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    export $shlibpath_var
5368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# fixup the dll searchpath if we need to.
5372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$dllsearchpath"; then
5373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Add the dll search path components to the executable PATH
5375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    PATH=$dllsearchpath:\$PATH
5376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo >> $output "\
5380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test \"\$libtool_execute_magic\" != \"$magic\"; then
5381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Run the actual program with our arguments.
5382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
5384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Backslashes separate directories on plain windows
5385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*-*-mingw | *-*-os2*)
5386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
5388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
5390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
5392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo >> $output "\
5393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exec \"\$progdir/\$program\" \${1+\"\$@\"}
5394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
5396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
5397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo >> $output "\
5398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
5399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
5400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  else
5402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # The program doesn't exist.
5403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
5404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    \$echo \"This script is just a wrapper for \$program.\" 1>&2
5405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
5406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_FAILURE
5407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi
5408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi\
5409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"
5410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	chmod +x $output
5411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_SUCCESS
5413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
5414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
5415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # See if we need to build an old-fashioned archive.
5417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for oldlib in $oldlibs; do
5418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$build_libtool_libs" = convenience; then
5420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	oldobjs="$libobjs_save"
5421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	addlibs="$convenience"
5422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	build_libtool_libs=no
5423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
5424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$build_libtool_libs" = module; then
5425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  oldobjs="$libobjs_save"
5426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  build_libtool_libs=no
5427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  oldobjs="$old_deplibs $non_pic_objects"
5429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	addlibs="$old_convenience"
5431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$addlibs"; then
5434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	gentop="$output_objdir/${outputname}x"
5435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	generated="$generated $gentop"
5436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	func_extract_archives $gentop $addlibs
5438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	oldobjs="$oldobjs $func_extract_archives_result"
5439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Do each command in the archive commands.
5442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
5443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       cmds=$old_archive_from_new_cmds
5444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
5445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# POSIX demands no paths to be encoded in archives.  We have
5446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# to avoid creating archives with duplicate basenames if we
5447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# might have to extract them afterwards, e.g., when creating a
5448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# static archive out of a convenience library, or when linking
5449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# the entirety of a libtool archive into another (currently
5450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# not supported by libtool).
5451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (for obj in $oldobjs
5452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    do
5453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
5454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done | sort | sort -uc >/dev/null 2>&1); then
5455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  :
5456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "copying selected object files to avoid basename conflicts..."
5458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$gentop"; then
5460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    gentop="$output_objdir/${outputname}x"
5461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    generated="$generated $gentop"
5462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "${rm}r $gentop"
5464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run ${rm}r "$gentop"
5465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$mkdir $gentop"
5466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run $mkdir "$gentop"
5467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit_status=$?
5468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$exit_status" -ne 0 && test ! -d "$gentop"; then
5469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      exit $exit_status
5470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
5471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_oldobjs=$oldobjs
5474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  oldobjs=
5475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  counter=1
5476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for obj in $save_oldobjs
5477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  do
5478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
5479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case " $oldobjs " in
5480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    " ") oldobjs=$obj ;;
5481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *[\ /]"$objbase "*)
5482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      while :; do
5483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# Make sure we don't pick an alternate name that also
5484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		# overlaps.
5485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		newobj=lt$counter-$objbase
5486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		counter=`expr $counter + 1`
5487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		case " $oldobjs " in
5488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*[\ /]"$newobj "*) ;;
5489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
5490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		esac
5491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      done
5492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
5493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run ln "$obj" "$gentop/$newobj" ||
5494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $run cp "$obj" "$gentop/$newobj"
5495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      oldobjs="$oldobjs $gentop/$newobj"
5496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      ;;
5497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) oldobjs="$oldobjs $obj" ;;
5498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
5499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
5500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval cmds=\"$old_archive_cmds\"
5503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if len=`expr "X$cmds" : ".*"` &&
5505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
5506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cmds=$old_archive_cmds
5507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # the command line is too long to link in one step, link in parts
5509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "using piecewise archive linking..."
5510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_RANLIB=$RANLIB
5511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  RANLIB=:
5512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  objlist=
5513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  concat_cmds=
5514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_oldobjs=$oldobjs
5515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Is there a better way of finding the last object in the list?
5517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for obj in $save_oldobjs
5518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  do
5519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    last_oldobj=$obj
5520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
5521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for obj in $save_oldobjs
5522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  do
5523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    oldobjs="$objlist $obj"
5524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    objlist="$objlist $obj"
5525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval test_cmds=\"$old_archive_cmds\"
5526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
5527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	       test "$len" -le "$max_cmd_len"; then
5528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      :
5529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
5530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # the above command should be used before it gets too long
5531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      oldobjs=$objlist
5532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$obj" = "$last_oldobj" ; then
5533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	        RANLIB=$save_RANLIB
5534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
5535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
5536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
5537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      objlist=
5538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
5539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
5540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  RANLIB=$save_RANLIB
5541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  oldobjs=$objlist
5542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "X$oldobjs" = "X" ; then
5543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval cmds=\"\$concat_cmds\"
5544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
5545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
5546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      save_ifs="$IFS"; IFS='~'
5550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for cmd in $cmds; do
5551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project        eval cmd=\"$cmd\"
5552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
5553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$cmd"
5554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$cmd" || exit $?
5555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
5556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      IFS="$save_ifs"
5557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
5558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$generated"; then
5560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "${rm}r$generated"
5561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run ${rm}r$generated
5562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Now create the libtool archive.
5565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $output in
5566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *.la)
5567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      old_library=
5568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test "$build_old_libs" = yes && old_library="$libname.$libext"
5569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "creating $output"
5570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Preserve any variables that may affect compiler behavior
5572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for var in $variables_saved_for_relink; do
5573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if eval test -z \"\${$var+set}\"; then
5574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
5575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	elif eval var_value=\$$var; test -z "$var_value"; then
5576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command="$var=; export $var; $relink_command"
5577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
5579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
5580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
5582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Quote the link command for shipping.
5583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
5584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
5585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$hardcode_automatic" = yes ; then
5586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	relink_command=
5587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Only create the output if not a dry run.
5591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$run"; then
5592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	for installed in no yes; do
5593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$installed" = yes; then
5594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -z "$install_libdir"; then
5595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      break
5596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
5597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    output="$output_objdir/$outputname"i
5598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Replace all uninstalled libtool libraries with the installed ones
5599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdependency_libs=
5600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for deplib in $dependency_libs; do
5601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $deplib in
5602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *.la)
5603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
5604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
5605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test -z "$libdir"; then
5606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
5607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  exit $EXIT_FAILURE
5608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
5609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		newdependency_libs="$newdependency_libs $libdir/$name"
5610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		;;
5611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) newdependency_libs="$newdependency_libs $deplib" ;;
5612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
5613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dependency_libs="$newdependency_libs"
5615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlfiles=
5616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for lib in $dlfiles; do
5617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -z "$libdir"; then
5620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		exit $EXIT_FAILURE
5622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
5623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlfiles="$newdlfiles $libdir/$name"
5624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlfiles="$newdlfiles"
5626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlprefiles=
5627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for lib in $dlprefiles; do
5628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
5629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
5630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test -z "$libdir"; then
5631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
5632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		exit $EXIT_FAILURE
5633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
5634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlprefiles="$newdlprefiles $libdir/$name"
5635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlprefiles="$newdlprefiles"
5637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
5638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlfiles=
5639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for lib in $dlfiles; do
5640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $lib in
5641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) abs=`pwd`"/$lib" ;;
5643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
5644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlfiles="$newdlfiles $abs"
5645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlfiles="$newdlfiles"
5647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    newdlprefiles=
5648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for lib in $dlprefiles; do
5649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $lib in
5650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
5651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		*) abs=`pwd`"/$lib" ;;
5652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
5653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      newdlprefiles="$newdlprefiles $abs"
5654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    dlprefiles="$newdlprefiles"
5656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $rm $output
5658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # place dlname in correct position for cygwin
5659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  tdlname=$dlname
5660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $host,$output,$installed,$module,$dlname in
5661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
5662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
5663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo > $output "\
5664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# $outputname - a libtool library file
5665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
5666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project#
5667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Please DO NOT delete this file!
5668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# It is necessary for linking the library.
5669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The name that we can dlopen(3).
5671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdlname='$tdlname'
5672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Names of this library.
5674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlibrary_names='$library_names'
5675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The name of the static archive.
5677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectold_library='$old_library'
5678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Libraries that this one depends upon.
5680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdependency_libs='$dependency_libs'
5681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Version information for $libname.
5683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcurrent=$current
5684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectage=$age
5685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrevision=$revision
5686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Is this an already installed library?
5688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectinstalled=$installed
5689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Should we warn about portability when linking against -modules?
5691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectshouldnotlink=$module
5692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Files to dlopen/dlpreopen
5694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdlopen='$dlfiles'
5695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdlpreopen='$dlprefiles'
5696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Directory that this library needs to be installed in:
5698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlibdir='$install_libdir'"
5699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$installed" = no && test "$need_relink" = yes; then
5700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo >> $output "\
5701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrelink_command=\"$relink_command\""
5702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	done
5704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Do a symbolic link so that the libtool archive can be found in
5707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # LD_LIBRARY_PATH before the program is installed.
5708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
5709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
5710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
5711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
5712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_SUCCESS
5713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
5714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool install mode
5716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  install)
5717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: install"
5718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # There may be an optional sh(1) argument at the beginning of
5720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # install_prog (especially on Windows NT).
5721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
5722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       # Allow the use of GNU shtool's install command.
5723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       $echo "X$nonopt" | grep shtool > /dev/null; then
5724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Aesthetically quote it.
5725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
5726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
5727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg="\"$arg\""
5729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
5731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      install_prog="$arg "
5732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg="$1"
5733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      shift
5734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
5735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      install_prog=
5736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg=$nonopt
5737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # The real first argument should be the name of the installation program.
5740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Aesthetically quote it.
5741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $arg in
5743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg="\"$arg\""
5745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
5746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
5747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    install_prog="$install_prog$arg"
5748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # We need to accept at least all the BSD install flags.
5750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dest=
5751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    files=
5752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    opts=
5753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    prev=
5754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    install_type=
5755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    isdir=no
5756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    stripme=
5757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for arg
5758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    do
5759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$dest"; then
5760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	files="$files $dest"
5761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dest=$arg
5762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
5763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
5766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -d) isdir=yes ;;
5767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -f) 
5768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      	case " $install_prog " in
5769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*[\\\ /]cp\ *) ;;
5770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) prev=$arg ;;
5771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
5772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -g | -m | -o) prev=$arg ;;
5774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -s)
5775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	stripme=" -s"
5776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
5777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -*)
5779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
5781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If the previous option needed an argument, then skip it.
5782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$prev"; then
5783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  prev=
5784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dest=$arg
5786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
5787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
5790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Aesthetically quote the argument.
5792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
5793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
5794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
5795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	arg="\"$arg\""
5796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
5798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      install_prog="$install_prog $arg"
5799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
5800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$install_prog"; then
5802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify an install program" 1>&2
5803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
5804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
5805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$prev"; then
5808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: the \`$prev' option requires an argument" 1>&2
5809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
5810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
5811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$files"; then
5814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -z "$dest"; then
5815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: no file or destination specified" 1>&2
5816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
5817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: you must specify a destination" 1>&2
5818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
5820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
5821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Strip any trailing slash from the destination.
5824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
5825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Check to see that the destination is a directory.
5827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    test -d "$dest" && isdir=yes
5828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test "$isdir" = yes; then
5829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      destdir="$dest"
5830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      destname=
5831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
5832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
5833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test "X$destdir" = "X$dest" && destdir=.
5834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
5835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Not a directory, so check to see that there is only one file specified.
5837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      set dummy $files
5838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$#" -gt 2; then
5839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: \`$dest' is not a directory" 1>&2
5840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$help" 1>&2
5841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
5842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
5843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
5844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    case $destdir in
5845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    [\\/]* | [A-Za-z]:[\\/]*) ;;
5846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    *)
5847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for file in $files; do
5848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $file in
5849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.lo) ;;
5850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
5851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
5852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
5853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
5854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
5855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
5856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
5857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      ;;
5858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    esac
5859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # This variable tells wrapper scripts just to set variables rather
5861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # than running their programs.
5862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libtool_install_magic="$magic"
5863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5864b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    staticlibs=
5865b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    future_libdirs=
5866b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    current_libdirs=
5867b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for file in $files; do
5868b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5869b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Do each installation.
5870b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $file in
5871b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.$libext)
5872b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Do the static libraries later.
5873b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	staticlibs="$staticlibs $file"
5874b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
5875b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5876b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.la)
5877b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check to see that this really is a libtool archive.
5878b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
5879b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5880b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
5881b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
5882b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
5883b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5884b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5885b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	library_names=
5886b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	old_library=
5887b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	relink_command=
5888b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If there is no directory component, then add one.
5889b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $file in
5890b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*/* | *\\*) . $file ;;
5891b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) . ./$file ;;
5892b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
5893b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5894b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Add the libdir to current_libdirs if it is the destination.
5895b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "X$destdir" = "X$libdir"; then
5896b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$current_libdirs " in
5897b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
5898b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) current_libdirs="$current_libdirs $libdir" ;;
5899b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
5900b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
5901b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Note the libdir as a future libdir.
5902b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$future_libdirs " in
5903b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $libdir "*) ;;
5904b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) future_libdirs="$future_libdirs $libdir" ;;
5905b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
5906b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5907b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5908b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
5909b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test "X$dir" = "X$file/" && dir=
5910b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir="$dir$objdir"
5911b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5912b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$relink_command"; then
5913b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Determine the prefix the user has applied to our future dir.
5914b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
5915b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5916b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Don't allow the user to place us outside of our expected
5917b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # location b/c this prevents finding dependent libraries that
5918b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # are installed to the same prefix.
5919b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # At present, this check doesn't affect windows .dll's that
5920b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # are installed into $libdir/../bin (currently, that works fine)
5921b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # but it's something to keep an eye on.
5922b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$inst_prefix_dir" = "$destdir"; then
5923b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
5924b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
5925b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5926b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5927b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$inst_prefix_dir"; then
5928b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Stick the inst_prefix_dir data into the link command.
5929b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
5930b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
5931b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
5932b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5933b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5934b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: warning: relinking \`$file'" 1>&2
5935b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$relink_command"
5936b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if $run eval "$relink_command"; then :
5937b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
5938b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
5939b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
5940b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5941b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5942b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5943b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# See the names of the shared library.
5944b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	set dummy $library_names
5945b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$2"; then
5946b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  realname="$2"
5947b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  shift
5948b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  shift
5949b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5950b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  srcname="$realname"
5951b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$relink_command" && srcname="$realname"T
5952b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5953b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Install the shared library and build the symlinks.
5954b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$install_prog $dir/$srcname $destdir/$realname"
5955b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
5956b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$stripme" && test -n "$striplib"; then
5957b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$striplib $destdir/$realname"
5958b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval "$striplib $destdir/$realname" || exit $?
5959b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5960b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5961b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$#" -gt 0; then
5962b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Delete the old symlinks, and create new ones.
5963b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Try `ln -sf' first, because the `ln' binary might depend on
5964b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
5965b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # so we also need to try rm && ln -s.
5966b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    for linkname
5967b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    do
5968b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$linkname" != "$realname"; then
5969b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5970b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })"
5971b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
5972b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    done
5973b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
5974b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5975b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Do each command in the postinstall commands.
5976b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  lib="$destdir/$realname"
5977b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cmds=$postinstall_cmds
5978b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_ifs="$IFS"; IFS='~'
5979b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for cmd in $cmds; do
5980b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    IFS="$save_ifs"
5981b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval cmd=\"$cmd\"
5982b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$cmd"
5983b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval "$cmd" || {
5984b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      lt_exit=$?
5985b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5986b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Restore the uninstalled library and exit
5987b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if test "$mode" = relink; then
5988b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)'
5989b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
5990b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5991b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      exit $lt_exit
5992b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    }
5993b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
5994b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
5995b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
5996b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
5997b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Install the pseudo-library for information purposes.
5998b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
5999b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	instname="$dir/$name"i
6000b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$install_prog $instname $destdir/$name"
6001b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$install_prog $instname $destdir/$name" || exit $?
6002b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6003b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Maybe install the static library, too.
6004b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
6005b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6006b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6007b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.lo)
6008b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Install (i.e. copy) a libtool object.
6009b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6010b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Figure out destination file name, if it wasn't already specified.
6011b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$destname"; then
6012b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile="$destdir/$destname"
6013b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
6014b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6015b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile="$destdir/$destfile"
6016b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6017b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6018b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Deduce the name of the destination old-style object file.
6019b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $destfile in
6020b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.lo)
6021b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
6022b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
6023b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*.$objext)
6024b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  staticdest="$destfile"
6025b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile=
6026b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
6027b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
6028b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
6029b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
6030b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
6031b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
6032b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6033b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6034b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Install the libtool object if requested.
6035b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$destfile"; then
6036b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$install_prog $file $destfile"
6037b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$install_prog $file $destfile" || exit $?
6038b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6039b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6040b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Install the old object if enabled.
6041b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$build_old_libs" = yes; then
6042b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Deduce the name of the old-style object file.
6043b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
6044b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6045b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $show "$install_prog $staticobj $staticdest"
6046b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
6047b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6048b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_SUCCESS
6049b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6050b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6051b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
6052b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Figure out destination file name, if it wasn't already specified.
6053b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$destname"; then
6054b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile="$destdir/$destname"
6055b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
6056b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6057b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  destfile="$destdir/$destfile"
6058b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6059b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6060b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If the file is missing, and there is a .exe on the end, strip it
6061b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# because it is most likely a libtool script we actually want to
6062b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# install
6063b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	stripped_ext=""
6064b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $file in
6065b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.exe)
6066b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test ! -f "$file"; then
6067b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      file=`$echo $file|${SED} 's,.exe$,,'`
6068b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      stripped_ext=".exe"
6069b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6070b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6071b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6072b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6073b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Do a test to see if this is really a libtool program.
6074b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $host in
6075b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*cygwin*|*mingw*)
6076b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
6077b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6078b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*)
6079b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    wrapper=$file
6080b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6081b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6082b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
6083b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  notinst_deplibs=
6084b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command=
6085b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6086b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Note that it is not necessary on cygwin/mingw to append a dot to
6087b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6088b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6089b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # `FILE.' does not work on cygwin managed mounts.
6090b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  #
6091b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # If there is no directory component, then add one.
6092b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $wrapper in
6093b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  */* | *\\*) . ${wrapper} ;;
6094b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) . ./${wrapper} ;;
6095b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6096b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6097b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Check the variables that should have been set.
6098b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -z "$notinst_deplibs"; then
6099b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
6100b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    exit $EXIT_FAILURE
6101b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
6102b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6103b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  finalize=yes
6104b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for lib in $notinst_deplibs; do
6105b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Check to see that each library is installed.
6106b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libdir=
6107b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -f "$lib"; then
6108b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # If there is no directory component, then add one.
6109b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      case $lib in
6110b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      */* | *\\*) . $lib ;;
6111b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      *) . ./$lib ;;
6112b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      esac
6113b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6114b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
6115b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$libdir" && test ! -f "$libfile"; then
6116b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
6117b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      finalize=no
6118b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6119b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
6120b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6121b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  relink_command=
6122b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Note that it is not necessary on cygwin/mingw to append a dot to
6123b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # foo even if both foo and FILE.exe exist: automatic-append-.exe
6124b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # behavior happens only for exec(3), not for open(2)!  Also, sourcing
6125b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # `FILE.' does not work on cygwin managed mounts.
6126b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  #
6127b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # If there is no directory component, then add one.
6128b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $wrapper in
6129b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  */* | *\\*) . ${wrapper} ;;
6130b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) . ./${wrapper} ;;
6131b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6132b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6133b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  outputname=
6134b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test "$fast_install" = no && test -n "$relink_command"; then
6135b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$finalize" = yes && test -z "$run"; then
6136b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      tmpdir=`func_mktempdir`
6137b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
6138b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      outputname="$tmpdir/$file"
6139b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Replace the output file specification.
6140b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
6141b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6142b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $show "$relink_command"
6143b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      if $run eval "$relink_command"; then :
6144b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      else
6145b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
6146b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		${rm}r "$tmpdir"
6147b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		continue
6148b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      fi
6149b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      file="$outputname"
6150b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    else
6151b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
6152b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6153b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  else
6154b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # Install the binary that we compiled earlier.
6155b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
6156b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
6157b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6158b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6159b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# remove .exe since cygwin /usr/bin/install will append another
6160b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# one anyway 
6161b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $install_prog,$host in
6162b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*/usr/bin/install*,*cygwin*)
6163b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $file:$destfile in
6164b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.exe:*.exe)
6165b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # this is ok
6166b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6167b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.exe:*)
6168b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    destfile=$destfile.exe
6169b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6170b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *:*.exe)
6171b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
6172b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6173b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6174b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  ;;
6175b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6176b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$install_prog$stripme $file $destfile"
6177b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
6178b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test -n "$outputname" && ${rm}r "$tmpdir"
6179b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6180b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
6181b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6182b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6183b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for file in $staticlibs; do
6184b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6185b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6186b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Set up the ranlib parameters.
6187b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      oldlib="$destdir/$name"
6188b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6189b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$install_prog $file $oldlib"
6190b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run eval "$install_prog \$file \$oldlib" || exit $?
6191b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6192b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$stripme" && test -n "$old_striplib"; then
6193b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$old_striplib $oldlib"
6194b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$old_striplib $oldlib" || exit $?
6195b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6196b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6197b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Do each command in the postinstall commands.
6198b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      cmds=$old_postinstall_cmds
6199b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      save_ifs="$IFS"; IFS='~'
6200b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for cmd in $cmds; do
6201b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	IFS="$save_ifs"
6202b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval cmd=\"$cmd\"
6203b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "$cmd"
6204b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run eval "$cmd" || exit $?
6205b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
6206b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      IFS="$save_ifs"
6207b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6208b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6209b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$future_libdirs"; then
6210b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
6211b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6212b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6213b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$current_libdirs"; then
6214b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Maybe just do a dry run.
6215b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -n "$run" && current_libdirs=" -n$current_libdirs"
6216b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
6217b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
6218b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_SUCCESS
6219b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6220b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
6221b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6222b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool finish mode
6223b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  finish)
6224b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: finish"
6225b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libdirs="$nonopt"
6226b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    admincmds=
6227b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6228b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
6229b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for dir
6230b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      do
6231b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	libdirs="$libdirs $dir"
6232b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
6233b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6234b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      for libdir in $libdirs; do
6235b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$finish_cmds"; then
6236b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Do each command in the finish commands.
6237b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  cmds=$finish_cmds
6238b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  save_ifs="$IFS"; IFS='~'
6239b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for cmd in $cmds; do
6240b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    IFS="$save_ifs"
6241b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    eval cmd=\"$cmd\"
6242b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $show "$cmd"
6243b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    $run eval "$cmd" || admincmds="$admincmds
6244b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       $cmd"
6245b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
6246b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  IFS="$save_ifs"
6247b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6248b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -n "$finish_eval"; then
6249b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Do the single finish_eval.
6250b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  eval cmds=\"$finish_eval\"
6251b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $run eval "$cmds" || admincmds="$admincmds
6252b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project       $cmds"
6253b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6254b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      done
6255b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6256b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6257b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Exit here if they wanted silent mode.
6258b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    test "$show" = : && exit $EXIT_SUCCESS
6259b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6260b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "X----------------------------------------------------------------------" | $Xsed
6261b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "Libraries have been installed in:"
6262b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for libdir in $libdirs; do
6263b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   $libdir"
6264b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6265b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo
6266b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "If you ever happen to want to link against installed libraries"
6267b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "in a given directory, LIBDIR, you must either use libtool, and"
6268b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
6269b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "flag during linking and do at least one of the following:"
6270b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$shlibpath_var"; then
6271b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
6272b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "     during execution"
6273b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6274b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$runpath_var"; then
6275b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
6276b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "     during linking"
6277b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6278b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$hardcode_libdir_flag_spec"; then
6279b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      libdir=LIBDIR
6280b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      eval flag=\"$hardcode_libdir_flag_spec\"
6281b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6282b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   - use the \`$flag' linker flag"
6283b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6284b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -n "$admincmds"; then
6285b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   - have your system administrator run these commands:$admincmds"
6286b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6287b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -f /etc/ld.so.conf; then
6288b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
6289b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6290b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo
6291b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "See any operating system documentation about shared libraries for"
6292b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
6293b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "X----------------------------------------------------------------------" | $Xsed
6294b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_SUCCESS
6295b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
6296b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6297b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool execute mode
6298b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  execute)
6299b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: execute"
6300b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6301b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # The first argument is the command name.
6302b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    cmd="$nonopt"
6303b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$cmd"; then
6304b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify a COMMAND" 1>&2
6305b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help"
6306b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
6307b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6308b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6309b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Handle -dlopen flags immediately.
6310b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for file in $execute_dlfiles; do
6311b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test ! -f "$file"; then
6312b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: \`$file' is not a file" 1>&2
6313b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$help" 1>&2
6314b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit $EXIT_FAILURE
6315b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6316b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6317b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dir=
6318b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $file in
6319b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.la)
6320b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Check to see that this really is a libtool archive.
6321b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
6322b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
6323b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
6324b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$help" 1>&2
6325b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
6326b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6327b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6328b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Read the libtool library.
6329b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dlname=
6330b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	library_names=
6331b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6332b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# If there is no directory component, then add one.
6333b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case $file in
6334b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*/* | *\\*) . $file ;;
6335b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	*) . ./$file ;;
6336b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6337b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6338b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Skip this library if it cannot be dlopened.
6339b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -z "$dlname"; then
6340b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Warn if it was a shared library.
6341b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
6342b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  continue
6343b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6344b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6345b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6346b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test "X$dir" = "X$file" && dir=.
6347b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6348b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test -f "$dir/$objdir/$dlname"; then
6349b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  dir="$dir/$objdir"
6350b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	else
6351b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
6352b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  exit $EXIT_FAILURE
6353b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6354b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6355b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6356b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.lo)
6357b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Just add the directory containing the .lo file.
6358b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6359b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	test "X$dir" = "X$file" && dir=.
6360b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6361b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6362b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
6363b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
6364b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
6365b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6366b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
6367b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6368b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Get the absolute pathname.
6369b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      absdir=`cd "$dir" && pwd`
6370b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test -n "$absdir" && dir="$absdir"
6371b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6372b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now add the directory to shlibpath_var.
6373b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if eval "test -z \"\$$shlibpath_var\""; then
6374b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval "$shlibpath_var=\"\$dir\""
6375b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
6376b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
6377b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6378b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6379b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6380b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # This variable tells wrapper scripts just to set shlibpath_var
6381b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # rather than running their programs.
6382b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libtool_execute_magic="$magic"
6383b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6384b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Check if any of the arguments is a wrapper script.
6385b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    args=
6386b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for file
6387b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    do
6388b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $file in
6389b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -*) ;;
6390b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
6391b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Do a test to see if this is really a libtool program.
6392b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6393b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # If there is no directory component, then add one.
6394b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $file in
6395b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  */* | *\\*) . $file ;;
6396b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) . ./$file ;;
6397b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6398b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6399b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Transform arg to wrapped name.
6400b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  file="$progdir/$program"
6401b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6402b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6403b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
6404b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Quote arguments (to preserve shell metacharacters).
6405b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
6406b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      args="$args \"$file\""
6407b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6408b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6409b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$run"; then
6410b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$shlibpath_var"; then
6411b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Export the shlibpath_var.
6412b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval "export $shlibpath_var"
6413b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6414b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6415b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Restore saved environment variables
6416b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "${save_LC_ALL+set}" = set; then
6417b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	LC_ALL="$save_LC_ALL"; export LC_ALL
6418b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6419b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "${save_LANG+set}" = set; then
6420b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	LANG="$save_LANG"; export LANG
6421b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6422b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6423b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Now prepare to actually exec the command.
6424b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exec_cmd="\$cmd$args"
6425b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    else
6426b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Display what would be done.
6427b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -n "$shlibpath_var"; then
6428b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
6429b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$echo "export $shlibpath_var"
6430b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6431b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$cmd$args"
6432b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_SUCCESS
6433b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6434b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
6435b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6436b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  # libtool clean and uninstall mode
6437b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  clean | uninstall)
6438b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    modename="$modename: $mode"
6439b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    rm="$nonopt"
6440b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    files=
6441b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    rmforce=
6442b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit_status=0
6443b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6444b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # This variable tells wrapper scripts just to set variables rather
6445b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # than running their programs.
6446b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    libtool_install_magic="$magic"
6447b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6448b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for arg
6449b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    do
6450b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $arg in
6451b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -f) rm="$rm $arg"; rmforce=yes ;;
6452b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      -*) rm="$rm $arg" ;;
6453b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *) files="$files $arg" ;;
6454b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
6455b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6456b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6457b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    if test -z "$rm"; then
6458b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$modename: you must specify an RM program" 1>&2
6459b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $echo "$help" 1>&2
6460b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      exit $EXIT_FAILURE
6461b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    fi
6462b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6463b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    rmdirs=
6464b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6465b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    origobjdir="$objdir"
6466b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for file in $files; do
6467b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
6468b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "X$dir" = "X$file"; then
6469b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	dir=.
6470b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	objdir="$origobjdir"
6471b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      else
6472b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	objdir="$dir/$origobjdir"
6473b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6474b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
6475b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      test "$mode" = uninstall && objdir="$dir"
6476b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6477b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Remember objdir for removal later, being careful to avoid duplicates
6478b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test "$mode" = clean; then
6479b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	case " $rmdirs " in
6480b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *" $objdir "*) ;;
6481b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *) rmdirs="$rmdirs $objdir" ;;
6482b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	esac
6483b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6484b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6485b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      # Don't error if the file doesn't exist and rm -f was used.
6486b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if (test -L "$file") >/dev/null 2>&1 \
6487b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	|| (test -h "$file") >/dev/null 2>&1 \
6488b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	|| test -f "$file"; then
6489b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	:
6490b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      elif test -d "$file"; then
6491b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	exit_status=1
6492b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
6493b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      elif test "$rmforce" = yes; then
6494b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	continue
6495b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6496b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6497b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      rmfiles="$file"
6498b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6499b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      case $name in
6500b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.la)
6501b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Possibly a libtool archive, so verify it.
6502b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6503b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  . $dir/$name
6504b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6505b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Delete the libtool libraries and symlinks.
6506b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  for n in $library_names; do
6507b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rmfiles="$rmfiles $objdir/$n"
6508b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  done
6509b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
6510b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6511b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case "$mode" in
6512b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  clean)
6513b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    case "  $library_names " in
6514b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # "  " in the beginning catches empty $dlname
6515b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *" $dlname "*) ;;
6516b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
6517b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    esac
6518b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
6519b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6520b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  uninstall)
6521b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$library_names"; then
6522b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Do each command in the postuninstall commands.
6523b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$postuninstall_cmds
6524b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      save_ifs="$IFS"; IFS='~'
6525b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      for cmd in $cmds; do
6526b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		IFS="$save_ifs"
6527b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval cmd=\"$cmd\"
6528b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$show "$cmd"
6529b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval "$cmd"
6530b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$?" -ne 0 && test "$rmforce" != yes; then
6531b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  exit_status=1
6532b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
6533b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      done
6534b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      IFS="$save_ifs"
6535b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6536b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6537b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test -n "$old_library"; then
6538b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      # Do each command in the old_postuninstall commands.
6539b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      cmds=$old_postuninstall_cmds
6540b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      save_ifs="$IFS"; IFS='~'
6541b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      for cmd in $cmds; do
6542b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		IFS="$save_ifs"
6543b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		eval cmd=\"$cmd\"
6544b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$show "$cmd"
6545b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		$run eval "$cmd"
6546b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		if test "$?" -ne 0 && test "$rmforce" != yes; then
6547b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		  exit_status=1
6548b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		fi
6549b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      done
6550b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      IFS="$save_ifs"
6551b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6552b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # FIXME: should reinstall the best remaining shared library.
6553b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6554b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6555b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6556b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6557b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6558b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *.lo)
6559b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	# Possibly a libtool object, so verify it.
6560b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6561b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6562b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Read the .lo file
6563b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  . $dir/$name
6564b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6565b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add PIC object to the list of files to remove.
6566b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$pic_object" \
6567b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     && test "$pic_object" != none; then
6568b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rmfiles="$rmfiles $dir/$pic_object"
6569b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
6570b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6571b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Add non-PIC object to the list of files to remove.
6572b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if test -n "$non_pic_object" \
6573b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	     && test "$non_pic_object" != none; then
6574b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rmfiles="$rmfiles $dir/$non_pic_object"
6575b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
6576b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6577b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6578b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6579b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      *)
6580b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	if test "$mode" = clean ; then
6581b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  noexename=$name
6582b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  case $file in
6583b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  *.exe)
6584b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    file=`$echo $file|${SED} 's,.exe$,,'`
6585b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    noexename=`$echo $name|${SED} 's,.exe$,,'`
6586b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # $file with .exe has already been added to rmfiles,
6587b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # add $file without .exe
6588b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rmfiles="$rmfiles $file"
6589b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    ;;
6590b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  esac
6591b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  # Do a test to see if this is a libtool program.
6592b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
6593b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    relink_command=
6594b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    . $dir/$noexename
6595b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6596b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # note $name still contains .exe if it was in $file originally
6597b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    # as does the version of $file that was added into $rmfiles
6598b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
6599b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "$fast_install" = yes && test -n "$relink_command"; then
6600b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      rmfiles="$rmfiles $objdir/lt-$name"
6601b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6602b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    if test "X$noexename" != "X$name" ; then
6603b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
6604b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	    fi
6605b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	  fi
6606b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	fi
6607b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	;;
6608b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      esac
6609b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $show "$rm $rmfiles"
6610b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      $run $rm $rmfiles || exit_status=1
6611b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6612b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    objdir="$origobjdir"
6613b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6614b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    # Try to remove the ${objdir}s in the directories where we deleted files
6615b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    for dir in $rmdirs; do
6616b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      if test -d "$dir"; then
6617b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$show "rmdir $dir"
6618b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project	$run rmdir $dir >/dev/null 2>&1
6619b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      fi
6620b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    done
6621b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6622b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $exit_status
6623b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
6624b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6625b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  "")
6626b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$modename: you must specify a MODE" 1>&2
6627b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$generic_help" 1>&2
6628b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_FAILURE
6629b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    ;;
6630b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  esac
6631b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6632b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  if test -z "$exec_cmd"; then
6633b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$modename: invalid operation mode \`$mode'" 1>&2
6634b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    $echo "$generic_help" 1>&2
6635b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    exit $EXIT_FAILURE
6636b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  fi
6637b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi # test -z "$show_help"
6638b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6639b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectif test -n "$exec_cmd"; then
6640b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  eval exec $exec_cmd
6641b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_FAILURE
6642b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfi
6643b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6644b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# We need to display help for each of the modes.
6645b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcase $mode in
6646b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"") $echo \
6647b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... [MODE-ARG]...
6648b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6649b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectProvide generalized library-building support services.
6650b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6651b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --config          show all configuration variables
6652b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --debug           enable verbose shell tracing
6653b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project-n, --dry-run         display commands without modifying any files
6654b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --features        display basic configuration information and exit
6655b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --finish          same as \`--mode=finish'
6656b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --help            display this help message and exit
6657b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
6658b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --quiet           same as \`--silent'
6659b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --silent          don't print informational messages
6660b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --tag=TAG         use configuration variables from tag TAG
6661b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project    --version         print version information
6662b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6663b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectMODE must be one of the following:
6664b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6665b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      clean           remove files from the build directory
6666b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      compile         compile a source file into a libtool object
6667b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      execute         automatically set library path, then run a program
6668b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      finish          complete the installation of libtool libraries
6669b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      install         install libraries or executables
6670b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      link            create a library or an executable
6671b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project      uninstall       remove libraries from an installed directory
6672b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6673b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectMODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
6674b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecta more detailed description of MODE.
6675b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6676b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectReport bugs to <bug-libtool@gnu.org>."
6677b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_SUCCESS
6678b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6679b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6680b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectclean)
6681b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6682b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
6683b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6684b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectRemove files from the build directory.
6685b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6686b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectRM is the name of the program to use to delete files associated with each FILE
6687b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6688b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectto RM.
6689b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6690b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf FILE is a libtool library, object or program, all the files associated
6691b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectwith it are deleted. Otherwise, only FILE itself is deleted using RM."
6692b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6693b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6694b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcompile)
6695b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6696b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
6697b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6698b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectCompile a source file into a libtool library object.
6699b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6700b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis mode accepts the following additional options:
6701b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6702b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
6703b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -prefer-pic       try to building PIC objects only
6704b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -prefer-non-pic   try to building non-PIC objects only
6705b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -static           always build a \`.o' file suitable for static linking
6706b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6707b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
6708b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfrom the given SOURCEFILE.
6709b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6710b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThe output file name is determined by removing the directory component from
6711b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectSOURCEFILE, then substituting the C source code suffix \`.c' with the
6712b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlibrary object suffix, \`.lo'."
6713b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6714b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6715b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectexecute)
6716b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6717b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
6718b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6719b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectAutomatically set library path, then run a program.
6720b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6721b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis mode accepts the following additional options:
6722b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6723b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -dlopen FILE      add the directory containing FILE to the library path
6724b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6725b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThis mode sets the library path environment variable according to \`-dlopen'
6726b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectflags.
6727b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6728b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf any of the ARGS are libtool executable wrappers, then they are translated
6729b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectinto their corresponding uninstalled binary, and any of their required library
6730b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdirectories are added to the library path.
6731b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6732b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThen, COMMAND is executed, with ARGS as arguments."
6733b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6734b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6735b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectfinish)
6736b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6737b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
6738b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6739b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectComplete the installation of libtool libraries.
6740b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6741b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEach LIBDIR is a directory that contains libtool libraries.
6742b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6743b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThe commands that this mode executes may require superuser privileges.  Use
6744b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectthe \`--dry-run' option if you just want to see what would be executed."
6745b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6746b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6747b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectinstall)
6748b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6749b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
6750b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6751b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectInstall executables or libraries.
6752b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6753b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectINSTALL-COMMAND is the installation command.  The first component should be
6754b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecteither the \`install' or \`cp' program.
6755b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6756b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThe rest of the components are interpreted as arguments to that command (only
6757b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectBSD-compatible install options are recognized)."
6758b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6759b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6760b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectlink)
6761b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6762b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
6763b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6764b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectLink object files or libraries together to form another library, or to
6765b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectcreate an executable program.
6766b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6767b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectLINK-COMMAND is a command using the C compiler that you would use to create
6768b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecta program from several object files.
6769b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6770b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectThe following components of LINK-COMMAND are treated specially:
6771b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6772b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -all-static       do not do any dynamic linking at all
6773b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -avoid-version    do not add a version suffix if possible
6774b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
6775b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
6776b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
6777b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -export-symbols SYMFILE
6778b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    try to export only the symbols listed in SYMFILE
6779b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -export-symbols-regex REGEX
6780b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    try to export only the symbols matching REGEX
6781b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -LLIBDIR          search LIBDIR for required installed libraries
6782b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -lNAME            OUTPUT-FILE requires the installed library libNAME
6783b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -module           build a library that can dlopened
6784b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -no-fast-install  disable the fast-install mode
6785b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -no-install       link a not-installable executable
6786b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -no-undefined     declare that a library does not refer to external symbols
6787b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
6788b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -objectlist FILE  Use a list of object files found in FILE to specify objects
6789b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -precious-files-regex REGEX
6790b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project                    don't remove output files matching REGEX
6791b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -release RELEASE  specify package release information
6792b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
6793b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
6794b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -static           do not do any dynamic linking of libtool libraries
6795b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  -version-info CURRENT[:REVISION[:AGE]]
6796b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project		    specify library version info [each variable defaults to 0]
6797b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6798b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectAll other options (arguments beginning with \`-') are ignored.
6799b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6800b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectEvery other argument is treated as a filename.  Files ending in \`.la' are
6801b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projecttreated as uninstalled libtool libraries, other files are standard or library
6802b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectobject files.
6803b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6804b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
6805b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectonly library objects (\`.lo' files) may be specified, and \`-rpath' is
6806b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectrequired, except when creating a convenience library.
6807b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6808b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
6809b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectusing \`ar' and \`ranlib', or on Windows using \`lib'.
6810b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6811b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
6812b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectis created, otherwise an executable program is created."
6813b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6814b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6815b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectuninstall)
6816b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo \
6817b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
6818b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6819b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectRemove libraries from an installation directory.
6820b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6821b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectRM is the name of the program to use to delete files associated with each FILE
6822b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
6823b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectto RM.
6824b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6825b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectIf FILE is a libtool library, all the files associated with it are deleted.
6826b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source ProjectOtherwise, only FILE itself is deleted using RM."
6827b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6828b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6829b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project*)
6830b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "$modename: invalid operation mode \`$mode'" 1>&2
6831b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  $echo "$help" 1>&2
6832b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  exit $EXIT_FAILURE
6833b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project  ;;
6834b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectesac
6835b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6836b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project$echo
6837b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project$echo "Try \`$modename --help' for more information about other modes."
6838b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6839b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectexit $?
6840b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6841b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# The TAGs below are defined such that we never get into a situation
6842b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# in which we disable both kinds of libraries.  Given conflicting
6843b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# choices, we go for a static library, that is the most portable,
6844b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# since we can't tell whether shared libraries were disabled because
6845b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# the user asked for that or because the platform doesn't support
6846b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# them.  This is particularly important on AIX, because we don't
6847b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# support having both static and shared libraries enabled at the same
6848b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# time on that platform, so we default to a shared-only configuration.
6849b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# If a disable-shared tag is given, we'll fallback to a static-only
6850b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# configuration.  But we'll never go from static-only to shared-only.
6851b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6852b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
6853b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdisable_libs=shared
6854b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ### END LIBTOOL TAG CONFIG: disable-shared
6855b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6856b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ### BEGIN LIBTOOL TAG CONFIG: disable-static
6857b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Projectdisable_libs=static
6858b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# ### END LIBTOOL TAG CONFIG: disable-static
6859b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project
6860b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# Local Variables:
6861b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# mode:shell-script
6862b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# sh-indentation:2
6863b80e287d54a028e744f9fe412840a89ec7f8084bThe Android Open Source Project# End:
6864