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