14215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Generated from ltmain.m4sh.
24215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
35f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# ltmain.sh (GNU libtool) 2.2.6b
44215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
54215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 Free Software Foundation, Inc.
74215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This is free software; see the source for copying conditions.  There is NO
84215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
94215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# GNU Libtool is free software; you can redistribute it and/or modify
11893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# it under the terms of the GNU General Public License as published by
12893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# the Free Software Foundation; either version 2 of the License, or
13893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# (at your option) any later version.
14893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#
154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# As a special exception to the GNU General Public License,
164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# if you distribute this file as part of a program or library that
174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# is built using GNU Libtool, you may include this file under the
184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# same distribution terms that you use for the rest of that program.
194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# GNU Libtool is distributed in the hope that it will be useful, but
21893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# WITHOUT ANY WARRANTY; without even the implied warranty of
22893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
23893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# General Public License for more details.
24893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#
25893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# You should have received a copy of the GNU General Public License
264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# along with GNU Libtool; see the file COPYING.  If not, a copy
274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# can be downloaded from http://www.gnu.org/licenses/gpl.html,
284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# or obtained by writing to the Free Software Foundation, Inc.,
294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Usage: $progname [OPTION]... [MODE-ARG]...
324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Provide generalized library-building support services.
34893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project#
354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --config             show all configuration variables
364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --debug              enable verbose shell tracing
374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# -n, --dry-run            display commands without modifying any files
384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --features           display basic configuration information and exit
394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --mode=MODE          use operation mode MODE
404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --preserve-dup-deps  don't remove duplicate dependency libraries
414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --quiet, --silent    don't print informational messages
424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --tag=TAG            use configuration variables from tag TAG
434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# -v, --verbose            print informational messages (default)
444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#     --version            print version information
454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# -h, --help               print short or long help message
464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# MODE must be one of the following:
484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       clean              remove files from the build directory
504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       compile            compile a source file into a libtool object
514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       execute            automatically set library path, then run a program
524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       finish             complete the installation of libtool libraries
534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       install            install libraries or executables
544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       link               create a library or an executable
554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       uninstall          remove libraries from an installed directory
564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# MODE-ARGS vary depending on the MODE.
584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# When reporting a bug, please describe a test case to reproduce it and
614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include the following information:
624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       host-triplet:	$host
644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       shell:		$SHELL
654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       compiler:		$LTCC
664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       compiler flags:		$LTCFLAGS
674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       linker:		$LD (gnu? $with_gnu_ld)
685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#       $progname:		(GNU libtool) 2.2.6b
694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       automake:		$automake_version
704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#       autoconf:		$autoconf_version
714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Report bugs to <bug-libtool@gnu.org>.
734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectPROGRAM=ltmain.sh
754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectPACKAGE=libtool
765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottVERSION=2.2.6b
775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottTIMESTAMP=""
785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottpackage_revision=1.3017
794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Be Bourne compatible
814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectif test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  emulate sh
834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  NULLCMD=:
844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # is contrary to our usage.  Disable this feature.
864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  alias -g '${1+"$@"}'='"$@"'
874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  setopt NO_GLOB_SUBST
884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelse
894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfi
914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectBIN_SH=xpg4; export BIN_SH # for Tru64
924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectDUALCASE=1; export DUALCASE # for MKS sh
934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# NLS nuisances: We save the old values to restore during execute mode.
954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Only set LANG and LC_ALL to C if already set.
964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# These must not be set unconditionally because not all systems understand
974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# e.g. LANG=C (notably SCO).
984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_user_locale=
994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_safe_locale=
1004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfor lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
1014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdo
1024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  eval "if test \"\${$lt_var+set}\" = set; then
1034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          save_$lt_var=\$$lt_var
1044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          $lt_var=C
1054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  export $lt_var
1064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
1074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
1084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi"
1094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdone
1104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$lt_unset CDPATH
1124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${CP="cp -f"}
1184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${ECHO="echo"}
1195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott: ${EGREP="/bin/grep -E"}
1205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott: ${FGREP="/bin/grep -F"}
1215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott: ${GREP="/bin/grep"}
1224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${LN_S="ln -s"}
1234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${MAKE="make"}
1244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${MKDIR="mkdir"}
1254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${MV="mv -f"}
1264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${RM="rm -f"}
1275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott: ${SED="/bin/sed"}
1284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
1294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project: ${Xsed="$SED -e 1s/^X//"}
130893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Global variables:
1324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEXIT_SUCCESS=0
1334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEXIT_FAILURE=1
1344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
1354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
1364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectexit_status=$EXIT_SUCCESS
1384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Make sure IFS has a sensible default
1404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_nl='
1414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project'
1424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIFS=" 	$lt_nl"
1434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdirname="s,/[^/]*$,,"
1454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbasename="s,^.*/,,"
1464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_dirname_and_basename file append nondir_replacement
1484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# perform func_basename and func_dirname in a single function
1494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# call:
1504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#   dirname:  Compute the dirname of FILE.  If nonempty,
1514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#             add APPEND to the result, otherwise set result
1524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#             to NONDIR_REPLACEMENT.
1534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#             value returned in "$func_dirname_result"
1544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#   basename: Compute filename of FILE.
1554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#             value retuned in "$func_basename_result"
1564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Implementation must be kept synchronized with func_dirname
1574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# and func_basename. For efficiency, we do not delegate to
1584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# those functions but instead duplicate the functionality here.
1594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_dirname_and_basename ()
1604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
1614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Extract subdirectory from the argument.
1624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
1634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test "X$func_dirname_result" = "X${1}"; then
1644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_dirname_result="${3}"
1654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  else
1664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_dirname_result="$func_dirname_result${2}"
1674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi
1684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
1694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Generated shell functions inserted here.
172893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
173893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
174893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# is ksh but when the shell is invoked as "sh" and the current value of
175893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# the _XPG environment variable is not equal to 1 (one), the special
176893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# positional parameter $0, within a function call, is the name of the
177893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# function.
178893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectprogpath="$0"
179893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
180893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# The name of this program:
1814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# In the unlikely event $progname began with a '-', it would play havoc with
1824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_echo (imagine progname=-n), so we prepend ./ in that case:
1834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_dirname_and_basename "$progpath"
1844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectprogname=$func_basename_result
1854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectcase $progname in
1864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -*) progname=./$progname ;;
1874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectesac
188893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Make sure we have an absolute path for reexecution:
1904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectcase $progpath in
1914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  [\\/]*|[A-Za-z]:\\*) ;;
1924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *[\\/]*)
1934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     progdir=$func_dirname_result
1944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     progdir=`cd "$progdir" && pwd`
1954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     progpath="$progdir/$progname"
1964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     ;;
1974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *)
1984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     save_IFS="$IFS"
1994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     IFS=:
2004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     for progdir in $PATH; do
2014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       IFS="$save_IFS"
2024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       test -x "$progdir/$progname" && break
2034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     done
2044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     IFS="$save_IFS"
2054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     test -n "$progdir" || progdir=`pwd`
2064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     progpath="$progdir/$progname"
2074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     ;;
2084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectesac
209893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Sed substitution that helps us do robust quoting.  It backslashifies
2114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# metacharacters that are still active within double-quoted strings.
2124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectXsed="${SED}"' -e 1s/^X//'
2134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectsed_quote_subst='s/\([`"$\\]\)/\\\1/g'
2144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
2154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Same as above, but do not quote variable references.
2164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdouble_quote_subst='s/\(["`\\]\)/\\\1/g'
2174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
2184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Re-`\' parameter expansions in output of double_quote_subst that were
2194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
2204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# in input to double_quote_subst, that '$' was protected from expansion.
2214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Since each input `\' is now two `\'s, look for any number of runs of
2224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
2234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbs='\\'
2244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbs2='\\\\'
2254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbs4='\\\\\\\\'
2264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdollar='\$'
2274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectsed_double_backslash="\
2284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  s/$bs4/&\\
2294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/g
2304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  s/^$bs2$dollar/$bs&/
2314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
2324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  s/\n//g"
2334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
2344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Standard options:
2354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_dry_run=false
2364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_help=false
2374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_quiet=false
2384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_verbose=false
2394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_warning=:
2404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
2414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_echo arg...
2424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message, along with the current mode
2434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# name if it has been set yet.
2444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_echo ()
2454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "$progname${mode+: }$mode: $*"
2474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
248893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_verbose arg...
2504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message in verbose mode only.
2514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_verbose ()
2524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_verbose && func_echo ${1+"$@"}
254893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # A bug in bash halts the script if the last line of a function
2564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # fails when set -e is in force, so we need another command to
2574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # work around that:
2584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    :
2594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
260893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_error arg...
2624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message to standard error.
2634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_error ()
2644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "$progname${mode+: }$mode: "${1+"$@"} 1>&2
2664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
267893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_warning arg...
2694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed warning message to standard error.
2704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_warning ()
2714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
273893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # bash bug again:
2754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    :
2764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
277893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_fatal_error arg...
2794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message to standard error, and exit.
2804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_fatal_error ()
2814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error ${1+"$@"}
2834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $EXIT_FAILURE
2844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
285893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_fatal_help arg...
2874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message to standard error, followed by
2884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# a help hint, and exit.
2894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_fatal_help ()
2904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
2914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error ${1+"$@"}
2924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_fatal_error "$help"
2934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecthelp="Try \`$progname --help' for more information."  ## default
295893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
296893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_grep expression filename
2984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Check whether EXPRESSION matches any line of FILENAME, without output.
2994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_grep ()
3004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
3014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $GREP "$1" "$2" >/dev/null 2>&1
3024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mkdir_p directory-path
3064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Make sure the entire path to DIRECTORY-PATH is available.
3074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mkdir_p ()
3084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
3094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_directory_path="$1"
3104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_dir_list=
3114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
3134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Protect directory names starting with `-'
3154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $my_directory_path in
3164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        -*) my_directory_path="./$my_directory_path" ;;
3174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
3184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # While some portion of DIR does not yet exist...
3204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      while test ! -d "$my_directory_path"; do
3214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # ...make a list in topmost first order.  Use a colon delimited
3224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# list incase some portion of path contains whitespace.
3234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        my_dir_list="$my_directory_path:$my_dir_list"
3244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # If the last portion added has no slash in it, the list is done
3264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        case $my_directory_path in */*) ;; *) break ;; esac
3274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # ...otherwise throw away the child directory and loop
3294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        my_directory_path=`$ECHO "X$my_directory_path" | $Xsed -e "$dirname"`
3304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
3314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_dir_list=`$ECHO "X$my_dir_list" | $Xsed -e 's,:*$,,'`
3324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      save_mkdir_p_IFS="$IFS"; IFS=':'
3344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for my_dir in $my_dir_list; do
3354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	IFS="$save_mkdir_p_IFS"
3364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # mkdir can fail with a `File exist' error if two processes
3374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # try to create one of the directories concurrently.  Don't
3384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # stop in that case!
3394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $MKDIR "$my_dir" 2>/dev/null || :
3404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
3414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      IFS="$save_mkdir_p_IFS"
3424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
3434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Bail out if we (or some other process) failed to create a directory.
3444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -d "$my_directory_path" || \
3454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_fatal_error "Failed to create \`$1'"
3464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
3474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
348893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
349893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
350893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# func_mktempdir [string]
351893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# Make a temporary directory that won't clash with other running
352893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# libtool processes, and avoids race conditions if possible.  If
353893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# given, STRING is the basename for that directory.
354893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectfunc_mktempdir ()
355893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project{
356893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    my_template="${TMPDIR-/tmp}/${1-$progname}"
357893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
3584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$opt_dry_run" = ":"; then
359893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Return a directory name, but don't create it in dry-run mode
360893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      my_tmpdir="${my_template}-$$"
361893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
362893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
363893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # If mktemp works, use that first and foremost
364893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
365893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
366893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test ! -d "$my_tmpdir"; then
3674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # Failing that, at least try and use $RANDOM to avoid a race
3684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        my_tmpdir="${my_template}-${RANDOM-0}$$"
369893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
3704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        save_mktempdir_umask=`umask`
3714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        umask 0077
3724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $MKDIR "$my_tmpdir"
3734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        umask $save_mktempdir_umask
374893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
375893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
376893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # If we're not in dry-run mode, bomb out on failure
3774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -d "$my_tmpdir" || \
3784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
379893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
380893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
3814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "X$my_tmpdir" | $Xsed
382893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project}
383893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
384893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
3854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_quote_for_eval arg
3864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Aesthetically quote ARG to be evaled later.
3874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
3884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# is double-quoted, suitable for a subsequent eval, whereas
3894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
3904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# which are still active within double quotes backslashified.
3914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_quote_for_eval ()
392893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project{
3934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $1 in
3944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *[\\\`\"\$]*)
3954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_quote_for_eval_unquoted_result=`$ECHO "X$1" | $Xsed -e "$sed_quote_subst"` ;;
3964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
3974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval_unquoted_result="$1" ;;
3984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
3994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $func_quote_for_eval_unquoted_result in
4014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Double-quote args containing shell metacharacters to delay
4024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # word splitting, command substitution and and variable
4034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # expansion for a subsequent eval.
4044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Many Bourne shells cannot handle close brackets correctly
4054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # in scan sets, so we specify it separately.
4064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
4074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
4084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
4094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
4104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
411893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
412893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project}
413893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
414893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_quote_for_expand arg
4164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Aesthetically quote ARG to be evaled later; same as above,
4174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# but do not quote variable references.
4184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_quote_for_expand ()
419893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project{
4204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $1 in
4214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *[\\\`\"]*)
4224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	my_arg=`$ECHO "X$1" | $Xsed \
4234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
424893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *)
4254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        my_arg="$1" ;;
4264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
4274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $my_arg in
4294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Double-quote args containing shell metacharacters to delay
4304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # word splitting and command substitution for a subsequent eval.
4314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Many Bourne shells cannot handle close brackets correctly
4324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # in scan sets, so we specify it separately.
4334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
4344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        my_arg="\"$my_arg\""
4354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
4364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
4374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_quote_for_expand_result="$my_arg"
439893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project}
440893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
441893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_show_eval cmd [fail_exp]
4434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
4444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
4454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# is given, then evaluate it.
4464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_show_eval ()
447893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project{
4484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_cmd="$1"
4494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_fail_exp="${2-:}"
450893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ${opt_silent-false} || {
4524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_expand "$my_cmd"
4534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval "func_echo $func_quote_for_expand_result"
4544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
4554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if ${opt_dry_run-false}; then :; else
4574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval "$my_cmd"
4584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_status=$?
4594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$my_status" -eq 0; then :; else
4604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "(exit $my_status); $my_fail_exp"
4614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
462893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
463893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project}
464893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_show_eval_locale cmd [fail_exp]
4674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
4684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
4694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# is given, then evaluate it.  Use the saved locale for evaluation.
4704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_show_eval_locale ()
471893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project{
4724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_cmd="$1"
4734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_fail_exp="${2-:}"
474893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ${opt_silent-false} || {
4764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_expand "$my_cmd"
4774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval "func_echo $func_quote_for_expand_result"
4784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
4794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if ${opt_dry_run-false}; then :; else
4814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval "$lt_user_locale
4824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $my_cmd"
4834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_status=$?
4844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval "$lt_safe_locale"
4854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$my_status" -eq 0; then :; else
4864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "(exit $my_status); $my_fail_exp"
487893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
4884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
489893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project}
490893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
491893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
492893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
4934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
4954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_version
4964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo version message to standard output and exit.
4974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_version ()
4984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
4994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $SED -n '/^# '$PROGRAM' (GNU /,/# warranty; / {
5004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        s/^# //
5014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/^# *$//
5024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
5034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        p
5044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     }' < "$progpath"
5054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     exit $?
5064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
5074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_usage
5094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo short help message to standard output and exit.
5104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_usage ()
5114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
5124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $SED -n '/^# Usage:/,/# -h/ {
5134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        s/^# //
5144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/^# *$//
5154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/\$progname/'$progname'/
5164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	p
5174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }' < "$progpath"
5184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO
5194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "run \`$progname --help | more' for full usage"
5204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $?
5214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
5224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_help
5244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo long help message to standard output and exit.
5254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_help ()
5264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
5274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $SED -n '/^# Usage:/,/# Report bugs to/ {
5284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        s/^# //
5294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/^# *$//
5304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$progname*'$progname'*
5314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$host*'"$host"'*
5324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$SHELL*'"$SHELL"'*
5334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$LTCC*'"$LTCC"'*
5344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$LTCFLAGS*'"$LTCFLAGS"'*
5354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s*\$LD*'"$LD"'*
5364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/\$with_gnu_ld/'"$with_gnu_ld"'/
5374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/\$automake_version/'"`(automake --version) 2>/dev/null |$SED 1q`"'/
5384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	s/\$autoconf_version/'"`(autoconf --version) 2>/dev/null |$SED 1q`"'/
5394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	p
5404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     }' < "$progpath"
5414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $?
5424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
5434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_missing_arg argname
5454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message to standard error and set global
5464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# exit_cmd.
5474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_missing_arg ()
5484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
5494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error "missing argument for $1"
5504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit_cmd=exit
5514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
5524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectexit_cmd=:
5544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
5594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Check that we have a working $ECHO.
5604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectif test "X$1" = X--no-reexec; then
5614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Discard the --no-reexec flag, and continue.
562893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  shift
5634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelif test "X$1" = X--fallback-echo; then
5644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Avoid inline document here, it may be left over
5654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  :
5664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
5674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Yippee, $ECHO works!
5684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  :
5694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelse
5704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Restart under the correct shell, and then maybe $ECHO will work.
5714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  exec $SHELL "$progpath" --no-reexec ${1+"$@"}
5724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfi
573893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectif test "X$1" = X--fallback-echo; then
5754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # used as fallback echo
5764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  shift
5774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  cat <<EOF
5784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$*
5794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
5804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  exit $EXIT_SUCCESS
5814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfi
582893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectmagic="%%%MAGIC variable%%%"
5844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectmagic_exe="%%%MAGIC EXE variable%%%"
585893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Global variables.
5874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# $mode is unset
5884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectnonopt=
5894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectexecute_dlfiles=
5904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectpreserve_args=
5914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlo2o="s/\\.lo\$/.${objext}/"
5924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecto2lo="s/\\.${objext}\$/.lo/"
5934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectextracted_archives=
5944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectextracted_serial=0
595893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_dry_run=false
5974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_duplicate_deps=false
5984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_silent=false
5994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectopt_debug=:
600893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# If this variable is set in any of the actions, the command in it
6024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# will be execed at the end.  This prevents here-documents from being
6034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# left over by shells.
6044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectexec_cmd=
605893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_fatal_configuration arg...
6074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Echo program name prefixed message to standard error, followed by
6084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# a configuration failure hint, and exit.
6094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_fatal_configuration ()
6104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
6114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error ${1+"$@"}
6124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error "See the $PACKAGE documentation for more information."
6134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_fatal_error "Fatal configuration error."
6144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
6154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
6164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
6174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_config
6184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Display the configuration for all the tags in this script.
6194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_config ()
6204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
6214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    re_begincf='^# ### BEGIN LIBTOOL'
6224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    re_endcf='^# ### END LIBTOOL'
6234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
6244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Default configuration.
6254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
626893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
627893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Now print the configurations for the tags.
628893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    for tagname in $taglist; do
6294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
630893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
631893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $?
6334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
634893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_features
6364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Display the features supported by this script.
6374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_features ()
6384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
6394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "host: $host"
640893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$build_libtool_libs" = yes; then
6414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "enable shared libraries"
642893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
6434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "disable shared libraries"
644893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
645893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$build_old_libs" = yes; then
6464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "enable static libraries"
647893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
6484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "disable static libraries"
649893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
6504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
651893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    exit $?
6524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
6534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
6544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_enable_tag tagname
6554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Verify that TAGNAME is valid, and either flag an error and exit, or
6564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
6574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# variable here.
6584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_enable_tag ()
6594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
6604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Global variable:
6614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  tagname="$1"
662893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
6644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
6654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  sed_extractcf="/$re_begincf/,/$re_endcf/p"
666893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Validate tagname.
6684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case $tagname in
6694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *[!-_A-Za-z0-9,/]*)
6704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_error "invalid tag name: $tagname"
6714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
6724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  esac
673893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Don't test for the "default" C tag, as we know it's
6754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # there but not specially marked.
6764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case $tagname in
6774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    CC) ;;
6784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *)
6794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
6804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	taglist="$taglist $tagname"
6814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
6824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Evaluate the configuration.  Be careful to quote the path
6834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# and the sed script, to avoid splitting on whitespace, but
6844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# also don't use non-portable quotes within backquotes within
6854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# quotes we have to do it in 2 steps:
6864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
6874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "$extractedcf"
6884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
6894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_error "ignoring unknown tag $tagname"
6904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
6914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
6924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  esac
6934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
694893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Parse options once, thoroughly.  This comes as soon as possible in
6964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# the script to make things like `libtool --version' happen quickly.
6974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
698893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
6994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Shorthand for --mode=foo, only valid as the first argument
7004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case $1 in
7014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  clean|clea|cle|cl)
7024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode clean ${1+"$@"}; shift
703893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    ;;
7044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  compile|compil|compi|comp|com|co|c)
7054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode compile ${1+"$@"}; shift
706893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    ;;
7074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  execute|execut|execu|exec|exe|ex|e)
7084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode execute ${1+"$@"}; shift
709893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    ;;
7104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  finish|finis|fini|fin|fi|f)
7114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode finish ${1+"$@"}; shift
712893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    ;;
7134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  install|instal|insta|inst|ins|in|i)
7144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode install ${1+"$@"}; shift
7154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
7164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  link|lin|li|l)
7174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode link ${1+"$@"}; shift
7184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
7194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
7204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift; set dummy --mode uninstall ${1+"$@"}; shift
721893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    ;;
722893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  esac
723893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Parse non-mode specific arguments:
7254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  while test "$#" -gt 0; do
7264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    opt="$1"
7274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    shift
728893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $opt in
7304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --config)		func_config					;;
731893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --debug)		preserve_args="$preserve_args $opt"
7334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			func_echo "enabling shell trace mode"
7344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			opt_debug='set -x'
7354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			$opt_debug
7364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
737893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -dlopen)		test "$#" -eq 0 && func_missing_arg "$opt" && break
7394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			execute_dlfiles="$execute_dlfiles $1"
7404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			shift
7414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
742893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --dry-run | -n)	opt_dry_run=:					;;
7444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --features)       func_features					;;
7454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --finish)		mode="finish"					;;
7464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --mode)		test "$#" -eq 0 && func_missing_arg "$opt" && break
7484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			case $1 in
7494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  # Valid mode arguments:
7504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  clean)	;;
7514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  compile)	;;
7524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  execute)	;;
7534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  finish)	;;
7544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  install)	;;
7554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  link)		;;
7564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  relink)	;;
7574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  uninstall)	;;
7584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  # Catch anything else as an error
7604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  *) func_error "invalid argument for $opt"
7614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			     exit_cmd=exit
7624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			     break
7634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			     ;;
7644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		        esac
7654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			mode="$1"
7674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			shift
7684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
7694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --preserve-dup-deps)
7714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			opt_duplicate_deps=:				;;
7724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --quiet|--silent)	preserve_args="$preserve_args $opt"
7744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			opt_silent=:
7754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
7764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --verbose| -v)	preserve_args="$preserve_args $opt"
7784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			opt_silent=false
7794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
7804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --tag)		test "$#" -eq 0 && func_missing_arg "$opt" && break
7824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			preserve_args="$preserve_args $opt $1"
7834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			func_enable_tag "$1"	# tagname is set here
7844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			shift
7854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
7864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Separate optargs to long options:
7884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -dlopen=*|--mode=*|--tag=*)
7894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			func_opt_split "$opt"
7904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			set dummy "$func_opt_split_opt" "$func_opt_split_arg" ${1+"$@"}
7914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			shift
7924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
7934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -\?|-h)		func_usage					;;
7954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --help)		opt_help=:					;;
7964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      --version)	func_version					;;
7974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
7984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -*)		func_fatal_help "unrecognized option \`$opt'"	;;
7994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)		nonopt="$opt"
8014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			break
8024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			;;
8034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
8044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  done
8054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case $host in
8085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    *cygwin* | *mingw* | *pw32* | *cegcc*)
8094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # don't eliminate duplications in $postdeps and $predeps
8104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      opt_duplicate_compiler_generated_deps=:
811893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
812893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    *)
8134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      opt_duplicate_compiler_generated_deps=$opt_duplicate_deps
8144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
8154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  esac
816893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Having warned about all mis-specified options, bail out if
8184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # anything was wrong.
8194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  $exit_cmd $EXIT_FAILURE
8204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
8214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_check_version_match
8234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Ensure that we are using m4 macros, and libtool script from the same
8244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# release of libtool.
8254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_check_version_match ()
8264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
8274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test "$package_revision" != "$macro_revision"; then
8284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$VERSION" != "$macro_version"; then
8294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -z "$macro_version"; then
8304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        cat >&2 <<_LT_EOF
8314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
8324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: definition of this LT_INIT comes from an older release.
8334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
8344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: and run autoconf again.
8354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project_LT_EOF
8364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
8374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        cat >&2 <<_LT_EOF
8384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
8394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
8404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
8414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: and run autoconf again.
8424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project_LT_EOF
843893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
8444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
8454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      cat >&2 <<_LT_EOF
8464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
8474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: but the definition of this LT_INIT comes from revision $macro_revision.
8484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: You should recreate aclocal.m4 with macros from revision $package_revision
8494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$progname: of $PACKAGE $VERSION and run autoconf again.
8504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project_LT_EOF
8514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
8524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $EXIT_MISMATCH
8544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi
8554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
8564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project## ----------- ##
8594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project##    Main.    ##
8604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project## ----------- ##
8614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$opt_help || {
8634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Sanity checks first:
8644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  func_check_version_match
8654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
8674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_fatal_configuration "not configured to build any kind of library"
868893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  fi
869893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  test -z "$mode" && func_fatal_error "error: you must specify a MODE."
8714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Darwin sucks
8744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  eval std_shrext=\"$shrext_cmds\"
8754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
877893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  # Only execute mode is allowed to have -dlopen flags.
878893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  if test -n "$execute_dlfiles" && test "$mode" != execute; then
8794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_error "unrecognized option \`-dlopen'"
8804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "$help" 1>&2
881893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    exit $EXIT_FAILURE
882893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  fi
883893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
884893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  # Change the help message to a mode-specific one.
885893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  generic_help="$help"
8864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  help="Try \`$progname --help --mode=$mode' for more information."
8874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
888893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
889893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_lalib_p file
8914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# True iff FILE is a libtool `.la' library or `.lo' object file.
8924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function is only a basic sanity check; it will hardly flush out
8934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# determined imposters.
8944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_lalib_p ()
8954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
8965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    test -f "$1" &&
8975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      $SED -e 4q "$1" 2>/dev/null \
8985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
8994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
900893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_lalib_unsafe_p file
9024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# True iff FILE is a libtool `.la' library or `.lo' object file.
9034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function implements the same check as func_lalib_p without
9044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# resorting to external programs.  To this end, it redirects stdin and
9054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# closes it afterwards, without saving the original file descriptor.
9064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# As a safety measure, use it only where a negative result would be
9074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# fatal anyway.  Works if `file' does not exist.
9084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_lalib_unsafe_p ()
9094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lalib_p=no
9115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
9124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for lalib_p_l in 1 2 3 4
9134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	do
9144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    read lalib_p_line
9154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$lalib_p_line" in
9164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
9174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
9184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
9194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exec 0<&5 5<&-
9204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
9214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test "$lalib_p" = yes
9224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
923893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_ltwrapper_script_p file
9254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# True iff FILE is a libtool wrapper script
9264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function is only a basic sanity check; it will hardly flush out
9274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# determined imposters.
9284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_ltwrapper_script_p ()
9294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_lalib_p "$1"
9314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
932893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_ltwrapper_executable_p file
9344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# True iff FILE is a libtool wrapper executable
9354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function is only a basic sanity check; it will hardly flush out
9364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# determined imposters.
9374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_ltwrapper_executable_p ()
9384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_ltwrapper_exec_suffix=
9404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $1 in
9414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.exe) ;;
9424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *) func_ltwrapper_exec_suffix=.exe ;;
9434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
9444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
9454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
946893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_ltwrapper_scriptname file
9484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Assumes file is an ltwrapper_executable
9494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# uses $file to determine the appropriate filename for a
9504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# temporary ltwrapper_script.
9514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_ltwrapper_scriptname ()
9524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_ltwrapper_scriptname_result=""
9544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if func_ltwrapper_executable_p "$1"; then
9554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_dirname_and_basename "$1" "" "."
9564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname '' '.exe' "$func_basename_result"
9574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
9584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
9594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
960893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_ltwrapper_p file
9624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# True iff FILE is a libtool wrapper script or wrapper executable
9634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This function is only a basic sanity check; it will hardly flush out
9644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# determined imposters.
9654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_ltwrapper_p ()
9664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
9684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
969893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
970893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
9714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_execute_cmds commands fail_cmd
9724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Execute tilde-delimited COMMANDS.
9734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# If FAIL_CMD is given, eval that upon failure.
9744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# FAIL_CMD may read-access the current command in variable CMD!
9754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_execute_cmds ()
9764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
9784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    save_ifs=$IFS; IFS='~'
9794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for cmd in $1; do
9804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      IFS=$save_ifs
9814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval cmd=\"$cmd\"
9824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval "$cmd" "${2-:}"
9834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
9844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    IFS=$save_ifs
9854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
9864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
9874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
9884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_source file
9894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Source FILE, adding directory component if necessary.
9904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Note that it is not necessary on cygwin/mingw to append a dot to
9914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
9924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# behavior happens only for exec(3), not for open(2)!  Also, sourcing
9934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# `FILE.' does not work on cygwin managed mounts.
9944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_source ()
9954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
9964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
9974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $1 in
9984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    */* | *\\*)	. "$1" ;;
9994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *)		. "./$1" ;;
10004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
10014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
10024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_infer_tag arg
10054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Infer tagged configuration to use if any are available and
10064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# if one wasn't chosen via the "--tag" command line option.
10074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Only attempt this if the compiler in the base compile
10084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# command doesn't match the default compiler.
10094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# arg is usually of the form 'gcc ...'
10104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_infer_tag ()
10114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
10124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
10134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$available_tags" && test -z "$tagname"; then
10144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      CC_quoted=
10154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for arg in $CC; do
10164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval "$arg"
10174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	CC_quoted="$CC_quoted $func_quote_for_eval_result"
10184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
10194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $@ in
10204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Blanks in the command may have been stripped by the calling shell,
10214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # but not from the CC environment variable when configure was run.
10224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*) ;;
10234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Blanks at the start of $base_compile will cause this to fail
10244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # if we don't check for them as well.
10254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
10264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for z in $available_tags; do
10274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
10284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Evaluate the configuration.
10294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
10304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    CC_quoted=
10314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for arg in $CC; do
10324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Double-quote args containing other shell metacharacters.
10334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_quote_for_eval "$arg"
10344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      CC_quoted="$CC_quoted $func_quote_for_eval_result"
10354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
10364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$@ " in
10374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      " $CC "* | "$CC "* | " `$ECHO $CC` "* | "`$ECHO $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$ECHO $CC_quoted` "* | "`$ECHO $CC_quoted` "*)
10384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # The compiler in the base compile command matches
10394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # the one in the tagged configuration.
10404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Assume this is the tagged configuration we want.
10414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      tagname=$z
10424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      break
1043893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      ;;
1044893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    esac
10454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
10464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
10474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If $tagname still isn't set, then no tagged configuration
10484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# was found and let the user know that the "--tag" command
10494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# line option must be used.
10504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$tagname"; then
10514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_echo "unable to infer tagged configuration"
10524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "specify a tag with \`--tag'"
10534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#	else
10544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#	  func_verbose "using $tagname tagged configuration"
10554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
10564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
10574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
10584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
10594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
10604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_write_libtool_object output_name pic_name nonpic_name
10644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Create a libtool object file (analogous to a ".la" file),
10654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# but don't create it if we're doing a dry run.
10664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_write_libtool_object ()
10674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
10684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    write_libobj=${1}
10694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$build_libtool_libs" = yes; then
10704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      write_lobj=\'${2}\'
10714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
10724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      write_lobj=none
10734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
10744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$build_old_libs" = yes; then
10764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      write_oldobj=\'${3}\'
10774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
10784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      write_oldobj=none
10794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
10804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_dry_run || {
10824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      cat >${write_libobj}T <<EOF
10834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# $write_libobj - a libtool object file
10844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
10854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
10864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Please DO NOT delete this file!
10874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# It is necessary for linking the library.
10884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Name of the PIC object.
10904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectpic_object=$write_lobj
10914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Name of the non-PIC object
10934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectnon_pic_object=$write_oldobj
10944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
10954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
10964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $MV "${write_libobj}T" "${write_libobj}"
10974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
10984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
10994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_compile arg...
11014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_compile ()
11024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
11034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
11044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Get the compilation command and the source file.
11054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    base_compile=
11064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
11074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    suppress_opt=yes
11084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    suppress_output=
11094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    arg_mode=normal
11104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libobj=
11114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    later=
11124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    pie_flag=
11134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for arg
11154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    do
11164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $arg_mode in
11174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      arg  )
11184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# do not "continue".  Instead, add this to base_compile
11194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	lastarg="$arg"
11204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg_mode=normal
11214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
11224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      target )
11244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libobj="$arg"
11254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg_mode=normal
11264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
11274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
11284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      normal )
11304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Accept any command-line options.
11314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $arg in
11324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-o)
11334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$libobj" && \
11344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "you cannot specify \`-o' more than once"
11354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  arg_mode=target
11364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
11374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
11384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-pie | -fpie | -fPIE)
11404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          pie_flag="$pie_flag $arg"
11414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
11424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
11434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-shared | -static | -prefer-pic | -prefer-non-pic)
11454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  later="$later $arg"
11464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
11474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
11484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-no-suppress)
11504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  suppress_opt=no
11514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
11524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
11534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-Xcompiler)
11554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
11564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue      #  The current "srcfile" will either be retained or
11574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;            #  replaced later.  I would guess that would be a bug.
11584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
11594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-Wc,*)
11604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_stripname '-Wc,' '' "$arg"
11614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  args=$func_stripname_result
11624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lastarg=
11634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  save_ifs="$IFS"; IFS=','
11644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for arg in $args; do
11654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    IFS="$save_ifs"
11664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_quote_for_eval "$arg"
11674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lastarg="$lastarg $func_quote_for_eval_result"
1168893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  done
1169893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  IFS="$save_ifs"
11704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_stripname ' ' '' "$lastarg"
11714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lastarg=$func_stripname_result
1172893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1173893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Add the arguments to base_compile.
1174893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  base_compile="$base_compile $lastarg"
1175893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  continue
1176893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
1177893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
11784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
1179893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Accept the current argument as the source file.
1180893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # The previous "srcfile" becomes the current argument.
1181893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  #
1182893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  lastarg="$srcfile"
1183893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  srcfile="$arg"
1184893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
1185893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac  #  case $arg
1186893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1187893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac    #  case $arg_mode
1188893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1189893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Aesthetically quote the previous argument.
11904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_eval "$lastarg"
11914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      base_compile="$base_compile $func_quote_for_eval_result"
1192893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done # for arg
1193893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1194893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    case $arg_mode in
1195893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    arg)
11964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_error "you must specify an argument for -Xcompile"
1197893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1198893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    target)
11994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_error "you must specify a target with \`-o'"
1200893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1201893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    *)
1202893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Get the name of the library object.
12034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -z "$libobj" && {
12044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_basename "$srcfile"
12054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libobj="$func_basename_result"
12064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      }
1207893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1208893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
1209893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1210893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Recognize several different file suffixes.
1211893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # If the user specifies -o file.o, it is replaced with file.lo
1212893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    case $libobj in
12134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.[cCFSifmso] | \
12144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.ada | *.adb | *.ads | *.asm | \
12154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
12164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.[fF][09]? | *.for | *.java | *.obj | *.sx)
12174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_xform "$libobj"
12184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      libobj=$func_xform_result
12194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
1220893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
1221893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1222893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    case $libobj in
12234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
1224893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    *)
12254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_error "cannot determine name of library object from \`$libobj'"
1226893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1227893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
1228893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1229893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    func_infer_tag $base_compile
1230893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1231893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    for arg in $later; do
1232893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      case $arg in
12334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -shared)
12344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test "$build_libtool_libs" != yes && \
12354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_configuration "can not build a shared library"
12364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_old_libs=no
12374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
12384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
12394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1240893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      -static)
12414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_libtool_libs=no
1242893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	build_old_libs=yes
1243893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
1244893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1245893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1246893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      -prefer-pic)
1247893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	pic_mode=yes
1248893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
1249893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1250893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1251893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      -prefer-non-pic)
1252893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	pic_mode=no
1253893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
1254893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1255893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac
1256893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
1257893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
12584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_quote_for_eval "$libobj"
12594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test "X$libobj" != "X$func_quote_for_eval_result" \
12604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
12614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      && func_warning "libobj name \`$libobj' may not contain shell special characters."
12624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_dirname_and_basename "$obj" "/" ""
12634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    objname="$func_basename_result"
12644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    xdir="$func_dirname_result"
1265893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    lobj=${xdir}$objdir/$objname
1266893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
12674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -z "$base_compile" && \
12684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "you must specify a compilation command"
1269893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1270893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Delete any leftover library objects.
1271893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$build_old_libs" = yes; then
1272893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      removelist="$obj $lobj $libobj ${libobj}T"
1273893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
1274893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      removelist="$lobj $libobj ${libobj}T"
1275893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1276893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1277893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # On Cygwin there's no "real" PIC flag so we must build both object types
1278893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    case $host_os in
12795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    cygwin* | mingw* | pw32* | os2* | cegcc*)
1280893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      pic_mode=default
1281893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1282893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
1283893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
1284893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # non-PIC code in shared libraries is not supported
1285893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      pic_mode=default
1286893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1287893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1288893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Calculate the filename of the output object if compiler does
1289893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # not support -o with -c
1290893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$compiler_c_o" = no; then
12914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      output_obj=`$ECHO "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
1292893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      lockfile="$output_obj.lock"
1293893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
1294893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      output_obj=
1295893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      need_locks=no
1296893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      lockfile=
1297893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1298893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1299893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Lock this critical section if it is needed
1300893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # We use this script file to make the link, it avoids creating a new file
1301893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$need_locks" = yes; then
13024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
13034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_echo "Waiting for $lockfile to be removed"
1304893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	sleep 2
1305893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      done
1306893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    elif test "$need_locks" = warn; then
1307893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test -f "$lockfile"; then
13084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
1309893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project*** ERROR, $lockfile exists and contains:
1310893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project`cat $lockfile 2>/dev/null`
1311893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1312893912bfc2683463dc3e2c445336752d012563d3The Android Open Source ProjectThis indicates that another process is trying to use the same
1313893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttemporary object file, and libtool could not work around it because
1314893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
1315893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
1316893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
1317893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectcompiler."
1318893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
13194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || $RM $removelist
1320893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	exit $EXIT_FAILURE
1321893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
13224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      removelist="$removelist $output_obj"
13234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "$srcfile" > "$lockfile"
1324893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1325893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
13264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_dry_run || $RM $removelist
13274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    removelist="$removelist $lockfile"
13284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
13294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
1330893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test -n "$fix_srcfile_path"; then
1331893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      eval srcfile=\"$fix_srcfile_path\"
1332893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
13334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_quote_for_eval "$srcfile"
13344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    qsrcfile=$func_quote_for_eval_result
1335893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1336893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Only build a PIC object if we are building libtool libraries.
1337893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$build_libtool_libs" = yes; then
1338893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Without this assignment, base_compile gets emptied.
1339893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fbsd_hideous_sh_bug=$base_compile
1340893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1341893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$pic_mode" != no; then
1342893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	command="$base_compile $qsrcfile $pic_flag"
1343893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      else
1344893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	# Don't build PIC code
1345893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	command="$base_compile $qsrcfile"
1346893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1347893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
13484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_mkdir_p "$xdir$objdir"
1349893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1350893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test -z "$output_obj"; then
1351893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	# Place PIC objects in $objdir
1352893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	command="$command -o $lobj"
1353893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1354893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
13554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval_locale "$command"	\
13564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
1357893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1358893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$need_locks" = warn &&
1359893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
13604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
1361893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project*** ERROR, $lockfile contains:
1362893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project`cat $lockfile 2>/dev/null`
1363893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1364893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectbut it should contain:
1365893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project$srcfile
1366893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1367893912bfc2683463dc3e2c445336752d012563d3The Android Open Source ProjectThis indicates that another process is trying to use the same
1368893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttemporary object file, and libtool could not work around it because
1369893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
1370893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
1371893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
1372893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectcompiler."
1373893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
13744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || $RM $removelist
1375893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	exit $EXIT_FAILURE
1376893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1377893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1378893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Just move the object if needed, then go on to compile the next one
1379893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
13804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval '$MV "$output_obj" "$lobj"' \
13814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1382893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1383893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1384893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Allow error messages only from the first compilation.
1385893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$suppress_opt" = yes; then
13864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	suppress_output=' >/dev/null 2>&1'
1387893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1388893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1389893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1390893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Only build a position-dependent object if we build old libraries.
1391893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    if test "$build_old_libs" = yes; then
1392893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$pic_mode" != yes; then
1393893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	# Don't build PIC code
13944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	command="$base_compile $qsrcfile$pie_flag"
1395893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      else
1396893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	command="$base_compile $qsrcfile $pic_flag"
1397893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1398893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$compiler_c_o" = yes; then
1399893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	command="$command -o $obj"
1400893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1401893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1402893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Suppress compiler output if we already did a PIC compilation.
1403893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      command="$command$suppress_output"
14044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval_locale "$command" \
14054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
1406893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1407893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$need_locks" = warn &&
1408893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
14094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
1410893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project*** ERROR, $lockfile contains:
1411893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project`cat $lockfile 2>/dev/null`
1412893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1413893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectbut it should contain:
1414893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project$srcfile
1415893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1416893912bfc2683463dc3e2c445336752d012563d3The Android Open Source ProjectThis indicates that another process is trying to use the same
1417893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projecttemporary object file, and libtool could not work around it because
1418893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectyour compiler does not support \`-c' and \`-o' together.  If you
1419893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectrepeat this compilation, it may succeed, by chance, but you had better
1420893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectavoid parallel builds (make -j) in this platform, or get a better
1421893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectcompiler."
1422893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || $RM $removelist
1424893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	exit $EXIT_FAILURE
1425893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1426893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1427893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Just move the object if needed
1428893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
14294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval '$MV "$output_obj" "$obj"' \
14304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
1431893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
1432893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1433893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_dry_run || {
14354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
1436893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Unlock the critical section if it was locked
14384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$need_locks" != no; then
14394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	removelist=$lockfile
14404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $RM "$lockfile"
14414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
14424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
1443893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1444893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    exit $EXIT_SUCCESS
14454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1446893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$opt_help || {
14484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest "$mode" = compile && func_mode_compile ${1+"$@"}
14494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1450893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_help ()
14524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
14534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # We need to display help for each of the modes.
14544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $mode in
14554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      "")
14564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # Generic help is extracted from the usage comments
14574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        # at the start of this file.
14584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_help
14594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1460893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      clean)
14624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
14634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
1464893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectRemove files from the build directory.
1466893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectRM is the name of the program to use to delete files associated with each FILE
14684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
14694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectto RM.
1470893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf FILE is a libtool library, object or program, all the files associated
14724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectwith it are deleted. Otherwise, only FILE itself is deleted using RM."
14734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1474893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile)
14764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO \
14774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
1478893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectCompile a source file into a libtool library object.
1480893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThis mode accepts the following additional options:
1482893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
14844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -no-suppress      do not suppress compiler output for multiple passes
14854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -prefer-pic       try to building PIC objects only
14864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -prefer-non-pic   try to building non-PIC objects only
14874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -shared           do not build a \`.o' file suitable for static linking
14884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -static           only build a \`.o' file suitable for static linking
1489893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectCOMPILE-COMMAND is a command to be used in creating a \`standard' object file
14914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfrom the given SOURCEFILE.
1492893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThe output file name is determined by removing the directory component from
14944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectSOURCEFILE, then substituting the C source code suffix \`.c' with the
14954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlibrary object suffix, \`.lo'."
14964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1497893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
14984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      execute)
14994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
15004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
1501893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectAutomatically set library path, then run a program.
1503893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThis mode accepts the following additional options:
1505893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -dlopen FILE      add the directory containing FILE to the library path
1507893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThis mode sets the library path environment variable according to \`-dlopen'
15094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectflags.
1510893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf any of the ARGS are libtool executable wrappers, then they are translated
15124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectinto their corresponding uninstalled binary, and any of their required library
15134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdirectories are added to the library path.
1514893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThen, COMMAND is executed, with ARGS as arguments."
15164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1517893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      finish)
15194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
15204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
1521893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectComplete the installation of libtool libraries.
1523893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEach LIBDIR is a directory that contains libtool libraries.
1525893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThe commands that this mode executes may require superuser privileges.  Use
15274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectthe \`--dry-run' option if you just want to see what would be executed."
15284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1529893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      install)
15314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
15324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
1533893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectInstall executables or libraries.
1535893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectINSTALL-COMMAND is the installation command.  The first component should be
15374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecteither the \`install' or \`cp' program.
1538893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThe following components of INSTALL-COMMAND are treated specially:
1540893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -inst-prefix PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
1542893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThe rest of the components are interpreted as arguments to that command (only
15444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectBSD-compatible install options are recognized)."
15454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1546893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      link)
15484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
15494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
1550893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectLink object files or libraries together to form another library, or to
15524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectcreate an executable program.
1553893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectLINK-COMMAND is a command using the C compiler that you would use to create
15554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecta program from several object files.
1556893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectThe following components of LINK-COMMAND are treated specially:
1558893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -all-static       do not do any dynamic linking at all
15604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -avoid-version    do not add a version suffix if possible
15614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
15624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
15634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
15644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -export-symbols SYMFILE
15654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                    try to export only the symbols listed in SYMFILE
15664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -export-symbols-regex REGEX
15674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                    try to export only the symbols matching REGEX
15684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -LLIBDIR          search LIBDIR for required installed libraries
15694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -lNAME            OUTPUT-FILE requires the installed library libNAME
15704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -module           build a library that can dlopened
15714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -no-fast-install  disable the fast-install mode
15724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -no-install       link a not-installable executable
15734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -no-undefined     declare that a library does not refer to external symbols
15744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
15754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -objectlist FILE  Use a list of object files found in FILE to specify objects
15764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -precious-files-regex REGEX
15774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                    don't remove output files matching REGEX
15784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -release RELEASE  specify package release information
15794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
15804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
15814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -shared           only do dynamic linking of libtool libraries
15824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -shrext SUFFIX    override the standard shared library file extension
15834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -static           do not do any dynamic linking of uninstalled libtool libraries
15844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -static-libtool-libs
15854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                    do not do any dynamic linking of libtool libraries
15864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -version-info CURRENT[:REVISION[:AGE]]
15874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                    specify library version info [each variable defaults to 0]
15884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  -weak LIBNAME     declare that the target provides the LIBNAME interface
1589893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectAll other options (arguments beginning with \`-') are ignored.
1591893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEvery other argument is treated as a filename.  Files ending in \`.la' are
15934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttreated as uninstalled libtool libraries, other files are standard or library
15944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectobject files.
1595893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
15964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf the OUTPUT-FILE ends in \`.la', then a libtool library is created,
15974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectonly library objects (\`.lo' files) may be specified, and \`-rpath' is
15984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectrequired, except when creating a convenience library.
1599893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
16014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectusing \`ar' and \`ranlib', or on Windows using \`lib'.
1602893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
16044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectis created, otherwise an executable program is created."
1605893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project        ;;
1606893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      uninstall)
16084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO \
16094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
1610893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectRemove libraries from an installation directory.
1612893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectRM is the name of the program to use to delete files associated with each FILE
16144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
16154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectto RM.
1616893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectIf FILE is a libtool library, all the files associated with it are deleted.
16184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectOtherwise, only FILE itself is deleted using RM."
16194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
1620893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
16224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_fatal_help "invalid operation mode \`$mode'"
16234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
16244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
1625893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO
16274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "Try \`$progname --help' for more information about other modes."
1628893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $?
16304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1631893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Now that we've collected a possible --mode arg, show help if necessary
16334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  $opt_help && func_mode_help
1634893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1635893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_execute arg...
16374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_execute ()
16384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
16394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
16404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # The first argument is the command name.
16414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    cmd="$nonopt"
16424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -z "$cmd" && \
16434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "you must specify a COMMAND"
1644893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Handle -dlopen flags immediately.
16464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for file in $execute_dlfiles; do
16474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -f "$file" \
16484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	|| func_fatal_help "\`$file' is not a file"
1649893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dir=
16514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $file in
16524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.la)
16534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check to see that this really is a libtool archive.
16544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_lalib_unsafe_p "$file" \
16554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  || func_fatal_help "\`$lib' is not a valid libtool archive"
1656893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Read the libtool library.
16584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlname=
16594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	library_names=
16604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_source "$file"
1661893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Skip this library if it cannot be dlopened.
16634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$dlname"; then
16644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Warn if it was a shared library.
16654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$library_names" && \
16664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "\`$file' was not linked with \`-export-dynamic'"
16674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
16684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
1669893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_dirname "$file" "" "."
16714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir="$func_dirname_result"
1672893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -f "$dir/$objdir/$dlname"; then
16744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dir="$dir/$objdir"
16754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
16764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test ! -f "$dir/$dlname"; then
16774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
16784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
16794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
1680893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1681893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.lo)
16834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Just add the directory containing the .lo file.
16844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_dirname "$file" "" "."
16854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir="$func_dirname_result"
1686893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
1687893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
16894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
1690893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
1691893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
16924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
1693893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Get the absolute pathname.
16954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      absdir=`cd "$dir" && pwd`
16964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$absdir" && dir="$absdir"
1697893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
16984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now add the directory to shlibpath_var.
16994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if eval "test -z \"\$$shlibpath_var\""; then
17004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "$shlibpath_var=\"\$dir\""
17014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
17024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
17034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
17044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
1705893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # This variable tells wrapper scripts just to set shlibpath_var
17074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # rather than running their programs.
17084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libtool_execute_magic="$magic"
1709893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Check if any of the arguments is a wrapper script.
17114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    args=
17124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for file
17134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    do
17144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $file in
17154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -*) ;;
17164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
17174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Do a test to see if this is really a libtool program.
17184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if func_ltwrapper_script_p "$file"; then
17194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source "$file"
17204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Transform arg to wrapped name.
17214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  file="$progdir/$program"
17224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif func_ltwrapper_executable_p "$file"; then
17234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_ltwrapper_scriptname "$file"
17244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source "$func_ltwrapper_scriptname_result"
17254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Transform arg to wrapped name.
17264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  file="$progdir/$program"
17274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
17284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
17294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
17304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Quote arguments (to preserve shell metacharacters).
17314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_eval "$file"
17324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      args="$args $func_quote_for_eval_result"
17334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
1734893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "X$opt_dry_run" = Xfalse; then
17364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$shlibpath_var"; then
17374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Export the shlibpath_var.
17384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "export $shlibpath_var"
17394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
1740893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Restore saved environment variables
17424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
17434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      do
17444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "if test \"\${save_$lt_var+set}\" = set; then
17454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                $lt_var=\$save_$lt_var; export $lt_var
17464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
17474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$lt_unset $lt_var
17484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi"
17494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
1750893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now prepare to actually exec the command.
17524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exec_cmd="\$cmd$args"
17534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
17544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Display what would be done.
17554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$shlibpath_var"; then
17564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
17574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "export $shlibpath_var"
17584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
17594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "$cmd$args"
17604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exit $EXIT_SUCCESS
17614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
17624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1763893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest "$mode" = execute && func_mode_execute ${1+"$@"}
1765893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1766893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_finish arg...
17684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_finish ()
17694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
17704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
17714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libdirs="$nonopt"
17724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    admincmds=
1773893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
17754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for dir
17764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      do
17774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libdirs="$libdirs $dir"
17784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
1779893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for libdir in $libdirs; do
17814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$finish_cmds"; then
17824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Do each command in the finish commands.
17834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
17844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project'"$cmd"'"'
17854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
17864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$finish_eval"; then
17874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Do the single finish_eval.
17884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval cmds=\"$finish_eval\"
17894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || eval "$cmds" || admincmds="$admincmds
17904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       $cmds"
17914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
17924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
17934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
1794893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Exit here if they wanted silent mode.
17964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_silent && exit $EXIT_SUCCESS
1797893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
17984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "X----------------------------------------------------------------------" | $Xsed
17994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "Libraries have been installed in:"
18004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for libdir in $libdirs; do
18014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   $libdir"
18024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
18034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO
18044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "If you ever happen to want to link against installed libraries"
18054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "in a given directory, LIBDIR, you must either use libtool, and"
18064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "specify the full pathname of the library, or use the \`-LLIBDIR'"
18074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "flag during linking and do at least one of the following:"
18084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$shlibpath_var"; then
18094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   - add LIBDIR to the \`$shlibpath_var' environment variable"
18104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "     during execution"
18114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$runpath_var"; then
18134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   - add LIBDIR to the \`$runpath_var' environment variable"
18144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "     during linking"
18154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$hardcode_libdir_flag_spec"; then
18174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      libdir=LIBDIR
18184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval flag=\"$hardcode_libdir_flag_spec\"
1819893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
18204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   - use the \`$flag' linker flag"
18214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$admincmds"; then
18234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   - have your system administrator run these commands:$admincmds"
18244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -f /etc/ld.so.conf; then
18264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $ECHO "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
18274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO
1829893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
18304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "See any operating system documentation about shared libraries for"
18314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $host in
18324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      solaris2.[6789]|solaris2.1[0-9])
18334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO "more information, such as the ld(1), crle(1) and ld.so(8) manual"
18344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "pages."
1835893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
18364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
18374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        $ECHO "more information, such as the ld(1) and ld.so(8) manual pages."
18384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
18394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
18404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO "X----------------------------------------------------------------------" | $Xsed
18414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $EXIT_SUCCESS
18424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
1843893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
18444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest "$mode" = finish && func_mode_finish ${1+"$@"}
1845893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
1846893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
18474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_install arg...
18484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_install ()
18494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
18504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
18514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # There may be an optional sh(1) argument at the beginning of
18524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # install_prog (especially on Windows NT).
18534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
18544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       # Allow the use of GNU shtool's install command.
18554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       $ECHO "X$nonopt" | $GREP shtool >/dev/null; then
18564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Aesthetically quote it.
18574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_eval "$nonopt"
18584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      install_prog="$func_quote_for_eval_result "
18594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      arg=$1
18604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      shift
18614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
18624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      install_prog=
18634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      arg=$nonopt
18644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
18654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
18664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # The real first argument should be the name of the installation program.
18674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Aesthetically quote it.
18684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_quote_for_eval "$arg"
18694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    install_prog="$install_prog$func_quote_for_eval_result"
18704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
18714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # We need to accept at least all the BSD install flags.
18724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dest=
18734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    files=
18744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    opts=
18754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prev=
18764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    install_type=
18774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    isdir=no
18784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    stripme=
18794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for arg
18804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    do
18814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$dest"; then
18824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	files="$files $dest"
18834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dest=$arg
1884893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
18854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
1886893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
18874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $arg in
18884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -d) isdir=yes ;;
18894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -f)
18904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case " $install_prog " in
18914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*[\\\ /]cp\ *) ;;
18924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) prev=$arg ;;
1893893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
1894893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
18954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -g | -m | -o)
18964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=$arg
18974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
18984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -s)
18994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	stripme=" -s"
19004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
19014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
19024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -*)
19034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
19044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
19054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If the previous option needed an argument, then skip it.
19064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$prev"; then
19074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
19084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
19094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dest=$arg
19104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
19114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
19124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
19134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
1914893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Aesthetically quote the argument.
19164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_eval "$arg"
19174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      install_prog="$install_prog $func_quote_for_eval_result"
19184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
1919893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -z "$install_prog" && \
19214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "you must specify an install program"
1922893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -n "$prev" && \
19244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "the \`$prev' option requires an argument"
19254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
19264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -z "$files"; then
19274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -z "$dest"; then
19284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_fatal_help "no file or destination specified"
19294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
19304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_fatal_help "you must specify a destination"
19314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
1932893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
1933893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Strip any trailing slash from the destination.
19354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_stripname '' '/' "$dest"
19364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dest=$func_stripname_result
1937893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Check to see that the destination is a directory.
19394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -d "$dest" && isdir=yes
19404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$isdir" = yes; then
19414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      destdir="$dest"
19424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      destname=
1943893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    else
19444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_dirname_and_basename "$dest" "" "."
19454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      destdir="$func_dirname_result"
19464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      destname="$func_basename_result"
1947893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Not a directory, so check to see that there is only one file specified.
19494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      set dummy $files; shift
19504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "$#" -gt 1 && \
19514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_fatal_help "\`$dest' is not a directory"
1952893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    fi
19534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $destdir in
19544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    [\\/]* | [A-Za-z]:[\\/]*) ;;
1955893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    *)
19564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for file in $files; do
19574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $file in
19584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.lo) ;;
19594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
19604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_help "\`$destdir' must be an absolute directory name"
19614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
19624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
19634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
1964893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
1965893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    esac
1966893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # This variable tells wrapper scripts just to set variables rather
19684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # than running their programs.
19694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libtool_install_magic="$magic"
1970893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    staticlibs=
19724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    future_libdirs=
19734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    current_libdirs=
19744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for file in $files; do
1975893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
19764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Do each installation.
19774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $file in
19784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.$libext)
19794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Do the static libraries later.
19804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	staticlibs="$staticlibs $file"
19814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
19824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
19834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.la)
19844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check to see that this really is a libtool archive.
19854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_lalib_unsafe_p "$file" \
19864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  || func_fatal_help "\`$file' is not a valid libtool archive"
19874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
19884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	library_names=
19894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	old_library=
19904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	relink_command=
19914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_source "$file"
19924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
19934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Add the libdir to current_libdirs if it is the destination.
19944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$destdir" = "X$libdir"; then
19954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$current_libdirs " in
19964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
19974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) current_libdirs="$current_libdirs $libdir" ;;
1998893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
19994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
20004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Note the libdir as a future libdir.
20014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$future_libdirs " in
20024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
20034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) future_libdirs="$future_libdirs $libdir" ;;
20044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
20054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
2006893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_dirname "$file" "/" ""
20084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir="$func_dirname_result"
20094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir="$dir$objdir"
20104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$relink_command"; then
20124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Determine the prefix the user has applied to our future dir.
20134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  inst_prefix_dir=`$ECHO "X$destdir" | $Xsed -e "s%$libdir\$%%"`
20144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Don't allow the user to place us outside of our expected
20164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # location b/c this prevents finding dependent libraries that
20174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # are installed to the same prefix.
20184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # At present, this check doesn't affect windows .dll's that
20194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # are installed into $libdir/../bin (currently, that works fine)
20204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # but it's something to keep an eye on.
20214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test "$inst_prefix_dir" = "$destdir" && \
20224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
20234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$inst_prefix_dir"; then
20254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Stick the inst_prefix_dir data into the link command.
20264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
20274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
20284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command=`$ECHO "X$relink_command" | $Xsed -e "s%@inst_prefix_dir@%%"`
20294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
20304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "relinking \`$file'"
20324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval "$relink_command" \
20334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
20344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
20354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# See the names of the shared library.
20374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	set dummy $library_names; shift
20384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$1"; then
20394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  realname="$1"
20404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  shift
20414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  srcname="$realname"
20434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$relink_command" && srcname="$realname"T
20444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Install the shared library and build the symlinks.
20464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval "$install_prog $dir/$srcname $destdir/$realname" \
20474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      'exit $?'
20484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tstripme="$stripme"
20494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host_os in
20505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  cygwin* | mingw* | pw32* | cegcc*)
20514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $realname in
20524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *.dll.a)
20534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      tstripme=""
20544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
20554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
2056893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    ;;
2057893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
20584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$tstripme" && test -n "$striplib"; then
20594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
2060893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
20614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
20624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$#" -gt 0; then
20634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Delete the old symlinks, and create new ones.
20644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Try `ln -sf' first, because the `ln' binary might depend on
20654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
20664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # so we also need to try rm && ln -s.
20674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for linkname
20684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    do
20694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test "$linkname" != "$realname" \
20704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
2071893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    done
2072893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
2073893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Do each command in the postinstall commands.
20754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lib="$destdir/$realname"
20764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_execute_cmds "$postinstall_cmds" 'exit $?'
2077893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
2078893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Install the pseudo-library for information purposes.
20804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_basename "$file"
20814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	name="$func_basename_result"
20824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	instname="$dir/$name"i
20834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
2084893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Maybe install the static library, too.
20864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
20874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
2088893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.lo)
20904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Install (i.e. copy) a libtool object.
2091893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
20924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Figure out destination file name, if it wasn't already specified.
20934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$destname"; then
20944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$destdir/$destname"
20954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
20964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_basename "$file"
20974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$func_basename_result"
20984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$destdir/$destfile"
20994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
21004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Deduce the name of the destination old-style object file.
21024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $destfile in
21034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.lo)
21044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_lo2o "$destfile"
21054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  staticdest=$func_lo2o_result
21064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
21074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.$objext)
21084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  staticdest="$destfile"
21094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile=
21104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
21114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
21124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
21134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
2114893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
2115893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
21164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Install the libtool object if requested.
21174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$destfile" && \
21184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval "$install_prog $file $destfile" 'exit $?'
21194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Install the old object if enabled.
21214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$build_old_libs" = yes; then
21224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Deduce the name of the old-style object file.
21234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_lo2o "$file"
21244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  staticobj=$func_lo2o_result
21254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
2126893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
21274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit $EXIT_SUCCESS
21284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
2129893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
21304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
21314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Figure out destination file name, if it wasn't already specified.
21324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$destname"; then
21334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$destdir/$destname"
21344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
21354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_basename "$file"
21364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$func_basename_result"
21374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  destfile="$destdir/$destfile"
21384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
21394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If the file is missing, and there is a .exe on the end, strip it
21414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# because it is most likely a libtool script we actually want to
21424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# install
21434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	stripped_ext=""
21444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $file in
21454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.exe)
21464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test ! -f "$file"; then
21474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_stripname '' '.exe' "$file"
21484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      file=$func_stripname_result
21494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      stripped_ext=".exe"
2150893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
21514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
21524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
2153893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
21544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Do a test to see if this is really a libtool program.
21554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
21565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*cygwin* | *mingw*)
21574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if func_ltwrapper_executable_p "$file"; then
21584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_ltwrapper_scriptname "$file"
21594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      wrapper=$func_ltwrapper_scriptname_result
21604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
21614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_stripname '' '.exe' "$file"
21624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      wrapper=$func_stripname_result
21634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
21644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
21654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
21664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    wrapper=$file
21674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
21684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
21694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if func_ltwrapper_script_p "$wrapper"; then
21704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  notinst_deplibs=
21714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command=
2172893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
21734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source "$wrapper"
2174893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
21754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Check the variables that should have been set.
21764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -z "$generated_by_libtool_version" && \
21774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
21784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  finalize=yes
21804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for lib in $notinst_deplibs; do
21814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Check to see that each library is installed.
21824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libdir=
21834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -f "$lib"; then
21844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_source "$lib"
21854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
21864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
21874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$libdir" && test ! -f "$libfile"; then
21884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_warning "\`$lib' has not been installed in \`$libdir'"
21894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize=no
21904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
21914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
21924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command=
21944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source "$wrapper"
21954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
21964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  outputname=
21974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$fast_install" = no && test -n "$relink_command"; then
21984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
21994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$finalize" = yes; then
22004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        tmpdir=`func_mktempdir`
22014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_basename "$file$stripped_ext"
22024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		file="$func_basename_result"
22034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        outputname="$tmpdir/$file"
22044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        # Replace the output file specification.
22054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        relink_command=`$ECHO "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
22064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
22074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        $opt_silent || {
22084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          func_quote_for_expand "$relink_command"
22094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  eval "func_echo $func_quote_for_expand_result"
22104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        }
22114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        if eval "$relink_command"; then :
22124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          else
22134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_error "error: relink \`$file' with the above command before installing it"
22144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $opt_dry_run || ${RM}r "$tmpdir"
22154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  continue
22164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        fi
22174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        file="$outputname"
22184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
22194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        func_warning "cannot relink \`$file'"
22204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
22214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
2222893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
22234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Install the binary that we compiled earlier.
22244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    file=`$ECHO "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
2225893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
22264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
2227893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# remove .exe since cygwin /usr/bin/install will append another
22294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# one anyway
22304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $install_prog,$host in
22314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*/usr/bin/install*,*cygwin*)
22324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $file:$destfile in
22334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.exe:*.exe)
22344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # this is ok
22354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
22364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.exe:*)
22374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    destfile=$destfile.exe
22384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
22394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *:*.exe)
22404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '' '.exe' "$destfile"
22414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    destfile=$func_stripname_result
22424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
22434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
2244893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
2245893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
22464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
22474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || if test -n "$outputname"; then
22484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ${RM}r "$tmpdir"
22494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
22504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
22514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
22524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
2253893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for file in $staticlibs; do
22554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_basename "$file"
22564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      name="$func_basename_result"
2257893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Set up the ranlib parameters.
22594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      oldlib="$destdir/$name"
2260893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
2262893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$stripme" && test -n "$old_striplib"; then
22644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$old_striplib $oldlib" 'exit $?'
22654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
2266893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Do each command in the postinstall commands.
22684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
22694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
2270893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -n "$future_libdirs" && \
22724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_warning "remember to run \`$progname --finish$future_libdirs'"
2273893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$current_libdirs"; then
22754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Maybe just do a dry run.
22764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $opt_dry_run && current_libdirs=" -n$current_libdirs"
22774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
22784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
22794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exit $EXIT_SUCCESS
22804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
22814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2282893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest "$mode" = install && func_mode_install ${1+"$@"}
2284893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2285893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
22864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_generate_dlsyms outputname originator pic_p
22874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Extract symbols from dlprefiles and create ${outputname}S.o with
22884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# a dlpreopen symbol table.
22894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_generate_dlsyms ()
22904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
22914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
22924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_outputname="$1"
22934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_originator="$2"
22944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_pic_p="${3-no}"
22954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
22964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_dlsyms=
22974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
22984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
22994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$NM" && test -n "$global_symbol_pipe"; then
23004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	my_dlsyms="${my_outputname}S.c"
23014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
23024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_error "not configured to extract global symbols from dlpreopened files"
23034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
23044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
2305893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
23064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$my_dlsyms"; then
23074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $my_dlsyms in
23084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      "") ;;
23094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.c)
23104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Discover the nlist of each of the dlfiles.
23114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	nlist="$output_objdir/${my_outputname}.nm"
23124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
23144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Parse the name list into a source file.
23164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_verbose "creating $output_objdir/$my_dlsyms"
23174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
23194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
23204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
23214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef __cplusplus
23234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectextern \"C\" {
23244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
23254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* External symbol declarations for the compiler. */\
23274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
23284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$dlself" = yes; then
23304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_verbose "generating symbol list for \`$output'"
23314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
23334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Add our own program objects to the symbol list.
23354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  progfiles=`$ECHO "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
23364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for progfile in $progfiles; do
23374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_verbose "extracting global C symbols from \`$progfile'"
23384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
23394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
23404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$exclude_expsyms"; then
23424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
23434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
23444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$MV "$nlist"T "$nlist"'
23454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
2346893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
2347893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
23484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$export_symbols_regex"; then
23494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
23504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
23514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$MV "$nlist"T "$nlist"'
23524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
2353893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
23544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
23554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Prepare the list of exported symbols
23564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$export_symbols"; then
23574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    export_symbols="$output_objdir/$outputname.exp"
23584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
23594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $RM $export_symbols
23604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
23614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $host in
23625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      *cygwin* | *mingw* | *cegcc* )
23634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
23644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
23654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        ;;
2366893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      esac
23674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
23684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
23694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
23704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
23714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
23724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval '$MV "$nlist"T "$nlist"'
23734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $host in
23745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	        *cygwin | *mingw* | *cegcc* )
23754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
23764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
23774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          ;;
2378893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      esac
23794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
2380893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
23814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
2382893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
23834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for dlprefile in $dlprefiles; do
23844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_verbose "extracting global C symbols from \`$dlprefile'"
23854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_basename "$dlprefile"
23864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  name="$func_basename_result"
23874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || {
23884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval '$ECHO ": $name " >> "$nlist"'
23894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
23904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  }
23914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
2392893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
23934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || {
23944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Make sure we have at least an empty file.
23954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -f "$nlist" || : > "$nlist"
2396893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
23974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$exclude_expsyms"; then
23984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
23994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $MV "$nlist"T "$nlist"
2400893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
2401893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Try sorting and uniquifying the output.
24034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if $GREP -v "^: " < "$nlist" |
24044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if sort -k 3 </dev/null >/dev/null 2>&1; then
24054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		sort -k 3
2406893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      else
24074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		sort +2
24084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi |
24094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      uniq > "$nlist"S; then
24104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    :
2411893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
24124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $GREP -v "^: " < "$nlist" > "$nlist"S
2413893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
2414893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -f "$nlist"S; then
24164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
2417893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
24184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
2419893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
2420893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO >> "$output_objdir/$my_dlsyms" "\
2422893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* The mapping between symbol names and symbols.  */
24244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttypedef struct {
24254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  const char *name;
24264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  void *address;
24274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project} lt_dlsymlist;
24284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
24294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
24305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  *cygwin* | *mingw* | *cegcc* )
24314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO >> "$output_objdir/$my_dlsyms" "\
24324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* DATA imports from DLLs on WIN32 con't be const, because
24334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   runtime relocations are performed -- see ld's documentation
24344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   on pseudo-relocs.  */"
24354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lt_dlsym_const= ;;
24364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *osf5*)
24374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    echo >> "$output_objdir/$my_dlsyms" "\
24384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* This system does not cope well with relocations in const data */"
24394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lt_dlsym_const= ;;
24404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
24414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lt_dlsym_const=const ;;
24424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
2443893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO >> "$output_objdir/$my_dlsyms" "\
24454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectextern $lt_dlsym_const lt_dlsymlist
24464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_${my_prefix}_LTX_preloaded_symbols[];
24474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project$lt_dlsym_const lt_dlsymlist
24484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_${my_prefix}_LTX_preloaded_symbols[] =
24494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{\
24504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  { \"$my_originator\", (void *) 0 },"
2451893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $need_lib_prefix in
24534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  no)
24544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
24554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
24564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
24574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
24584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
24594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
24604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO >> "$output_objdir/$my_dlsyms" "\
24614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  {0, (void *) 0}
24624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project};
2463893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* This works around a problem in FreeBSD linker */
24654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef FREEBSD_WORKAROUND
24664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectstatic const void *lt_preloaded_setup() {
24674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return lt_${my_prefix}_LTX_preloaded_symbols;
24684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
24694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
2470893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef __cplusplus
24724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
24734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif\
24744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
24754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	} # !$opt_dry_run
2476893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
24774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	pic_flag_for_symtable=
24784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$compile_command " in
24794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" -static "*) ;;
24804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
24814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
24824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # compiling the symbol table file with pic_flag works around
24834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # a FreeBSD bug that causes programs to crash when -lm is
24844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # linked before any other PIC object.  But we must not use
24854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # pic_flag when linking with -static.  The problem exists in
24864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
24874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
24884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
24894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-hpux*)
24904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    pic_flag_for_symtable=" $pic_flag"  ;;
24914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
24924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "X$my_pic_p" != Xno; then
24934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      pic_flag_for_symtable=" $pic_flag"
24944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
24954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
24964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
24974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
24984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
24994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	symtab_cflags=
25004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for arg in $LTCFLAGS; do
25014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $arg in
25024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  -pie | -fpie | -fPIE) ;;
25034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) symtab_cflags="$symtab_cflags $arg" ;;
25044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
25054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
2506893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Now compile the dynamic symbol file.
25084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
2509893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Clean up the generated files.
25114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
2512893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Transform the symbol file into the correct name.
25144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	symfileobj="$output_objdir/${my_outputname}S.$objext"
25154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
25165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*cygwin* | *mingw* | *cegcc* )
25174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -f "$output_objdir/$my_outputname.def"; then
25184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
25194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
25204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
25214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
25224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
25234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
25244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
25254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
25264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
25274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
25284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
25294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
2530893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
2531893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *)
25324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_fatal_error "unknown suffix for \`$my_dlsyms'"
2533893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
2534893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac
25354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
25364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # We keep going just in case the user didn't refer to
25374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
25384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # really was required.
2539893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Nullify the symbol file.
25414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile_command=`$ECHO "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
25424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
25434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
25444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2545893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_win32_libid arg
25474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# return the library type of file 'arg'
25484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
25494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Need a lot of goo to handle *both* DLLs and import libs
25504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Has to be a shell function in order to 'eat' the argument
25514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# that is supplied when $file_magic_command is called.
25524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_win32_libid ()
25534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
25544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  $opt_debug
25554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  win32_libid_type="unknown"
25564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  win32_fileres=`file -L $1 2>/dev/null`
25574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case $win32_fileres in
25584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *ar\ archive\ import\ library*) # definitely import
25594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    win32_libid_type="x86 archive import"
25604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
25614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *ar\ archive*) # could be an import, or static
25624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
25634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       $EGREP 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
25644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      win32_nmres=`eval $NM -f posix -A $1 |
25654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$SED -n -e '
25664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    1,100{
25674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		/ I /{
25684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    s,.*,import,
25694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    p
25704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    q
25714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		}
25724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }'`
25734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $win32_nmres in
25744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      import*)  win32_libid_type="x86 archive import";;
25754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)        win32_libid_type="x86 archive static";;
25764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
25774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
25784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
25794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *DLL*)
25804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    win32_libid_type="x86 DLL"
25814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
25824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  *executable*) # but shell scripts are "executable" too...
25834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $win32_fileres in
25844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *MS\ Windows\ PE\ Intel*)
25854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      win32_libid_type="x86 DLL"
25864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
25874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
25884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ;;
25894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  esac
25904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  $ECHO "$win32_libid_type"
25914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2592893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2593893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2594893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
25954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_extract_an_archive dir oldlib
25964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_extract_an_archive ()
25974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
25984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
25994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    f_ex_an_ar_dir="$1"; shift
26004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    f_ex_an_ar_oldlib="$1"
26014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" 'exit $?'
26024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
26034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     :
26044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
26054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
26064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
26074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2608893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
2609893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_extract_archives gentop oldlib ...
26114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_extract_archives ()
26124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
26134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
26144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_gentop="$1"; shift
26154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_oldlibs=${1+"$@"}
26164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_oldobjs=""
26174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_xlib=""
26184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_xabs=""
26194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    my_xdir=""
2620893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for my_xlib in $my_oldlibs; do
26224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Extract the objects.
26234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $my_xlib in
26244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
26254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) my_xabs=`pwd`"/$my_xlib" ;;
26264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
26274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_basename "$my_xlib"
26284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_xlib="$func_basename_result"
26294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_xlib_u=$my_xlib
26304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      while :; do
26314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        case " $extracted_archives " in
26324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $my_xlib_u "*)
26334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $extracted_serial + 1
26344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  extracted_serial=$func_arith_result
26354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
26364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) break ;;
2637893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
26384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
26394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      extracted_archives="$extracted_archives $my_xlib_u"
26404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_xdir="$my_gentop/$my_xlib_u"
2641893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_mkdir_p "$my_xdir"
2643893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
26454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *-darwin*)
26464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_verbose "Extracting $my_xabs"
26474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Do not bother doing anything if just a dry run
26484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || {
26494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin_orig_dir=`pwd`
26504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  cd $my_xdir || exit $?
26514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin_archive=$my_xabs
26524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin_curdir=`pwd`
26534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin_base_archive=`basename "$darwin_archive"`
26544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
26554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$darwin_arches"; then
26564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
26574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    darwin_arch=
26584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
26594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for darwin_arch in  $darwin_arches ; do
26604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
26614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
26624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
26634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
26644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cd "$darwin_curdir"
26654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
26664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done # $darwin_arches
26674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
26684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
26694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    darwin_file=
26704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    darwin_files=
26714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for darwin_file in $darwin_filelist; do
26724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
26734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $LIPO -create -output "$darwin_file" $darwin_files
26744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done # $darwin_filelist
26754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $RM -rf unfat-$$
26764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cd "$darwin_orig_dir"
26774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
26784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cd $darwin_orig_dir
26794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_extract_an_archive "$my_xdir" "$my_xabs"
26804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi # $darwin_arches
26814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	} # !$opt_dry_run
26824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
26834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
26844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_extract_an_archive "$my_xdir" "$my_xabs"
26854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
26864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
26874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
26884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
2689893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_extract_archives_result="$my_oldobjs"
26914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
2692893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
26934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
26944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
26955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_emit_wrapper_part1 [arg=no]
26964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
26975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Emit the first part of a libtool wrapper script on stdout.
26985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# For more information, see the description associated with
26995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_emit_wrapper(), below.
27005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottfunc_emit_wrapper_part1 ()
27014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
27025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	func_emit_wrapper_part1_arg1=no
27034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$1" ; then
27045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  func_emit_wrapper_part1_arg1=$1
2705893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
2706893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
27084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#! $SHELL
2709893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# $output - temporary wrapper script for $objdir/$outputname
27114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
27124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
27134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# The $output program cannot be directly executed until all the libtool
27144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# libraries that it depends on are installed.
27154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
27164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This wrapper script should never be moved out of the build directory.
27174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# If it is, it will not operate correctly.
2718893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Sed substitution that helps us do robust quoting.  It backslashifies
27204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# metacharacters that are still active within double-quoted strings.
27214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectXsed='${SED} -e 1s/^X//'
27224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectsed_quote_subst='$sed_quote_subst'
2723893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Be Bourne compatible
27254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectif test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
27264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  emulate sh
27274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  NULLCMD=:
27284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
27294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # is contrary to our usage.  Disable this feature.
27304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  alias -g '\${1+\"\$@\"}'='\"\$@\"'
27314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  setopt NO_GLOB_SUBST
27324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelse
27334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
27344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfi
27354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectBIN_SH=xpg4; export BIN_SH # for Tru64
27364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectDUALCASE=1; export DUALCASE # for MKS sh
2737893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# The HP-UX ksh and POSIX shell print the target directory to stdout
27394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# if CDPATH is set.
27404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
2741893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectrelink_command=\"$relink_command\"
2743893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# This environment variable determines our operation mode.
27454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectif test \"\$libtool_install_magic\" = \"$magic\"; then
27464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # install mode needs the following variables:
27474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  generated_by_libtool_version='$macro_version'
27484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  notinst_deplibs='$notinst_deplibs'
27494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectelse
27504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # When we are sourced in execute mode, \$file and \$ECHO are already set.
27514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test \"\$libtool_execute_magic\" != \"$magic\"; then
27524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ECHO=\"$qecho\"
27534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    file=\"\$0\"
27544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Make sure echo works.
27554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test \"X\$1\" = X--no-reexec; then
27564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Discard the --no-reexec flag, and continue.
27574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      shift
27584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    elif test \"X\`{ \$ECHO '\t'; } 2>/dev/null\`\" = 'X\t'; then
27594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Yippee, \$ECHO works!
27604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      :
27614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
27624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Restart under the correct shell, and then maybe \$ECHO will work.
27634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
27644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
27654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi\
27664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
27674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
2768893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Find the directory that this script lives in.
27704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  thisdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
27714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
2772893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Follow symbolic links until we get to the real thisdir.
27744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
27754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  while test -n \"\$file\"; do
27764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    destdir=\`\$ECHO \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
2777893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # If there was a directory component, then change thisdir.
27794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test \"x\$destdir\" != \"x\$file\"; then
27804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case \"\$destdir\" in
27814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
27824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *) thisdir=\"\$thisdir/\$destdir\" ;;
27834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
27844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
2785893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
27864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    file=\`\$ECHO \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
27874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
27884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  done
27895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott"
27905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
27915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# end: func_emit_wrapper_part1
27925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
27935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_emit_wrapper_part2 [arg=no]
27945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
27955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Emit the second part of a libtool wrapper script on stdout.
27965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# For more information, see the description associated with
27975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_emit_wrapper(), below.
27985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottfunc_emit_wrapper_part2 ()
27995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
28005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	func_emit_wrapper_part2_arg1=no
28015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	if test -n "$1" ; then
28025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  func_emit_wrapper_part2_arg1=$1
28035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	fi
28045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
28055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	$ECHO "\
2806893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Usually 'no', except on cygwin/mingw when embedded into
28084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # the cwrapper.
28095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
28104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
28114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # special case for '.'
28124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test \"\$thisdir\" = \".\"; then
28134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      thisdir=\`pwd\`
28144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
28154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # remove .libs from thisdir
28164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case \"\$thisdir\" in
28174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
28184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $objdir )   thisdir=. ;;
28194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
28204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi
2821893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  # Try to get the absolute directory name.
28234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  absdir=\`cd \"\$thisdir\" && pwd\`
28244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  test -n \"\$absdir\" && thisdir=\"\$absdir\"
28254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
2826893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$fast_install" = yes; then
28284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
28294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  program=lt-'$outputname'$exeext
28304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  progdir=\"\$thisdir/$objdir\"
2831893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test ! -f \"\$progdir/\$program\" ||
28334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
28344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
2835893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    file=\"\$\$-\$program\"
2837893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test ! -d \"\$progdir\"; then
28394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $MKDIR \"\$progdir\"
28404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
28414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $RM \"\$progdir/\$file\"
28424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi"
2843893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
28454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
28464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # relink executable if necessary
28474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n \"\$relink_command\"; then
28484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
28494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
28504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO \"\$relink_command_output\" >&2
28514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$RM \"\$progdir/\$file\"
28524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit 1
2853893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
28544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
2855893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
28574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    { $RM \"\$progdir/\$program\";
28584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
28594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $RM \"\$progdir/\$file\"
28604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi"
28614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
28624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
28634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  program='$outputname'
28644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  progdir=\"\$thisdir/$objdir\"
28654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
2866893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
2867893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
2869893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if test -f \"\$progdir/\$program\"; then"
2871893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Export our shlibpath_var if we have one.
28734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
28744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
28754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Add our own library path to $shlibpath_var
28764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
2877893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Some systems cannot cope with colon-terminated $shlibpath_var
28794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # The second colon is a workaround for a bug in BeOS R4 sed
28804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $shlibpath_var=\`\$ECHO \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
28814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
28824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    export $shlibpath_var
28834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
2884893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
2885893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# fixup the dll searchpath if we need to.
28874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$dllsearchpath"; then
28884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
28894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Add the dll search path components to the executable PATH
28904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    PATH=$dllsearchpath:\$PATH
28914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
28924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
2893893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
28944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
28954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test \"\$libtool_execute_magic\" != \"$magic\"; then
28964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Run the actual program with our arguments.
28974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
28984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
28994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Backslashes separate directories on plain windows
29005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*-*-mingw | *-*-os2* | *-cegcc*)
29014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
29024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
29034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
29044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
29054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
29064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
29074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "\
29084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exec \"\$progdir/\$program\" \${1+\"\$@\"}
29094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
29104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
2911893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
29124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$ECHO "\
29134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
29144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exit 1
29154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
29164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  else
29174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # The program doesn't exist.
29184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
29194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
29204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
29214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit 1
29224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fi
29234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfi\
29244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project"
29254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
29265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# end: func_emit_wrapper_part2
29275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
29285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
29295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_emit_wrapper [arg=no]
29305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
29315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Emit a libtool wrapper script on stdout.
29325f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Don't directly open a file because we may want to
29335f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# incorporate the script contents within a cygwin/mingw
29345f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# wrapper executable.  Must ONLY be called from within
29355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_mode_link because it depends on a number of variables
29365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# set therein.
29375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
29385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
29395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# variable will take.  If 'yes', then the emitted script
29405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# will assume that the directory in which it is stored is
29415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# the $objdir directory.  This is a cygwin/mingw-specific
29425f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# behavior.
29435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottfunc_emit_wrapper ()
29445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
29455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	func_emit_wrapper_arg1=no
29465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	if test -n "$1" ; then
29475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  func_emit_wrapper_arg1=$1
29485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	fi
29495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
29505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	# split this up so that func_emit_cwrapperexe_src
29515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	# can call each part independently.
29525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
29535f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
29545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
29555f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
29565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
29575f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_to_host_path arg
29585f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
29595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Convert paths to host format when used with build tools.
29605f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Intended for use with "native" mingw (where libtool itself
29615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# is running under the msys shell), or in the following cross-
29625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# build environments:
29635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    $build          $host
29645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    mingw (msys)    mingw  [e.g. native]
29655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    cygwin          mingw
29665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    *nix + wine     mingw
29675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# where wine is equipped with the `winepath' executable.
29685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# In the native mingw case, the (msys) shell automatically
29695f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# converts paths for any non-msys applications it launches,
29705f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# but that facility isn't available from inside the cwrapper.
29715f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Similar accommodations are necessary for $host mingw and
29725f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# $build cygwin.  Calling this function does no harm for other
29735f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# $host/$build combinations not listed above.
29745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
29755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# ARG is the path (on $build) that should be converted to
29765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# the proper representation for $host. The result is stored
29775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# in $func_to_host_path_result.
29785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottfunc_to_host_path ()
29795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
29805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  func_to_host_path_result="$1"
29815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if test -n "$1" ; then
29825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    case $host in
29835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      *mingw* )
29845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
29855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        case $build in
29865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          *mingw* ) # actually, msys
29875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # awkward: cmd appends spaces to result
29885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
29895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_path_tmp1=`( cmd //c echo "$1" |\
29905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
29915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
29925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_naive_backslashify"`
29935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
29945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          *cygwin* )
29955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_path_tmp1=`cygpath -w "$1"`
29965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
29975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_naive_backslashify"`
29985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
29995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          * )
30005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # Unfortunately, winepath does not exit with a non-zero
30015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # error code, so we are forced to check the contents of
30025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # stdout. On the other hand, if the command is not
30035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # found, the shell will set an exit code of 127 and print
30045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # *an error message* to stdout. So we must check for both
30055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # error code of zero AND non-empty stdout, which explains
30065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # the odd construction:
30075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
30085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
30095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
30105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                $SED -e "$lt_sed_naive_backslashify"`
30115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            else
30125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              # Allow warning below.
30135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              func_to_host_path_result=""
30145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            fi
30155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
30165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        esac
30175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        if test -z "$func_to_host_path_result" ; then
30185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "Could not determine host path corresponding to"
30195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "  '$1'"
30205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "Continuing, but uninstalled executables may not work."
30215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # Fallback:
30225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_to_host_path_result="$1"
30235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        fi
30245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        ;;
30255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    esac
30265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  fi
30275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
30285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# end: func_to_host_path
30295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
30305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# func_to_host_pathlist arg
30315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
30325f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Convert pathlists to host format when used with build tools.
30335f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# See func_to_host_path(), above. This function supports the
30345f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# following $build/$host combinations (but does no harm for
30355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# combinations not listed here):
30365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    $build          $host
30375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    mingw (msys)    mingw  [e.g. native]
30385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    cygwin          mingw
30395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#    *nix + wine     mingw
30405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
30415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# Path separators are also converted from $build format to
30425f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# $host format. If ARG begins or ends with a path separator
30435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# character, it is preserved (but converted to $host format)
30445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# on output.
30455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#
30465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# ARG is a pathlist (on $build) that should be converted to
30475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# the proper representation on $host. The result is stored
30485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# in $func_to_host_pathlist_result.
30495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottfunc_to_host_pathlist ()
30505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
30515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  func_to_host_pathlist_result="$1"
30525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if test -n "$1" ; then
30535f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    case $host in
30545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      *mingw* )
30555f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
30565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # Remove leading and trailing path separator characters from
30575f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # ARG. msys behavior is inconsistent here, cygpath turns them
30585f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # into '.;' and ';.', and winepath ignores them completely.
30595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        func_to_host_pathlist_tmp2="$1"
30605f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # Once set for this call, this variable should not be
30615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # reassigned. It is used in tha fallback case.
30625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
30635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          $SED -e 's|^:*||' -e 's|:*$||'`
30645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        case $build in
30655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          *mingw* ) # Actually, msys.
30665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # Awkward: cmd appends spaces to result.
30675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            lt_sed_strip_trailing_spaces="s/[ ]*\$//"
30685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
30695f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
30705f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
30715f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_naive_backslashify"`
30725f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
30735f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          *cygwin* )
30745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
30755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
30765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              $SED -e "$lt_sed_naive_backslashify"`
30775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
30785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          * )
30795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            # unfortunately, winepath doesn't convert pathlists
30805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_result=""
30815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            func_to_host_pathlist_oldIFS=$IFS
30825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            IFS=:
30835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
30845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              IFS=$func_to_host_pathlist_oldIFS
30855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              if test -n "$func_to_host_pathlist_f" ; then
30865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                func_to_host_path "$func_to_host_pathlist_f"
30875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                if test -n "$func_to_host_path_result" ; then
30885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                  if test -z "$func_to_host_pathlist_result" ; then
30895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                    func_to_host_pathlist_result="$func_to_host_path_result"
30905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                  else
30915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                    func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
30925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                  fi
30935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                fi
30945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              fi
30955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              IFS=:
30965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            done
30975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            IFS=$func_to_host_pathlist_oldIFS
30985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
30995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        esac
31005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        if test -z "$func_to_host_pathlist_result" ; then
31015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "Could not determine the host path(s) corresponding to"
31025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "  '$1'"
31035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_error "Continuing, but uninstalled executables may not work."
31045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # Fallback. This may break if $1 contains DOS-style drive
31055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # specifications. The fix is not to complicate the expression
31065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # below, but for the user to provide a working wine installation
31075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # with winepath so that path translation in the cross-to-mingw
31085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          # case works properly.
31095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          lt_replace_pathsep_nix_to_dos="s|:|;|g"
31105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
31115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            $SED -e "$lt_replace_pathsep_nix_to_dos"`
31125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        fi
31135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # Now, add the leading and trailing path separators back
31145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        case "$1" in
31155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
31165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
31175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        esac
31185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        case "$1" in
31195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
31205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            ;;
31215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        esac
31225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        ;;
31235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    esac
31245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  fi
31255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
31265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott# end: func_to_host_pathlist
3127893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
31284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_emit_cwrapperexe_src
31294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# emit the source code for a wrapper executable on stdout
31304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Must ONLY be called from within func_mode_link because
31314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# it depends on a number of variable set therein.
31324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_emit_cwrapperexe_src ()
31334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
31344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	cat <<EOF
3135893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
31364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
31374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
31384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   The $output program cannot be directly executed until all the libtool
31404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   libraries that it depends on are installed.
31414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   This wrapper executable should never be moved out of the build directory.
31434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   If it is, it will not operate correctly.
31444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   Currently, it simply execs the wrapper *script* "$SHELL $output",
31464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   but could eventually absorb all of the scripts functionality and
31474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   exec $objdir/$outputname directly.
31484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project*/
3149893912bfc2683463dc3e2c445336752d012563d3The Android Open Source ProjectEOF
31504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<"EOF"
31514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <stdio.h>
31524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <stdlib.h>
31534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef _MSC_VER
31544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include <direct.h>
31554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include <process.h>
31564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include <io.h>
31574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define setmode _setmode
31584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else
31594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include <unistd.h>
31604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# include <stdint.h>
31614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# ifdef __CYGWIN__
31624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#  include <io.h>
31635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#  define HAVE_SETENV
31645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#  ifdef __STRICT_ANSI__
31655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottchar *realpath (const char *, char *);
31665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottint putenv (char *);
31675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottint setenv (const char *, const char *, int);
31685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#  endif
31694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# endif
31704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
31714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <malloc.h>
31724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <stdarg.h>
31734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <assert.h>
31744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <string.h>
31754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <ctype.h>
31764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <errno.h>
31774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <fcntl.h>
31784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#include <sys/stat.h>
31794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined(PATH_MAX)
31814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define LT_PATHMAX PATH_MAX
31824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#elif defined(MAXPATHLEN)
31834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define LT_PATHMAX MAXPATHLEN
31844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else
31854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define LT_PATHMAX 1024
31864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
31874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef S_IXOTH
31894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define S_IXOTH 0
31904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
31914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef S_IXGRP
31924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define S_IXGRP 0
31934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
31944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
31954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef _MSC_VER
31964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define S_IXUSR _S_IEXEC
31974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define stat _stat
31984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# ifndef _INTPTR_T_DEFINED
31994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#  define intptr_t int
32004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# endif
32014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef DIR_SEPARATOR
32044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define DIR_SEPARATOR '/'
32054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define PATH_SEPARATOR ':'
32064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
32094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  defined (__OS2__)
32104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define HAVE_DOS_BASED_FILE_SYSTEM
32114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define FOPEN_WB "wb"
32124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# ifndef DIR_SEPARATOR_2
32134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#  define DIR_SEPARATOR_2 '\\'
32144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# endif
32154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# ifndef PATH_SEPARATOR_2
32164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#  define PATH_SEPARATOR_2 ';'
32174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# endif
32184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef DIR_SEPARATOR_2
32214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
32224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else /* DIR_SEPARATOR_2 */
32234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define IS_DIR_SEPARATOR(ch) \
32244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
32254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif /* DIR_SEPARATOR_2 */
32264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef PATH_SEPARATOR_2
32284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
32294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else /* PATH_SEPARATOR_2 */
32304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
32314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif /* PATH_SEPARATOR_2 */
32324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifdef __CYGWIN__
32344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define FOPEN_WB "wb"
32354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef FOPEN_WB
32384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define FOPEN_WB "w"
32394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef _O_BINARY
32414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define _O_BINARY 0
32424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
32454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#define XFREE(stale) do { \
32464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (stale) { free ((void *) stale); stale = 0; } \
32474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project} while (0)
32484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#undef LTWRAPPER_DEBUGPRINTF
32504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined DEBUGWRAPPER
32514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
32524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectstatic void
32534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectltwrapper_debugprintf (const char *fmt, ...)
32544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
32554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    va_list args;
32564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    va_start (args, fmt);
32574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    (void) vfprintf (stderr, fmt, args);
32584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    va_end (args);
32594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
32604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else
32614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# define LTWRAPPER_DEBUGPRINTF(args)
32624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
32634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectconst char *program_name = NULL;
32654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectvoid *xmalloc (size_t num);
32674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *xstrdup (const char *string);
32684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectconst char *base_name (const char *name);
32694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *find_executable (const char *wrapper);
32704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *chase_symlinks (const char *pathspec);
32714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectint make_executable (const char *path);
32724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectint check_executable (const char *path);
32734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *strendzap (char *str, const char *pat);
32744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectvoid lt_fatal (const char *message, ...);
32755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_setenv (const char *name, const char *value);
32765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottchar *lt_extend_str (const char *orig_value, const char *add, int to_end);
32775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_opt_process_env_set (const char *arg);
32785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_opt_process_env_prepend (const char *arg);
32795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_opt_process_env_append (const char *arg);
32805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottint lt_split_name_value (const char *arg, char** name, char** value);
32815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_update_exe_path (const char *name, const char *value);
32825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid lt_update_lib_path (const char *name, const char *value);
32835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
32845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *script_text_part1 =
32854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
32864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
32875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    func_emit_wrapper_part1 yes |
32885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	        $SED -e 's/\([\\"]\)/\\\1/g' \
32895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	             -e 's/^/  "/' -e 's/$/\\n"/'
32905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    echo ";"
32915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    cat <<EOF
32925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
32935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *script_text_part2 =
32945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
32955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    func_emit_wrapper_part2 yes |
32964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        $SED -e 's/\([\\"]\)/\\\1/g' \
32974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	             -e 's/^/  "/' -e 's/$/\\n"/'
32984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    echo ";"
32994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<EOF
33014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectconst char * MAGIC_EXE = "$magic_exe";
33025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * LIB_PATH_VARNAME = "$shlibpath_var";
33035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
33065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              func_to_host_pathlist "$temp_rpath"
33075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<EOF
33085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * LIB_PATH_VALUE   = "$func_to_host_pathlist_result";
33095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    else
33115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<"EOF"
33125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * LIB_PATH_VALUE   = "";
33135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    fi
33155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    if test -n "$dllsearchpath"; then
33175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              func_to_host_pathlist "$dllsearchpath:"
33185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<EOF
33195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * EXE_PATH_VARNAME = "PATH";
33205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * EXE_PATH_VALUE   = "$func_to_host_pathlist_result";
33215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    else
33235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<"EOF"
33245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * EXE_PATH_VARNAME = "";
33255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * EXE_PATH_VALUE   = "";
33265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    fi
33285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    if test "$fast_install" = yes; then
33305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<EOF
33315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
33325f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33335f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    else
33345f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      cat <<EOF
33355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottconst char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
33365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
33375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    fi
33385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    cat <<"EOF"
33415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33425f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#define LTWRAPPER_OPTION_PREFIX         "--lt-"
33435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#define LTWRAPPER_OPTION_PREFIX_LENGTH  5
33445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const size_t opt_prefix_len         = LTWRAPPER_OPTION_PREFIX_LENGTH;
33465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
33475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
33495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const size_t env_set_opt_len     = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
33515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *env_set_opt          = LTWRAPPER_OPTION_PREFIX "env-set";
33525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* argument is putenv-style "foo=bar", value of foo is set to bar */
33535f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
33555f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *env_prepend_opt      = LTWRAPPER_OPTION_PREFIX "env-prepend";
33565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
33575f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
33585f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const size_t env_append_opt_len  = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
33595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottstatic const char *env_append_opt       = LTWRAPPER_OPTION_PREFIX "env-append";
33605f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
33614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectint
33634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectmain (int argc, char *argv[])
33644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
33654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char **newargz;
33665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  int  newargc;
33674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char *tmp_pathspec;
33684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char *actual_cwrapper_path;
33695f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *actual_cwrapper_name;
33705f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *target_name;
33715f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *lt_argv_zero;
33724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  intptr_t rval = 127;
33734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  int i;
33754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  program_name = (char *) xstrdup (base_name (argv[0]));
33774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(main) argv[0]      : %s\n", argv[0]));
33784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
33794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* very simple arg parsing; don't want to rely on getopt */
33814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  for (i = 1; i < argc; i++)
33824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
33834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (strcmp (argv[i], dumpscript_opt) == 0)
33844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	{
33854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
33864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$host" in
33874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *mingw* | *cygwin* )
33884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# make stdout use "unix" line endings
33894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		echo "          setmode(1,_O_BINARY);"
33904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
33914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
33924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
33935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    cat <<"EOF"
33945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  printf ("%s", script_text_part1);
33955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  printf ("%s", script_text_part2);
33964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  return 0;
33974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	}
33984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
33994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
34005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  newargz = XMALLOC (char *, argc + 1);
34014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  tmp_pathspec = find_executable (argv[0]);
34024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (tmp_pathspec == NULL)
34034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lt_fatal ("Couldn't find %s", argv[0]);
34044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
34054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  tmp_pathspec));
34064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
34074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
34084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
34094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  actual_cwrapper_path));
34104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  XFREE (tmp_pathspec);
34114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
34125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
34135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strendzap (actual_cwrapper_path, actual_cwrapper_name);
34145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
34155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* wrapper name transforms */
34165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strendzap (actual_cwrapper_name, ".exe");
34175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
34185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (actual_cwrapper_name);
34195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  actual_cwrapper_name = tmp_pathspec;
34204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  tmp_pathspec = 0;
34215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
34225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* target_name transforms -- use actual target program name; might have lt- prefix */
34235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
34245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strendzap (target_name, ".exe");
34255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
34265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (target_name);
34275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  target_name = tmp_pathspec;
34285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  tmp_pathspec = 0;
34295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
34305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
34315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott			  target_name));
34324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
3433893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<EOF
34355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  newargz[0] =
34364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    XMALLOC (char, (strlen (actual_cwrapper_path) +
34375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
34385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strcpy (newargz[0], actual_cwrapper_path);
34395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strcat (newargz[0], "$objdir");
34405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strcat (newargz[0], "/");
34414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
3442893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    cat <<"EOF"
34445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* stop here, and copy so we don't have to do this twice */
34455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  tmp_pathspec = xstrdup (newargz[0]);
34465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
34475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
34485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strcat (newargz[0], actual_cwrapper_name);
34495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
34505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  /* DO want the lt- prefix here if it exists, so use target_name */
34515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
34525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (tmp_pathspec);
34535f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  tmp_pathspec = NULL;
34545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick ScottEOF
3455893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $host_os in
34574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      mingw*)
34584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<"EOF"
34594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  {
34604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    char* p;
34615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    while ((p = strchr (newargz[0], '\\')) != NULL)
34625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      {
34635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*p = '/';
34645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      }
34655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
34664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      {
34674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*p = '/';
34684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      }
34694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  }
34704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
34714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
34724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
3473893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<"EOF"
34755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (target_name);
34764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  XFREE (actual_cwrapper_path);
34775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (actual_cwrapper_name);
3478893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
34805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
34815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
34825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
3483893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
34845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  newargc=0;
34854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  for (i = 1; i < argc; i++)
34865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
34875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
34885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
34895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          if (argv[i][env_set_opt_len] == '=')
34905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
34915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              const char *p = argv[i] + env_set_opt_len + 1;
34925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_set (p);
34935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
34945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
34955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
34965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_set (argv[++i]); /* don't copy */
34975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
34985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else
34995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            lt_fatal ("%s missing required argument", env_set_opt);
35005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          continue;
35015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
35025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
35035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
35045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          if (argv[i][env_prepend_opt_len] == '=')
35055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
35065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              const char *p = argv[i] + env_prepend_opt_len + 1;
35075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_prepend (p);
35085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
35095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
35105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
35115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_prepend (argv[++i]); /* don't copy */
35125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
35135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else
35145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            lt_fatal ("%s missing required argument", env_prepend_opt);
35155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          continue;
35165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
35175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
35185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
35195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          if (argv[i][env_append_opt_len] == '=')
35205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
35215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              const char *p = argv[i] + env_append_opt_len + 1;
35225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_append (p);
35235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
35245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
35255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            {
35265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott              lt_opt_process_env_append (argv[++i]); /* don't copy */
35275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            }
35285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          else
35295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott            lt_fatal ("%s missing required argument", env_append_opt);
35305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          continue;
35315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
35325f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
35335f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
35345f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
35355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             namespace, but it is not one of the ones we know about and
35365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             have already dealt with, above (inluding dump-script), then
35375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             report an error. Otherwise, targets might begin to believe
35385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
35395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             namespace. The first time any user complains about this, we'll
35405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
35415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott             or a configure.ac-settable value.
35425f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott           */
35435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          lt_fatal ("Unrecognized option in %s namespace: '%s'",
35445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                    ltwrapper_option_prefix, argv[i]);
35455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
35465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      /* otherwise ... */
35475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      newargz[++newargc] = xstrdup (argv[i]);
35485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
35495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  newargz[++newargc] = NULL;
3550893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  LTWRAPPER_DEBUGPRINTF     (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
35525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  for (i = 0; i < newargc; i++)
35534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
35545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d]   : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
35554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
3556893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
3558893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $host_os in
35604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      mingw*)
35615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott		cat <<"EOF"
35624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* execv doesn't actually work on mingw as expected on unix */
35635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
35644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (rval == -1)
35654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
35664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      /* failed to start process */
35675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
35684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      return 127;
35694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
35704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return rval;
35714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
35724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
35734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
35745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott		cat <<"EOF"
35755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  execv (lt_argv_zero, newargz);
35764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return rval; /* =127, but avoids unused variable warning */
35774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
35784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
35794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
3580893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cat <<"EOF"
35825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
3583893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectvoid *
35854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectxmalloc (size_t num)
35864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
35874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  void *p = (void *) malloc (num);
35884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (!p)
35894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lt_fatal ("Memory exhausted");
3590893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return p;
35924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3593893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
35944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *
35954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectxstrdup (const char *string)
35964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
35974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
35984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  string) : NULL;
35994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3600893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectconst char *
36024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbase_name (const char *name)
36034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
36044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  const char *base;
3605893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
36074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* Skip over the disk name in MSDOS pathnames. */
36084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
36094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    name += 2;
36104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
3611893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  for (base = name; *name; name++)
36134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if (IS_DIR_SEPARATOR (*name))
36144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      base = name + 1;
36154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return base;
36164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3617893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectint
36194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectcheck_executable (const char *path)
36204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
36214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  struct stat st;
3622893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(check_executable)  : %s\n",
36244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  path ? (*path ? path : "EMPTY!") : "NULL!"));
36254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if ((!path) || (!*path))
36264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return 0;
3627893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if ((stat (path, &st) >= 0)
36294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
36304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return 1;
36314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  else
36324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return 0;
36334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3634893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectint
36364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectmake_executable (const char *path)
36374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
36384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  int rval = 0;
36394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  struct stat st;
3640893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(make_executable)   : %s\n",
36424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  path ? (*path ? path : "EMPTY!") : "NULL!"));
36434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if ((!path) || (!*path))
36444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return 0;
3645893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (stat (path, &st) >= 0)
36474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
36484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
36494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
36504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return rval;
36514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3652893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project/* Searches for the full path of the wrapper.  Returns
36544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   newly allocated full path name if found, NULL otherwise
36554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project   Does not chase symlinks, even on platforms that support them.
36564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project*/
36574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *
36584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfind_executable (const char *wrapper)
36594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
36604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  int has_slash = 0;
36614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  const char *p;
36624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  const char *p_next;
36634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* static buffer for getcwd */
36644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char tmp[LT_PATHMAX + 1];
36654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  int tmp_len;
36664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char *concat_name;
3667893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  LTWRAPPER_DEBUGPRINTF (("(find_executable)   : %s\n",
36694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"));
3670893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if ((wrapper == NULL) || (*wrapper == '\0'))
36724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return NULL;
3673893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* Absolute path? */
36754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
36764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
36774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
36784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      concat_name = xstrdup (wrapper);
36794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (check_executable (concat_name))
36804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	return concat_name;
36814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      XFREE (concat_name);
36824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
36834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  else
36844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
36854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
36864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (IS_DIR_SEPARATOR (wrapper[0]))
36874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	{
36884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  concat_name = xstrdup (wrapper);
36894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if (check_executable (concat_name))
36904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    return concat_name;
36914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  XFREE (concat_name);
36924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	}
36934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
36944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
36954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
3696893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
36974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  for (p = wrapper; *p; p++)
36984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if (*p == '/')
36994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      {
37004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	has_slash = 1;
37014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	break;
37024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      }
37034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (!has_slash)
37044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
37054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      /* no slashes; search PATH */
37064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      const char *path = getenv ("PATH");
37074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (path != NULL)
37084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	{
37094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for (p = path; *p; p = p_next)
37104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    {
37114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      const char *q;
37124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      size_t p_len;
37134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      for (q = p; *q; q++)
37144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if (IS_PATH_SEPARATOR (*q))
37154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  break;
37164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      p_len = q - p;
37174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      p_next = (*q == '\0' ? q : q + 1);
37184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if (p_len == 0)
37194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		{
37204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  /* empty path: current directory */
37214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if (getcwd (tmp, LT_PATHMAX) == NULL)
37224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    lt_fatal ("getcwd failed");
37234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  tmp_len = strlen (tmp);
37244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  concat_name =
37254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
37264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  memcpy (concat_name, tmp, tmp_len);
37274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  concat_name[tmp_len] = '/';
37284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  strcpy (concat_name + tmp_len + 1, wrapper);
37294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		}
37304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
37314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		{
37324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  concat_name =
37334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
37344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  memcpy (concat_name, p, p_len);
37354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  concat_name[p_len] = '/';
37364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  strcpy (concat_name + p_len + 1, wrapper);
37374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		}
37384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if (check_executable (concat_name))
37394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		return concat_name;
37404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      XFREE (concat_name);
37414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
37424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	}
37434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      /* not found in PATH; assume curdir */
37444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
37454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  /* Relative path | not found in path: prepend cwd */
37464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (getcwd (tmp, LT_PATHMAX) == NULL)
37474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lt_fatal ("getcwd failed");
37484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  tmp_len = strlen (tmp);
37494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
37504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  memcpy (concat_name, tmp, tmp_len);
37514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  concat_name[tmp_len] = '/';
37524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  strcpy (concat_name + tmp_len + 1, wrapper);
3753893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
37544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (check_executable (concat_name))
37554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    return concat_name;
37564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  XFREE (concat_name);
37574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return NULL;
37584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3759893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
37604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *
37614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchase_symlinks (const char *pathspec)
37624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
37634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#ifndef S_ISLNK
37644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return xstrdup (pathspec);
37654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#else
37664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char buf[LT_PATHMAX];
37674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  struct stat s;
37684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char *tmp_pathspec = xstrdup (pathspec);
37694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  char *p;
37704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  int has_symlinks = 0;
37714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  while (strlen (tmp_pathspec) && !has_symlinks)
37724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
37734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
37744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			      tmp_pathspec));
37754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (lstat (tmp_pathspec, &s) == 0)
37764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	{
37774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if (S_ISLNK (s.st_mode) != 0)
37784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    {
37794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      has_symlinks = 1;
37804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      break;
37814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
3782893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
37834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  /* search backwards for last DIR_SEPARATOR */
37844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
37854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
37864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    p--;
37874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
37884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    {
37894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      /* no more DIR_SEPARATORS left */
37904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      break;
37914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
37924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *p = '\0';
37934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	}
37944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
37954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	{
37964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  char *errstr = strerror (errno);
37974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
37984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	}
37994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
38004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  XFREE (tmp_pathspec);
3801893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (!has_symlinks)
38034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
38044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      return xstrdup (pathspec);
38054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
3806893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  tmp_pathspec = realpath (pathspec, buf);
38084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (tmp_pathspec == 0)
38094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
38104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      lt_fatal ("Could not follow symlinks for %s", pathspec);
38114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
38124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return xstrdup (tmp_pathspec);
38134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#endif
38144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3815893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectchar *
38174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectstrendzap (char *str, const char *pat)
38184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
38194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  size_t len, patlen;
3820893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  assert (str != NULL);
38224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  assert (pat != NULL);
3823893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  len = strlen (str);
38254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  patlen = strlen (pat);
3826893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (patlen <= len)
38284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    {
38294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      str += len - patlen;
38304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if (strcmp (str, pat) == 0)
38314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*str = '\0';
38324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    }
38334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  return str;
38344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3835893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectstatic void
38374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_error_core (int exit_status, const char *mode,
38384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       const char *message, va_list ap)
38394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
38404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fprintf (stderr, "%s: %s: ", program_name, mode);
38414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  vfprintf (stderr, message, ap);
38424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  fprintf (stderr, ".\n");
3843893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  if (exit_status >= 0)
38454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit (exit_status);
38464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
3847893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
38484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectvoid
38494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlt_fatal (const char *message, ...)
38504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
38514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  va_list ap;
38524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  va_start (ap, message);
38534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
38544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  va_end (ap);
38554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
38565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
38575f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
38585f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_setenv (const char *name, const char *value)
38595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
38605f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
38615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (name ? name : "<NULL>"),
38625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (value ? value : "<NULL>")));
38635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  {
38645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#ifdef HAVE_SETENV
38655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    /* always make a copy, for consistency with !HAVE_SETENV */
38665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    char *str = xstrdup (value);
38675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    setenv (name, str, 1);
38685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#else
38695f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    int len = strlen (name) + 1 + strlen (value) + 1;
38705f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    char *str = XMALLOC (char, len);
38715f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    sprintf (str, "%s=%s", name, value);
38725f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    if (putenv (str) != EXIT_SUCCESS)
38735f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      {
38745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        XFREE (str);
38755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      }
38765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott#endif
38775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  }
38785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
38795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
38805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottchar *
38815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_extend_str (const char *orig_value, const char *add, int to_end)
38825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
38835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *new_value;
38845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (orig_value && *orig_value)
38855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
38865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      int orig_value_len = strlen (orig_value);
38875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      int add_len = strlen (add);
38885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      new_value = XMALLOC (char, add_len + orig_value_len + 1);
38895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      if (to_end)
38905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
38915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          strcpy (new_value, orig_value);
38925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          strcpy (new_value + orig_value_len, add);
38935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
38945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      else
38955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
38965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          strcpy (new_value, add);
38975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          strcpy (new_value + add_len, orig_value);
38985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
38995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
39005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  else
39015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
39025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      new_value = xstrdup (add);
39035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
39045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  return new_value;
39055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
39065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottint
39085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_split_name_value (const char *arg, char** name, char** value)
39095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
39105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  const char *p;
39115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  int len;
39125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (!arg || !*arg)
39135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    return 1;
39145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  p = strchr (arg, (int)'=');
39165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (!p)
39185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    return 1;
39195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  *value = xstrdup (++p);
39215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  len = strlen (arg) - strlen (*value);
39235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  *name = XMALLOC (char, len);
39245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  strncpy (*name, arg, len-1);
39255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  (*name)[len - 1] = '\0';
39265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39275f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  return 0;
39285f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
39295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39305f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
39315f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_opt_process_env_set (const char *arg)
39325f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
39335f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *name = NULL;
39345f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *value = NULL;
39355f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (lt_split_name_value (arg, &name, &value) != 0)
39375f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
39385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (name);
39395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (value);
39405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
39415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
39425f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39435f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_setenv (name, value);
39445f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (name);
39455f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (value);
39465f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
39475f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39485f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
39495f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_opt_process_env_prepend (const char *arg)
39505f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
39515f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *name = NULL;
39525f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *value = NULL;
39535f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *new_value = NULL;
39545f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39555f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (lt_split_name_value (arg, &name, &value) != 0)
39565f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
39575f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (name);
39585f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (value);
39595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
39605f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
39615f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39625f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  new_value = lt_extend_str (getenv (name), value, 0);
39635f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_setenv (name, new_value);
39645f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (new_value);
39655f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (name);
39665f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (value);
39675f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
39685f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39695f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
39705f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_opt_process_env_append (const char *arg)
39715f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
39725f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *name = NULL;
39735f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *value = NULL;
39745f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  char *new_value = NULL;
39755f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39765f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (lt_split_name_value (arg, &name, &value) != 0)
39775f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
39785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (name);
39795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (value);
39805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
39815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
39825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  new_value = lt_extend_str (getenv (name), value, 1);
39845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  lt_setenv (name, new_value);
39855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (new_value);
39865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (name);
39875f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  XFREE (value);
39885f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
39895f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39905f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
39915f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_update_exe_path (const char *name, const char *value)
39925f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
39935f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
39945f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (name ? name : "<NULL>"),
39955f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (value ? value : "<NULL>")));
39965f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
39975f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (name && *name && value && *value)
39985f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
39995f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      char *new_value = lt_extend_str (getenv (name), value, 0);
40005f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      /* some systems can't cope with a ':'-terminated path #' */
40015f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      int len = strlen (new_value);
40025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
40035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        {
40045f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott          new_value[len-1] = '\0';
40055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        }
40065f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      lt_setenv (name, new_value);
40075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (new_value);
40085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
40095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
40105f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
40115f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottvoid
40125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scottlt_update_lib_path (const char *name, const char *value)
40135f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott{
40145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
40155f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (name ? name : "<NULL>"),
40165f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          (value ? value : "<NULL>")));
40175f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
40185f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott  if (name && *name && value && *value)
40195f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    {
40205f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      char *new_value = lt_extend_str (getenv (name), value, 0);
40215f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      lt_setenv (name, new_value);
40225f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      XFREE (new_value);
40235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    }
40245f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott}
40255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
40265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott
40274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
40284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
40294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# end: func_emit_cwrapperexe_src
4030893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
40314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_link arg...
40324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_link ()
40334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
40344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
40354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $host in
40365f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
40374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # It is impossible to link a dll without this setting, and
40384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # we shouldn't force the makefile maintainer to figure out
40394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # which system we are compiling for in order to pass an extra
40404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # flag for every libtool invocation.
40414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # allow_undefined=no
4042893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
40434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # FIXME: Unfortunately, there are problems with the above when trying
40444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # to make a dll which has undefined symbols, in which case not
40454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # even a static library is built.  For now, we need to specify
40464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -no-undefined on the libtool link line when we can be certain
40474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # that all symbols are satisfied, otherwise we get a static library.
40484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      allow_undefined=yes
40494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
40504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *)
40514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      allow_undefined=yes
40524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
40534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
40544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libtool_args=$nonopt
40554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    base_compile="$nonopt $@"
40564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    compile_command=$nonopt
40574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    finalize_command=$nonopt
4058893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
40594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    compile_rpath=
40604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    finalize_rpath=
40614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    compile_shlibpath=
40624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    finalize_shlibpath=
40634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    convenience=
40644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    old_convenience=
40654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    deplibs=
40664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    old_deplibs=
40674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    compiler_flags=
40684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    linker_flags=
40694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dllsearchpath=
40704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lib_search_path=`pwd`
40714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    inst_prefix_dir=
40724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    new_inherited_linker_flags=
4073893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
40744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    avoid_version=no
40754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dlfiles=
40764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dlprefiles=
40774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    dlself=no
40784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    export_dynamic=no
40794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    export_symbols=
40804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    export_symbols_regex=
40814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    generated=
40824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libobjs=
40834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    ltlibs=
40844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    module=no
40854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    no_install=no
40864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    objs=
40874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    non_pic_objects=
40884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    precious_files_regex=
40894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prefer_static_libs=no
40904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    preload=no
40914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prev=
40924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prevarg=
40934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    release=
40944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    rpath=
40954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    xrpath=
40964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    perm_rpath=
40974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    temp_rpath=
40984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    thread_safe=no
40994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    vinfo=
41004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    vinfo_number=no
41014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    weak_libs=
41024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    single_module="${wl}-single_module"
41034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_infer_tag $base_compile
4104893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
41054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # We need to know -static, to get the right output filenames.
41064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for arg
41074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    do
41084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $arg in
41094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -shared)
41104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test "$build_libtool_libs" != yes && \
41114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_configuration "can not build a shared library"
41124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_old_libs=no
41134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	break
41144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
41154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -all-static | -static | -static-libtool-libs)
41164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $arg in
41174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-all-static)
41184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
41194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "complete static linking is impossible in this configuration"
41204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
41214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$link_static_flag"; then
41224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlopen_self=$dlopen_self_static
41234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
41244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prefer_static_libs=yes
41254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
41264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-static)
41274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
41284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlopen_self=$dlopen_self_static
41294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
41304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prefer_static_libs=built
41314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
41324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-static-libtool-libs)
41334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
41344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlopen_self=$dlopen_self_static
41354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
41364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prefer_static_libs=yes
41374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
41384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
41394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_libtool_libs=no
41404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_old_libs=yes
41414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	break
41424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
41434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
41444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
4145893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
41464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # See if our shared archives depend on static archives.
41474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
4148893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
41494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Go through the arguments, transforming them on the way.
41504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    while test "$#" -gt 0; do
41514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      arg="$1"
41524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      shift
41534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_quote_for_eval "$arg"
41544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      qarg=$func_quote_for_eval_unquoted_result
41554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_append libtool_args " $func_quote_for_eval_result"
4156893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
41574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # If the previous option needs an argument, assign it.
41584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$prev"; then
41594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $prev in
41604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	output)
41614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " @OUTPUT@"
41624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " @OUTPUT@"
41634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
41644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
4165893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
41664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $prev in
41674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlfiles|dlprefiles)
41684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$preload" = no; then
41694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Add the symbol object into the linking commands.
41704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append compile_command " @SYMFILE@"
41714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append finalize_command " @SYMFILE@"
41724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    preload=yes
41734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
41744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $arg in
41754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.la | *.lo) ;;  # We handle these cases below.
41764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  force)
41774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$dlself" = no; then
41784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlself=needless
41794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      export_dynamic=yes
41804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
41814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    prev=
41824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
41834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
41844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  self)
41854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$prev" = dlprefiles; then
41864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlself=yes
41874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
41884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlself=yes
41894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
41904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlself=needless
41914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      export_dynamic=yes
41924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
41934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    prev=
41944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
41954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
41964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
41974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$prev" = dlfiles; then
41984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlfiles="$dlfiles $arg"
41994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
42004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlprefiles="$dlprefiles $arg"
42014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
42024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    prev=
42034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
42044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
42054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
42064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
42074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	expsyms)
42084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  export_symbols="$arg"
42094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -f "$arg" \
42104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    || func_fatal_error "symbol file \`$arg' does not exist"
42114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
42124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
42134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
42144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	expsyms_regex)
42154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  export_symbols_regex="$arg"
42164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
42174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
42184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
42194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	framework)
42204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
42214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *-*-darwin*)
42224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$deplibs " in
42234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*" $qarg.ltframework "*) ;;
42244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) deplibs="$deplibs $qarg.ltframework" # this is fixed later
42254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   ;;
42264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
42274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
42284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
42294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
42304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
42314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
42324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	inst_prefix)
42334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  inst_prefix_dir="$arg"
42344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
42354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
42364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
42374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	objectlist)
42384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -f "$arg"; then
42394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    save_arg=$arg
42404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    moreargs=
42414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for fil in `cat "$save_arg"`
42424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    do
42434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#	      moreargs="$moreargs $fil"
42444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      arg=$fil
42454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # A libtool-controlled object.
4246893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Check to see that this really is a libtool object.
42484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if func_lalib_unsafe_p "$arg"; then
42494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		pic_object=
42504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		non_pic_object=
4251893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Read the .lo file
42534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_source "$arg"
4254893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -z "$pic_object" ||
42564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   test -z "$non_pic_object" ||
42574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   test "$pic_object" = none &&
42584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   test "$non_pic_object" = none; then
42594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_fatal_error "cannot find name of object for \`$arg'"
42604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
4261893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Extract subdirectory from the argument.
42634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_dirname "$arg" "/" ""
42644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		xdir="$func_dirname_result"
4265893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "$pic_object" != none; then
42674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # Prepend the subdirectory the object is found in.
42684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  pic_object="$xdir$pic_object"
4269893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test "$prev" = dlfiles; then
42714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
42724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      dlfiles="$dlfiles $pic_object"
42734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      prev=
42744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      continue
42754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    else
42764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # If libtool objects are unsupported, then we need to preload.
42774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      prev=dlprefiles
42784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
42794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
4280893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # CHECK ME:  I think I busted this.  -Ossama
42824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test "$prev" = dlprefiles; then
42834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # Preload the old-style object.
42844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    dlprefiles="$dlprefiles $pic_object"
42854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    prev=
42864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
4287893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # A PIC object.
42894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append libobjs " $pic_object"
42904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  arg="$pic_object"
42914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
4292893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Non-PIC object.
42944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "$non_pic_object" != none; then
42954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # Prepend the subdirectory the object is found in.
42964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  non_pic_object="$xdir$non_pic_object"
4297893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
42984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # A standard non-PIC object
42994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append non_pic_objects " $non_pic_object"
43004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test -z "$pic_object" || test "$pic_object" = none ; then
43014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    arg="$non_pic_object"
43024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
43034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
43044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # If the PIC object exists, use it instead.
43054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # $xdir was prepended to $pic_object above.
43064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  non_pic_object="$pic_object"
43074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append non_pic_objects " $non_pic_object"
43084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
43094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
43104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Only an error if not doing a dry-run.
43114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if $opt_dry_run; then
43124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # Extract subdirectory from the argument.
43134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_dirname "$arg" "/" ""
43144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  xdir="$func_dirname_result"
43154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
43164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_lo2o "$arg"
43174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  pic_object=$xdir$objdir/$func_lo2o_result
43184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  non_pic_object=$xdir$func_lo2o_result
43194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append libobjs " $pic_object"
43204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append non_pic_objects " $non_pic_object"
43214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        else
43224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_fatal_error "\`$arg' is not a valid libtool object"
43234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
43244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
43254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
43264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
43274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "link input file \`$arg' does not exist"
43284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
43294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  arg=$save_arg
43304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
4332893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
43334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	precious_regex)
43344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  precious_files_regex="$arg"
43354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	release)
43394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  release="-$arg"
43404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	rpath | xrpath)
43444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # We need an absolute path.
43454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $arg in
43464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  [\\/]* | [A-Za-z]:[\\/]*) ;;
43474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
43484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "only absolute run-paths are allowed"
43494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
4350893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
43514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$prev" = rpath; then
43524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$rpath " in
43534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $arg "*) ;;
43544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) rpath="$rpath $arg" ;;
43554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
43564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
43574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$xrpath " in
43584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $arg "*) ;;
43594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) xrpath="$xrpath $arg" ;;
43604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
43614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
43624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shrext)
43664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  shrext_cmds="$arg"
43674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	weak)
43714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  weak_libs="$weak_libs $arg"
43724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	xcclinker)
43764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linker_flags="$linker_flags $qarg"
43774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags $qarg"
43784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " $qarg"
43804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " $qarg"
43814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	xcompiler)
43844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags $qarg"
43854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " $qarg"
43874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " $qarg"
43884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	xlinker)
43914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linker_flags="$linker_flags $qarg"
43924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags $wl$qarg"
43934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
43944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " $wl$qarg"
43954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " $wl$qarg"
43964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
43974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
43984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
43994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval "$prev=\"\$arg\""
44004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
44014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
4402893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
4403893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
44044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi # test -n "$prev"
4405893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
44064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      prevarg="$arg"
4407893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
44084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $arg in
44094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -all-static)
44104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$link_static_flag"; then
44114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # See comment for -static flag below, for more details.
44124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " $link_static_flag"
44134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " $link_static_flag"
44144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
44154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4417893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
44184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -allow-undefined)
44194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# FIXME: remove this flag sometime in the future.
44204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
44214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4422893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
44234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -avoid-version)
44244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	avoid_version=yes
44254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -dlopen)
44294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=dlfiles
44304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -dlpreopen)
44344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=dlprefiles
44354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -export-dynamic)
44394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	export_dynamic=yes
44404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -export-symbols | -export-symbols-regex)
44444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
44454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "more than one -exported-symbols argument is not allowed"
44464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
44474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$arg" = "X-export-symbols"; then
44484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=expsyms
44494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
44504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=expsyms_regex
4451893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
44524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -framework)
44564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=framework
44574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -inst-prefix-dir)
44614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=inst_prefix
44624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
44664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # so, if we see these flags be careful not to treat them like -L
44674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -L[A-Z][A-Z]*:*)
44684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $with_gcc/$host in
44694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	no/*-*-irix* | /*-*-irix*)
44704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append compile_command " $arg"
44714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_append finalize_command " $arg"
44724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
44734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
44744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
44754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
44764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
44774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -L*)
44784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname '-L' '' "$arg"
44794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir=$func_stripname_result
44805f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	if test -z "$dir"; then
44815f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  if test "$#" -gt 0; then
44825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    func_fatal_error "require no space between \`-L' and \`$1'"
44835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  else
44845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    func_fatal_error "need path for \`-L' option"
44855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  fi
44865f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	fi
44874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We need an absolute path.
44884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $dir in
44894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) ;;
44904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
44914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  absdir=`cd "$dir" && pwd`
44924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -z "$absdir" && \
44934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
44944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dir="$absdir"
44954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
44964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
44974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$deplibs " in
44984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" -L$dir "*) ;;
44994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
45004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$deplibs -L$dir"
45014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lib_search_path="$lib_search_path $dir"
45024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
45034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
4504893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	case $host in
45055f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
45064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
4507893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  case :$dllsearchpath: in
45084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *":$dir:"*) ;;
45095f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  ::) dllsearchpath=$dir;;
45104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$dir";;
4511893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
4512893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  case :$dllsearchpath: in
4513893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  *":$testbindir:"*) ;;
45145f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  ::) dllsearchpath=$testbindir;;
4515893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$testbindir";;
4516893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
4517893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
4518893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
45194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4521893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -l*)
45234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
45244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
45255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
45264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # These systems don't actually have a C or math library (as such)
45274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
45284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
45294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-os2*)
45304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # These systems don't actually have a C library (as such)
45314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
45324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
45334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
45344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Do not include libc due to us having libc/libc_r.
45354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
45364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
45374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-rhapsody* | *-*-darwin1.[012])
45384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Rhapsody C and math libraries are in the System framework
45394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplibs System.ltframework"
45404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
45414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
45424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-sco3.2v5* | *-*-sco5v6*)
45434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Causes problems with __ctype
45444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
45454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
45464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
45474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Compiler inserts libc in the correct place for threads to work
45484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$arg" = "X-lc" && continue
45494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
4550893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
45514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test "X$arg" = "X-lc_r"; then
45524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 case $host in
45534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
45544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   # Do not include libc_r directly, use -pthread flag.
45554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   continue
45564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   ;;
45574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 esac
4558893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
45594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs="$deplibs $arg"
45604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4562893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -module)
45644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	module=yes
45654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4567893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Tru64 UNIX uses -model [arg] to determine the layout of C++
45694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # classes, name mangling, and exception handling.
45704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Darwin uses the -arch flag to determine output architecture.
45714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -model|-arch|-isysroot)
45724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compiler_flags="$compiler_flags $arg"
45734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append compile_command " $arg"
45744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append finalize_command " $arg"
45754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=xcompiler
45764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4578893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
45804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compiler_flags="$compiler_flags $arg"
45814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append compile_command " $arg"
45824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append finalize_command " $arg"
45834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$new_inherited_linker_flags " in
45844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $arg "*) ;;
45854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    * ) new_inherited_linker_flags="$new_inherited_linker_flags $arg" ;;
45864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
45874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4589893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -multi_module)
45914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	single_module="${wl}-multi_module"
45924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4594893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
45954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -no-fast-install)
45964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fast_install=no
45974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
45984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4599893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -no-install)
46014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
46025f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
46034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # The PATH hackery in wrapper scripts is required on Windows
46044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # and Darwin in order for the loader to find any dlls it needs.
46054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "\`-no-install' is ignored for $host"
46064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "assuming \`-no-fast-install' instead"
46074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fast_install=no
46084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
46094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) no_install=yes ;;
46104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
46114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4613893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -no-undefined)
46154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	allow_undefined=no
46164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4618893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -objectlist)
46204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=objectlist
46214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4623893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -o) prev=output ;;
4625893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -precious-files-regex)
46274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=precious_regex
46284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4630893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -release)
46324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=release
46334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4635893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -rpath)
46374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=rpath
46384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4640893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -R)
46424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=xrpath
46434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4645893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -R*)
46474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname '-R' '' "$arg"
46484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dir=$func_stripname_result
46494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We need an absolute path.
46504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $dir in
46514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) ;;
46524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
46534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "only absolute run-paths are allowed"
46544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
46554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
46564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$xrpath " in
46574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $dir "*) ;;
46584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) xrpath="$xrpath $dir" ;;
46594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
46604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4662893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -shared)
46644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# The effects of -shared are defined in a previous loop.
46654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4667893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -shrext)
46694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=shrext
46704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4672893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -static | -static-libtool-libs)
46744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# The effects of -static are defined in a previous loop.
46754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We used to do the same as -all-static on platforms that
46764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# didn't have a PIC flag, but the assumption that the effects
46774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# would be equivalent was wrong.  It would break on at least
46784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Digital Unix and AIX.
46794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4681893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -thread-safe)
46834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	thread_safe=yes
46844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4686893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -version-info)
46884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=vinfo
46894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4691893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -version-number)
46934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=vinfo
46944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	vinfo_number=yes
46954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
46964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4697893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
46984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -weak)
46994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        prev=weak
47004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
47014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4702893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -Wc,*)
47044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname '-Wc,' '' "$arg"
47054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	args=$func_stripname_result
47064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg=
47074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	save_ifs="$IFS"; IFS=','
47084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for flag in $args; do
47094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  IFS="$save_ifs"
47104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          func_quote_for_eval "$flag"
47114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  arg="$arg $wl$func_quote_for_eval_result"
47124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags $func_quote_for_eval_result"
47134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
47144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	IFS="$save_ifs"
47154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname ' ' '' "$arg"
47164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg=$func_stripname_result
47174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4718893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -Wl,*)
47204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname '-Wl,' '' "$arg"
47214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	args=$func_stripname_result
47224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg=
47234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	save_ifs="$IFS"; IFS=','
47244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for flag in $args; do
47254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  IFS="$save_ifs"
47264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          func_quote_for_eval "$flag"
47274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  arg="$arg $wl$func_quote_for_eval_result"
47284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags $wl$func_quote_for_eval_result"
47294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linker_flags="$linker_flags $func_quote_for_eval_result"
47304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
47314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	IFS="$save_ifs"
47324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname ' ' '' "$arg"
47334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg=$func_stripname_result
47344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4735893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -Xcompiler)
47374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=xcompiler
47384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
47394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4740893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -Xlinker)
47424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=xlinker
47434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
47444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4745893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -XCClinker)
47474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	prev=xcclinker
47484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
47494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4750893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -msg_* for osf cc
47524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -msg_*)
47534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_quote_for_eval "$arg"
47544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg="$func_quote_for_eval_result"
47554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4756893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
47584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -r[0-9][0-9]* specifies the processor on the SGI compiler
47594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
47604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # +DA*, +DD* enable 64-bit mode on the HP compiler
47614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -q* pass through compiler args for the IBM compiler
47624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -m*, -t[45]*, -txscale* pass through architecture-specific
47634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # compiler args for GCC
47644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -F/path gives path to uninstalled frameworks, gcc on darwin
47654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
47664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # @file GCC response files
47674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
47684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
47694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval "$arg"
47704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg="$func_quote_for_eval_result"
47714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_append compile_command " $arg"
47724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_append finalize_command " $arg"
47734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        compiler_flags="$compiler_flags $arg"
47744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        continue
47754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
4776893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Some other compiler flag.
47784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -* | +*)
47794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        func_quote_for_eval "$arg"
47804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg="$func_quote_for_eval_result"
47814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4782893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.$objext)
47844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# A standard object.
47854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	objs="$objs $arg"
47864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4787893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.lo)
47894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# A libtool-controlled object.
4790893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check to see that this really is a libtool object.
47924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if func_lalib_unsafe_p "$arg"; then
47934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  pic_object=
47944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  non_pic_object=
4795893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Read the .lo file
47974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source "$arg"
4798893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
47994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$pic_object" ||
48004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test -z "$non_pic_object" ||
48014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$pic_object" = none &&
48024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$non_pic_object" = none; then
48034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "cannot find name of object for \`$arg'"
48044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
4805893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Extract subdirectory from the argument.
48074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_dirname "$arg" "/" ""
48084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  xdir="$func_dirname_result"
4809893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$pic_object" != none; then
48114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Prepend the subdirectory the object is found in.
48124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    pic_object="$xdir$pic_object"
4813893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$prev" = dlfiles; then
48154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
48164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		dlfiles="$dlfiles $pic_object"
48174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		prev=
48184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		continue
48194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
48204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# If libtool objects are unsupported, then we need to preload.
48214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		prev=dlprefiles
48224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
48234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
4824893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # CHECK ME:  I think I busted this.  -Ossama
48264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$prev" = dlprefiles; then
48274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Preload the old-style object.
48284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlprefiles="$dlprefiles $pic_object"
48294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      prev=
48304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
4831893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # A PIC object.
48334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append libobjs " $pic_object"
48344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    arg="$pic_object"
48354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
4836893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Non-PIC object.
48384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$non_pic_object" != none; then
48394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Prepend the subdirectory the object is found in.
48404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    non_pic_object="$xdir$non_pic_object"
4841893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # A standard non-PIC object
48434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append non_pic_objects " $non_pic_object"
48444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$pic_object" || test "$pic_object" = none ; then
48454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      arg="$non_pic_object"
48464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
4847893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
48484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # If the PIC object exists, use it instead.
48494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # $xdir was prepended to $pic_object above.
48504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    non_pic_object="$pic_object"
48514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append non_pic_objects " $non_pic_object"
4852893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
4853893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	else
48544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Only an error if not doing a dry-run.
48554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if $opt_dry_run; then
48564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Extract subdirectory from the argument.
48574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_dirname "$arg" "/" ""
48584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    xdir="$func_dirname_result"
48594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
48604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_lo2o "$arg"
48614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    pic_object=$xdir$objdir/$func_lo2o_result
48624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    non_pic_object=$xdir$func_lo2o_result
48634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append libobjs " $pic_object"
48644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append non_pic_objects " $non_pic_object"
48654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
48664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "\`$arg' is not a valid libtool object"
48674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
4868893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
48694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4870893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.$libext)
48724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# An archive.
48734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs="$deplibs $arg"
48744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	old_deplibs="$old_deplibs $arg"
48754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
48764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4877893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.la)
48794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# A libtool-controlled library.
4880893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$prev" = dlfiles; then
48824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This library was specified with -dlopen.
48834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dlfiles="$dlfiles $arg"
48844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
48854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test "$prev" = dlprefiles; then
48864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # The library was specified with -dlpreopen.
48874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dlprefiles="$dlprefiles $arg"
48884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prev=
48894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
48904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$deplibs $arg"
48914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
48924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	continue
48934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
4894893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
48954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Some other compiler argument.
48964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
48974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Unknown arguments in both finalize_command and compile_command need
48984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# to be aesthetically quoted because they are evaled later.
48994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_quote_for_eval "$arg"
49004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	arg="$func_quote_for_eval_result"
49014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
49024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac # arg
4903893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now actually substitute the argument into the commands.
49054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$arg"; then
49064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append compile_command " $arg"
49074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_append finalize_command " $arg"
4908893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
49094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done # argument parsing loop
4910893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -n "$prev" && \
49124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "the \`$prevarg' option requires an argument"
4913893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
49154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval arg=\"$export_dynamic_flag_spec\"
49164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_append compile_command " $arg"
49174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_append finalize_command " $arg"
49184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
4919893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    oldlibs=
49214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # calculate the name of the file, without its directory
49224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_basename "$output"
49234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    outputname="$func_basename_result"
49244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libobjs_save="$libobjs"
4925893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test -n "$shlibpath_var"; then
49274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # get the directories listed in $shlibpath_var
49284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      eval shlib_search_path=\`\$ECHO \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
49294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    else
49304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      shlib_search_path=
49314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
49324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
49334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
4934893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_dirname "$output" "/" ""
49364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    output_objdir="$func_dirname_result$objdir"
49374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Create the object directory.
49384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_mkdir_p "$output_objdir"
4939893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Determine the type of output
49414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $output in
49424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    "")
49434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "you must specify an output file"
49444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
49454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.$libext) linkmode=oldlib ;;
49464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.lo | *.$objext) linkmode=obj ;;
49474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.la) linkmode=lib ;;
49484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *) linkmode=prog ;; # Anything else should be a program.
49494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
4950893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    specialdeplibs=
4952893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    libs=
49544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Find all interdependent deplibs by searching for libraries
49554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # that are linked more than once (e.g. -la -lb -la)
49564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for deplib in $deplibs; do
49574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if $opt_duplicate_deps ; then
49584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$libs " in
49594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
49604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
49614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
49624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      libs="$libs $deplib"
49634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done
4964893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$linkmode" = lib; then
49664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      libs="$predeps $libs $compiler_lib_search_path $postdeps"
4967893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Compute libraries that are listed more than once in $predeps
49694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # $postdeps and mark them as special (i.e., whose duplicates are
49704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # not to be eliminated).
49714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      pre_post_deps=
49724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if $opt_duplicate_compiler_generated_deps; then
49734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for pre_post_dep in $predeps $postdeps; do
49744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$pre_post_deps " in
49754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
49764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
49774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  pre_post_deps="$pre_post_deps $pre_post_dep"
49784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
49794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
49804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      pre_post_deps=
49814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
4982893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    deplibs=
49844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    newdependency_libs=
49854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    newlib_search_path=
49864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    need_relink=no # whether we're linking any uninstalled libtool libraries
49874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    notinst_deplibs= # not-installed libtool libraries
49884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    notinst_path= # paths that contain not-installed libtool libraries
4989893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
49904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $linkmode in
49914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lib)
49924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	passes="conv dlpreopen link"
49934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for file in $dlfiles $dlprefiles; do
49944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $file in
49954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.la) ;;
49964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
49974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
49984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
49994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
50004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
50014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
50024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prog)
50034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_deplibs=
50044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	finalize_deplibs=
50054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	alldeplibs=no
50064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	newdlfiles=
50074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	newdlprefiles=
50084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	passes="conv scan dlopen dlpreopen link"
50094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
50104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *)  passes="conv"
50114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
50124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
5013893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
50144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for pass in $passes; do
50154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # The preopen pass in lib mode reverses $deplibs; put it back here
50164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # so that -L comes before libs that need it for instance...
50174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$linkmode,$pass" = "lib,link"; then
50184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	## FIXME: Find the place where the list is rebuilt in the wrong
50194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	##        order, and fix it there properly
50204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        tmp_deplibs=
50214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for deplib in $deplibs; do
50224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_deplibs="$deplib $tmp_deplibs"
50234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
50244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs="$tmp_deplibs"
50254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
5026893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
50274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$linkmode,$pass" = "lib,link" ||
50284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 test "$linkmode,$pass" = "prog,scan"; then
50294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libs="$deplibs"
50304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs=
50314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
50324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$linkmode" = prog; then
50334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $pass in
50344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlopen) libs="$dlfiles" ;;
50354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlpreopen) libs="$dlprefiles" ;;
50364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
50374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
50384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
50394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$linkmode,$pass" = "lib,dlpreopen"; then
50404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Collect and forward deplibs of preopened libtool libs
50414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for lib in $dlprefiles; do
50424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Ignore non-libtool-libs
50434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dependency_libs=
50444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $lib in
50454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.la)	func_source "$lib" ;;
50464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
5047893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
50484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Collect preopened libtool deplibs, except any this library
50494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # has declared as weak libs
50504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $dependency_libs; do
50514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project            deplib_base=`$ECHO "X$deplib" | $Xsed -e "$basename"`
50524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $weak_libs " in
50534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $deplib_base "*) ;;
50544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) deplibs="$deplibs $deplib" ;;
50554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
50564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
50574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
50584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libs="$dlprefiles"
50594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
50604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$pass" = dlopen; then
50614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Collect dlpreopened libraries
50624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	save_deplibs="$deplibs"
50634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs=
50644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
5065893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
50664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for deplib in $libs; do
50674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	lib=
50684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	found=no
50694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $deplib in
50704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe|-threads)
50714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode,$pass" = "prog,link"; then
50724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_deplibs="$deplib $compile_deplibs"
50734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_deplibs="$deplib $finalize_deplibs"
50744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
50754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compiler_flags="$compiler_flags $deplib"
50764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode" = lib ; then
50774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case "$new_inherited_linker_flags " in
50784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    *" $deplib "*) ;;
50794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
50804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
50814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
50824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
50834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
50844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
50854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-l*)
50864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" != lib && test "$linkmode" != prog; then
50874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "\`-l' is ignored for archives/objects"
50884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
50894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
50904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_stripname '-l' '' "$deplib"
50914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  name=$func_stripname_result
50924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" = lib; then
50934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
50944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
50954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
50964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
50974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for searchdir in $searchdirs; do
50984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for search_ext in .la $std_shrext .so .a; do
50994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Search the libtool library
51004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      lib="$searchdir/lib${name}${search_ext}"
51014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -f "$lib"; then
51024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "$search_ext" = ".la"; then
51034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  found=yes
51044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
51054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  found=no
51064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
51074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		break 2
51084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
51094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
51104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
51114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$found" != yes; then
51124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # deplib doesn't seem to be a libtool library
51134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode,$pass" = "prog,link"; then
51144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
51154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
51164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
51174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplib $deplibs"
51184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
51194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
51204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
51214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else # deplib is a libtool library
51224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
51234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # We need to do some special things here, and not later.
51244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
51254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case " $predeps $postdeps " in
51264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*)
51274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if func_lalib_p "$lib"; then
51284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  library_names=
51294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  old_library=
51304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_source "$lib"
51314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  for l in $old_library $library_names; do
51324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ll="$l"
51334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  done
51344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test "X$ll" = "X$old_library" ; then # only static version available
51354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    found=no
51364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    func_dirname "$lib" "" "."
51374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ladir="$func_dirname_result"
51384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    lib=$ladir/$old_library
51394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if test "$linkmode,$pass" = "prog,link"; then
51404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      compile_deplibs="$deplib $compile_deplibs"
51414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      finalize_deplibs="$deplib $finalize_deplibs"
51424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    else
51434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      deplibs="$deplib $deplibs"
51444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
51454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
51464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    continue
51474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
51484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
51494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
51504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) ;;
51514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
51524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
51534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
51544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;; # -l
51554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.ltframework)
51564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode,$pass" = "prog,link"; then
51574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_deplibs="$deplib $compile_deplibs"
51584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_deplibs="$deplib $finalize_deplibs"
51594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
51604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplib $deplibs"
51614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode" = lib ; then
51624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case "$new_inherited_linker_flags " in
51634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    *" $deplib "*) ;;
51644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    * ) new_inherited_linker_flags="$new_inherited_linker_flags $deplib" ;;
51654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
51664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
51674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
51684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
51694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
51704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-L*)
51714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $linkmode in
51724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lib)
51734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplib $deplibs"
51744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "$pass" = conv && continue
51754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdependency_libs="$deplib $newdependency_libs"
51764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '-L' '' "$deplib"
51774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newlib_search_path="$newlib_search_path $func_stripname_result"
51784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
51794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prog)
51804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$pass" = conv; then
51814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplib $deplibs"
51824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      continue
51834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
51844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$pass" = scan; then
51854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplib $deplibs"
51864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
51874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
51884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
51894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
51904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '-L' '' "$deplib"
51914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newlib_search_path="$newlib_search_path $func_stripname_result"
51924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
51934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
51944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "\`-L' is ignored for archives/objects"
51954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
51964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac # linkmode
51974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
51984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;; # -L
51994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-R*)
52004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$pass" = link; then
52014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '-R' '' "$deplib"
52024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir=$func_stripname_result
52034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Make sure the xrpath contains only unique directories.
52044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$xrpath " in
52054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $dir "*) ;;
52064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) xrpath="$xrpath $dir" ;;
52074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
52084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
52094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$deplib $deplibs"
52104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
52114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
52124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.la) lib="$deplib" ;;
52134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.$libext)
52144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$pass" = conv; then
52154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplib $deplibs"
52164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
52174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
52184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $linkmode in
52194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lib)
52204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Linking convenience modules into shared libraries is allowed,
52214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # but linking other static libraries is non-portable.
52224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $dlpreconveniencelibs " in
52234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $deplib "*) ;;
52244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
52254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      valid_a_lib=no
52264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $deplibs_check_method in
52274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		match_pattern*)
52284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  set dummy $deplibs_check_method; shift
52294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
52304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if eval "\$ECHO \"X$deplib\"" 2>/dev/null | $Xsed -e 10q \
52314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    | $EGREP "$match_pattern_regex" > /dev/null; then
52324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    valid_a_lib=yes
52334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
52344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
52354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		pass_all)
52364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  valid_a_lib=yes
52374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
52384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
52394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$valid_a_lib" != yes; then
52404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO
52414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
52424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** I have the capability to make that library automatically link in when"
52434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** you link to this library.  But I can only do this if you have a"
52444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** shared version of the library, which you do not appear to have"
52454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** because the file extensions .$libext of this argument makes me believe"
52464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** that it is just a static archive that I should not use here."
52474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
52484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO
52494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** Warning: Linking the shared library $output against the"
52504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** static library $deplib is not portable!"
52514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		deplibs="$deplib $deplibs"
52524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
52534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
52544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
52554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
52564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
52574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  prog)
52584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$pass" != link; then
52594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplib $deplibs"
52604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
52614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
52624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
52634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
52644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
52654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
52664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac # linkmode
52674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;; # *.$libext
52684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*.lo | *.$objext)
52694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$pass" = conv; then
52704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplib $deplibs"
52714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif test "$linkmode" = prog; then
52724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
52734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # If there is no dlopen support or we're linking statically,
52744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # we need to preload.
52754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdlprefiles="$newdlprefiles $deplib"
52764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      compile_deplibs="$deplib $compile_deplibs"
52774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize_deplibs="$deplib $finalize_deplibs"
52784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
52794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdlfiles="$newdlfiles $deplib"
52804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
52814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
52824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
52834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
52844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	%DEPLIBS%)
52854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  alldeplibs=yes
52864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
52874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
52884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac # case $deplib
5289893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
52904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$found" = yes || test -f "$lib"; then :
52914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
52924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
52934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
5294893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
52954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check to see that this really is a libtool archive.
52964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_lalib_unsafe_p "$lib" \
52974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  || func_fatal_error "\`$lib' is not a valid libtool archive"
5298893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
52994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_dirname "$lib" "" "."
53004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	ladir="$func_dirname_result"
5301893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlname=
53034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlopen=
53044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dlpreopen=
53054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libdir=
53064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	library_names=
53074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	old_library=
53084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	inherited_linker_flags=
53094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If the library was installed with an old release of libtool,
53104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# it will not redefine variables installed, or shouldnotlink
53114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	installed=yes
53124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shouldnotlink=no
53134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	avoidtemprpath=
5314893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5315893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Read the .la file
53174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_source "$lib"
53184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
53194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Convert "-framework foo" to "foo.ltframework"
53204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$inherited_linker_flags"; then
53214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_inherited_linker_flags=`$ECHO "X$inherited_linker_flags" | $Xsed -e 's/-framework \([^ $]*\)/\1.ltframework/g'`
53224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
53234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $new_inherited_linker_flags " in
53244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $tmp_inherited_linker_flag "*) ;;
53254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) new_inherited_linker_flags="$new_inherited_linker_flags $tmp_inherited_linker_flag";;
53264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
53274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
53284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
53294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
53304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode,$pass" = "lib,link" ||
53314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   test "$linkmode,$pass" = "prog,scan" ||
53324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
53334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
53344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
53354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
5336893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$pass" = conv; then
53384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Only check for convenience libraries
53394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$lib $deplibs"
53404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$libdir"; then
53414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$old_library"; then
53424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_fatal_error "cannot find name of link library for \`$lib'"
53434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
53444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # It is a libtool convenience library, so add in its objects.
53454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    convenience="$convenience $ladir/$objdir/$old_library"
53464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
53474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
53484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "\`$lib' is not a convenience library"
53494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
53504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_libs=
53514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $dependency_libs; do
53524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplib $deplibs"
53534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if $opt_duplicate_deps ; then
53544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$tmp_libs " in
53554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
53564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
53574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
53584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    tmp_libs="$tmp_libs $deplib"
53594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
53604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
53614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # $pass = conv
5362893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5363893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Get the name of the library we link against.
53654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	linklib=
53664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for l in $old_library $library_names; do
53674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linklib="$l"
53684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
53694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$linklib"; then
53704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "cannot find name of link library for \`$lib'"
53714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
5372893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# This library was specified with -dlopen.
53744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$pass" = dlopen; then
53754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$libdir"; then
53764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
53774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
53784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$dlname" ||
53794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$dlopen_support" != yes ||
53804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$build_libtool_libs" = no; then
53814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # If there is no dlname, no dlopen support or we're linking
53824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # statically, we need to preload.  We also need to preload any
53834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # dependent libraries so libltdl's deplib preloader doesn't
53844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # bomb out in the load deplibs phase.
53854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlprefiles="$dlprefiles $lib $dependency_libs"
53864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
53874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlfiles="$newdlfiles $lib"
53884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
53894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
53904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # $pass = dlopen
5391893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
53924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We need an absolute path.
53934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $ladir in
53944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
53954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
53964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  abs_ladir=`cd "$ladir" && pwd`
53974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$abs_ladir"; then
53984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "cannot determine absolute directory name of \`$ladir'"
53994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "passing it literally to the linker, although it might fail"
54004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    abs_ladir="$ladir"
54014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
54034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
54044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_basename "$lib"
54054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	laname="$func_basename_result"
5406893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Find the relevant object directory and library name.
54084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$installed" = Xyes; then
54094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
54104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "library \`$lib' was moved."
54114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir="$ladir"
54124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    absdir="$abs_ladir"
54134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libdir="$abs_ladir"
54144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
54154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir="$libdir"
54164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    absdir="$libdir"
54174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
54194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
54204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
54214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir="$ladir"
54224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    absdir="$abs_ladir"
54234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Remove this search path later
54244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    notinst_path="$notinst_path $abs_ladir"
54254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
54264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir="$ladir/$objdir"
54274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    absdir="$abs_ladir/$objdir"
54284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Remove this search path later
54294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    notinst_path="$notinst_path $abs_ladir"
54304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # $installed = yes
54324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname 'lib' '.la' "$laname"
54334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	name=$func_stripname_result
5434893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# This library was specified with -dlpreopen.
54364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$pass" = dlpreopen; then
54374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$libdir" && test "$linkmode" = prog; then
54384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
54394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Prefer using a static library (so that no silly _DYNAMIC symbols
54414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # are required to link).
54424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$old_library"; then
54434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$old_library"
54444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Keep a list of preopened convenience libraries to check
54454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # that they are being used correctly in the link pass.
54464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test -z "$libdir" && \
54474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		dlpreconveniencelibs="$dlpreconveniencelibs $dir/$old_library"
54484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Otherwise, use the dlname, so that lt_dlopen finds it.
54494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif test -n "$dlname"; then
54504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$dlname"
54514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
54524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlprefiles="$newdlprefiles $dir/$linklib"
54534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # $pass = dlpreopen
5455893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$libdir"; then
54574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Link the convenience library
54584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" = lib; then
54594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$dir/$old_library $deplibs"
54604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif test "$linkmode,$pass" = "prog,link"; then
54614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_deplibs="$dir/$old_library $compile_deplibs"
54624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
54634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
54644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$lib $deplibs" # used for prog,scan pass
54654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
54664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
54674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
5468893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
5469893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode" = prog && test "$pass" != link; then
54714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newlib_search_path="$newlib_search_path $ladir"
54724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$lib $deplibs"
5473893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linkalldeplibs=no
54754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
54764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$build_libtool_libs" = no; then
54774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    linkalldeplibs=yes
54784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
5479893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
54804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_libs=
54814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $dependency_libs; do
54824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $deplib in
54834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -L*) func_stripname '-L' '' "$deplib"
54844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	         newlib_search_path="$newlib_search_path $func_stripname_result"
54854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 ;;
54864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
54874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Need to link against all dependency_libs?
54884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkalldeplibs" = yes; then
54894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplib $deplibs"
54904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
54914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Need to hardcode shared library paths
54924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # or/and link against static libraries
54934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdependency_libs="$deplib $newdependency_libs"
54944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
54954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if $opt_duplicate_deps ; then
54964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$tmp_libs " in
54974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
54984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
54994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
55004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    tmp_libs="$tmp_libs $deplib"
55014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done # for deplib
55024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  continue
55034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # $linkmode = prog...
5504893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
55054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode,$pass" = "prog,link"; then
55064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$library_names" &&
55074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     { { test "$prefer_static_libs" = no ||
55084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
55094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       test -z "$old_library"; }; then
55104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # We need to hardcode the library path
55114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
55124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Make sure the rpath contains only unique directories.
55134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$temp_rpath:" in
55144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *"$absdir:"*) ;;
55154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) temp_rpath="$temp_rpath$absdir:" ;;
55164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
55174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
5518893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
55194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Hardcode the library path.
55204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Skip directories that are in the system default run-time
55214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # search path.
55224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
55234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $absdir "*) ;;
55244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
55254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$compile_rpath " in
55264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $absdir "*) ;;
55274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) compile_rpath="$compile_rpath $absdir"
55284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
55294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
55304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
55314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
55324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $libdir "*) ;;
55334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
55344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$finalize_rpath " in
55354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $libdir "*) ;;
55364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) finalize_rpath="$finalize_rpath $libdir"
55374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
55384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
55394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
55404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi # $linkmode,$pass = prog,link...
5541893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
55424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$alldeplibs" = yes &&
55434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     { test "$deplibs_check_method" = pass_all ||
55444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       { test "$build_libtool_libs" = yes &&
55454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 test -n "$library_names"; }; }; then
55464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # We only need to search for static libraries
55474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    continue
55484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
55494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
5550893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
55514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link_static=no # Whether the deplib will be linked statically
55524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	use_static_libs=$prefer_static_libs
55534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$use_static_libs" = built && test "$installed" = yes; then
55544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  use_static_libs=no
55554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
55564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$library_names" &&
55574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
55584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
55595f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  *cygwin* | *mingw* | *cegcc*)
55604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # No point in relinking DLLs because paths are not encoded
55614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      notinst_deplibs="$notinst_deplibs $lib"
55624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      need_relink=no
55634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
55644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
55654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$installed" = no; then
55664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      notinst_deplibs="$notinst_deplibs $lib"
55674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      need_relink=yes
55684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
55694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
55704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
55714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This is a shared library
5572893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
55734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Warn about portability, can't link against -module's on some
55744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # systems (darwin).  Don't bleat about dlopened modules though!
55754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dlopenmodule=""
55764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for dlpremoduletest in $dlprefiles; do
55774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "X$dlpremoduletest" = "X$lib"; then
55784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      dlopenmodule="$dlpremoduletest"
55794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      break
55804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
55814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
55824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
55834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO
55844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode" = prog; then
55854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
55864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
55874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
55884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
55894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** $linklib is not portable!"
55904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
55914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" = lib &&
55924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$hardcode_into_libs" = yes; then
55934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Hardcode the library path.
55944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Skip directories that are in the system default run-time
55954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # search path.
55964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
55974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $absdir "*) ;;
55984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
55994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$compile_rpath " in
56004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $absdir "*) ;;
56014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) compile_rpath="$compile_rpath $absdir"
56024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
56034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
56044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
56054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $sys_lib_dlsearch_path " in
56064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $libdir "*) ;;
56074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
56084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$finalize_rpath " in
56094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $libdir "*) ;;
56104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) finalize_rpath="$finalize_rpath $libdir"
56114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
56124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
56134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
56144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
5615893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
56164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$old_archive_from_expsyms_cmds"; then
56174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # figure out the soname
56184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    set dummy $library_names
56194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    shift
56204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    realname="$1"
56214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    shift
56224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libname=`eval "\\$ECHO \"$libname_spec\""`
56234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # use dlname if we got it. it's perfectly good, no?
56244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$dlname"; then
56254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      soname="$dlname"
56264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test -n "$soname_spec"; then
56274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # bleh windows
56284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $host in
56295f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	      *cygwin* | mingw* | *cegcc*)
56304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        func_arith $current - $age
56314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		major=$func_arith_result
56324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		versuffix="-$major"
56334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
56344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
56354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval soname=\"$soname_spec\"
56364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
56374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      soname="$realname"
56384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
5639893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
56404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Make a new name for the extract_expsyms_cmds to use
56414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    soroot="$soname"
56424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_basename "$soroot"
56434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    soname="$func_basename_result"
56444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname 'lib' '.dll' "$soname"
56454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newlib=libimp-$func_stripname_result.a
5646893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
56474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # If the library has no export list, then create one now
56484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -f "$output_objdir/$soname-def"; then :
56494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
56504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "extracting exported symbol list from \`$soname'"
56514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
56524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
5653893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
56544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Create $newlib
56554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -f "$output_objdir/$newlib"; then :; else
56564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "generating import library for \`$soname'"
56574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
56584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
56594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # make sure the library variables are pointing to the new library
56604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dir=$output_objdir
56614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    linklib=$newlib
56624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi # test -n "$old_archive_from_expsyms_cmds"
5663893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
56644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" = prog || test "$mode" != relink; then
56654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add_shlibpath=
56664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add_dir=
56674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add=
56684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lib_linked=yes
56694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $hardcode_action in
56704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    immediate | unsupported)
56714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$hardcode_direct" = no; then
56724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="$dir/$linklib"
56734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case $host in
56744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
56754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
56764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
56774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    *-*-unixware7*) add_dir="-L$dir" ;;
56784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *-*-darwin* )
56794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # if the lib is a (non-dlopened) module then we can not
56804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # link against it, someone is ignoring the earlier warnings
56814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if /usr/bin/file -L $add 2> /dev/null |
56824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			 $GREP ": [^:]* bundle" >/dev/null ; then
56834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      if test "X$dlopenmodule" != "X$lib"; then
56844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
56854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			if test -z "$old_library" ; then
56864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  $ECHO
56874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  $ECHO "*** And there doesn't seem to be a static archive available"
56884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  $ECHO "*** The link will probably fail, sorry"
56894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			else
56904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			  add="$dir/$old_library"
56914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			fi
56924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      elif test -n "$old_library"; then
56934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			add="$dir/$old_library"
56944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      fi
56954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
56964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
56974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      elif test "$hardcode_minus_L" = no; then
56984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case $host in
56994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*-*-sunos*) add_shlibpath="$dir" ;;
57004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
57014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add_dir="-L$dir"
57024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="-l$name"
57034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      elif test "$hardcode_shlibpath_var" = no; then
57044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add_shlibpath="$dir"
57054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="-l$name"
57064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
57074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		lib_linked=no
57084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
57094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
57104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink)
57114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$hardcode_direct" = yes &&
57124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	         test "$hardcode_direct_absolute" = no; then
57134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="$dir/$linklib"
57144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      elif test "$hardcode_minus_L" = yes; then
57154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add_dir="-L$dir"
57164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Try looking first in the location we're being installed to.
57174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -n "$inst_prefix_dir"; then
57184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  case $libdir in
57194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    [\\/]*)
57204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      add_dir="$add_dir -L$inst_prefix_dir$libdir"
57214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      ;;
57224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  esac
57234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
57244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="-l$name"
57254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      elif test "$hardcode_shlibpath_var" = yes; then
57264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add_shlibpath="$dir"
57274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="-l$name"
57284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
57294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		lib_linked=no
57304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
57314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
57324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) lib_linked=no ;;
57334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
5734893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
57354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$lib_linked" != yes; then
57364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_fatal_configuration "unsupported hardcode properties"
57374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
5738893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
57394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$add_shlibpath"; then
57404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case :$compile_shlibpath: in
57414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *":$add_shlibpath:"*) ;;
57424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
57434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
57444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
57454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode" = prog; then
57464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
57474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
57484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
57494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
57504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add" && deplibs="$add $deplibs"
57514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$hardcode_direct" != yes &&
57524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 test "$hardcode_minus_L" != yes &&
57534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 test "$hardcode_shlibpath_var" = yes; then
57544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case :$finalize_shlibpath: in
57554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*":$libdir:"*) ;;
57564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
57574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
57584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
57594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
57604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
5761893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
57624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$linkmode" = prog || test "$mode" = relink; then
57634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add_shlibpath=
57644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add_dir=
57654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    add=
57664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Finalize command for both is simple: just hardcode it.
57674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$hardcode_direct" = yes &&
57684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       test "$hardcode_direct_absolute" = no; then
57694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add="$libdir/$linklib"
57704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test "$hardcode_minus_L" = yes; then
57714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add_dir="-L$libdir"
57724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add="-l$name"
57734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test "$hardcode_shlibpath_var" = yes; then
57744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case :$finalize_shlibpath: in
57754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *":$libdir:"*) ;;
57764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
57774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
57784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add="-l$name"
57794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test "$hardcode_automatic" = yes; then
57804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$inst_prefix_dir" &&
57814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
57824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="$inst_prefix_dir$libdir/$linklib"
57834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
57844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		add="$libdir/$linklib"
57854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
57864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
57874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # We cannot seem to hardcode it, guess we'll fake it.
57884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add_dir="-L$libdir"
57894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Try looking first in the location we're being installed to.
57904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$inst_prefix_dir"; then
57914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case $libdir in
57924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  [\\/]*)
57934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    add_dir="$add_dir -L$inst_prefix_dir$libdir"
57944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ;;
57954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
57964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
57974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      add="-l$name"
57984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
5799893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
58004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$linkmode" = prog; then
58014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
58024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
58034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
58044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
58054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$add" && deplibs="$add $deplibs"
58064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
58074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
58084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test "$linkmode" = prog; then
58094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Here we assume that one of hardcode_direct or hardcode_minus_L
58104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # is not unsupported.  This is valid on all known static and
58114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # shared platforms.
58124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$hardcode_direct" != unsupported; then
58134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test -n "$old_library" && linklib="$old_library"
58144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_deplibs="$dir/$linklib $compile_deplibs"
58154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
58164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
58174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    compile_deplibs="-l$name -L$dir $compile_deplibs"
58184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
58194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
58204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test "$build_libtool_libs" = yes; then
58214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Not a shared library
58224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$deplibs_check_method" != pass_all; then
58234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # We're trying link a shared library against a static one
58244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # but the system doesn't support it.
5825893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
58264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Just print a warning and add the library to dependency_libs so
58274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # that the program can be linked against the static library.
58284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO
58294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
58304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** I have the capability to make that library automatically link in when"
58314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** you link to this library.  But I can only do this if you have a"
58324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** shared version of the library, which you do not appear to have."
58334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$module" = yes; then
58344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** But as you try to build a module library, libtool will still create "
58354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** a static module, that should work as long as the dlopening application"
58364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** is linked with the -dlopen flag to resolve symbols at runtime."
58374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -z "$global_symbol_pipe"; then
58384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO
58394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** However, this would only work if libtool was able to extract symbol"
58404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
58414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** not find such a program.  So, this module is probably useless."
58424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
58434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
58444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$build_old_libs" = no; then
58454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_libtool_libs=module
58464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_old_libs=yes
58474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
58484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_libtool_libs=no
58494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
58504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
58514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
58524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$dir/$old_library $deplibs"
58534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    link_static=yes
58544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
58554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # link shared/static library?
5856893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
58574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode" = lib; then
58584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$dependency_libs" &&
58594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     { test "$hardcode_into_libs" != yes ||
58604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       test "$build_old_libs" = yes ||
58614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       test "$link_static" = yes; }; then
58624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Extract -R from dependency_libs
58634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    temp_deplibs=
58644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for libdir in $dependency_libs; do
58654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $libdir in
58664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      -R*) func_stripname '-R' '' "$libdir"
58674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	           temp_xrpath=$func_stripname_result
58684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   case " $xrpath " in
58694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   *" $temp_xrpath "*) ;;
58704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   *) xrpath="$xrpath $temp_xrpath";;
58714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   esac;;
58724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) temp_deplibs="$temp_deplibs $libdir";;
58734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
58744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
58754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dependency_libs="$temp_deplibs"
58764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
58774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
58784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newlib_search_path="$newlib_search_path $absdir"
58794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Link against this library
58804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
58814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # ... and its dependency_libs
58824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_libs=
58834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $dependency_libs; do
58844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdependency_libs="$deplib $newdependency_libs"
58854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if $opt_duplicate_deps ; then
58864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$tmp_libs " in
58874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
58884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
58894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
58904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    tmp_libs="$tmp_libs $deplib"
58914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
58924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
58934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$link_all_deplibs" != no; then
58944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Add the search paths of all dependency libraries
58954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for deplib in $dependency_libs; do
58964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $deplib in
58974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      -L*) path="$deplib" ;;
58984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *.la)
58994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        func_dirname "$deplib" "" "."
59004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		dir="$func_dirname_result"
59014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# We need an absolute path.
59024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case $dir in
59034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
59044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*)
59054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  absdir=`cd "$dir" && pwd`
59064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test -z "$absdir"; then
59074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    func_warning "cannot determine absolute directory name of \`$dir'"
59084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    absdir="$dir"
59094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
59104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ;;
59114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
59124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if $GREP "^installed=no" $deplib > /dev/null; then
59134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case $host in
59144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*-*-darwin*)
59154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  depdepl=
59164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
59174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test -n "$deplibrary_names" ; then
59184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    for tmp in $deplibrary_names ; do
59194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      depdepl=$tmp
59204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    done
59214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if test -f "$absdir/$objdir/$depdepl" ; then
59224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      depdepl="$absdir/$objdir/$depdepl"
59235f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
59244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                      if test -z "$darwin_install_name"; then
59255f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
59264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project                      fi
59274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
59284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
59294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      path=
59304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
59314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
59324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ;;
59334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*)
59344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  path="-L$absdir/$objdir"
59354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ;;
59364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
59374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
59384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
59394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  test -z "$libdir" && \
59404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    func_fatal_error "\`$deplib' is not a valid libtool archive"
59414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  test "$absdir" != "$libdir" && \
59424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    func_warning "\`$deplib' seems to be moved"
59434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
59444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  path="-L$absdir"
59454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
59464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
59474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
59484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case " $deplibs " in
59494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $path "*) ;;
59504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) deplibs="$path $deplibs" ;;
59514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
59524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
59534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi # link_all_deplibs != no
59544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi # linkmode = lib
59554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done # for deplib in $libs
59564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$pass" = link; then
59574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode" = "prog"; then
59584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
59594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
59604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
59614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
59624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
59634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
59644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dependency_libs="$newdependency_libs"
59654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$pass" = dlpreopen; then
59664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Link the dlpreopened libraries before other libraries
59674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for deplib in $save_deplibs; do
59684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs="$deplib $deplibs"
59694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
59704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
59714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$pass" != dlopen; then
59724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$pass" != conv; then
59734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Make sure lib_search_path contains only unique directories.
59744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  lib_search_path=
59754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for dir in $newlib_search_path; do
59764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case "$lib_search_path " in
59774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *" $dir "*) ;;
59784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) lib_search_path="$lib_search_path $dir" ;;
59794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
59804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
59814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newlib_search_path=
59824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
59834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
59844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$linkmode,$pass" != "prog,link"; then
59854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  vars="deplibs"
59864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
59874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  vars="compile_deplibs finalize_deplibs"
59884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
59894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for var in $vars dependency_libs; do
59904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Add libraries to $var in reverse order
59914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval tmp_libs=\"\$$var\"
59924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  new_libs=
59934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $tmp_libs; do
59944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # FIXME: Pedantically, this is the right thing to do, so
59954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    #        that some nasty dependency loop isn't accidentally
59964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    #        broken:
59974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    #new_libs="$deplib $new_libs"
59984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Pragmatically, this seems to cause very few problems in
59994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # practice:
60004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $deplib in
60014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -L*) new_libs="$deplib $new_libs" ;;
60024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -R*) ;;
60034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
60044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # And here is the reason: when a library appears more
60054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # than once as an explicit dependence of a library, or
60064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # is implicitly linked in more than once by the
60074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # compiler, it is considered special, and multiple
60084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # occurrences thereof are not removed.  Compare this
60094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # with having the same library being listed as a
60104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # dependency of multiple other libraries: in this case,
60114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # we know (pedantically, we assume) the library does not
60124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # need to be listed more than once, so we keep only the
60134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # last copy.  This is not always right, but it is rare
60144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # enough that we require users that really mean to play
60154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # such unportable linking tricks to link the library
60164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # using -Wl,-lname, so that libtool does not consider it
60174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # for duplicate removal.
60184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case " $specialdeplibs " in
60194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
60204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
60214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case " $new_libs " in
60224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*" $deplib "*) ;;
60234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) new_libs="$deplib $new_libs" ;;
60244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
60254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
60264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
60274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
60284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
60294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
60304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_libs=
60314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for deplib in $new_libs; do
60324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $deplib in
60334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -L*)
60344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case " $tmp_libs " in
60354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $deplib "*) ;;
60364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) tmp_libs="$tmp_libs $deplib" ;;
60374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
60384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
60394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) tmp_libs="$tmp_libs $deplib" ;;
60404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
60414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
60424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval $var=\"$tmp_libs\"
60434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done # for var
60444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
60454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Last step: remove runtime libs from dependency_libs
60464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # (they stay in deplibs)
60474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      tmp_libs=
60484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for i in $dependency_libs ; do
60494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case " $predeps $postdeps $compiler_lib_search_path " in
60504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $i "*)
60514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  i=""
60524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
60534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
60544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$i" ; then
60554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_libs="$tmp_libs $i"
60564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
60574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
60584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dependency_libs=$tmp_libs
60594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    done # for pass
60604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$linkmode" = prog; then
60614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dlfiles="$newdlfiles"
60624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
60634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    if test "$linkmode" = prog || test "$linkmode" = lib; then
60644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dlprefiles="$newdlprefiles"
60654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    fi
60664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $linkmode in
60684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    oldlib)
60694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
60704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-dlopen' is ignored for archives"
60714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
60724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case " $deplibs" in
60744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *\ -l* | *\ -L*)
60754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-l' and \`-L' are ignored for archives" ;;
60764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
60774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$rpath" && \
60794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-rpath' is ignored for archives"
60804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$xrpath" && \
60824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-R' is ignored for archives"
60834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$vinfo" && \
60854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-version-info/-version-number' is ignored for archives"
60864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$release" && \
60884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-release' is ignored for archives"
60894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$export_symbols$export_symbols_regex" && \
60914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-export-symbols' is ignored for archives"
60924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now set the variables for building old libraries.
60944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      build_libtool_libs=no
60954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      oldlibs="$output"
60964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      objs="$objs$old_deplibs"
60974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
60984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
60994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    lib)
61004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Make sure we only generate libraries of the form `libNAME.la'.
61014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $outputname in
61024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      lib*)
61034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_stripname 'lib' '.la' "$outputname"
61044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	name=$func_stripname_result
61054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval shared_ext=\"$shrext_cmds\"
61064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval libname=\"$libname_spec\"
61074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
61084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
61094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test "$module" = no && \
61104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
61114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$need_lib_prefix" != no; then
61134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Add the "lib" prefix for modules if required
61144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_stripname '' '.la' "$outputname"
61154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  name=$func_stripname_result
61164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval shared_ext=\"$shrext_cmds\"
61174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval libname=\"$libname_spec\"
61184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
61194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_stripname '' '.la' "$outputname"
61204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  libname=$func_stripname_result
61214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
61224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
61234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
61244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$objs"; then
61264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$deplibs_check_method" != pass_all; then
61274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
61284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
61294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO
61304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
61314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "*** objects $objs is not portable!"
61324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  libobjs="$libobjs $objs"
61334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
61344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
61354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "$dlself" != no && \
61374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-dlopen self' is ignored for libtool libraries"
61384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      set dummy $rpath
61404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      shift
61414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "$#" -gt 1 && \
61424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "ignoring multiple \`-rpath's for a libtool library"
61434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      install_libdir="$1"
61454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      oldlibs=
61474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -z "$rpath"; then
61484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$build_libtool_libs" = yes; then
61494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Building a libtool convenience library.
61504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Some compilers have problems with a `.al' extension so
61514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # convenience libraries should have the same extension an
61524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # archive normally would.
61534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
61544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  build_libtool_libs=convenience
61554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  build_old_libs=yes
61564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
61574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$vinfo" && \
61594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
61604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$release" && \
61624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "\`-release' is ignored for convenience libraries"
61634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
61644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Parse the version information argument.
61664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	save_ifs="$IFS"; IFS=':'
61674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	set dummy $vinfo 0 0 0
61684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shift
61694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	IFS="$save_ifs"
61704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$7" && \
61724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_help "too many parameters to \`-version-info'"
61734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# convert absolute version numbers to libtool ages
61754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# this retains compatibility with .la files and attempts
61764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# to make the code below a bit more comprehensible
61774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
61784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $vinfo_number in
61794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	yes)
61804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  number_major="$1"
61814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  number_minor="$2"
61824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  number_revision="$3"
61834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  #
61844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # There are really only two kinds -- those that
61854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # use the current revision as the major version
61864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # and those that subtract age and use age as
61874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # a minor version.  But, then there is irix
61884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # which has an extra 1 added just for fun
61894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  #
61904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $version_type in
61914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin|linux|osf|windows|none)
61924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $number_major + $number_minor
61934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    current=$func_arith_result
61944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    age="$number_minor"
61954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    revision="$number_revision"
61964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
61974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  freebsd-aout|freebsd-elf|sunos)
61984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    current="$number_major"
61994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    revision="$number_minor"
62004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    age="0"
62014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
62024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  irix|nonstopux)
62034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $number_major + $number_minor
62044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    current=$func_arith_result
62054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    age="$number_minor"
62064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    revision="$number_minor"
62074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lt_irix_increment=no
62084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
62094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
62104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	no)
62124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  current="$1"
62134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  revision="$2"
62144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  age="$3"
62154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
62174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check that each of the things are valid numbers.
62194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $current in
62204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe 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]) ;;
62214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
62224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_error "CURRENT \`$current' must be a nonnegative integer"
62234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "\`$vinfo' is not valid version information"
62244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
62264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $revision in
62284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe 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]) ;;
62294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
62304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_error "REVISION \`$revision' must be a nonnegative integer"
62314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "\`$vinfo' is not valid version information"
62324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
62344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $age in
62364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe 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]) ;;
62374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
62384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_error "AGE \`$age' must be a nonnegative integer"
62394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "\`$vinfo' is not valid version information"
62404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
62424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$age" -gt "$current"; then
62444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
62454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "\`$vinfo' is not valid version information"
62464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
62474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Calculate the version variables.
62494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	major=
62504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	versuffix=
62514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	verstring=
62524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $version_type in
62534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	none) ;;
62544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	darwin)
62564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Like Linux, but with the current version available in
62574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # verstring for coding it into the library header
62584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $current - $age
62594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=.$func_arith_result
62604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix="$major.$age.$revision"
62614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Darwin ld doesn't like 0 for these options...
62624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $current + 1
62634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  minor_current=$func_arith_result
62644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
62654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
62664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	freebsd-aout)
62694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=".$current"
62704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=".$current.$revision";
62714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	freebsd-elf)
62744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=".$current"
62754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=".$current"
62764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
62774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	irix | nonstopux)
62794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "X$lt_irix_increment" = "Xno"; then
62804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $current - $age
62814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
62824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $current - $age + 1
62834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
62844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=$func_arith_result
62854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $version_type in
62874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    nonstopux) verstring_prefix=nonstopux ;;
62884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)         verstring_prefix=sgi ;;
62894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
62904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  verstring="$verstring_prefix$major.$revision"
62914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
62924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Add in all the interfaces that we are compatible with.
62934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  loop=$revision
62944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  while test "$loop" -ne 0; do
62954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $revision - $loop
62964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    iface=$func_arith_result
62974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $loop - 1
62984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    loop=$func_arith_result
62994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    verstring="$verstring_prefix$major.$iface:$verstring"
63004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
63014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Before this point, $major must not contain `.'.
63034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=.$major
63044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix="$major.$revision"
63054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	linux)
63084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $current - $age
63094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=.$func_arith_result
63104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix="$major.$age.$revision"
63114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	osf)
63144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $current - $age
63154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=.$func_arith_result
63164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=".$current.$age.$revision"
63174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  verstring="$current.$age.$revision"
63184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Add in all the interfaces that we are compatible with.
63204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  loop=$age
63214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  while test "$loop" -ne 0; do
63224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $current - $loop
63234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    iface=$func_arith_result
63244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $loop - 1
63254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    loop=$func_arith_result
63264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    verstring="$verstring:${iface}.0"
63274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
63284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Make executables depend on our current version.
63304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  verstring="$verstring:${current}.0"
63314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	qnx)
63344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=".$current"
63354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=".$current"
63364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	sunos)
63394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=".$current"
63404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=".$current.$revision"
63414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	windows)
63444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Use '-' rather than '.', since we only want one
63454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # extension on DOS 8.3 filesystems.
63464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_arith $current - $age
63474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=$func_arith_result
63484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix="-$major"
63494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
63524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_configuration "unknown library version type \`$version_type'"
63534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
63544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
63554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Clear the version info if we defaulted, and they specified a release.
63574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$vinfo" && test -n "$release"; then
63584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=
63594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $version_type in
63604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  darwin)
63614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # we can't check for "0.0" in archive_cmds due to quoting
63624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # problems, so we reset it completely
63634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    verstring=
63644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
63654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
63664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    verstring="0.0"
63674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
63684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
63694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$need_version" = no; then
63704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    versuffix=
63714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
63724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    versuffix=".0.0"
63734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
63744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
63754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Remove version info from name if versioning should be avoided
63774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$avoid_version" = yes && test "$need_version" = no; then
63784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  major=
63794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  versuffix=
63804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  verstring=""
63814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
63824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Check to see if the archive will have undefined symbols.
63844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$allow_undefined" = yes; then
63854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$allow_undefined_flag" = unsupported; then
63864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_warning "undefined symbols not allowed in $host shared libraries"
63874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    build_libtool_libs=no
63884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    build_old_libs=yes
63894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
63904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
63914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Don't allow undefined symbols.
63924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  allow_undefined_flag="$no_undefined_flag"
63934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
63944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
63964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
63974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_generate_dlsyms "$libname" "$libname" "yes"
63984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      libobjs="$libobjs $symfileobj"
63994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "X$libobjs" = "X " && libobjs=
64004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$mode" != relink; then
64024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Remove our outputs, but don't remove object files since they
64034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# may have been created when compiling PIC objects.
64044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	removelist=
64054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	tempremovelist=`$ECHO "$output_objdir/*"`
64064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for p in $tempremovelist; do
64074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $p in
64085f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    *.$objext | *.gcno)
64094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       ;;
64104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
64114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       if test "X$precious_files_regex" != "X"; then
64124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
64134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 then
64144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   continue
64154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		 fi
64164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       fi
64174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       removelist="$removelist $p"
64184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	       ;;
64194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) ;;
64204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
64214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
64224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$removelist" && \
64234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval "${RM}r \$removelist"
64244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
64254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now set the variables for building old libraries.
64274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
64284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	oldlibs="$oldlibs $output_objdir/$libname.$libext"
64294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Transform .lo files to .o files.
64314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	oldobjs="$objs "`$ECHO "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
64324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
64334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Eliminate all temporary directories.
64354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      #for path in $notinst_path; do
64364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      #	lib_search_path=`$ECHO "X$lib_search_path " | $Xsed -e "s% $path % %g"`
64374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      #	deplibs=`$ECHO "X$deplibs " | $Xsed -e "s% -L$path % %g"`
64384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      #	dependency_libs=`$ECHO "X$dependency_libs " | $Xsed -e "s% -L$path % %g"`
64394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      #done
64404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$xrpath"; then
64424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If the user specified any rpath flags, then add them.
64434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	temp_xrpath=
64444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for libdir in $xrpath; do
64454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  temp_xrpath="$temp_xrpath -R$libdir"
64464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$finalize_rpath " in
64474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
64484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) finalize_rpath="$finalize_rpath $libdir" ;;
64494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
64504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
64514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
64524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dependency_libs="$temp_xrpath $dependency_libs"
64534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
64544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
64554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Make sure dlfiles contains only unique files that won't be dlpreopened
64574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      old_dlfiles="$dlfiles"
64584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dlfiles=
64594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for lib in $old_dlfiles; do
64604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case " $dlprefiles $dlfiles " in
64614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $lib "*) ;;
64624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) dlfiles="$dlfiles $lib" ;;
64634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
64644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
64654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
64664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Make sure dlprefiles contains only unique files
64674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      old_dlprefiles="$dlprefiles"
64684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dlprefiles=
64694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for lib in $old_dlprefiles; do
64704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case "$dlprefiles " in
64714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" $lib "*) ;;
64724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) dlprefiles="$dlprefiles $lib" ;;
64734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
64744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
6475893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
64764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$build_libtool_libs" = yes; then
64774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$rpath"; then
64784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host in
64795f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
64804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # these systems don't actually have a c library (as such)!
64814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-rhapsody* | *-*-darwin1.[012])
64834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Rhapsody C library is in the System framework
64844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    deplibs="$deplibs System.ltframework"
64854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-netbsd*)
64874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Don't link with libc until the a.out ld.so is fixed.
64884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
64904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Do not include libc due to us having libc/libc_r.
64914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-sco3.2v5* | *-*-sco5v6*)
64934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Causes problems with __ctype
64944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
64964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Compiler inserts libc in the correct place for threads to work
64974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
64984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
64994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Add libc to deplibs on all other systems if necessary.
65004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$build_libtool_need_lc" = "yes"; then
65014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      deplibs="$deplibs -lc"
65024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
65034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
65044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
65054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
65064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
65074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Transform deplibs into only deplibs that can be linked in shared.
65084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	name_save=$name
65094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libname_save=$libname
65104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	release_save=$release
65114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	versuffix_save=$versuffix
65124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	major_save=$major
65134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# I'm not sure if I'm treating the release correctly.  I think
65144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# release should show up in the -l (ie -lgmp5) so we don't want to
65154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# add it in twice.  Is that correct?
65164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	release=""
65174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	versuffix=""
65184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	major=""
65194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	newdeplibs=
65204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	droppeddeps=no
65214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $deplibs_check_method in
65224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	pass_all)
65234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Don't check for shared/static.  Everything works.
65244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This might be a little naive.  We might want to check
65254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # whether the library exists or not.  But this is on
65264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # osf3 & osf4 and I'm not really sure... Just
65274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # implementing what was already the behavior.
65284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newdeplibs=$deplibs
65294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
65304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test_compile)
65314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This code stresses the "libraries are programs" paradigm to its
65324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # limits. Maybe even breaks it.  We compile a program, linking it
65334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # against the deplibs as a proxy for the library.  Then we can check
65344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # whether they linked in statically or dynamically with ldd.
65354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || $RM conftest.c
65364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  cat > conftest.c <<EOF
65374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  int main() { return 0; }
65384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source ProjectEOF
65394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || $RM conftest
65404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
65414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ldd_output=`ldd conftest`
65424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for i in $deplibs; do
65434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $i in
65444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      -l*)
65454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_stripname -l '' "$i"
65464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		name=$func_stripname_result
65474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
65484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  case " $predeps $postdeps " in
65494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *" $i "*)
65504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    newdeplibs="$newdeplibs $i"
65514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    i=""
65524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ;;
65534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  esac
65544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
65554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -n "$i" ; then
65564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  libname=`eval "\\$ECHO \"$libname_spec\""`
65574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
65584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  set dummy $deplib_matches; shift
65594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  deplib_match=$1
65604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
65614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    newdeplibs="$newdeplibs $i"
65624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  else
65634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    droppeddeps=yes
65644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO
65654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
65664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** I have the capability to make that library automatically link in when"
65674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** you link to this library.  But I can only do this if you have a"
65684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** shared version of the library, which I believe you do not have"
65694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** because a test_compile did reveal that the linker did not use it for"
65704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
65714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
65724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
65734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
65744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
65754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newdeplibs="$newdeplibs $i"
65764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
65774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
65784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
65794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
65804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Error occurred in the first compile.  Let's try to salvage
65814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # the situation: Compile a separate program for each library.
65824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for i in $deplibs; do
65834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $i in
65844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      -l*)
65854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_stripname -l '' "$i"
65864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		name=$func_stripname_result
65874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$opt_dry_run || $RM conftest
65884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
65894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ldd_output=`ldd conftest`
65904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
65914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    case " $predeps $postdeps " in
65924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    *" $i "*)
65934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      newdeplibs="$newdeplibs $i"
65944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      i=""
65954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      ;;
65964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    esac
65974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
65984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test -n "$i" ; then
65994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    libname=`eval "\\$ECHO \"$libname_spec\""`
66004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
66014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    set dummy $deplib_matches; shift
66024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    deplib_match=$1
66034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
66044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      newdeplibs="$newdeplibs $i"
66054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    else
66064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      droppeddeps=yes
66074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO
66084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
66094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** I have the capability to make that library automatically link in when"
66104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** you link to this library.  But I can only do this if you have a"
66114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** shared version of the library, which you do not appear to have"
66124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** because a test_compile did reveal that the linker did not use this one"
66134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      $ECHO "*** as a dynamic dependency that programs can get resolved with at runtime."
66144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
66154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
66164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
66174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  droppeddeps=yes
66184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO
66194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
66204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** make it link in!  You will probably need to install it or some"
66214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** library that it depends on before this library will be fully"
66224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** functional.  Installing it before continuing would be even better."
66234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
66244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
66254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
66264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newdeplibs="$newdeplibs $i"
66274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
66284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
66294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
66304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
66314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
66324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	file_magic*)
66334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  set dummy $deplibs_check_method; shift
66344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
66354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for a_deplib in $deplibs; do
66364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $a_deplib in
66374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -l*)
66384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_stripname -l '' "$a_deplib"
66394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      name=$func_stripname_result
66404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
66414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case " $predeps $postdeps " in
66424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*" $a_deplib "*)
66434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  newdeplibs="$newdeplibs $a_deplib"
66444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  a_deplib=""
66454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ;;
66464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
66474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
66484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$a_deplib" ; then
66494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		libname=`eval "\\$ECHO \"$libname_spec\""`
66504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
66514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
66524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  for potent_lib in $potential_libs; do
66534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # Follow soft links.
66544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      if ls -lLd "$potent_lib" 2>/dev/null |
66554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			 $GREP " -> " >/dev/null; then
66564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			continue
66574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      fi
66584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # The statement above tries to avoid entering an
66594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # endless loop below, in case of cyclic links.
66604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # We might still enter an endless loop, since a link
66614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # loop can be closed while we follow links,
66624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      # but so what?
66634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      potlib="$potent_lib"
66644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      while test -h "$potlib" 2>/dev/null; do
66654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
66664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			case $potliblink in
66674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
66684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			*) potlib=`$ECHO "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
66694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			esac
66704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      done
66714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
66724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			 $SED -e 10q |
66734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			 $EGREP "$file_magic_regex" > /dev/null; then
66744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			newdeplibs="$newdeplibs $a_deplib"
66754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			a_deplib=""
66764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project			break 2
66774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      fi
66784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  done
66794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		done
66804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
66814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$a_deplib" ; then
66824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		droppeddeps=yes
66834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO
66844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
66854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** I have the capability to make that library automatically link in when"
66864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** you link to this library.  But I can only do this if you have a"
66874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** shared version of the library, which you do not appear to have"
66884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** because I did check the linker path looking for a file starting"
66894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -z "$potlib" ; then
66904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
66914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
66924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** with $libname and none of the candidates passed a file format test"
66934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** using a file magic. Last file checked: $potlib"
66944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
66954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
66964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
66974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
66984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Add a -L argument.
66994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdeplibs="$newdeplibs $a_deplib"
67004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
67014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
67024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done # Gone through all deplibs.
67034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
67044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	match_pattern*)
67054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  set dummy $deplibs_check_method; shift
67064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
67074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for a_deplib in $deplibs; do
67084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case $a_deplib in
67094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    -l*)
67104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_stripname -l '' "$a_deplib"
67114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      name=$func_stripname_result
67124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
67134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case " $predeps $postdeps " in
67144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*" $a_deplib "*)
67154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  newdeplibs="$newdeplibs $a_deplib"
67164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  a_deplib=""
67174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ;;
67184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
67194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
67204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$a_deplib" ; then
67214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		libname=`eval "\\$ECHO \"$libname_spec\""`
67224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
67234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
67244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  for potent_lib in $potential_libs; do
67254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    potlib="$potent_lib" # see symlink-check above in file_magic test
67264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    if eval "\$ECHO \"X$potent_lib\"" 2>/dev/null | $Xsed -e 10q | \
67274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		       $EGREP "$match_pattern_regex" > /dev/null; then
67284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      newdeplibs="$newdeplibs $a_deplib"
67294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      a_deplib=""
67304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		      break 2
67314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    fi
67324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  done
67334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		done
67344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
67354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$a_deplib" ; then
67364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		droppeddeps=yes
67374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO
67384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
67394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** I have the capability to make that library automatically link in when"
67404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** you link to this library.  But I can only do this if you have a"
67414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** shared version of the library, which you do not appear to have"
67424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$ECHO "*** because I did check the linker path looking for a file starting"
67434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -z "$potlib" ; then
67444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
67454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
67464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** with $libname and none of the candidates passed a file format test"
67474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
67484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
67494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
67504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
67514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *)
67524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Add a -L argument.
67534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdeplibs="$newdeplibs $a_deplib"
67544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
67554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
67564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done # Gone through all deplibs.
67574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
67584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	none | unknown | *)
67594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newdeplibs=""
67604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_deplibs=`$ECHO "X $deplibs" | $Xsed \
67614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      -e 's/ -lc$//' -e 's/ -[LR][^ ]*//g'`
67624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
67634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for i in $predeps $postdeps ; do
67644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # can't use Xsed below, because $i might contain '/'
67654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
67664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
67674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
67684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[	 ]//g' |
67694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     $GREP . >/dev/null; then
67704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO
67714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "X$deplibs_check_method" = "Xnone"; then
67724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** Warning: inter-library dependencies are not supported in this platform."
67734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
67744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** Warning: inter-library dependencies are not known to be supported."
67754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
67764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** All declared inter-library dependencies are being dropped."
67774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    droppeddeps=yes
67784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
67794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
67804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
67814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	versuffix=$versuffix_save
67824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	major=$major_save
67834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	release=$release_save
67844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libname=$libname_save
67854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	name=$name_save
67864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
67874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
67884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*-*-rhapsody* | *-*-darwin1.[012])
67894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # On Rhapsody replace the C library with the System framework
67904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
67914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
67924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
67934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
67944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$droppeddeps" = yes; then
67954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$module" = yes; then
67964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO
67974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** Warning: libtool could not satisfy all declared inter-library"
67984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
67994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** a static module, that should work as long as the dlopening"
68004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** application is linked with the -dlopen flag."
68014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$global_symbol_pipe"; then
68024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO
68034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** However, this would only work if libtool was able to extract symbol"
68044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** lists from a program, using \`nm' or equivalent, but libtool could"
68054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** not find such a program.  So, this module is probably useless."
68064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** \`nm' from GNU binutils and a full rebuild may help."
68074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
68084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$build_old_libs" = no; then
68094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      oldlibs="$output_objdir/$libname.$libext"
68104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      build_libtool_libs=module
68114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      build_old_libs=yes
68124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
68134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      build_libtool_libs=no
68144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
68154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
68164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** The inter-library dependencies that have been dropped here will be"
68174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** automatically added whenever a program is linked with this library"
68184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO "*** or is declared to -dlopen it."
68194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
68204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$allow_undefined" = no; then
68214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO
68224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** Since this library must not contain undefined symbols,"
68234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** because either the platform does not support them or"
68244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** it was explicitly requested with -no-undefined,"
68254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "*** libtool will only create a static version of it."
68264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$build_old_libs" = no; then
68274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		oldlibs="$output_objdir/$libname.$libext"
68284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_libtool_libs=module
68294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_old_libs=yes
68304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
68314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		build_libtool_libs=no
68324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
68334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
68344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
6835893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
68364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Done checking deplibs!
68374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs=$newdeplibs
68384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
68394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
68404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
68414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*-*-darwin*)
68424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  newdeplibs=`$ECHO "X $newdeplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
68434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  new_inherited_linker_flags=`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
68444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  deplibs=`$ECHO "X $deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
6845893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
68464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
6847893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
68484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # move library search paths that coincide with paths to not yet
68494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # installed libraries to the beginning of the library search list
68504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      new_libs=
68514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for path in $notinst_path; do
68524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case " $new_libs " in
68534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" -L$path/$objdir "*) ;;
6854893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	*)
68554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case " $deplibs " in
68564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" -L$path/$objdir "*)
68574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    new_libs="$new_libs -L$path/$objdir" ;;
68584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
6859893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  ;;
6860893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
68614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
68624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for deplib in $deplibs; do
68634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $deplib in
68644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-L*)
68654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case " $new_libs " in
68664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $deplib "*) ;;
68674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) new_libs="$new_libs $deplib" ;;
68684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
68694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
68704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) new_libs="$new_libs $deplib" ;;
68714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
68724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
68734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      deplibs="$new_libs"
6874893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
68754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # All the library-specific variables (install_libdir is set above).
68764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      library_names=
68774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      old_library=
68784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dlname=
6879893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
68804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Test again, we may have decided not to build it any more
68814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$build_libtool_libs" = yes; then
68824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$hardcode_into_libs" = yes; then
68834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Hardcode the library paths
68844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  hardcode_libdirs=
68854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dep_rpath=
68864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  rpath="$finalize_rpath"
68874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test "$mode" != relink && rpath="$compile_rpath$rpath"
68884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for libdir in $rpath; do
68894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$hardcode_libdir_flag_spec"; then
68904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$hardcode_libdir_separator"; then
68914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test -z "$hardcode_libdirs"; then
68924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  hardcode_libdirs="$libdir"
68934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
68944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # Just accumulate the unique libdirs.
68954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
68964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
68974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ;;
68984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  *)
68994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
69004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    ;;
69014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  esac
69024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
69034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
69044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		eval flag=\"$hardcode_libdir_flag_spec\"
69054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		dep_rpath="$dep_rpath $flag"
69064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
69074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    elif test -n "$runpath_var"; then
69084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case "$perm_rpath " in
69094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *" $libdir "*) ;;
69104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) perm_rpath="$perm_rpath $libdir" ;;
69114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
69124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
69134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
69144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Substitute the hardcoded libdirs into the rpath.
69154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$hardcode_libdir_separator" &&
69164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test -n "$hardcode_libdirs"; then
69174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libdir="$hardcode_libdirs"
69184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$hardcode_libdir_flag_spec_ld"; then
69194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
69204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
69214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
69224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
69234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
69244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
69254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # We should set the runpath_var.
69264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    rpath=
69274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for dir in $perm_rpath; do
69284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      rpath="$rpath$dir:"
69294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
69304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
69314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
69324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
6933893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
6934893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shlibpath="$finalize_shlibpath"
69364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
69374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$shlibpath"; then
69384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
69394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
6940893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Get the real and link names of the library.
69424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval shared_ext=\"$shrext_cmds\"
69434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval library_names=\"$library_names_spec\"
69444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	set dummy $library_names
69454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shift
69464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	realname="$1"
69474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	shift
6948893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$soname_spec"; then
69504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval soname=\"$soname_spec\"
6951893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	else
69524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  soname="$realname"
69534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
69544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$dlname"; then
69554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dlname=$soname
69564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
6957893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	lib="$output_objdir/$realname"
69594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	linknames=
69604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for link
69614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	do
69624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linknames="$linknames $link"
69634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
6964893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Use standard objects if they are pic
69664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -z "$pic_flag" && libobjs=`$ECHO "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
69674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test "X$libobjs" = "X " && libobjs=
69684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
69694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	delfiles=
69704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$export_symbols" && test -n "$include_expsyms"; then
69714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
69724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  export_symbols="$output_objdir/$libname.uexp"
69734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  delfiles="$delfiles $export_symbols"
69744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
69754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
69764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	orig_export_symbols=
69774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host_os in
69785f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	cygwin* | mingw* | cegcc*)
69794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
69804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # exporting using user supplied symfile
69814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
69824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # and it's NOT already a .def file. Must figure out
69834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # which of the given symbols are data symbols and tag
69844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # them as such. So, trigger use of export_symbols_cmds.
69854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # export_symbols gets reassigned inside the "prepare
69864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # the list of exported symbols" if statement, so the
69874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # include_expsyms logic still works.
69884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      orig_export_symbols="$export_symbols"
69894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      export_symbols=
69904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      always_export_symbols=yes
6991893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
6992893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
69934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
69944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
6995893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
69964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Prepare the list of exported symbols
69974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -z "$export_symbols"; then
69984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
69994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_verbose "generating symbol list for \`$libname.la'"
70004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    export_symbols="$output_objdir/$libname.exp"
70014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || $RM $export_symbols
70024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cmds=$export_symbols_cmds
70034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    save_ifs="$IFS"; IFS='~'
70044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for cmd in $cmds; do
70054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      IFS="$save_ifs"
70064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval cmd=\"$cmd\"
70074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_len " $cmd"
70084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      len=$func_len_result
70094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
70104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_show_eval "$cmd" 'exit $?'
70114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		skipped_export=false
70124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
70134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# The command line is too long to execute in one step.
70144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_verbose "using reloadable object file for export list..."
70154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		skipped_export=:
70164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Break out early, otherwise skipped_export may be
70174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# set to false by a later but shorter cmd.
70184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		break
70194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
70204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
70214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    IFS="$save_ifs"
70224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
70234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
70244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
70254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
70264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7027893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
7028893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$export_symbols" && test -n "$include_expsyms"; then
70304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tmp_export_symbols="$export_symbols"
70314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
70324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
70334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7034893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
70364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # The given exports_symbols file has to be filtered, so filter it.
70374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
70384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
70394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # 's' commands which not all seds can handle. GNU sed should be fine
70404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # though. Also, the filter scales superlinearly with the number of
70414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # global variables. join(1) would be nice here, but unfortunately
70424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # isn't a blessed tool.
70434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
70444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
70454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  export_symbols=$output_objdir/$libname.def
70464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
70474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7048893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	tmp_deplibs=
70504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for test_deplib in $deplibs; do
70514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case " $convenience " in
70524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $test_deplib "*) ;;
70534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *)
70544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    tmp_deplibs="$tmp_deplibs $test_deplib"
70554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
70564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
70574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
70584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	deplibs="$tmp_deplibs"
70594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
70604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$convenience"; then
70614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$whole_archive_flag_spec" &&
70624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "$compiler_needs_object" = yes &&
70634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test -z "$libobjs"; then
70644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # extract the archives, so we have objects to list.
70654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # TODO: could optimize this to just extract one archive.
70664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    whole_archive_flag_spec=
70674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
70684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$whole_archive_flag_spec"; then
70694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    save_libobjs=$libobjs
70704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
70714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$libobjs" = "X " && libobjs=
7072893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
70734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    gentop="$output_objdir/${outputname}x"
70744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    generated="$generated $gentop"
70754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
70764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_extract_archives $gentop $convenience
70774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    libobjs="$libobjs $func_extract_archives_result"
70784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$libobjs" = "X " && libobjs=
7079893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
7080893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
7081893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
70834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval flag=\"$thread_safe_flag_spec\"
70844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  linker_flags="$linker_flags $flag"
70854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7086893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Make a backup of the uninstalled library when relinking
70884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$mode" = relink; then
70894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
70904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7091893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
70924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Do each of the archive commands.
70934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$module" = yes && test -n "$module_cmds" ; then
70944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
70954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval test_cmds=\"$module_expsym_cmds\"
70964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cmds=$module_expsym_cmds
70974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
70984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval test_cmds=\"$module_cmds\"
70994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cmds=$module_cmds
71004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7101893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	else
71024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
71034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval test_cmds=\"$archive_expsym_cmds\"
71044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cmds=$archive_expsym_cmds
71054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
71064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval test_cmds=\"$archive_cmds\"
71074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cmds=$archive_cmds
71084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7109893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
7110893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
71114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "X$skipped_export" != "X:" &&
71124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   func_len " $test_cmds" &&
71134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   len=$func_len_result &&
71144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
71154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  :
71164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
71174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # The command line is too long to link in one step, link piecewise
71184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # or, if using GNU ld and skipped_export is not :, use a linker
71194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # script.
7120893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
71214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Save the value of $output and $libobjs because we want to
71224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # use them later.  If we have whole_archive_flag_spec, we
71234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # want to use save_libobjs as it was before
71244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # whole_archive_flag_spec was expanded, because we can't
71254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # assume the linker understands whole_archive_flag_spec.
71264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This may have to be revisited, in case too many
71274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # convenience libraries get linked in and end up exceeding
71284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # the spec.
71294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
71304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    save_libobjs=$libobjs
71314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
71324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  save_output=$output
71334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  output_la=`$ECHO "X$output" | $Xsed -e "$basename"`
71344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
71354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Clear the reloadable object creation command queue and
71364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # initialize k to one.
71374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test_cmds=
71384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  concat_cmds=
71394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  objlist=
71404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  last_robj=
71414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  k=1
71424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
71434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
71444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output=${output_objdir}/${output_la}.lnkscript
71454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_verbose "creating GNU ld script: $output"
71464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO 'INPUT (' > $output
71474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for obj in $save_libobjs
71484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    do
71494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "$obj" >> $output
71504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
71514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO ')' >> $output
71524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    delfiles="$delfiles $output"
71534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
71544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output=${output_objdir}/${output_la}.lnk
71554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_verbose "creating linker input file list: $output"
71564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    : > $output
71574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    set x $save_libobjs
71584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    shift
71594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    firstobj=
71604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$compiler_needs_object" = yes; then
71614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      firstobj="$1 "
71624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      shift
7163893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
71644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for obj
71654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    do
71664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "$obj" >> $output
7167893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    done
71684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    delfiles="$delfiles $output"
71694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output=$firstobj\"$file_list_spec$output\"
71704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
71714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$save_libobjs"; then
71724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "creating reloadable object files..."
71734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      output=$output_objdir/$output_la-${k}.$objext
71744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval test_cmds=\"$reload_cmds\"
71754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_len " $test_cmds"
71764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      len0=$func_len_result
71774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      len=$len0
71784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
71794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Loop over the list of objects to be linked.
71804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      for obj in $save_libobjs
71814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      do
71824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_len " $obj"
71834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_arith $len + $func_len_result
71844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		len=$func_arith_result
71854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "X$objlist" = X ||
71864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		   test "$len" -lt "$max_cmd_len"; then
71874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_append objlist " $obj"
71884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		else
71894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # The command $test_cmds is almost too long, add a
71904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  # command to the queue.
71914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  if test "$k" -eq 1 ; then
71924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # The first file doesn't have a previous command to add.
71934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
71944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  else
71954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # All subsequent reloadable object files will link in
71964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    # the last one created.
71974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
71984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  fi
71994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  last_robj=$output_objdir/$output_la-${k}.$objext
72004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_arith $k + 1
72014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  k=$func_arith_result
72024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  output=$output_objdir/$output_la-${k}.$objext
72034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  objlist=$obj
72044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_len " $last_robj"
72054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_arith $len0 + $func_len_result
72064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  len=$func_arith_result
72074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
72084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      done
72094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Handle the remaining objects by creating one last
72104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # reloadable object file.  All subsequent reloadable object
72114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # files will link in the last one created.
72124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
72134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
72144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$last_robj"; then
72154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
7216893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      fi
72174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      delfiles="$delfiles $output"
72184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
72204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      output=
72214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
72224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if ${skipped_export-false}; then
72244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "generating symbol list for \`$libname.la'"
72254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      export_symbols="$output_objdir/$libname.exp"
72264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_dry_run || $RM $export_symbols
72274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      libobjs=$output
72284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Append the command to create the export file.
72294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
72304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
72314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test -n "$last_robj"; then
72324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
7233893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      fi
72344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
72354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test -n "$save_libobjs" &&
72374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "creating a temporary reloadable object file: $output"
72384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Loop through the commands generated above and execute them.
72404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    save_ifs="$IFS"; IFS='~'
72414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for cmd in $concat_cmds; do
72424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      IFS="$save_ifs"
72434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_silent || {
72444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_quote_for_expand "$cmd"
72454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  eval "func_echo $func_quote_for_expand_result"
72464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      }
72474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_dry_run || eval "$cmd" || {
72484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		lt_exit=$?
72494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Restore the uninstalled library and exit
72514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		if test "$mode" = relink; then
72524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  ( cd "$output_objdir" && \
72534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $RM "${realname}T" && \
72544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		    $MV "${realname}U" "$realname" )
72554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		fi
72564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		exit $lt_exit
72584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      }
7259893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    done
72604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    IFS="$save_ifs"
72614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
72624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
72634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
72644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
72654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
7266893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
7267893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
72684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          if ${skipped_export-false}; then
72694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
72704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      tmp_export_symbols="$export_symbols"
72714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
72724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_dry_run || eval '$ECHO "X$include_expsyms" | $Xsed | $SP2NL >> "$tmp_export_symbols"'
72734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
7274893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
72754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$orig_export_symbols"; then
72764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # The given exports_symbols file has to be filtered, so filter it.
72774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
72784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
72794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # 's' commands which not all seds can handle. GNU sed should be fine
72804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # though. Also, the filter scales superlinearly with the number of
72814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # global variables. join(1) would be nice here, but unfortunately
72824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # isn't a blessed tool.
72834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
72844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      delfiles="$delfiles $export_symbols $output_objdir/$libname.filter"
72854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      export_symbols=$output_objdir/$libname.def
72864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
72874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
72884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7289893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
72904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  libobjs=$output
72914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Restore the value of output.
72924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  output=$save_output
7293893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
72944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
72954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
72964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test "X$libobjs" = "X " && libobjs=
72974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
72984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Expand the library linking commands again to reset the
72994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # value of $libobjs for piecewise linking.
7300893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Do each of the archive commands.
73024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$module" = yes && test -n "$module_cmds" ; then
73034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
73044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cmds=$module_expsym_cmds
73054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
73064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cmds=$module_cmds
73074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
73084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
73094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
73104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cmds=$archive_expsym_cmds
73114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
73124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      cmds=$archive_cmds
73134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
73144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
73154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7316893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$delfiles"; then
73184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Append the command to remove temporary files to $cmds.
73194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval cmds=\"\$cmds~\$RM $delfiles\"
73204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7321893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Add any objects from preloaded convenience libraries
73234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$dlprefiles"; then
73244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  gentop="$output_objdir/${outputname}x"
73254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  generated="$generated $gentop"
7326893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_extract_archives $gentop $dlprefiles
73284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  libobjs="$libobjs $func_extract_archives_result"
73294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  test "X$libobjs" = "X " && libobjs=
73304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7331893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	save_ifs="$IFS"; IFS='~'
73334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for cmd in $cmds; do
73344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  IFS="$save_ifs"
73354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval cmd=\"$cmd\"
73364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_silent || {
73374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_quote_for_expand "$cmd"
73384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval "func_echo $func_quote_for_expand_result"
73394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  }
73404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || eval "$cmd" || {
73414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    lt_exit=$?
73424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Restore the uninstalled library and exit
73444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$mode" = relink; then
73454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ( cd "$output_objdir" && \
73464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        $RM "${realname}T" && \
73474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$MV "${realname}U" "$realname" )
73484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
73494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    exit $lt_exit
73514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  }
7352893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	done
73534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	IFS="$save_ifs"
7354893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Restore the uninstalled library and exit
73564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$mode" = relink; then
73574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
7358893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$convenience"; then
73604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$whole_archive_flag_spec"; then
73614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval '${RM}r "$gentop"'
73624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
73634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7364893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  exit $EXIT_SUCCESS
73664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
73674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Create links to the real library.
73694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for linkname in $linknames; do
73704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$realname" != "$linkname"; then
73714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
73724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
73734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
7374893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If -module or -export-dynamic was specified, set the dlname.
73764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$module" = yes || test "$export_dynamic" = yes; then
73774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # On all known operating systems, these are identical.
73784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  dlname="$soname"
73794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
73804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7381893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
7382893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    obj)
73844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
73854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-dlopen' is ignored for objects"
7386893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
7387893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
73884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case " $deplibs" in
73894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *\ -l* | *\ -L*)
73904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-l' and \`-L' are ignored for objects" ;;
73914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
73924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$rpath" && \
73944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-rpath' is ignored for objects"
73954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$xrpath" && \
73974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-R' is ignored for objects"
73984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
73994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$vinfo" && \
74004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-version-info' is ignored for objects"
74014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$release" && \
74034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-release' is ignored for objects"
74044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $output in
74064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *.lo)
74074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	test -n "$objs$old_deplibs" && \
74084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
74094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libobj=$output
74114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_lo2o "$libobj"
74124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	obj=$func_lo2o_result
7413893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
7414893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *)
74154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libobj=
74164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	obj="$output"
7417893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
7418893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac
7419893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Delete the old objects.
74214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $opt_dry_run || $RM $obj $libobj
7422893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Objects from convenience libraries.  This assumes
74244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # single-version convenience libraries.  Whenever we create
74254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # different ones for PIC/non-PIC, this we'll have to duplicate
74264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # the extraction.
74274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      reload_conv_objs=
74284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      gentop=
74294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # reload_cmds runs $LD directly, so let us get rid of
74304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # -Wl from whole_archive_flag_spec and hope we can get by with
74314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # turning comma into space..
74324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      wl=
7433893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$convenience"; then
74354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$whole_archive_flag_spec"; then
74364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
74374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  reload_conv_objs=$reload_objs\ `$ECHO "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
74384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
74394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  gentop="$output_objdir/${obj}x"
74404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  generated="$generated $gentop"
7441893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_extract_archives $gentop $convenience
74434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  reload_conv_objs="$reload_objs $func_extract_archives_result"
74444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7445893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
7446893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Create the old-style object.
74484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe 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
7449893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      output="$obj"
74514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_execute_cmds "$reload_cmds" 'exit $?'
7452893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Exit if we aren't doing a library object file.
74544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -z "$libobj"; then
74554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$gentop"; then
74564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval '${RM}r "$gentop"'
74574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
74584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit $EXIT_SUCCESS
7460893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
74614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$build_libtool_libs" != yes; then
74634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$gentop"; then
74644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval '${RM}r "$gentop"'
74654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
74664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Create an invalid libtool object if no PIC, so that we don't
74684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# accidentally link it into a program.
74694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# $show "echo timestamp > $libobj"
74704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
74714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit $EXIT_SUCCESS
74724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
74734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$pic_flag" || test "$pic_mode" != default; then
74754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Only do commands if we really have different PIC objects.
74764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	reload_objs="$libobjs $reload_conv_objs"
74774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	output="$libobj"
74784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_execute_cmds "$reload_cmds" 'exit $?'
74794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
74804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$gentop"; then
74824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval '${RM}r "$gentop"'
74834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
74844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
74854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exit $EXIT_SUCCESS
7486893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      ;;
7487893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    prog)
74894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
74904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*cygwin*) func_stripname '' '.exe' "$output"
74914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	          output=$func_stripname_result.exe;;
74924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
74934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$vinfo" && \
74944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-version-info' is ignored for programs"
7495893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test -n "$release" && \
74974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`-release' is ignored for programs"
7498893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
74994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "$preload" = yes \
75004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        && test "$dlopen_support" = unknown \
75014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	&& test "$dlopen_self" = unknown \
75024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	&& test "$dlopen_self_static" = unknown && \
75034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
75044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
75054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
75064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *-*-rhapsody* | *-*-darwin1.[012])
75074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# On Rhapsody replace the C library is the System framework
75084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
75094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's/ -lc / System.ltframework /'`
7510893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
75114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
7512893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
75134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
75144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *-*-darwin*)
75154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Don't allow lazy linking, it breaks C++ global constructors
75164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# But is supposedly fixed on 10.4 or later (yay!).
75174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$tagname" = CXX ; then
75184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
75194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    10.[0123])
75204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      compile_command="$compile_command ${wl}-bind_at_load"
75214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      finalize_command="$finalize_command ${wl}-bind_at_load"
75224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    ;;
75234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
7524893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
75254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
75264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_deplibs=`$ECHO "X $compile_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
75274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	finalize_deplibs=`$ECHO "X $finalize_deplibs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
75284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	;;
75294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
7530893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7531893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
75324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # move library search paths that coincide with paths to not yet
75334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # installed libraries to the beginning of the library search list
75344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      new_libs=
75354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for path in $notinst_path; do
75364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case " $new_libs " in
75374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*" -L$path/$objdir "*) ;;
75384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*)
75394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case " $compile_deplibs " in
75404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" -L$path/$objdir "*)
75414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    new_libs="$new_libs -L$path/$objdir" ;;
7542893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
75434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
75444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
75454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
75464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for deplib in $compile_deplibs; do
75474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $deplib in
75484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	-L*)
75494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case " $new_libs " in
75504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $deplib "*) ;;
75514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) new_libs="$new_libs $deplib" ;;
7552893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
75534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
75544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) new_libs="$new_libs $deplib" ;;
75554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
75564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
75574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile_deplibs="$new_libs"
7558893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
7559893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
75604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile_command="$compile_command $compile_deplibs"
75614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      finalize_command="$finalize_command $finalize_deplibs"
7562893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
75634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$rpath$xrpath"; then
75644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# If the user specified any rpath flags, then add them.
75654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for libdir in $rpath $xrpath; do
75664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # This is the magic to use -rpath.
75674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$finalize_rpath " in
75684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
75694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) finalize_rpath="$finalize_rpath $libdir" ;;
75704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
75714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
75724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7573893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
75744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now hardcode the library paths
75754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      rpath=
75764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      hardcode_libdirs=
75774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for libdir in $compile_rpath $finalize_rpath; do
75784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$hardcode_libdir_flag_spec"; then
75794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$hardcode_libdir_separator"; then
75804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$hardcode_libdirs"; then
75814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      hardcode_libdirs="$libdir"
75824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
75834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Just accumulate the unique libdirs.
75844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
75854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
75864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
75874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
75884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
75894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
75904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
75914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
7592893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
75934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval flag=\"$hardcode_libdir_flag_spec\"
75944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    rpath="$rpath $flag"
7595893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
75964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test -n "$runpath_var"; then
75974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$perm_rpath " in
75984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
75994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) perm_rpath="$perm_rpath $libdir" ;;
76004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
76014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
76024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
76035f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
76044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
76054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case :$dllsearchpath: in
76064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *":$libdir:"*) ;;
76075f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  ::) dllsearchpath=$libdir;;
76084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$libdir";;
76094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
76104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case :$dllsearchpath: in
76114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *":$testbindir:"*) ;;
76125f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	  ::) dllsearchpath=$testbindir;;
76134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) dllsearchpath="$dllsearchpath:$testbindir";;
76144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
76154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
76164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
76174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
76184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Substitute the hardcoded libdirs into the rpath.
76194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$hardcode_libdir_separator" &&
76204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 test -n "$hardcode_libdirs"; then
76214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libdir="$hardcode_libdirs"
76224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval rpath=\" $hardcode_libdir_flag_spec\"
76234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
76244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile_rpath="$rpath"
7625893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      rpath=
76274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      hardcode_libdirs=
76284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for libdir in $finalize_rpath; do
76294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$hardcode_libdir_flag_spec"; then
76304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$hardcode_libdir_separator"; then
76314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$hardcode_libdirs"; then
76324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      hardcode_libdirs="$libdir"
76334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
76344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # Just accumulate the unique libdirs.
76354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
76364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
76374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
76384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *)
76394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
76404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
76414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
76424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
7643893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
76444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval flag=\"$hardcode_libdir_flag_spec\"
76454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    rpath="$rpath $flag"
7646893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
76474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif test -n "$runpath_var"; then
76484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case "$finalize_perm_rpath " in
76494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *" $libdir "*) ;;
76504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
76514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
7652893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
76534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
76544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Substitute the hardcoded libdirs into the rpath.
76554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$hardcode_libdir_separator" &&
76564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 test -n "$hardcode_libdirs"; then
76574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	libdir="$hardcode_libdirs"
76584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval rpath=\" $hardcode_libdir_flag_spec\"
76594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
76604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      finalize_rpath="$rpath"
7661893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$libobjs" && test "$build_old_libs" = yes; then
76634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Transform all the library objects into standard objects.
76644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_command=`$ECHO "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
76654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	finalize_command=`$ECHO "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
76664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7667893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
7669893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # template prelinking step
76714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$prelink_cmds"; then
76724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_execute_cmds "$prelink_cmds" 'exit $?'
76734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7674893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      wrappers_required=yes
76764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      case $host in
76774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *cygwin* | *mingw* )
76784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        if test "$build_libtool_libs" != yes; then
76794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          wrappers_required=no
76804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        fi
76814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
76825f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott      *cegcc)
76835f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        # Disable wrappers for cegcc, we are cross compiling anyway.
76845f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        wrappers_required=no
76855f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott        ;;
76864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      *)
76874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
76884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project          wrappers_required=no
76894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        fi
76904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project        ;;
76914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      esac
76924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$wrappers_required" = no; then
76934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Replace the output file specification.
76944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_command=`$ECHO "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
76954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link_command="$compile_command$compile_rpath"
7696893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
76974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We have no uninstalled library dependencies, so finalize right now.
76984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit_status=0
76994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$link_command" 'exit_status=$?'
7700893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Delete the generated files.
77024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -f "$output_objdir/${outputname}S.${objext}"; then
77034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
7704893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
7705893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	exit $exit_status
77074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7708893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$compile_shlibpath$finalize_shlibpath"; then
77104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
77114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
77124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$finalize_shlibpath"; then
77134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
77144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7715893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      compile_var=
77174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      finalize_var=
77184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$runpath_var"; then
77194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$perm_rpath"; then
77204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # We should set the runpath_var.
77214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  rpath=
77224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for dir in $perm_rpath; do
77234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    rpath="$rpath$dir:"
77244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
77254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
7726893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
77274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$finalize_perm_rpath"; then
77284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # We should set the runpath_var.
77294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  rpath=
77304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for dir in $finalize_perm_rpath; do
77314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    rpath="$rpath$dir:"
77324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
77334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
7734893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
77354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7736893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$no_install" = yes; then
77384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# We don't need to create a wrapper script.
77394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link_command="$compile_var$compile_command$compile_rpath"
77404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Replace the output file specification.
77414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
77424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Delete the old output file.
77434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	$opt_dry_run || $RM $output
77444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Link the executable and exit
77454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "$link_command" 'exit $?'
7746893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	exit $EXIT_SUCCESS
77474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7748893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$hardcode_action" = relink; then
77504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Fast installation is not supported
77514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	link_command="$compile_var$compile_command$compile_rpath"
77524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	relink_command="$finalize_var$finalize_command$finalize_rpath"
77534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
77544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "this platform does not like uninstalled shared libraries"
77554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_warning "\`$output' will be relinked during installation"
77564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
77574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$fast_install" != no; then
77584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  link_command="$finalize_var$compile_command$finalize_rpath"
77594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$fast_install" = yes; then
77604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command=`$ECHO "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
77614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
77624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # fast_install is set to needless
77634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command=
77644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
7765893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	else
77664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  link_command="$compile_var$compile_command$compile_rpath"
77674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command="$finalize_var$finalize_command$finalize_rpath"
7768893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
77694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7770893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Replace the output file specification.
77724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      link_command=`$ECHO "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
7773893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Delete the old output files.
77754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
7776893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval "$link_command" 'exit $?'
7778893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Now create the wrapper script.
77804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_verbose "creating $output"
7781893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Quote the relink command for shipping.
77834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$relink_command"; then
77844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Preserve any variables that may affect compiler behavior
77854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for var in $variables_saved_for_relink; do
77864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if eval test -z \"\${$var+set}\"; then
77874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
77884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  elif eval var_value=\$$var; test -z "$var_value"; then
77894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command="$var=; export $var; $relink_command"
7790893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  else
77914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_quote_for_eval "$var_value"
77924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
7793893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
77944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
77954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	relink_command="(cd `pwd`; $relink_command)"
77964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
77974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7798893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
77994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Quote $ECHO for shipping.
78004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "X$ECHO" = "X$SHELL $progpath --fallback-echo"; then
78014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $progpath in
78024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
78034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	*) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
7804893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
78054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	qecho=`$ECHO "X$qecho" | $Xsed -e "$sed_quote_subst"`
78064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
78074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	qecho=`$ECHO "X$ECHO" | $Xsed -e "$sed_quote_subst"`
78084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7809893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Only actually do things if not in dry run mode.
78114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $opt_dry_run || {
78124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# win32 will think the script is a binary if it has
78134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# a .exe suffix, so we strip it off here.
78144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $output in
78154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *.exe) func_stripname '' '.exe' "$output"
78164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	         output=$func_stripname_result ;;
78174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
78184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# test for cygwin because mv fails w/o .exe extensions
78194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
78204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *cygwin*)
78214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    exeext=.exe
78224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '' '.exe' "$outputname"
78234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    outputname=$func_stripname_result ;;
78244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *) exeext= ;;
78254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
78264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	case $host in
78274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  *cygwin* | *mingw* )
78284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_dirname_and_basename "$output" "" "."
78294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output_name=$func_basename_result
78304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output_path=$func_dirname_result
78314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
78324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    cwrapper="$output_path/$output_name.exe"
78334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $RM $cwrappersource $cwrapper
78344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
78354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
78364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_emit_cwrapperexe_src > $cwrappersource
78374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
78385f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    # The wrapper executable is built using the $host compiler,
78395f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    # because it contains $host paths and files. If cross-
78405f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    # compiling, it, like the target executable, must be
78415f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    # executed on the $host or under an emulation environment.
78424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
78434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
78444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $STRIP $cwrapper
78454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
7846893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Now, create the wrapper script for func_source use:
78484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_ltwrapper_scriptname $cwrapper
78494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $RM $func_ltwrapper_scriptname_result
78504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
78514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $opt_dry_run || {
78524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # note: this script will not be executed, so do not chmod.
78534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "x$build" = "x$host" ; then
78544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
78554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      else
78564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_emit_wrapper no > $func_ltwrapper_scriptname_result
78574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
78584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    }
78594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
78604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  * )
78614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $RM $output
78624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
7863893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_emit_wrapper no > $output
78654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    chmod +x $output
78664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  ;;
78674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	esac
78684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      }
78694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      exit $EXIT_SUCCESS
78704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
78714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
7872893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # See if we need to build an old-fashioned archive.
78744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    for oldlib in $oldlibs; do
78754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
78764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$build_libtool_libs" = convenience; then
78774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	oldobjs="$libobjs_save $symfileobj"
78784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	addlibs="$convenience"
78794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	build_libtool_libs=no
78804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
78814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$build_libtool_libs" = module; then
78824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs="$libobjs_save"
78834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  build_libtool_libs=no
78844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
78854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs="$old_deplibs $non_pic_objects"
78864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$preload" = yes && test -f "$symfileobj"; then
78874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    oldobjs="$oldobjs $symfileobj"
78884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
78894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
78904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	addlibs="$old_convenience"
7891893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
7892893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$addlibs"; then
78944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	gentop="$output_objdir/${outputname}x"
78954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	generated="$generated $gentop"
7896893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
78974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_extract_archives $gentop $addlibs
78984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	oldobjs="$oldobjs $func_extract_archives_result"
78994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
7900893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
79014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Do each command in the archive commands.
79024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
79034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	cmds=$old_archive_from_new_cmds
79044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      else
7905893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
79064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# Add any objects from preloaded convenience libraries
79074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test -n "$dlprefiles"; then
79084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  gentop="$output_objdir/${outputname}x"
79094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  generated="$generated $gentop"
7910893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
79114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_extract_archives $gentop $dlprefiles
79124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs="$oldobjs $func_extract_archives_result"
79134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
7914893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
79154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# POSIX demands no paths to be encoded in archives.  We have
79164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# to avoid creating archives with duplicate basenames if we
79174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# might have to extract them afterwards, e.g., when creating a
79184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# static archive out of a convenience library, or when linking
79194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# the entirety of a libtool archive into another (currently
79204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	# not supported by libtool).
79214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if (for obj in $oldobjs
79224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    do
79234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_basename "$obj"
79244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      $ECHO "$func_basename_result"
79254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done | sort | sort -uc >/dev/null 2>&1); then
79264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  :
79274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
79284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO "copying selected object files to avoid basename conflicts..."
79294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  gentop="$output_objdir/${outputname}x"
79304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  generated="$generated $gentop"
79314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_mkdir_p "$gentop"
79324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  save_oldobjs=$oldobjs
79334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs=
79344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  counter=1
79354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for obj in $save_oldobjs
79364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  do
79374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_basename "$obj"
79384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    objbase="$func_basename_result"
79394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    case " $oldobjs " in
79404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    " ") oldobjs=$obj ;;
79414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *[\ /]"$objbase "*)
79424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      while :; do
79434215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Make sure we don't pick an alternate name that also
79444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# overlaps.
79454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newobj=lt$counter-$objbase
79464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_arith $counter + 1
79474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		counter=$func_arith_result
79484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		case " $oldobjs " in
79494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*[\ /]"$newobj "*) ;;
79504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
79514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		esac
79524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      done
79534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
79544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      oldobjs="$oldobjs $gentop/$newobj"
79554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      ;;
79564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    *) oldobjs="$oldobjs $obj" ;;
79574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    esac
7958893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  done
7959893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
79604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	eval cmds=\"$old_archive_cmds\"
7961893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
79624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_len " $cmds"
79634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	len=$func_len_result
79644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
79654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  cmds=$old_archive_cmds
79664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	else
79674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # the command line is too long to link in one step, link in parts
79684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_verbose "using piecewise archive linking..."
79694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  save_RANLIB=$RANLIB
79704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  RANLIB=:
79714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  objlist=
79724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  concat_cmds=
79734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  save_oldobjs=$oldobjs
79744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs=
79754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # Is there a better way of finding the last object in the list?
79764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for obj in $save_oldobjs
79774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  do
79784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    last_oldobj=$obj
79794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
79804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  eval test_cmds=\"$old_archive_cmds\"
79814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_len " $test_cmds"
79824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  len0=$func_len_result
79834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  len=$len0
79844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  for obj in $save_oldobjs
79854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  do
79864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_len " $obj"
79874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_arith $len + $func_len_result
79884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    len=$func_arith_result
79894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_append objlist " $obj"
79904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test "$len" -lt "$max_cmd_len"; then
79914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      :
79924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
79934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      # the above command should be used before it gets too long
79944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      oldobjs=$objlist
79954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      if test "$obj" = "$last_oldobj" ; then
79964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		RANLIB=$save_RANLIB
79974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      fi
79984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
79994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
80004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      objlist=
80014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      len=$len0
80024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
80034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  done
80044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  RANLIB=$save_RANLIB
80054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  oldobjs=$objlist
80064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "X$oldobjs" = "X" ; then
80074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval cmds=\"\$concat_cmds\"
80084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
80094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
80104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
80114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	fi
80124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
80134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_execute_cmds "$cmds" 'exit $?'
8014893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
8015893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
80164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -n "$generated" && \
80174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval "${RM}r$generated"
8018893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
80194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    # Now create the libtool archive.
80204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    case $output in
80214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    *.la)
80224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      old_library=
80234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      test "$build_old_libs" = yes && old_library="$libname.$libext"
80244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_verbose "creating $output"
8025893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
80264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Preserve any variables that may affect compiler behavior
80274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      for var in $variables_saved_for_relink; do
80284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if eval test -z \"\${$var+set}\"; then
80294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
80304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	elif eval var_value=\$$var; test -z "$var_value"; then
80314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command="$var=; export $var; $relink_command"
8032893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	else
80334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_quote_for_eval "$var_value"
80344215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
8035893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
80364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      done
80374215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Quote the link command for shipping.
80384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
80394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      relink_command=`$ECHO "X$relink_command" | $Xsed -e "$sed_quote_subst"`
80404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "$hardcode_automatic" = yes ; then
80414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	relink_command=
80424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      fi
8043893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
80444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Only create the output if not a dry run.
80454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      $opt_dry_run || {
80464215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	for installed in no yes; do
80474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$installed" = yes; then
80484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if test -z "$install_libdir"; then
80494215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      break
80504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
80514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    output="$output_objdir/$outputname"i
80524215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    # Replace all uninstalled libtool libraries with the installed ones
80534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdependency_libs=
80544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for deplib in $dependency_libs; do
80554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $deplib in
80564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *.la)
80574215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_basename "$deplib"
80584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		name="$func_basename_result"
80594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
80604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		test -z "$libdir" && \
80614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_fatal_error "\`$deplib' is not a valid libtool archive"
80624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newdependency_libs="$newdependency_libs $libdir/$name"
80634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
80644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) newdependency_libs="$newdependency_libs $deplib" ;;
80654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
80664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
80674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dependency_libs="$newdependency_libs"
80684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlfiles=
80694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
80704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for lib in $dlfiles; do
80714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $lib in
80724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *.la)
80734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	        func_basename "$lib"
80744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		name="$func_basename_result"
80754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
80764215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		test -z "$libdir" && \
80774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_fatal_error "\`$lib' is not a valid libtool archive"
80784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newdlfiles="$newdlfiles $libdir/$name"
80794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
80804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *) newdlfiles="$newdlfiles $lib" ;;
80814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
80824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
80834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlfiles="$newdlfiles"
80844215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlprefiles=
80854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for lib in $dlprefiles; do
80864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $lib in
80874215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      *.la)
80884215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# Only pass preopened files to the pseudo-archive (for
80894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# eventual linking with the app. that links it) if we
80904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# didn't already link the preopened objects directly into
80914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		# the library:
80924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		func_basename "$lib"
80934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		name="$func_basename_result"
80944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
80954215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		test -z "$libdir" && \
80964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		  func_fatal_error "\`$lib' is not a valid libtool archive"
80974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		newdlprefiles="$newdlprefiles $libdir/$name"
80984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		;;
80994215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
81004215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
81014215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlprefiles="$newdlprefiles"
81024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  else
81034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlfiles=
81044215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for lib in $dlfiles; do
81054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $lib in
81064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
81074215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) abs=`pwd`"/$lib" ;;
81084215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
81094215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdlfiles="$newdlfiles $abs"
81104215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
81114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlfiles="$newdlfiles"
81124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    newdlprefiles=
81134215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    for lib in $dlprefiles; do
81144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      case $lib in
81154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
81164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project		*) abs=`pwd`"/$lib" ;;
81174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      esac
81184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      newdlprefiles="$newdlprefiles $abs"
81194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    done
81204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    dlprefiles="$newdlprefiles"
81214215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
81224215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $RM $output
81234215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  # place dlname in correct position for cygwin
81244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  tdlname=$dlname
81254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  case $host,$output,$installed,$module,$dlname in
81265f6bd84e375226bf228fc8ac90318957ec9e1e7fPatrick Scott	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
81274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  esac
81284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  $ECHO > $output "\
81294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# $outputname - a libtool library file
81304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
81314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project#
81324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Please DO NOT delete this file!
81334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# It is necessary for linking the library.
8134893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81354215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# The name that we can dlopen(3).
81364215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdlname='$tdlname'
8137893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Names of this library.
81394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlibrary_names='$library_names'
8140893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81414215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# The name of the static archive.
81424215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectold_library='$old_library'
8143893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81444215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Linker flags that can not go in dependency_libs.
81454215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectinherited_linker_flags='$new_inherited_linker_flags'
8146893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81474215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Libraries that this one depends upon.
81484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdependency_libs='$dependency_libs'
8149893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81504215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Names of additional weak libraries provided by this library
81514215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectweak_library_names='$weak_libs'
8152893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81534215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Version information for $libname.
81544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectcurrent=$current
81554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectage=$age
81564215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectrevision=$revision
8157893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81584215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Is this an already installed library?
81594215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectinstalled=$installed
8160893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81614215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Should we warn about portability when linking against -modules?
81624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectshouldnotlink=$module
8163893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81644215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Files to dlopen/dlpreopen
81654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdlopen='$dlfiles'
81664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectdlpreopen='$dlprefiles'
8167893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# Directory that this library needs to be installed in:
81694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectlibdir='$install_libdir'"
81704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test "$installed" = no && test "$need_relink" = yes; then
81714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    $ECHO >> $output "\
81724215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectrelink_command=\"$relink_command\""
81734215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  fi
81744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	done
81754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      }
8176893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81774215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # Do a symbolic link so that the libtool archive can be found in
81784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      # LD_LIBRARY_PATH before the program is installed.
81794215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
81804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      ;;
81814215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    esac
81824215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    exit $EXIT_SUCCESS
81834215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
8184893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81854215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{ test "$mode" = link || test "$mode" = relink; } &&
81864215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_mode_link ${1+"$@"}
8187893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8188893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
81894215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# func_mode_uninstall arg...
81904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectfunc_mode_uninstall ()
81914215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{
81924215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    $opt_debug
81934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    RM="$nonopt"
8194893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    files=
8195893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    rmforce=
8196893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    exit_status=0
8197893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8198893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # This variable tells wrapper scripts just to set variables rather
8199893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # than running their programs.
8200893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    libtool_install_magic="$magic"
8201893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8202893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    for arg
8203893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    do
8204893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      case $arg in
82054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -f) RM="$RM $arg"; rmforce=yes ;;
82064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      -*) RM="$RM $arg" ;;
8207893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *) files="$files $arg" ;;
8208893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac
8209893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
8210893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
82114215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    test -z "$RM" && \
82124215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_fatal_help "you must specify an RM program"
8213893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8214893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    rmdirs=
8215893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8216893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    origobjdir="$objdir"
8217893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    for file in $files; do
82184215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_dirname "$file" "" "."
82194215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      dir="$func_dirname_result"
82204215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if test "X$dir" = X.; then
8221893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	objdir="$origobjdir"
8222893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      else
8223893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	objdir="$dir/$origobjdir"
8224893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
82254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_basename "$file"
82264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      name="$func_basename_result"
8227893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      test "$mode" = uninstall && objdir="$dir"
8228893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8229893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Remember objdir for removal later, being careful to avoid duplicates
8230893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test "$mode" = clean; then
8231893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	case " $rmdirs " in
8232893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  *" $objdir "*) ;;
8233893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  *) rmdirs="$rmdirs $objdir" ;;
8234893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	esac
8235893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
8236893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8237893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      # Don't error if the file doesn't exist and rm -f was used.
82384215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      if { test -L "$file"; } >/dev/null 2>&1 ||
82394215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 { test -h "$file"; } >/dev/null 2>&1 ||
82404215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	 test -f "$file"; then
8241893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	:
8242893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      elif test -d "$file"; then
8243893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	exit_status=1
8244893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
8245893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      elif test "$rmforce" = yes; then
8246893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	continue
8247893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
8248893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8249893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      rmfiles="$file"
8250893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8251893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      case $name in
8252893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *.la)
8253893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	# Possibly a libtool archive, so verify it.
82544215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if func_lalib_p "$file"; then
82554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source $dir/$name
8256893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8257893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Delete the libtool libraries and symlinks.
8258893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  for n in $library_names; do
8259893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    rmfiles="$rmfiles $objdir/$n"
8260893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  done
8261893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
8262893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8263893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  case "$mode" in
8264893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  clean)
8265893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    case "  $library_names " in
8266893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # "  " in the beginning catches empty $dlname
8267893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    *" $dlname "*) ;;
8268893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    *) rmfiles="$rmfiles $objdir/$dlname" ;;
8269893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    esac
82704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
8271893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    ;;
8272893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  uninstall)
8273893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    if test -n "$library_names"; then
8274893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      # Do each command in the postuninstall commands.
82754215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8276893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
8277893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8278893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    if test -n "$old_library"; then
8279893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      # Do each command in the old_postuninstall commands.
82804215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
8281893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
8282893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # FIXME: should reinstall the best remaining shared library.
8283893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    ;;
8284893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
8285893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
8286893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
8287893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8288893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *.lo)
8289893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	# Possibly a libtool object, so verify it.
82904215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	if func_lalib_p "$file"; then
8291893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8292893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Read the .lo file
82934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  func_source $dir/$name
8294893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8295893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Add PIC object to the list of files to remove.
82964215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$pic_object" &&
82974215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$pic_object" != none; then
8298893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    rmfiles="$rmfiles $dir/$pic_object"
8299893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
8300893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8301893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Add non-PIC object to the list of files to remove.
83024215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if test -n "$non_pic_object" &&
83034215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	     test "$non_pic_object" != none; then
8304893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    rmfiles="$rmfiles $dir/$non_pic_object"
8305893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
8306893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
8307893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
8308893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8309893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      *)
8310893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	if test "$mode" = clean ; then
8311893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  noexename=$name
8312893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  case $file in
8313893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  *.exe)
83144215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '' '.exe' "$file"
83154215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    file=$func_stripname_result
83164215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    func_stripname '' '.exe' "$name"
83174215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    noexename=$func_stripname_result
8318893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # $file with .exe has already been added to rmfiles,
8319893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # add $file without .exe
8320893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    rmfiles="$rmfiles $file"
8321893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    ;;
8322893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  esac
8323893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  # Do a test to see if this is a libtool program.
83244215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	  if func_ltwrapper_p "$file"; then
83254215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    if func_ltwrapper_executable_p "$file"; then
83264215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_ltwrapper_scriptname "$file"
83274215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      relink_command=
83284215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_source $func_ltwrapper_scriptname_result
83294215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
83304215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    else
83314215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      relink_command=
83324215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	      func_source $dir/$noexename
83334215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	    fi
8334893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8335893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # note $name still contains .exe if it was in $file originally
8336893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    # as does the version of $file that was added into $rmfiles
8337893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
8338893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    if test "$fast_install" = yes && test -n "$relink_command"; then
8339893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      rmfiles="$rmfiles $objdir/lt-$name"
8340893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
8341893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    if test "X$noexename" != "X$name" ; then
8342893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
8343893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	    fi
8344893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	  fi
8345893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	fi
8346893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project	;;
8347893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      esac
83484215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project      func_show_eval "$RM $rmfiles" 'exit_status=1'
8349893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
8350893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    objdir="$origobjdir"
8351893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8352893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    # Try to remove the ${objdir}s in the directories where we deleted files
8353893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    for dir in $rmdirs; do
8354893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      if test -d "$dir"; then
83554215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project	func_show_eval "rmdir $dir >/dev/null 2>&1"
8356893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project      fi
8357893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    done
8358893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8359893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project    exit $exit_status
83604215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
8361893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
83624215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project{ test "$mode" = uninstall || test "$mode" = clean; } &&
83634215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project    func_mode_uninstall ${1+"$@"}
8364893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
83654215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest -z "$mode" && {
83664215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  help="$generic_help"
83674215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  func_fatal_help "you must specify a MODE"
83684215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project}
83694215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
83704215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projecttest -z "$exec_cmd" && \
83714215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  func_fatal_help "invalid operation mode \`$mode'"
8372893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8373893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectif test -n "$exec_cmd"; then
83744215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project  eval exec "$exec_cmd"
8375893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project  exit $EXIT_FAILURE
8376893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Projectfi
8377893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
83784215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectexit $exit_status
8379893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8380893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8381893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# The TAGs below are defined such that we never get into a situation
8382893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# in which we disable both kinds of libraries.  Given conflicting
8383893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# choices, we go for a static library, that is the most portable,
8384893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# since we can't tell whether shared libraries were disabled because
8385893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# the user asked for that or because the platform doesn't support
8386893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# them.  This is particularly important on AIX, because we don't
8387893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# support having both static and shared libraries enabled at the same
8388893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# time on that platform, so we default to a shared-only configuration.
8389893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# If a disable-shared tag is given, we'll fallback to a static-only
8390893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# configuration.  But we'll never go from static-only to shared-only.
8391893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8392893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
83934215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbuild_libtool_libs=no
83944215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbuild_old_libs=yes
8395893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# ### END LIBTOOL TAG CONFIG: disable-shared
8396893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8397893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# ### BEGIN LIBTOOL TAG CONFIG: disable-static
83984215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Projectbuild_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
8399893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# ### END LIBTOOL TAG CONFIG: disable-static
8400893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project
8401893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# Local Variables:
8402893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# mode:shell-script
8403893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# sh-indentation:2
8404893912bfc2683463dc3e2c445336752d012563d3The Android Open Source Project# End:
84054215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project# vi:sw=2
84064215dd1533c56e1a89ae6f1d6ea68677fac27fdaThe Android Open Source Project
8407