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